; LLVM IR from aws/s2n-tls :: tests/unit (s2n_x509_validator_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.host_verify_data = type { ptr, i8, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_x509_trust_store = type { ptr, 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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.anon = type { i64, i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_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_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_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] }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [127 x i8], align 1
@__const.main.verify_data = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.41 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [10 x i8], align 1
@__const.main.verify_data.58 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.59 = external hidden unnamed_addr constant [125 x i8], align 1
@__const.main.verify_data.60 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@__const.main.verify_data.61 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@__const.main.verify_data.62 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@__const.main.verify_data.63 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.64 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [141 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@__const.main.verify_data.67 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@__const.main.verify_data.69 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.70 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [182 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [185 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [119 x i8], align 1
@__const.main.verify_data.108 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.109 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [1 x i8], align 1
@__const.main.verify_data.113 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.114 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [139 x i8], align 1
@security_policy_rfc9151 = external constant %struct.s2n_security_policy, align 8
@.str.174 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca %struct.s2n_x509_trust_store, align 8
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_x509_trust_store, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %struct.s2n_x509_trust_store, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_x509_trust_store, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_x509_trust_store, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_x509_validator, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_stuffer, align 8
  %37 = alloca %struct.s2n_result, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %struct.s2n_pkey, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_result, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_x509_validator, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_stuffer, align 8
  %53 = alloca %struct.s2n_result, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_pkey, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.s2n_result, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca %struct.s2n_x509_trust_store, align 8
  %67 = alloca %struct.s2n_x509_validator, align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca %struct.s2n_x509_trust_store, align 8
  %72 = alloca ptr, align 8
  %73 = alloca i32, align 4
  %74 = alloca %struct.host_verify_data, align 8
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_x509_validator, align 8
  %77 = alloca %struct.s2n_stuffer, align 8
  %78 = alloca %struct.s2n_result, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca ptr, align 8
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca %struct.s2n_pkey, align 8
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca %struct.s2n_result, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca %struct.s2n_x509_trust_store, align 8
  %93 = alloca i32, align 4
  %94 = alloca %struct.s2n_x509_validator, align 8
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca %struct.host_verify_data, align 8
  %98 = alloca i32, align 4
  %99 = alloca %struct.s2n_stuffer, align 8
  %100 = alloca %struct.s2n_result, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca %struct.s2n_pkey, align 8
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca %struct.s2n_x509_trust_store, align 8
  %114 = alloca i32, align 4
  %115 = alloca %struct.s2n_x509_validator, align 8
  %116 = alloca ptr, align 8
  %117 = alloca i32, align 4
  %118 = alloca %struct.host_verify_data, align 8
  %119 = alloca i32, align 4
  %120 = alloca %struct.s2n_stuffer, align 8
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca ptr, align 8
  %125 = alloca i32, align 4
  %126 = alloca %struct.s2n_pkey, align 8
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_result, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca %struct.s2n_x509_trust_store, align 8
  %135 = alloca ptr, align 8
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca %struct.s2n_x509_validator, align 8
  %141 = alloca ptr, align 8
  %142 = alloca i32, align 4
  %143 = alloca %struct.host_verify_data, align 8
  %144 = alloca i32, align 4
  %145 = alloca %struct.s2n_stuffer, align 8
  %146 = alloca %struct.s2n_result, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca ptr, align 8
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca %struct.s2n_pkey, align 8
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca %struct.s2n_result, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca %struct.s2n_x509_trust_store, align 8
  %160 = alloca i32, align 4
  %161 = alloca %struct.s2n_x509_validator, align 8
  %162 = alloca ptr, align 8
  %163 = alloca i32, align 4
  %164 = alloca %struct.host_verify_data, align 8
  %165 = alloca i32, align 4
  %166 = alloca %struct.s2n_stuffer, align 8
  %167 = alloca %struct.s2n_result, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca ptr, align 8
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca %struct.s2n_pkey, align 8
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca %struct.s2n_result, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca %struct.s2n_x509_trust_store, align 8
  %184 = alloca i32, align 4
  %185 = alloca %struct.s2n_x509_validator, align 8
  %186 = alloca ptr, align 8
  %187 = alloca i32, align 4
  %188 = alloca %struct.host_verify_data, align 8
  %189 = alloca i32, align 4
  %190 = alloca %struct.s2n_stuffer, align 8
  %191 = alloca %struct.s2n_result, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca ptr, align 8
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca ptr, align 8
  %198 = alloca %struct.s2n_pkey, align 8
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca %struct.s2n_result, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca %struct.s2n_x509_trust_store, align 8
  %208 = alloca i32, align 4
  %209 = alloca %struct.s2n_x509_validator, align 8
  %210 = alloca i32, align 4
  %211 = alloca ptr, align 8
  %212 = alloca i32, align 4
  %213 = alloca %struct.host_verify_data, align 8
  %214 = alloca i32, align 4
  %215 = alloca %struct.s2n_stuffer, align 8
  %216 = alloca %struct.s2n_result, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca ptr, align 8
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca ptr, align 8
  %223 = alloca i32, align 4
  %224 = alloca %struct.s2n_pkey, align 8
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca %struct.s2n_result, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca %struct.s2n_result, align 4
  %234 = alloca %struct.s2n_x509_trust_store, align 8
  %235 = alloca i32, align 4
  %236 = alloca %struct.s2n_x509_validator, align 8
  %237 = alloca ptr, align 8
  %238 = alloca i32, align 4
  %239 = alloca %struct.host_verify_data, align 8
  %240 = alloca i32, align 4
  %241 = alloca %struct.s2n_stuffer, align 8
  %242 = alloca %struct.s2n_result, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca ptr, align 8
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca i64, align 8
  %249 = alloca i32, align 4
  %250 = alloca %struct.s2n_pkey, align 8
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca %struct.s2n_result, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca %struct.s2n_x509_trust_store, align 8
  %259 = alloca i32, align 4
  %260 = alloca %struct.host_verify_data, align 8
  %261 = alloca %struct.s2n_x509_validator, align 8
  %262 = alloca ptr, align 8
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca %struct.s2n_stuffer, align 8
  %266 = alloca %struct.s2n_result, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca ptr, align 8
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca %struct.s2n_pkey, align 8
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca %struct.s2n_result, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca %struct.s2n_x509_trust_store, align 8
  %281 = alloca ptr, align 8
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca %struct.host_verify_data, align 8
  %287 = alloca %struct.s2n_x509_validator, align 8
  %288 = alloca ptr, align 8
  %289 = alloca i32, align 4
  %290 = alloca i32, align 4
  %291 = alloca %struct.s2n_stuffer, align 8
  %292 = alloca %struct.s2n_result, align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca ptr, align 8
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca %struct.s2n_pkey, align 8
  %299 = alloca i32, align 4
  %300 = alloca i32, align 4
  %301 = alloca %struct.s2n_result, align 4
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca %struct.s2n_x509_trust_store, align 8
  %307 = alloca i32, align 4
  %308 = alloca %struct.host_verify_data, align 8
  %309 = alloca %struct.s2n_x509_validator, align 8
  %310 = alloca ptr, align 8
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca %struct.s2n_stuffer, align 8
  %314 = alloca %struct.s2n_result, align 4
  %315 = alloca i32, align 4
  %316 = alloca i32, align 4
  %317 = alloca ptr, align 8
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca %struct.s2n_pkey, align 8
  %321 = alloca i32, align 4
  %322 = alloca i32, align 4
  %323 = alloca %struct.s2n_result, align 4
  %324 = alloca i32, align 4
  %325 = alloca i32, align 4
  %326 = alloca i32, align 4
  %327 = alloca %struct.s2n_x509_trust_store, align 8
  %328 = alloca ptr, align 8
  %329 = alloca i32, align 4
  %330 = alloca i32, align 4
  %331 = alloca i32, align 4
  %332 = alloca i32, align 4
  %333 = alloca %struct.host_verify_data, align 8
  %334 = alloca %struct.s2n_x509_validator, align 8
  %335 = alloca ptr, align 8
  %336 = alloca i32, align 4
  %337 = alloca i32, align 4
  %338 = alloca %struct.s2n_stuffer, align 8
  %339 = alloca %struct.s2n_result, align 4
  %340 = alloca i32, align 4
  %341 = alloca i32, align 4
  %342 = alloca ptr, align 8
  %343 = alloca i32, align 4
  %344 = alloca i32, align 4
  %345 = alloca %struct.s2n_pkey, align 8
  %346 = alloca i32, align 4
  %347 = alloca i32, align 4
  %348 = alloca %struct.s2n_result, align 4
  %349 = alloca i32, align 4
  %350 = alloca i32, align 4
  %351 = alloca i32, align 4
  %352 = alloca %struct.s2n_x509_trust_store, align 8
  %353 = alloca i32, align 4
  %354 = alloca %struct.host_verify_data, align 8
  %355 = alloca %struct.s2n_x509_validator, align 8
  %356 = alloca ptr, align 8
  %357 = alloca i32, align 4
  %358 = alloca i32, align 4
  %359 = alloca %struct.s2n_stuffer, align 8
  %360 = alloca %struct.s2n_result, align 4
  %361 = alloca i32, align 4
  %362 = alloca i32, align 4
  %363 = alloca ptr, align 8
  %364 = alloca i32, align 4
  %365 = alloca %struct.s2n_pkey, align 8
  %366 = alloca i32, align 4
  %367 = alloca i32, align 4
  %368 = alloca %struct.s2n_result, align 4
  %369 = alloca i32, align 4
  %370 = alloca i32, align 4
  %371 = alloca i32, align 4
  %372 = alloca i32, align 4
  %373 = alloca i32, align 4
  %374 = alloca i32, align 4
  %375 = alloca %struct.s2n_x509_trust_store, align 8
  %376 = alloca i32, align 4
  %377 = alloca %struct.host_verify_data, align 8
  %378 = alloca %struct.s2n_x509_validator, align 8
  %379 = alloca ptr, align 8
  %380 = alloca i32, align 4
  %381 = alloca i32, align 4
  %382 = alloca %struct.s2n_stuffer, align 8
  %383 = alloca %struct.s2n_result, align 4
  %384 = alloca i32, align 4
  %385 = alloca i32, align 4
  %386 = alloca ptr, align 8
  %387 = alloca i32, align 4
  %388 = alloca %struct.s2n_pkey, align 8
  %389 = alloca i32, align 4
  %390 = alloca i32, align 4
  %391 = alloca %struct.s2n_result, align 4
  %392 = alloca i32, align 4
  %393 = alloca i32, align 4
  %394 = alloca i32, align 4
  %395 = alloca i32, align 4
  %396 = alloca i32, align 4
  %397 = alloca i32, align 4
  %398 = alloca %struct.s2n_x509_trust_store, align 8
  %399 = alloca i32, align 4
  %400 = alloca %struct.host_verify_data, align 8
  %401 = alloca %struct.s2n_x509_validator, align 8
  %402 = alloca ptr, align 8
  %403 = alloca i32, align 4
  %404 = alloca i32, align 4
  %405 = alloca %struct.s2n_stuffer, align 8
  %406 = alloca %struct.s2n_result, align 4
  %407 = alloca i32, align 4
  %408 = alloca i32, align 4
  %409 = alloca ptr, align 8
  %410 = alloca i32, align 4
  %411 = alloca %struct.s2n_pkey, align 8
  %412 = alloca i32, align 4
  %413 = alloca i32, align 4
  %414 = alloca %struct.s2n_result, align 4
  %415 = alloca i32, align 4
  %416 = alloca i32, align 4
  %417 = alloca i32, align 4
  %418 = alloca i32, align 4
  %419 = alloca i32, align 4
  %420 = alloca i32, align 4
  %421 = alloca %struct.s2n_x509_trust_store, align 8
  %422 = alloca i32, align 4
  %423 = alloca %struct.s2n_x509_validator, align 8
  %424 = alloca ptr, align 8
  %425 = alloca i32, align 4
  %426 = alloca %struct.host_verify_data, align 8
  %427 = alloca i32, align 4
  %428 = alloca %struct.s2n_stuffer, align 8
  %429 = alloca %struct.s2n_result, align 4
  %430 = alloca i32, align 4
  %431 = alloca i32, align 4
  %432 = alloca ptr, align 8
  %433 = alloca i32, align 4
  %434 = alloca %struct.s2n_pkey, align 8
  %435 = alloca i32, align 4
  %436 = alloca i32, align 4
  %437 = alloca %struct.s2n_result, align 4
  %438 = alloca i32, align 4
  %439 = alloca i32, align 4
  %440 = alloca %struct.s2n_stuffer, align 8
  %441 = alloca i32, align 4
  %442 = alloca i32, align 4
  %443 = alloca i32, align 4
  %444 = alloca %struct.s2n_result, align 4
  %445 = alloca i32, align 4
  %446 = alloca %struct.s2n_x509_trust_store, align 8
  %447 = alloca i32, align 4
  %448 = alloca %struct.s2n_x509_validator, align 8
  %449 = alloca ptr, align 8
  %450 = alloca i32, align 4
  %451 = alloca %struct.host_verify_data, align 8
  %452 = alloca i32, align 4
  %453 = alloca %struct.s2n_stuffer, align 8
  %454 = alloca %struct.s2n_result, align 4
  %455 = alloca i32, align 4
  %456 = alloca i32, align 4
  %457 = alloca ptr, align 8
  %458 = alloca i32, align 4
  %459 = alloca %struct.s2n_pkey, align 8
  %460 = alloca i32, align 4
  %461 = alloca i32, align 4
  %462 = alloca %struct.s2n_result, align 4
  %463 = alloca i32, align 4
  %464 = alloca %struct.s2n_stuffer, align 8
  %465 = alloca i32, align 4
  %466 = alloca i32, align 4
  %467 = alloca i32, align 4
  %468 = alloca ptr, align 8
  %469 = alloca %struct.s2n_result, align 4
  %470 = alloca i32, align 4
  %471 = alloca i32, align 4
  %472 = alloca %struct.s2n_x509_trust_store, align 8
  %473 = alloca ptr, align 8
  %474 = alloca i32, align 4
  %475 = alloca i32, align 4
  %476 = alloca i32, align 4
  %477 = alloca i32, align 4
  %478 = alloca %struct.s2n_x509_validator, align 8
  %479 = alloca ptr, align 8
  %480 = alloca i32, align 4
  %481 = alloca %struct.host_verify_data, align 8
  %482 = alloca i32, align 4
  %483 = alloca %struct.s2n_stuffer, align 8
  %484 = alloca %struct.s2n_result, align 4
  %485 = alloca i32, align 4
  %486 = alloca i32, align 4
  %487 = alloca ptr, align 8
  %488 = alloca i32, align 4
  %489 = alloca %struct.s2n_pkey, align 8
  %490 = alloca i32, align 4
  %491 = alloca i32, align 4
  %492 = alloca %struct.s2n_result, align 4
  %493 = alloca i32, align 4
  %494 = alloca i32, align 4
  %495 = alloca %struct.s2n_stuffer, align 8
  %496 = alloca i32, align 4
  %497 = alloca i32, align 4
  %498 = alloca i32, align 4
  %499 = alloca %struct.s2n_result, align 4
  %500 = alloca i32, align 4
  %501 = alloca %struct.s2n_x509_trust_store, align 8
  %502 = alloca i32, align 4
  %503 = alloca %struct.s2n_x509_validator, align 8
  %504 = alloca ptr, align 8
  %505 = alloca i32, align 4
  %506 = alloca %struct.host_verify_data, align 8
  %507 = alloca i32, align 4
  %508 = alloca %struct.s2n_stuffer, align 8
  %509 = alloca %struct.s2n_result, align 4
  %510 = alloca i32, align 4
  %511 = alloca i32, align 4
  %512 = alloca ptr, align 8
  %513 = alloca i32, align 4
  %514 = alloca %struct.s2n_pkey, align 8
  %515 = alloca i32, align 4
  %516 = alloca i32, align 4
  %517 = alloca %struct.s2n_result, align 4
  %518 = alloca i32, align 4
  %519 = alloca i32, align 4
  %520 = alloca ptr, align 8
  %521 = alloca %struct.s2n_stuffer, align 8
  %522 = alloca i32, align 4
  %523 = alloca i32, align 4
  %524 = alloca i32, align 4
  %525 = alloca %struct.s2n_result, align 4
  %526 = alloca i32, align 4
  %527 = alloca i32, align 4
  %528 = alloca i32, align 4
  %529 = alloca %struct.s2n_result, align 4
  %530 = alloca i32, align 4
  %531 = alloca i32, align 4
  %532 = alloca i32, align 4
  %533 = alloca %struct.s2n_x509_trust_store, align 8
  %534 = alloca i32, align 4
  %535 = alloca %struct.s2n_x509_validator, align 8
  %536 = alloca i32, align 4
  %537 = alloca ptr, align 8
  %538 = alloca i32, align 4
  %539 = alloca %struct.host_verify_data, align 8
  %540 = alloca i32, align 4
  %541 = alloca %struct.s2n_stuffer, align 8
  %542 = alloca %struct.s2n_result, align 4
  %543 = alloca i32, align 4
  %544 = alloca i32, align 4
  %545 = alloca ptr, align 8
  %546 = alloca i32, align 4
  %547 = alloca %struct.s2n_pkey, align 8
  %548 = alloca i32, align 4
  %549 = alloca i32, align 4
  %550 = alloca %struct.s2n_result, align 4
  %551 = alloca i32, align 4
  %552 = alloca i32, align 4
  %553 = alloca ptr, align 8
  %554 = alloca i32, align 4
  %555 = alloca %struct.s2n_stuffer, align 8
  %556 = alloca i32, align 4
  %557 = alloca i32, align 4
  %558 = alloca i32, align 4
  %559 = alloca %struct.s2n_result, align 4
  %560 = alloca i32, align 4
  %561 = alloca i32, align 4
  %562 = alloca i32, align 4
  %563 = alloca i32, align 4
  %564 = alloca %struct.s2n_result, align 4
  %565 = alloca %struct.s2n_x509_trust_store, align 8
  %566 = alloca i32, align 4
  %567 = alloca %struct.s2n_x509_validator, align 8
  %568 = alloca ptr, align 8
  %569 = alloca i32, align 4
  %570 = alloca %struct.host_verify_data, align 8
  %571 = alloca i32, align 4
  %572 = alloca %struct.s2n_stuffer, align 8
  %573 = alloca %struct.s2n_result, align 4
  %574 = alloca i32, align 4
  %575 = alloca i32, align 4
  %576 = alloca ptr, align 8
  %577 = alloca i32, align 4
  %578 = alloca %struct.s2n_pkey, align 8
  %579 = alloca i32, align 4
  %580 = alloca i32, align 4
  %581 = alloca %struct.s2n_result, align 4
  %582 = alloca i32, align 4
  %583 = alloca i32, align 4
  %584 = alloca ptr, align 8
  %585 = alloca %struct.s2n_stuffer, align 8
  %586 = alloca i32, align 4
  %587 = alloca i32, align 4
  %588 = alloca i32, align 4
  %589 = alloca %struct.s2n_result, align 4
  %590 = alloca i32, align 4
  %591 = alloca i32, align 4
  %592 = alloca i32, align 4
  %593 = alloca %struct.s2n_x509_trust_store, align 8
  %594 = alloca i32, align 4
  %595 = alloca %struct.s2n_x509_validator, align 8
  %596 = alloca ptr, align 8
  %597 = alloca i32, align 4
  %598 = alloca %struct.host_verify_data, align 8
  %599 = alloca i32, align 4
  %600 = alloca %struct.s2n_stuffer, align 8
  %601 = alloca %struct.s2n_result, align 4
  %602 = alloca i32, align 4
  %603 = alloca i32, align 4
  %604 = alloca ptr, align 8
  %605 = alloca i32, align 4
  %606 = alloca %struct.s2n_pkey, align 8
  %607 = alloca i32, align 4
  %608 = alloca i32, align 4
  %609 = alloca %struct.s2n_result, align 4
  %610 = alloca i32, align 4
  %611 = alloca i32, align 4
  %612 = alloca %struct.s2n_stuffer, align 8
  %613 = alloca i32, align 4
  %614 = alloca i32, align 4
  %615 = alloca i32, align 4
  %616 = alloca ptr, align 8
  %617 = alloca %struct.s2n_result, align 4
  %618 = alloca i32, align 4
  %619 = alloca i32, align 4
  %620 = alloca i32, align 4
  %621 = alloca %struct.s2n_x509_trust_store, align 8
  %622 = alloca i32, align 4
  %623 = alloca %struct.s2n_x509_validator, align 8
  %624 = alloca ptr, align 8
  %625 = alloca i32, align 4
  %626 = alloca %struct.host_verify_data, align 8
  %627 = alloca i32, align 4
  %628 = alloca %struct.s2n_stuffer, align 8
  %629 = alloca %struct.s2n_result, align 4
  %630 = alloca i32, align 4
  %631 = alloca i32, align 4
  %632 = alloca ptr, align 8
  %633 = alloca i32, align 4
  %634 = alloca %struct.s2n_pkey, align 8
  %635 = alloca i32, align 4
  %636 = alloca i32, align 4
  %637 = alloca %struct.s2n_result, align 4
  %638 = alloca i32, align 4
  %639 = alloca i32, align 4
  %640 = alloca %struct.s2n_stuffer, align 8
  %641 = alloca i32, align 4
  %642 = alloca i32, align 4
  %643 = alloca i32, align 4
  %644 = alloca ptr, align 8
  %645 = alloca %struct.s2n_result, align 4
  %646 = alloca i32, align 4
  %647 = alloca i32, align 4
  %648 = alloca i32, align 4
  %649 = alloca %struct.s2n_x509_trust_store, align 8
  %650 = alloca i32, align 4
  %651 = alloca %struct.s2n_x509_validator, align 8
  %652 = alloca ptr, align 8
  %653 = alloca i32, align 4
  %654 = alloca %struct.host_verify_data, align 8
  %655 = alloca i32, align 4
  %656 = alloca %struct.s2n_stuffer, align 8
  %657 = alloca %struct.s2n_result, align 4
  %658 = alloca i32, align 4
  %659 = alloca i32, align 4
  %660 = alloca ptr, align 8
  %661 = alloca i32, align 4
  %662 = alloca %struct.s2n_pkey, align 8
  %663 = alloca i32, align 4
  %664 = alloca i32, align 4
  %665 = alloca %struct.s2n_result, align 4
  %666 = alloca i32, align 4
  %667 = alloca i32, align 4
  %668 = alloca %struct.s2n_stuffer, align 8
  %669 = alloca i32, align 4
  %670 = alloca i32, align 4
  %671 = alloca i32, align 4
  %672 = alloca ptr, align 8
  %673 = alloca %struct.s2n_result, align 4
  %674 = alloca i32, align 4
  %675 = alloca i32, align 4
  %676 = alloca i32, align 4
  %677 = alloca %struct.s2n_x509_trust_store, align 8
  %678 = alloca i32, align 4
  %679 = alloca %struct.s2n_x509_validator, align 8
  %680 = alloca ptr, align 8
  %681 = alloca i32, align 4
  %682 = alloca %struct.host_verify_data, align 8
  %683 = alloca i32, align 4
  %684 = alloca %struct.s2n_stuffer, align 8
  %685 = alloca %struct.s2n_result, align 4
  %686 = alloca i32, align 4
  %687 = alloca i32, align 4
  %688 = alloca ptr, align 8
  %689 = alloca i32, align 4
  %690 = alloca %struct.s2n_pkey, align 8
  %691 = alloca i32, align 4
  %692 = alloca i32, align 4
  %693 = alloca %struct.s2n_result, align 4
  %694 = alloca i32, align 4
  %695 = alloca i32, align 4
  %696 = alloca %struct.s2n_stuffer, align 8
  %697 = alloca i32, align 4
  %698 = alloca i32, align 4
  %699 = alloca i32, align 4
  %700 = alloca ptr, align 8
  %701 = alloca %struct.s2n_result, align 4
  %702 = alloca i32, align 4
  %703 = alloca i32, align 4
  %704 = alloca i32, align 4
  %705 = alloca %struct.s2n_x509_trust_store, align 8
  %706 = alloca i32, align 4
  %707 = alloca %struct.s2n_x509_validator, align 8
  %708 = alloca ptr, align 8
  %709 = alloca i32, align 4
  %710 = alloca %struct.host_verify_data, align 8
  %711 = alloca i32, align 4
  %712 = alloca %struct.s2n_stuffer, align 8
  %713 = alloca %struct.s2n_result, align 4
  %714 = alloca i32, align 4
  %715 = alloca i32, align 4
  %716 = alloca ptr, align 8
  %717 = alloca i32, align 4
  %718 = alloca %struct.s2n_pkey, align 8
  %719 = alloca i32, align 4
  %720 = alloca i32, align 4
  %721 = alloca %struct.s2n_result, align 4
  %722 = alloca i32, align 4
  %723 = alloca i32, align 4
  %724 = alloca %struct.s2n_stuffer, align 8
  %725 = alloca i32, align 4
  %726 = alloca i32, align 4
  %727 = alloca i32, align 4
  %728 = alloca %struct.s2n_result, align 4
  %729 = alloca i32, align 4
  %730 = alloca i32, align 4
  %731 = alloca i32, align 4
  %732 = alloca i64, align 8
  %733 = alloca i64, align 8
  %734 = alloca i64, align 8
  %735 = alloca i64, align 8
  %736 = alloca [8 x %struct.anon], align 16
  %737 = alloca i32, align 4
  %738 = alloca %struct.s2n_x509_trust_store, align 8
  %739 = alloca i32, align 4
  %740 = alloca %struct.s2n_x509_validator, align 8
  %741 = alloca i32, align 4
  %742 = alloca ptr, align 8
  %743 = alloca i32, align 4
  %744 = alloca %struct.host_verify_data, align 8
  %745 = alloca i32, align 4
  %746 = alloca %struct.s2n_stuffer, align 8
  %747 = alloca %struct.s2n_result, align 4
  %748 = alloca i32, align 4
  %749 = alloca i32, align 4
  %750 = alloca ptr, align 8
  %751 = alloca i32, align 4
  %752 = alloca %struct.s2n_pkey, align 8
  %753 = alloca i32, align 4
  %754 = alloca i32, align 4
  %755 = alloca %struct.s2n_result, align 4
  %756 = alloca i32, align 4
  %757 = alloca ptr, align 8
  %758 = alloca i64, align 8
  %759 = alloca i32, align 4
  %760 = alloca %struct.s2n_stuffer, align 8
  %761 = alloca i32, align 4
  %762 = alloca i32, align 4
  %763 = alloca i32, align 4
  %764 = alloca %struct.s2n_result, align 4
  %765 = alloca i32, align 4
  %766 = alloca i32, align 4
  %767 = alloca i32, align 4
  %768 = alloca %struct.s2n_result, align 4
  %769 = alloca i32, align 4
  %770 = alloca i32, align 4
  %771 = alloca %struct.s2n_result, align 4
  %772 = alloca %struct.s2n_x509_trust_store, align 8
  %773 = alloca i32, align 4
  %774 = alloca %struct.s2n_x509_validator, align 8
  %775 = alloca ptr, align 8
  %776 = alloca i32, align 4
  %777 = alloca i32, align 4
  %778 = alloca %struct.s2n_stuffer, align 8
  %779 = alloca %struct.s2n_result, align 4
  %780 = alloca i32, align 4
  %781 = alloca i32, align 4
  %782 = alloca ptr, align 8
  %783 = alloca i32, align 4
  %784 = alloca %struct.s2n_pkey, align 8
  %785 = alloca i32, align 4
  %786 = alloca i32, align 4
  %787 = alloca %struct.s2n_result, align 4
  %788 = alloca i32, align 4
  %789 = alloca i32, align 4
  %790 = alloca %struct.s2n_x509_trust_store, align 8
  %791 = alloca i32, align 4
  %792 = alloca %struct.s2n_x509_validator, align 8
  %793 = alloca ptr, align 8
  %794 = alloca i32, align 4
  %795 = alloca i32, align 4
  %796 = alloca %struct.s2n_stuffer, align 8
  %797 = alloca %struct.s2n_result, align 4
  %798 = alloca i32, align 4
  %799 = alloca i32, align 4
  %800 = alloca ptr, align 8
  %801 = alloca i32, align 4
  %802 = alloca %struct.s2n_pkey, align 8
  %803 = alloca i32, align 4
  %804 = alloca i32, align 4
  %805 = alloca %struct.s2n_result, align 4
  %806 = alloca i32, align 4
  %807 = alloca i32, align 4
  %808 = alloca %struct.s2n_x509_trust_store, align 8
  %809 = alloca i32, align 4
  %810 = alloca %struct.s2n_x509_validator, align 8
  %811 = alloca ptr, align 8
  %812 = alloca i32, align 4
  %813 = alloca i32, align 4
  %814 = alloca %struct.s2n_stuffer, align 8
  %815 = alloca %struct.s2n_result, align 4
  %816 = alloca i32, align 4
  %817 = alloca i32, align 4
  %818 = alloca ptr, align 8
  %819 = alloca i32, align 4
  %820 = alloca %struct.s2n_pkey, align 8
  %821 = alloca i32, align 4
  %822 = alloca i32, align 4
  %823 = alloca %struct.s2n_result, align 4
  %824 = alloca i32, align 4
  %825 = alloca i32, align 4
  %826 = alloca i32, align 4
  %827 = alloca i32, align 4
  %828 = alloca %struct.s2n_x509_trust_store, align 8
  %829 = alloca i32, align 4
  %830 = alloca %struct.s2n_x509_validator, align 8
  %831 = alloca ptr, align 8
  %832 = alloca i32, align 4
  %833 = alloca %struct.host_verify_data, align 8
  %834 = alloca i32, align 4
  %835 = alloca %struct.s2n_stuffer, align 8
  %836 = alloca %struct.s2n_result, align 4
  %837 = alloca i32, align 4
  %838 = alloca i32, align 4
  %839 = alloca ptr, align 8
  %840 = alloca i32, align 4
  %841 = alloca %struct.s2n_pkey, align 8
  %842 = alloca i32, align 4
  %843 = alloca i32, align 4
  %844 = alloca %struct.s2n_result, align 4
  %845 = alloca i32, align 4
  %846 = alloca i32, align 4
  %847 = alloca %struct.s2n_result, align 4
  %848 = alloca %struct.s2n_x509_trust_store, align 8
  %849 = alloca i32, align 4
  %850 = alloca %struct.s2n_x509_validator, align 8
  %851 = alloca ptr, align 8
  %852 = alloca i32, align 4
  %853 = alloca %struct.host_verify_data, align 8
  %854 = alloca i32, align 4
  %855 = alloca %struct.s2n_stuffer, align 8
  %856 = alloca %struct.s2n_result, align 4
  %857 = alloca i32, align 4
  %858 = alloca i32, align 4
  %859 = alloca ptr, align 8
  %860 = alloca i32, align 4
  %861 = alloca %struct.s2n_pkey, align 8
  %862 = alloca i32, align 4
  %863 = alloca i32, align 4
  %864 = alloca %struct.s2n_result, align 4
  %865 = alloca i32, align 4
  %866 = alloca i32, align 4
  %867 = alloca %struct.s2n_result, align 4
  %868 = alloca %struct.s2n_x509_trust_store, align 8
  %869 = alloca i32, align 4
  %870 = alloca %struct.s2n_x509_validator, align 8
  %871 = alloca ptr, align 8
  %872 = alloca i32, align 4
  %873 = alloca %struct.s2n_stuffer, align 8
  %874 = alloca %struct.s2n_result, align 4
  %875 = alloca i32, align 4
  %876 = alloca i32, align 4
  %877 = alloca ptr, align 8
  %878 = alloca i32, align 4
  %879 = alloca %struct.s2n_pkey, align 8
  %880 = alloca i32, align 4
  %881 = alloca i32, align 4
  %882 = alloca %struct.s2n_result, align 4
  %883 = alloca i32, align 4
  %884 = alloca i32, align 4
  %885 = alloca i32, align 4
  %886 = alloca i32, align 4
  %887 = alloca ptr, align 8
  %888 = alloca %struct.s2n_x509_validator, align 8
  %889 = alloca ptr, align 8
  %890 = alloca i32, align 4
  %891 = alloca %struct.s2n_stuffer, align 8
  %892 = alloca i32, align 4
  %893 = alloca i32, align 4
  %894 = alloca i32, align 4
  %895 = alloca ptr, align 8
  %896 = alloca %struct.s2n_pkey, align 8
  %897 = alloca i32, align 4
  %898 = alloca i32, align 4
  %899 = alloca %struct.s2n_result, align 4
  %900 = alloca i32, align 4
  %901 = alloca i32, align 4
  %902 = alloca %struct.s2n_x509_validator, align 8
  %903 = alloca ptr, align 8
  %904 = alloca i32, align 4
  %905 = alloca %struct.s2n_stuffer, align 8
  %906 = alloca i32, align 4
  %907 = alloca i32, align 4
  %908 = alloca i32, align 4
  %909 = alloca ptr, align 8
  %910 = alloca %struct.s2n_pkey, align 8
  %911 = alloca i32, align 4
  %912 = alloca i32, align 4
  %913 = alloca %struct.s2n_result, align 4
  %914 = alloca i32, align 4
  %915 = alloca i32, align 4
  %916 = alloca i32, align 4
  %917 = alloca %struct.s2n_x509_validator, align 8
  %918 = alloca i32, align 4
  %919 = alloca ptr, align 8
  %920 = alloca i32, align 4
  %921 = alloca [12000 x i8], align 16
  %922 = alloca i32, align 4
  %923 = alloca ptr, align 8
  %924 = alloca i32, align 4
  %925 = alloca %struct.s2n_stuffer, align 8
  %926 = alloca i32, align 4
  %927 = alloca i32, align 4
  %928 = alloca i32, align 4
  %929 = alloca i32, align 4
  %930 = alloca i32, align 4
  %931 = alloca ptr, align 8
  %932 = alloca i32, align 4
  %933 = alloca %struct.s2n_pkey, align 8
  %934 = alloca i32, align 4
  %935 = alloca i32, align 4
  %936 = alloca %struct.s2n_result, align 4
  %937 = alloca i32, align 4
  %938 = alloca i32, align 4
  %939 = alloca i32, align 4
  %940 = alloca %struct.s2n_result, align 4
  %941 = alloca %struct.s2n_result, align 4
  %942 = alloca %struct.s2n_x509_validator, align 8
  %943 = alloca i32, align 4
  %944 = alloca ptr, align 8
  %945 = alloca i32, align 4
  %946 = alloca %struct.s2n_stuffer, align 8
  %947 = alloca i32, align 4
  %948 = alloca i32, align 4
  %949 = alloca ptr, align 8
  %950 = alloca %struct.s2n_stuffer, align 8
  %951 = alloca i32, align 4
  %952 = alloca i32, align 4
  %953 = alloca ptr, align 8
  %954 = alloca %struct.s2n_stuffer, align 8
  %955 = alloca i32, align 4
  %956 = alloca i32, align 4
  %957 = alloca i32, align 4
  %958 = alloca i32, align 4
  %959 = alloca i32, align 4
  %960 = alloca ptr, align 8
  %961 = alloca %struct.s2n_pkey, align 8
  %962 = alloca i32, align 4
  %963 = alloca i32, align 4
  %964 = alloca %struct.s2n_result, align 4
  %965 = alloca i32, align 4
  %966 = alloca i32, align 4
  %967 = alloca %struct.s2n_result, align 4
  %968 = alloca %struct.s2n_x509_trust_store, align 8
  %969 = alloca i32, align 4
  %970 = alloca %struct.s2n_x509_validator, align 8
  %971 = alloca ptr, align 8
  %972 = alloca i32, align 4
  %973 = alloca ptr, align 8
  %974 = alloca i32, align 4
  %975 = alloca i32, align 4
  %976 = alloca %struct.host_verify_data, align 8
  %977 = alloca i32, align 4
  %978 = alloca %struct.s2n_stuffer, align 8
  %979 = alloca %struct.s2n_result, align 4
  %980 = alloca i32, align 4
  %981 = alloca i32, align 4
  %982 = alloca ptr, align 8
  %983 = alloca i32, align 4
  %984 = alloca i32, align 4
  %985 = alloca %struct.s2n_pkey, align 8
  %986 = alloca i32, align 4
  %987 = alloca i32, align 4
  %988 = alloca %struct.s2n_result, align 4
  %989 = alloca i32, align 4
  %990 = alloca %struct.s2n_x509_trust_store, align 8
  %991 = alloca i32, align 4
  %992 = alloca %struct.s2n_x509_validator, align 8
  %993 = alloca ptr, align 8
  %994 = alloca i32, align 4
  %995 = alloca ptr, align 8
  %996 = alloca i32, align 4
  %997 = alloca i32, align 4
  %998 = alloca %struct.host_verify_data, align 8
  %999 = alloca i32, align 4
  %1000 = alloca %struct.s2n_stuffer, align 8
  %1001 = alloca %struct.s2n_result, align 4
  %1002 = alloca i32, align 4
  %1003 = alloca i32, align 4
  %1004 = alloca ptr, align 8
  %1005 = alloca i32, align 4
  %1006 = alloca %struct.s2n_pkey, align 8
  %1007 = alloca i32, align 4
  %1008 = alloca i32, align 4
  %1009 = alloca %struct.s2n_result, align 4
  %1010 = alloca i32, align 4
  %1011 = alloca i32, align 4
  %1012 = alloca i32, align 4
  %1013 = alloca %struct.s2n_x509_validator, align 8
  %1014 = alloca i32, align 4
  %1015 = alloca ptr, align 8
  %1016 = alloca i32, align 4
  %1017 = alloca %struct.s2n_pkey, align 8
  %1018 = alloca i32, align 4
  %1019 = alloca i32, align 4
  %1020 = alloca %struct.s2n_result, align 4
  %1021 = alloca i32, align 4
  %1022 = alloca i32, align 4
  %1023 = alloca i32, align 4
  %1024 = alloca %struct.s2n_result, align 4
  %1025 = alloca ptr, align 8
  %1026 = alloca i32, align 4
  %1027 = alloca i32, align 4
  %1028 = alloca ptr, align 8
  %1029 = alloca i32, align 4
  %1030 = alloca i32, align 4
  %1031 = alloca i32, align 4
  %1032 = alloca ptr, align 8
  %1033 = alloca i32, align 4
  %1034 = alloca i32, align 4
  %1035 = alloca i32, align 4
  %1036 = alloca i32, align 4
  %1037 = alloca ptr, align 8
  %1038 = alloca i32, align 4
  %1039 = alloca i32, align 4
  %1040 = alloca i32, align 4
  %1041 = alloca i32, align 4
  %1042 = alloca ptr, align 8
  %1043 = alloca ptr, align 8
  %1044 = alloca i32, align 4
  %1045 = alloca i32, align 4
  %1046 = alloca i32, align 4
  %1047 = alloca i32, align 4
  %1048 = alloca i32, align 4
  %1049 = alloca i32, align 4
  %1050 = alloca ptr, align 8
  %1051 = alloca i32, align 4
  %1052 = alloca i32, align 4
  %1053 = alloca ptr, align 8
  %1054 = alloca i32, align 4
  %1055 = alloca i32, align 4
  %1056 = alloca i32, align 4
  %1057 = alloca i32, align 4
  %1058 = alloca ptr, align 8
  %1059 = alloca ptr, align 8
  %1060 = alloca ptr, align 8
  %1061 = alloca i32, align 4
  %1062 = alloca ptr, align 8
  %1063 = alloca i32, align 4
  %1064 = alloca i32, align 4
  %1065 = alloca ptr, align 8
  %1066 = alloca i32, align 4
  %1067 = alloca i32, align 4
  %1068 = alloca i32, align 4
  %1069 = alloca ptr, align 8
  %1070 = alloca i32, align 4
  %1071 = alloca i32, align 4
  %1072 = alloca i32, align 4
  %1073 = alloca %struct.s2n_result, align 4
  %1074 = alloca ptr, align 8
  %1075 = alloca i32, align 4
  %1076 = alloca %struct.s2n_x509_validator, align 8
  %1077 = alloca i32, align 4
  %1078 = alloca ptr, align 8
  %1079 = alloca i32, align 4
  %1080 = alloca i32, align 4
  %1081 = alloca i32, align 4
  %1082 = alloca %struct.s2n_stuffer, align 8
  %1083 = alloca %struct.s2n_result, align 4
  %1084 = alloca i32, align 4
  %1085 = alloca i32, align 4
  %1086 = alloca ptr, align 8
  %1087 = alloca i32, align 4
  %1088 = alloca %struct.s2n_pkey, align 8
  %1089 = alloca i32, align 4
  %1090 = alloca i32, align 4
  %1091 = alloca %struct.s2n_result, align 4
  %1092 = alloca i32, align 4
  %1093 = alloca %struct.s2n_result, align 4
  %1094 = alloca %struct.s2n_result, align 4
  %1095 = alloca [12000 x i8], align 16
  %1096 = alloca i32, align 4
  %1097 = alloca ptr, align 8
  %1098 = alloca i32, align 4
  %1099 = alloca %struct.s2n_x509_validator, align 8
  %1100 = alloca i32, align 4
  %1101 = alloca ptr, align 8
  %1102 = alloca i32, align 4
  %1103 = alloca i32, align 4
  %1104 = alloca i32, align 4
  %1105 = alloca %struct.s2n_stuffer, align 8
  %1106 = alloca %struct.s2n_result, align 4
  %1107 = alloca i32, align 4
  %1108 = alloca i32, align 4
  %1109 = alloca ptr, align 8
  %1110 = alloca i32, align 4
  %1111 = alloca %struct.s2n_pkey, align 8
  %1112 = alloca i32, align 4
  %1113 = alloca i32, align 4
  %1114 = alloca %struct.s2n_result, align 4
  %1115 = alloca i32, align 4
  %1116 = alloca %struct.s2n_result, align 4
  %1117 = alloca %struct.s2n_result, align 4
  %1118 = alloca i32, align 4
  %1119 = alloca ptr, align 8
  %1120 = alloca %struct.s2n_x509_validator, align 8
  %1121 = alloca i32, align 4
  %1122 = alloca ptr, align 8
  %1123 = alloca i32, align 4
  %1124 = alloca i32, align 4
  %1125 = alloca i32, align 4
  %1126 = alloca %struct.s2n_stuffer, align 8
  %1127 = alloca %struct.s2n_result, align 4
  %1128 = alloca i32, align 4
  %1129 = alloca i32, align 4
  %1130 = alloca ptr, align 8
  %1131 = alloca i32, align 4
  %1132 = alloca %struct.s2n_pkey, align 8
  %1133 = alloca i32, align 4
  %1134 = alloca i32, align 4
  %1135 = alloca %struct.s2n_result, align 4
  %1136 = alloca i32, align 4
  %1137 = alloca i32, align 4
  %1138 = alloca %struct.s2n_result, align 4
  %1139 = alloca %struct.s2n_result, align 4
  %1140 = alloca [12000 x i8], align 16
  %1141 = alloca i32, align 4
  %1142 = alloca i32, align 4
  %1143 = alloca [12000 x i8], align 16
  %1144 = alloca i32, align 4
  %1145 = alloca i32, align 4
  %1146 = alloca %struct.s2n_security_policy, align 8
  %1147 = alloca ptr, align 8
  %1148 = alloca i32, align 4
  %1149 = alloca %struct.s2n_x509_validator, align 8
  %1150 = alloca i32, align 4
  %1151 = alloca ptr, align 8
  %1152 = alloca i32, align 4
  %1153 = alloca i32, align 4
  %1154 = alloca %struct.s2n_stuffer, align 8
  %1155 = alloca %struct.s2n_result, align 4
  %1156 = alloca i32, align 4
  %1157 = alloca i32, align 4
  %1158 = alloca ptr, align 8
  %1159 = alloca i32, align 4
  %1160 = alloca %struct.s2n_pkey, align 8
  %1161 = alloca i32, align 4
  %1162 = alloca i32, align 4
  %1163 = alloca %struct.s2n_result, align 4
  %1164 = alloca i32, align 4
  %1165 = alloca i32, align 4
  %1166 = alloca i32, align 4
  %1167 = alloca i32, align 4
  %1168 = alloca %struct.s2n_result, align 4
  %1169 = alloca %struct.s2n_result, align 4
  %1170 = alloca ptr, align 8
  %1171 = alloca i32, align 4
  %1172 = alloca %struct.s2n_x509_validator, align 8
  %1173 = alloca i32, align 4
  %1174 = alloca ptr, align 8
  %1175 = alloca i32, align 4
  %1176 = alloca i32, align 4
  %1177 = alloca %struct.s2n_stuffer, align 8
  %1178 = alloca %struct.s2n_result, align 4
  %1179 = alloca i32, align 4
  %1180 = alloca i32, align 4
  %1181 = alloca ptr, align 8
  %1182 = alloca i32, align 4
  %1183 = alloca %struct.s2n_pkey, align 8
  %1184 = alloca i32, align 4
  %1185 = alloca i32, align 4
  %1186 = alloca %struct.s2n_result, align 4
  %1187 = alloca i32, align 4
  %1188 = alloca i32, align 4
  %1189 = alloca i32, align 4
  %1190 = alloca i32, align 4
  %1191 = alloca %struct.s2n_result, align 4
  %1192 = alloca %struct.s2n_result, align 4
  %1193 = alloca i32, align 4
  %1194 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %1195

1195:                                             ; preds = %2
  br label %1196

1196:                                             ; preds = %1195
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %1197 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1197, ptr noundef @.str, ptr noundef @.str.1) #11
  %1199 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1200 = call i32 @fflush(ptr noundef %1199)
  br label %1201

1201:                                             ; preds = %1196
  %1202 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %1203 = icmp eq i32 %1202, -1
  br i1 %1203, label %1204, label %1255

1204:                                             ; preds = %1201
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %1207 = call ptr @__errno_location() #12
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  store i32 %1208, ptr %6, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @s2n_print_stacktrace(ptr noundef %1209)
  %1211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1212 = trunc i8 %1211 to i1
  br i1 %1212, label %1213, label %1235

1213:                                             ; preds = %1206
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @fileno(ptr noundef %1214) #11
  %1216 = call i32 @isatty(i32 noundef %1215) #11
  %1217 = icmp ne i32 %1216, 0
  br i1 %1217, label %1218, label %1235

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

1235:                                             ; preds = %1213, %1206
  %1236 = load i32, ptr %6, align 4, !tbaa !5
  %1237 = call ptr @__errno_location() #12
  store i32 %1236, ptr %1237, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef @.str.4)
  %1243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror_debug(i32 noundef %1244, ptr noundef @.str.4)
  %1246 = call ptr @__errno_location() #12
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call ptr @strerror(i32 noundef %1247) #11
  %1249 = call ptr @__errno_location() #12
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef @.str.5, i32 noundef %1239, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1242, ptr noundef %1245, ptr noundef %1248, i32 noundef %1250) #11
  br label %1252

1252:                                             ; preds = %1235, %1218
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %1253

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

1254:                                             ; No predecessors!
  br label %1255

1255:                                             ; preds = %1254, %1201
  br label %1256

1256:                                             ; preds = %1255
  br label %1257

1257:                                             ; preds = %1256
  %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
  %1260 = call i32 @s2n_enable_atexit()
  %1261 = icmp eq i32 %1260, -1
  br i1 %1261, label %1262, label %1313

1262:                                             ; preds = %1257
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %1265 = call ptr @__errno_location() #12
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  store i32 %1266, ptr %7, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = call i32 @s2n_print_stacktrace(ptr noundef %1267)
  %1269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1270 = trunc i8 %1269 to i1
  br i1 %1270, label %1271, label %1293

1271:                                             ; preds = %1264
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 @fileno(ptr noundef %1272) #11
  %1274 = call i32 @isatty(i32 noundef %1273) #11
  %1275 = icmp ne i32 %1274, 0
  br i1 %1275, label %1276, label %1293

1276:                                             ; preds = %1271
  %1277 = load i32, ptr %7, align 4, !tbaa !5
  %1278 = call ptr @__errno_location() #12
  store i32 %1277, ptr %1278, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror(i32 noundef %1282, ptr noundef @.str.4)
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef @.str.4)
  %1287 = call ptr @__errno_location() #12
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @strerror(i32 noundef %1288) #11
  %1290 = call ptr @__errno_location() #12
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1279, ptr noundef @.str.2, i32 noundef %1280, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1283, ptr noundef %1286, ptr noundef %1289, i32 noundef %1291) #11
  br label %1310

1293:                                             ; preds = %1271, %1264
  %1294 = load i32, ptr %7, align 4, !tbaa !5
  %1295 = call ptr @__errno_location() #12
  store i32 %1294, ptr %1295, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef @.str.4)
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call ptr @__errno_location() #12
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @strerror(i32 noundef %1305) #11
  %1307 = call ptr @__errno_location() #12
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef @.str.5, i32 noundef %1297, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1300, ptr noundef %1303, ptr noundef %1306, i32 noundef %1308) #11
  br label %1310

1310:                                             ; preds = %1293, %1276
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %1311

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

1312:                                             ; No predecessors!
  br label %1313

1313:                                             ; preds = %1312, %1257
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  br label %1316

1316:                                             ; preds = %1315
  %1317 = call i32 @s2n_init()
  %1318 = icmp eq i32 %1317, -1
  br i1 %1318, label %1319, label %1370

1319:                                             ; preds = %1316
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %1322 = call ptr @__errno_location() #12
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  store i32 %1323, ptr %8, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 @s2n_print_stacktrace(ptr noundef %1324)
  %1326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1327 = trunc i8 %1326 to i1
  br i1 %1327, label %1328, label %1350

1328:                                             ; preds = %1321
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @fileno(ptr noundef %1329) #11
  %1331 = call i32 @isatty(i32 noundef %1330) #11
  %1332 = icmp ne i32 %1331, 0
  br i1 %1332, label %1333, label %1350

1333:                                             ; preds = %1328
  %1334 = load i32, ptr %8, align 4, !tbaa !5
  %1335 = call ptr @__errno_location() #12
  store i32 %1334, ptr %1335, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef @.str.4)
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef @.str.4)
  %1344 = call ptr @__errno_location() #12
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @strerror(i32 noundef %1345) #11
  %1347 = call ptr @__errno_location() #12
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef @.str.2, i32 noundef %1337, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1340, ptr noundef %1343, ptr noundef %1346, i32 noundef %1348) #11
  br label %1367

1350:                                             ; preds = %1328, %1321
  %1351 = load i32, ptr %8, align 4, !tbaa !5
  %1352 = call ptr @__errno_location() #12
  store i32 %1351, ptr %1352, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror(i32 noundef %1356, ptr noundef @.str.4)
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef @.str.4)
  %1361 = call ptr @__errno_location() #12
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @strerror(i32 noundef %1362) #11
  %1364 = call ptr @__errno_location() #12
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1353, ptr noundef @.str.5, i32 noundef %1354, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1357, ptr noundef %1360, ptr noundef %1363, i32 noundef %1365) #11
  br label %1367

1367:                                             ; preds = %1350, %1333
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %1368

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

1369:                                             ; No predecessors!
  br label %1370

1370:                                             ; preds = %1369, %1316
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = add nsw i32 %1374, 1
  store i32 %1375, ptr @test_count, align 4, !tbaa !5
  %1376 = call i32 (...) @s2n_disable_tls13_in_test()
  %1377 = icmp eq i32 %1376, -1
  br i1 %1377, label %1378, label %1429

1378:                                             ; preds = %1373
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

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

1387:                                             ; preds = %1380
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @fileno(ptr noundef %1388) #11
  %1390 = call i32 @isatty(i32 noundef %1389) #11
  %1391 = icmp ne i32 %1390, 0
  br i1 %1391, label %1392, label %1409

1392:                                             ; preds = %1387
  %1393 = load i32, ptr %9, align 4, !tbaa !5
  %1394 = call ptr @__errno_location() #12
  store i32 %1393, ptr %1394, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef @.str.4)
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror_debug(i32 noundef %1401, ptr noundef @.str.4)
  %1403 = call ptr @__errno_location() #12
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @strerror(i32 noundef %1404) #11
  %1406 = call ptr @__errno_location() #12
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef @.str.2, i32 noundef %1396, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 140, ptr noundef %1399, ptr noundef %1402, ptr noundef %1405, i32 noundef %1407) #11
  br label %1426

1409:                                             ; preds = %1387, %1380
  %1410 = load i32, ptr %9, align 4, !tbaa !5
  %1411 = call ptr @__errno_location() #12
  store i32 %1410, ptr %1411, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef @.str.4)
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef @.str.4)
  %1420 = call ptr @__errno_location() #12
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #11
  %1423 = call ptr @__errno_location() #12
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef @.str.5, i32 noundef %1413, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 140, ptr noundef %1416, ptr noundef %1419, ptr noundef %1422, i32 noundef %1424) #11
  br label %1426

1426:                                             ; preds = %1409, %1392
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %1427

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

1428:                                             ; No predecessors!
  br label %1429

1429:                                             ; preds = %1428, %1373
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

1431:                                             ; preds = %1430
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = add nsw i32 %1432, 1
  store i32 %1433, ptr @test_count, align 4, !tbaa !5
  %1434 = call zeroext i1 @s2n_libcrypto_supports_2050()
  br i1 %1434, label %1486, label %1435

1435:                                             ; preds = %1431
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

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

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

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

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

1483:                                             ; preds = %1466, %1449
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %1484

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

1485:                                             ; No predecessors!
  br label %1486

1486:                                             ; preds = %1485, %1431
  br label %1487

1487:                                             ; preds = %1486
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %11)
  br label %1488

1488:                                             ; preds = %1487
  %1489 = load i32, ptr @test_count, align 4, !tbaa !5
  %1490 = add nsw i32 %1489, 1
  store i32 %1490, ptr @test_count, align 4, !tbaa !5
  %1491 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %11)
  %1492 = icmp ne i8 %1491, 0
  br i1 %1492, label %1493, label %1546

1493:                                             ; preds = %1488
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

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

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

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

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

1541:                                             ; preds = %1524, %1507
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %1542

1542:                                             ; preds = %1541
  br label %1543

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

1544:                                             ; No predecessors!
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

1546:                                             ; preds = %1545, %1488
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

1548:                                             ; preds = %1547
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %13)
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %1549 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %13, ptr noundef @.str.11, ptr noundef null)
  store i32 %1549, ptr %14, align 4, !tbaa !5
  br label %1550

1550:                                             ; preds = %1548
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = add nsw i32 %1551, 1
  store i32 %1552, ptr @test_count, align 4, !tbaa !5
  %1553 = load i32, ptr %14, align 4, !tbaa !5
  %1554 = icmp eq i32 0, %1553
  br i1 %1554, label %1608, label %1555

1555:                                             ; preds = %1550
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

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

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

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

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

1603:                                             ; preds = %1586, %1569
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

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

1606:                                             ; No predecessors!
  br label %1607

1607:                                             ; preds = %1606
  br label %1608

1608:                                             ; preds = %1607, %1550
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %1613 = add nsw i32 %1612, 1
  store i32 %1613, ptr @test_count, align 4, !tbaa !5
  %1614 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %13)
  %1615 = icmp ne i8 %1614, 0
  br i1 %1615, label %1669, label %1616

1616:                                             ; preds = %1611
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

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

1625:                                             ; preds = %1618
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @fileno(ptr noundef %1626) #11
  %1628 = call i32 @isatty(i32 noundef %1627) #11
  %1629 = icmp ne i32 %1628, 0
  br i1 %1629, label %1630, label %1647

1630:                                             ; preds = %1625
  %1631 = load i32, ptr %16, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #12
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call ptr @__errno_location() #12
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #11
  %1644 = call ptr @__errno_location() #12
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.2, i32 noundef %1634, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #11
  br label %1664

1647:                                             ; preds = %1625, %1618
  %1648 = load i32, ptr %16, align 4, !tbaa !5
  %1649 = call ptr @__errno_location() #12
  store i32 %1648, ptr %1649, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror(i32 noundef %1653, ptr noundef @.str.4)
  %1655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror_debug(i32 noundef %1656, ptr noundef @.str.4)
  %1658 = call ptr @__errno_location() #12
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #11
  %1661 = call ptr @__errno_location() #12
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef @.str.5, i32 noundef %1651, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1654, ptr noundef %1657, ptr noundef %1660, i32 noundef %1662) #11
  br label %1664

1664:                                             ; preds = %1647, %1630
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

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

1667:                                             ; No predecessors!
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668, %1611
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  call void @s2n_x509_trust_store_wipe(ptr noundef %13)
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %17)
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %1672

1672:                                             ; preds = %1671
  %1673 = load i32, ptr @test_count, align 4, !tbaa !5
  %1674 = add nsw i32 %1673, 1
  store i32 %1674, ptr @test_count, align 4, !tbaa !5
  %1675 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %1675, ptr %18, align 8, !tbaa !9
  %1676 = icmp eq ptr %1675, null
  br i1 %1676, label %1677, label %1730

1677:                                             ; preds = %1672
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

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

1686:                                             ; preds = %1679
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = call i32 @fileno(ptr noundef %1687) #11
  %1689 = call i32 @isatty(i32 noundef %1688) #11
  %1690 = icmp ne i32 %1689, 0
  br i1 %1690, label %1691, label %1708

1691:                                             ; preds = %1686
  %1692 = load i32, ptr %19, align 4, !tbaa !5
  %1693 = call ptr @__errno_location() #12
  store i32 %1692, ptr %1693, align 4, !tbaa !5
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = load i32, ptr @test_count, align 4, !tbaa !5
  %1696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror(i32 noundef %1697, ptr noundef @.str.4)
  %1699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror_debug(i32 noundef %1700, ptr noundef @.str.4)
  %1702 = call ptr @__errno_location() #12
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @strerror(i32 noundef %1703) #11
  %1705 = call ptr @__errno_location() #12
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1694, ptr noundef @.str.2, i32 noundef %1695, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 170, ptr noundef %1698, ptr noundef %1701, ptr noundef %1704, i32 noundef %1706) #11
  br label %1725

1708:                                             ; preds = %1686, %1679
  %1709 = load i32, ptr %19, align 4, !tbaa !5
  %1710 = call ptr @__errno_location() #12
  store i32 %1709, ptr %1710, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef @.str.4)
  %1716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror_debug(i32 noundef %1717, ptr noundef @.str.4)
  %1719 = call ptr @__errno_location() #12
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @strerror(i32 noundef %1720) #11
  %1722 = call ptr @__errno_location() #12
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef @.str.5, i32 noundef %1712, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 170, ptr noundef %1715, ptr noundef %1718, ptr noundef %1721, i32 noundef %1723) #11
  br label %1725

1725:                                             ; preds = %1708, %1691
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

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

1728:                                             ; No predecessors!
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729, %1672
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

1733:                                             ; preds = %1732
  %1734 = load i32, ptr @test_count, align 4, !tbaa !5
  %1735 = add nsw i32 %1734, 1
  store i32 %1735, ptr @test_count, align 4, !tbaa !5
  %1736 = load ptr, ptr %18, align 8, !tbaa !9
  %1737 = call i32 @s2n_read_test_pem(ptr noundef @.str.11, ptr noundef %1736, i64 noundef 12000)
  %1738 = icmp eq i32 %1737, -1
  br i1 %1738, label %1739, label %1792

1739:                                             ; preds = %1733
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

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

1748:                                             ; preds = %1741
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @fileno(ptr noundef %1749) #11
  %1751 = call i32 @isatty(i32 noundef %1750) #11
  %1752 = icmp ne i32 %1751, 0
  br i1 %1752, label %1753, label %1770

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

1770:                                             ; preds = %1748, %1741
  %1771 = load i32, ptr %20, align 4, !tbaa !5
  %1772 = call ptr @__errno_location() #12
  store i32 %1771, ptr %1772, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1776, ptr noundef @.str.4)
  %1778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror_debug(i32 noundef %1779, ptr noundef @.str.4)
  %1781 = call ptr @__errno_location() #12
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call ptr @strerror(i32 noundef %1782) #11
  %1784 = call ptr @__errno_location() #12
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1773, ptr noundef @.str.5, i32 noundef %1774, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 171, ptr noundef %1777, ptr noundef %1780, ptr noundef %1783, i32 noundef %1785) #11
  br label %1787

1787:                                             ; preds = %1770, %1753
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %1788

1788:                                             ; preds = %1787
  br label %1789

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

1790:                                             ; No predecessors!
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

1792:                                             ; preds = %1791, %1733
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %1795 = load ptr, ptr %18, align 8, !tbaa !9
  %1796 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %17, ptr noundef %1795)
  store i32 %1796, ptr %21, align 4, !tbaa !5
  br label %1797

1797:                                             ; preds = %1794
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = add nsw i32 %1798, 1
  store i32 %1799, ptr @test_count, align 4, !tbaa !5
  %1800 = load i32, ptr %21, align 4, !tbaa !5
  %1801 = icmp eq i32 0, %1800
  br i1 %1801, label %1855, label %1802

1802:                                             ; preds = %1797
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

1804:                                             ; preds = %1803
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %1805 = call ptr @__errno_location() #12
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  store i32 %1806, ptr %22, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @s2n_print_stacktrace(ptr noundef %1807)
  %1809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1810 = trunc i8 %1809 to i1
  br i1 %1810, label %1811, label %1833

1811:                                             ; preds = %1804
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @fileno(ptr noundef %1812) #11
  %1814 = call i32 @isatty(i32 noundef %1813) #11
  %1815 = icmp ne i32 %1814, 0
  br i1 %1815, label %1816, label %1833

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

1833:                                             ; preds = %1811, %1804
  %1834 = load i32, ptr %22, align 4, !tbaa !5
  %1835 = call ptr @__errno_location() #12
  store i32 %1834, ptr %1835, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef @.str.4)
  %1841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call ptr @s2n_strerror_debug(i32 noundef %1842, ptr noundef @.str.4)
  %1844 = call ptr @__errno_location() #12
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = call ptr @strerror(i32 noundef %1845) #11
  %1847 = call ptr @__errno_location() #12
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef @.str.5, i32 noundef %1837, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1840, ptr noundef %1843, ptr noundef %1846, i32 noundef %1848) #11
  br label %1850

1850:                                             ; preds = %1833, %1816
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

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

1853:                                             ; No predecessors!
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

1855:                                             ; preds = %1854, %1797
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  br label %1858

1858:                                             ; preds = %1857
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = add nsw i32 %1859, 1
  store i32 %1860, ptr @test_count, align 4, !tbaa !5
  %1861 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %17)
  %1862 = icmp ne i8 %1861, 0
  br i1 %1862, label %1916, label %1863

1863:                                             ; preds = %1858
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

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

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @fileno(ptr noundef %1873) #11
  %1875 = call i32 @isatty(i32 noundef %1874) #11
  %1876 = icmp ne i32 %1875, 0
  br i1 %1876, label %1877, label %1894

1877:                                             ; preds = %1872
  %1878 = load i32, ptr %23, align 4, !tbaa !5
  %1879 = call ptr @__errno_location() #12
  store i32 %1878, ptr %1879, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1883, ptr noundef @.str.4)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.4)
  %1888 = call ptr @__errno_location() #12
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #11
  %1891 = call ptr @__errno_location() #12
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str.2, i32 noundef %1881, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 174, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #11
  br label %1911

1894:                                             ; preds = %1872, %1865
  %1895 = load i32, ptr %23, align 4, !tbaa !5
  %1896 = call ptr @__errno_location() #12
  store i32 %1895, ptr %1896, align 4, !tbaa !5
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1900, ptr noundef @.str.4)
  %1902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @s2n_strerror_debug(i32 noundef %1903, ptr noundef @.str.4)
  %1905 = call ptr @__errno_location() #12
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call ptr @strerror(i32 noundef %1906) #11
  %1908 = call ptr @__errno_location() #12
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1897, ptr noundef @.str.5, i32 noundef %1898, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 174, ptr noundef %1901, ptr noundef %1904, ptr noundef %1907, i32 noundef %1909) #11
  br label %1911

1911:                                             ; preds = %1894, %1877
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

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

1914:                                             ; No predecessors!
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915, %1858
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = add nsw i32 %1920, 1
  store i32 %1921, ptr @test_count, align 4, !tbaa !5
  %1922 = load ptr, ptr %18, align 8, !tbaa !9
  %1923 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %17, ptr noundef %1922)
  %1924 = icmp eq i32 %1923, -1
  br i1 %1924, label %1925, label %1978

1925:                                             ; preds = %1919
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %1928 = call ptr @__errno_location() #12
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  store i32 %1929, ptr %24, 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 !11, !range !13, !noundef !14
  %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) #11
  %1937 = call i32 @isatty(i32 noundef %1936) #11
  %1938 = icmp ne i32 %1937, 0
  br i1 %1938, label %1939, label %1956

1939:                                             ; preds = %1934
  %1940 = load i32, ptr %24, align 4, !tbaa !5
  %1941 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %1950 = call ptr @__errno_location() #12
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @strerror(i32 noundef %1951) #11
  %1953 = call ptr @__errno_location() #12
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1942, ptr noundef @.str.2, i32 noundef %1943, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 178, ptr noundef %1946, ptr noundef %1949, ptr noundef %1952, i32 noundef %1954) #11
  br label %1973

1956:                                             ; preds = %1934, %1927
  %1957 = load i32, ptr %24, align 4, !tbaa !5
  %1958 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %1967 = call ptr @__errno_location() #12
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @strerror(i32 noundef %1968) #11
  %1970 = call ptr @__errno_location() #12
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1959, ptr noundef @.str.5, i32 noundef %1960, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 178, ptr noundef %1963, ptr noundef %1966, ptr noundef %1969, i32 noundef %1971) #11
  br label %1973

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

1974:                                             ; preds = %1973
  br label %1975

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

1976:                                             ; No predecessors!
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

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

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979
  %1981 = load ptr, ptr %18, align 8, !tbaa !9
  call void @free(ptr noundef %1981) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef %17)
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %25)
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1982 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %25, ptr noundef @.str.17, ptr noundef null)
  store i32 %1982, ptr %26, align 4, !tbaa !5
  br label %1983

1983:                                             ; preds = %1980
  %1984 = load i32, ptr @test_count, align 4, !tbaa !5
  %1985 = add nsw i32 %1984, 1
  store i32 %1985, ptr @test_count, align 4, !tbaa !5
  %1986 = load i32, ptr %26, align 4, !tbaa !5
  %1987 = icmp eq i32 -1, %1986
  br i1 %1987, label %2041, label %1988

1988:                                             ; preds = %1983
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

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

1997:                                             ; preds = %1990
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = call i32 @fileno(ptr noundef %1998) #11
  %2000 = call i32 @isatty(i32 noundef %1999) #11
  %2001 = icmp ne i32 %2000, 0
  br i1 %2001, label %2002, label %2019

2002:                                             ; preds = %1997
  %2003 = load i32, ptr %27, align 4, !tbaa !5
  %2004 = call ptr @__errno_location() #12
  store i32 %2003, ptr %2004, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror(i32 noundef %2008, ptr noundef @.str.4)
  %2010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror_debug(i32 noundef %2011, ptr noundef @.str.4)
  %2013 = call ptr @__errno_location() #12
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call ptr @strerror(i32 noundef %2014) #11
  %2016 = call ptr @__errno_location() #12
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef @.str.2, i32 noundef %2006, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 189, ptr noundef %2009, ptr noundef %2012, ptr noundef %2015, i32 noundef %2017) #11
  br label %2036

2019:                                             ; preds = %1997, %1990
  %2020 = load i32, ptr %27, align 4, !tbaa !5
  %2021 = call ptr @__errno_location() #12
  store i32 %2020, ptr %2021, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror(i32 noundef %2025, ptr noundef @.str.4)
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror_debug(i32 noundef %2028, ptr noundef @.str.4)
  %2030 = call ptr @__errno_location() #12
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #11
  %2033 = call ptr @__errno_location() #12
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2022, ptr noundef @.str.5, i32 noundef %2023, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 189, ptr noundef %2026, ptr noundef %2029, ptr noundef %2032, i32 noundef %2034) #11
  br label %2036

2036:                                             ; preds = %2019, %2002
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

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

2039:                                             ; No predecessors!
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040, %1983
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %25)
  %2048 = icmp ne i8 %2047, 0
  br i1 %2048, label %2049, label %2102

2049:                                             ; preds = %2044
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

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

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

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

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

2097:                                             ; preds = %2080, %2063
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %2098

2098:                                             ; preds = %2097
  br label %2099

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

2100:                                             ; No predecessors!
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

2102:                                             ; preds = %2101, %2044
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  call void @s2n_x509_trust_store_wipe(ptr noundef %25)
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %29)
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %2105 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %29, ptr noundef @.str.19, ptr noundef null)
  store i32 %2105, ptr %30, align 4, !tbaa !5
  br label %2106

2106:                                             ; preds = %2104
  %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 i32, ptr %30, align 4, !tbaa !5
  %2110 = icmp eq i32 -1, %2109
  br i1 %2110, label %2164, label %2111

2111:                                             ; preds = %2106
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %2114 = call ptr @__errno_location() #12
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  store i32 %2115, ptr %31, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @s2n_print_stacktrace(ptr noundef %2116)
  %2118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2119 = trunc i8 %2118 to i1
  br i1 %2119, label %2120, label %2142

2120:                                             ; preds = %2113
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @fileno(ptr noundef %2121) #11
  %2123 = call i32 @isatty(i32 noundef %2122) #11
  %2124 = icmp ne i32 %2123, 0
  br i1 %2124, label %2125, label %2142

2125:                                             ; preds = %2120
  %2126 = load i32, ptr %31, align 4, !tbaa !5
  %2127 = call ptr @__errno_location() #12
  store i32 %2126, ptr %2127, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef @.str.4)
  %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_debug(i32 noundef %2134, ptr noundef @.str.4)
  %2136 = call ptr @__errno_location() #12
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #11
  %2139 = call ptr @__errno_location() #12
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef @.str.2, i32 noundef %2129, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2132, ptr noundef %2135, ptr noundef %2138, i32 noundef %2140) #11
  br label %2159

2142:                                             ; preds = %2120, %2113
  %2143 = load i32, ptr %31, align 4, !tbaa !5
  %2144 = call ptr @__errno_location() #12
  store i32 %2143, ptr %2144, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror(i32 noundef %2148, ptr noundef @.str.4)
  %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_debug(i32 noundef %2151, ptr noundef @.str.4)
  %2153 = call ptr @__errno_location() #12
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #11
  %2156 = call ptr @__errno_location() #12
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2145, ptr noundef @.str.5, i32 noundef %2146, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2149, ptr noundef %2152, ptr noundef %2155, i32 noundef %2157) #11
  br label %2159

2159:                                             ; preds = %2142, %2125
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

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

2162:                                             ; No predecessors!
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163, %2106
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  %2168 = load i32, ptr @test_count, align 4, !tbaa !5
  %2169 = add nsw i32 %2168, 1
  store i32 %2169, ptr @test_count, align 4, !tbaa !5
  %2170 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %29)
  %2171 = icmp ne i8 %2170, 0
  br i1 %2171, label %2172, label %2225

2172:                                             ; preds = %2167
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %2175 = call ptr @__errno_location() #12
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  store i32 %2176, ptr %32, align 4, !tbaa !5
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = call i32 @s2n_print_stacktrace(ptr noundef %2177)
  %2179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2180 = trunc i8 %2179 to i1
  br i1 %2180, label %2181, label %2203

2181:                                             ; preds = %2174
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @fileno(ptr noundef %2182) #11
  %2184 = call i32 @isatty(i32 noundef %2183) #11
  %2185 = icmp ne i32 %2184, 0
  br i1 %2185, label %2186, label %2203

2186:                                             ; preds = %2181
  %2187 = load i32, ptr %32, align 4, !tbaa !5
  %2188 = call ptr @__errno_location() #12
  store i32 %2187, ptr %2188, align 4, !tbaa !5
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @s2n_strerror(i32 noundef %2192, ptr noundef @.str.4)
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef @.str.4)
  %2197 = call ptr @__errno_location() #12
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call ptr @strerror(i32 noundef %2198) #11
  %2200 = call ptr @__errno_location() #12
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2189, ptr noundef @.str.2, i32 noundef %2190, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 200, ptr noundef %2193, ptr noundef %2196, ptr noundef %2199, i32 noundef %2201) #11
  br label %2220

2203:                                             ; preds = %2181, %2174
  %2204 = load i32, ptr %32, align 4, !tbaa !5
  %2205 = call ptr @__errno_location() #12
  store i32 %2204, ptr %2205, align 4, !tbaa !5
  %2206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2207 = load i32, ptr @test_count, align 4, !tbaa !5
  %2208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror(i32 noundef %2209, ptr noundef @.str.4)
  %2211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef @.str.4)
  %2214 = call ptr @__errno_location() #12
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call ptr @strerror(i32 noundef %2215) #11
  %2217 = call ptr @__errno_location() #12
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2206, ptr noundef @.str.5, i32 noundef %2207, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 200, ptr noundef %2210, ptr noundef %2213, ptr noundef %2216, i32 noundef %2218) #11
  br label %2220

2220:                                             ; preds = %2203, %2186
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %2221

2221:                                             ; preds = %2220
  br label %2222

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

2223:                                             ; No predecessors!
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

2225:                                             ; preds = %2224, %2167
  br label %2226

2226:                                             ; preds = %2225
  br label %2227

2227:                                             ; preds = %2226
  call void @s2n_x509_trust_store_wipe(ptr noundef %29)
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %33) #11
  %2228 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %33)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %2229 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2229, ptr %34, align 8, !tbaa !9
  br label %2230

2230:                                             ; preds = %2227
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = add nsw i32 %2231, 1
  store i32 %2232, ptr @test_count, align 4, !tbaa !5
  %2233 = load ptr, ptr %34, align 8, !tbaa !9
  %2234 = icmp eq ptr %2233, null
  br i1 %2234, label %2235, label %2288

2235:                                             ; preds = %2230
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %2238 = call ptr @__errno_location() #12
  %2239 = load i32, ptr %2238, align 4, !tbaa !5
  store i32 %2239, ptr %35, align 4, !tbaa !5
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = call i32 @s2n_print_stacktrace(ptr noundef %2240)
  %2242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2243 = trunc i8 %2242 to i1
  br i1 %2243, label %2244, label %2266

2244:                                             ; preds = %2237
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = call i32 @fileno(ptr noundef %2245) #11
  %2247 = call i32 @isatty(i32 noundef %2246) #11
  %2248 = icmp ne i32 %2247, 0
  br i1 %2248, label %2249, label %2266

2249:                                             ; preds = %2244
  %2250 = load i32, ptr %35, align 4, !tbaa !5
  %2251 = call ptr @__errno_location() #12
  store i32 %2250, ptr %2251, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = load i32, ptr @test_count, align 4, !tbaa !5
  %2254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror(i32 noundef %2255, ptr noundef @.str.4)
  %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_debug(i32 noundef %2258, ptr noundef @.str.4)
  %2260 = call ptr @__errno_location() #12
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @strerror(i32 noundef %2261) #11
  %2263 = call ptr @__errno_location() #12
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2252, ptr noundef @.str.2, i32 noundef %2253, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 209, ptr noundef %2256, ptr noundef %2259, ptr noundef %2262, i32 noundef %2264) #11
  br label %2283

2266:                                             ; preds = %2244, %2237
  %2267 = load i32, ptr %35, align 4, !tbaa !5
  %2268 = call ptr @__errno_location() #12
  store i32 %2267, ptr %2268, align 4, !tbaa !5
  %2269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2270 = load i32, ptr @test_count, align 4, !tbaa !5
  %2271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror(i32 noundef %2272, ptr noundef @.str.4)
  %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_debug(i32 noundef %2275, ptr noundef @.str.4)
  %2277 = call ptr @__errno_location() #12
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call ptr @strerror(i32 noundef %2278) #11
  %2280 = call ptr @__errno_location() #12
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2269, ptr noundef @.str.5, i32 noundef %2270, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 209, ptr noundef %2273, ptr noundef %2276, ptr noundef %2279, i32 noundef %2281) #11
  br label %2283

2283:                                             ; preds = %2266, %2249
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %2284

2284:                                             ; preds = %2283
  br label %2285

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

2286:                                             ; No predecessors!
  br label %2287

2287:                                             ; preds = %2286
  br label %2288

2288:                                             ; preds = %2287, %2230
  br label %2289

2289:                                             ; preds = %2288
  br label %2290

2290:                                             ; preds = %2289
  call void @llvm.lifetime.start.p0(i64 40, ptr %36) #11
  call void @llvm.memset.p0.i64(ptr align 8 %36, i8 0, i64 40, i1 false)
  br label %2291

2291:                                             ; preds = %2290
  %2292 = load i32, ptr @test_count, align 4, !tbaa !5
  %2293 = add nsw i32 %2292, 1
  store i32 %2293, ptr @test_count, align 4, !tbaa !5
  %2294 = load ptr, ptr %34, align 8, !tbaa !9
  %2295 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %2294, ptr noundef @.str.11, ptr noundef %36)
  %2296 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %2295, ptr %2296, align 4
  %2297 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %2298 = load i32, ptr %2297, align 4
  %2299 = call zeroext i1 @s2n_result_is_ok(i32 %2298)
  br i1 %2299, label %2353, label %2300

2300:                                             ; preds = %2291
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

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

2309:                                             ; preds = %2302
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @fileno(ptr noundef %2310) #11
  %2312 = call i32 @isatty(i32 noundef %2311) #11
  %2313 = icmp ne i32 %2312, 0
  br i1 %2313, label %2314, label %2331

2314:                                             ; preds = %2309
  %2315 = load i32, ptr %38, align 4, !tbaa !5
  %2316 = call ptr @__errno_location() #12
  store i32 %2315, ptr %2316, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror(i32 noundef %2320, ptr noundef @.str.4)
  %2322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror_debug(i32 noundef %2323, ptr noundef @.str.4)
  %2325 = call ptr @__errno_location() #12
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  %2327 = call ptr @strerror(i32 noundef %2326) #11
  %2328 = call ptr @__errno_location() #12
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef @.str.2, i32 noundef %2318, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2321, ptr noundef %2324, ptr noundef %2327, i32 noundef %2329) #11
  br label %2348

2331:                                             ; preds = %2309, %2302
  %2332 = load i32, ptr %38, align 4, !tbaa !5
  %2333 = call ptr @__errno_location() #12
  store i32 %2332, ptr %2333, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %2336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror(i32 noundef %2337, ptr noundef @.str.4)
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror_debug(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call ptr @__errno_location() #12
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @strerror(i32 noundef %2343) #11
  %2345 = call ptr @__errno_location() #12
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2334, ptr noundef @.str.5, i32 noundef %2335, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2338, ptr noundef %2341, ptr noundef %2344, i32 noundef %2346) #11
  br label %2348

2348:                                             ; preds = %2331, %2314
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %2349

2349:                                             ; preds = %2348
  br label %2350

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

2351:                                             ; No predecessors!
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352, %2291
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

2355:                                             ; preds = %2354
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %2356 = getelementptr inbounds %struct.s2n_stuffer, ptr %36, i32 0, i32 2
  %2357 = load i32, ptr %2356, align 4, !tbaa !15
  %2358 = getelementptr inbounds %struct.s2n_stuffer, ptr %36, i32 0, i32 1
  %2359 = load i32, ptr %2358, align 8, !tbaa !18
  %2360 = sub i32 %2357, %2359
  store i32 %2360, ptr %39, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  %2361 = load i32, ptr %39, align 4, !tbaa !5
  %2362 = call ptr @s2n_stuffer_raw_read(ptr noundef %36, i32 noundef %2361)
  store ptr %2362, ptr %40, align 8, !tbaa !9
  br label %2363

2363:                                             ; preds = %2355
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = add nsw i32 %2364, 1
  store i32 %2365, ptr @test_count, align 4, !tbaa !5
  %2366 = load ptr, ptr %40, align 8, !tbaa !9
  %2367 = icmp eq ptr %2366, null
  br i1 %2367, label %2368, label %2421

2368:                                             ; preds = %2363
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

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

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

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

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

2416:                                             ; preds = %2399, %2382
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %2417

2417:                                             ; preds = %2416
  br label %2418

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

2419:                                             ; No predecessors!
  br label %2420

2420:                                             ; preds = %2419
  br label %2421

2421:                                             ; preds = %2420, %2363
  br label %2422

2422:                                             ; preds = %2421
  br label %2423

2423:                                             ; preds = %2422
  br label %2424

2424:                                             ; preds = %2423
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = add nsw i32 %2425, 1
  store i32 %2426, ptr @test_count, align 4, !tbaa !5
  %2427 = load ptr, ptr %34, align 8, !tbaa !9
  %2428 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2427, ptr noundef @.str.23)
  %2429 = icmp eq i32 %2428, -1
  br i1 %2429, label %2430, label %2483

2430:                                             ; preds = %2424
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

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

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

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

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

2478:                                             ; preds = %2461, %2444
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %2479

2479:                                             ; preds = %2478
  br label %2480

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

2481:                                             ; No predecessors!
  br label %2482

2482:                                             ; preds = %2481
  br label %2483

2483:                                             ; preds = %2482, %2424
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

2485:                                             ; preds = %2484
  call void @llvm.lifetime.start.p0(i64 48, ptr %43) #11
  br label %2486

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

2491:                                             ; preds = %2486
  br label %2492

2492:                                             ; preds = %2491
  br label %2493

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

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

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

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

2539:                                             ; preds = %2522, %2505
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %2540

2540:                                             ; preds = %2539
  br label %2541

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

2542:                                             ; No predecessors!
  br label %2543

2543:                                             ; preds = %2542
  br label %2544

2544:                                             ; preds = %2543, %2486
  br label %2545

2545:                                             ; preds = %2544
  br label %2546

2546:                                             ; preds = %2545
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  store i32 -1, ptr %45, align 4, !tbaa !5
  br label %2547

2547:                                             ; preds = %2546
  %2548 = load i32, ptr @test_count, align 4, !tbaa !5
  %2549 = add nsw i32 %2548, 1
  store i32 %2549, ptr @test_count, align 4, !tbaa !5
  %2550 = load ptr, ptr %34, align 8, !tbaa !9
  %2551 = load ptr, ptr %40, align 8, !tbaa !9
  %2552 = load i32, ptr %39, align 4, !tbaa !5
  %2553 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %33, ptr noundef %2550, ptr noundef %2551, i32 noundef %2552, ptr noundef %45, ptr noundef %43)
  %2554 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  store i32 %2553, ptr %2554, align 4
  %2555 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  %2556 = load i32, ptr %2555, align 4
  %2557 = call zeroext i1 @s2n_result_is_ok(i32 %2556)
  br i1 %2557, label %2611, label %2558

2558:                                             ; preds = %2547
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %2561 = call ptr @__errno_location() #12
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  store i32 %2562, ptr %47, align 4, !tbaa !5
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @s2n_print_stacktrace(ptr noundef %2563)
  %2565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2566 = trunc i8 %2565 to i1
  br i1 %2566, label %2567, label %2589

2567:                                             ; preds = %2560
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = call i32 @fileno(ptr noundef %2568) #11
  %2570 = call i32 @isatty(i32 noundef %2569) #11
  %2571 = icmp ne i32 %2570, 0
  br i1 %2571, label %2572, label %2589

2572:                                             ; preds = %2567
  %2573 = load i32, ptr %47, align 4, !tbaa !5
  %2574 = call ptr @__errno_location() #12
  store i32 %2573, ptr %2574, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @s2n_strerror(i32 noundef %2578, ptr noundef @.str.4)
  %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_debug(i32 noundef %2581, ptr noundef @.str.4)
  %2583 = call ptr @__errno_location() #12
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @strerror(i32 noundef %2584) #11
  %2586 = call ptr @__errno_location() #12
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2575, ptr noundef @.str.2, i32 noundef %2576, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 222, ptr noundef %2579, ptr noundef %2582, ptr noundef %2585, i32 noundef %2587) #11
  br label %2606

2589:                                             ; preds = %2567, %2560
  %2590 = load i32, ptr %47, align 4, !tbaa !5
  %2591 = call ptr @__errno_location() #12
  store i32 %2590, ptr %2591, align 4, !tbaa !5
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = load i32, ptr @test_count, align 4, !tbaa !5
  %2594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2595 = load i32, ptr %2594, align 4, !tbaa !5
  %2596 = call ptr @s2n_strerror(i32 noundef %2595, ptr noundef @.str.4)
  %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_debug(i32 noundef %2598, ptr noundef @.str.4)
  %2600 = call ptr @__errno_location() #12
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  %2602 = call ptr @strerror(i32 noundef %2601) #11
  %2603 = call ptr @__errno_location() #12
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2592, ptr noundef @.str.5, i32 noundef %2593, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 222, ptr noundef %2596, ptr noundef %2599, ptr noundef %2602, i32 noundef %2604) #11
  br label %2606

2606:                                             ; preds = %2589, %2572
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2607

2607:                                             ; preds = %2606
  br label %2608

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

2609:                                             ; No predecessors!
  br label %2610

2610:                                             ; preds = %2609
  br label %2611

2611:                                             ; preds = %2610, %2547
  br label %2612

2612:                                             ; preds = %2611
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = add nsw i32 %2615, 1
  store i32 %2616, ptr @test_count, align 4, !tbaa !5
  %2617 = load i32, ptr %45, align 4, !tbaa !5
  %2618 = icmp eq i32 0, %2617
  br i1 %2618, label %2672, label %2619

2619:                                             ; preds = %2614
  br label %2620

2620:                                             ; preds = %2619
  br label %2621

2621:                                             ; preds = %2620
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %2622 = call ptr @__errno_location() #12
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  store i32 %2623, ptr %48, align 4, !tbaa !5
  %2624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2625 = call i32 @s2n_print_stacktrace(ptr noundef %2624)
  %2626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2627 = trunc i8 %2626 to i1
  br i1 %2627, label %2628, label %2650

2628:                                             ; preds = %2621
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = call i32 @fileno(ptr noundef %2629) #11
  %2631 = call i32 @isatty(i32 noundef %2630) #11
  %2632 = icmp ne i32 %2631, 0
  br i1 %2632, label %2633, label %2650

2633:                                             ; preds = %2628
  %2634 = load i32, ptr %48, align 4, !tbaa !5
  %2635 = call ptr @__errno_location() #12
  store i32 %2634, ptr %2635, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = load i32, ptr @test_count, align 4, !tbaa !5
  %2638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call ptr @s2n_strerror(i32 noundef %2639, ptr noundef @.str.4)
  %2641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = call ptr @s2n_strerror_debug(i32 noundef %2642, ptr noundef @.str.4)
  %2644 = call ptr @__errno_location() #12
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @strerror(i32 noundef %2645) #11
  %2647 = call ptr @__errno_location() #12
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2636, ptr noundef @.str.2, i32 noundef %2637, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2640, ptr noundef %2643, ptr noundef %2646, i32 noundef %2648) #11
  br label %2667

2650:                                             ; preds = %2628, %2621
  %2651 = load i32, ptr %48, align 4, !tbaa !5
  %2652 = call ptr @__errno_location() #12
  store i32 %2651, ptr %2652, align 4, !tbaa !5
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror(i32 noundef %2656, ptr noundef @.str.4)
  %2658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @s2n_strerror_debug(i32 noundef %2659, ptr noundef @.str.4)
  %2661 = call ptr @__errno_location() #12
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call ptr @strerror(i32 noundef %2662) #11
  %2664 = call ptr @__errno_location() #12
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2653, ptr noundef @.str.5, i32 noundef %2654, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2657, ptr noundef %2660, ptr noundef %2663, i32 noundef %2665) #11
  br label %2667

2667:                                             ; preds = %2650, %2633
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2668

2668:                                             ; preds = %2667
  br label %2669

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

2670:                                             ; No predecessors!
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

2672:                                             ; preds = %2671, %2614
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673
  %2675 = load ptr, ptr %34, align 8, !tbaa !9
  %2676 = call i32 @s2n_connection_free(ptr noundef %2675)
  %2677 = call i32 @s2n_pkey_free(ptr noundef %43)
  %2678 = call i32 @s2n_x509_validator_wipe(ptr noundef %33)
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  %2679 = call i32 @s2n_stuffer_free(ptr noundef %36)
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %33) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %49) #11
  %2680 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %49)
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  %2681 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2681, ptr %50, align 8, !tbaa !9
  br label %2682

2682:                                             ; preds = %2674
  %2683 = load i32, ptr @test_count, align 4, !tbaa !5
  %2684 = add nsw i32 %2683, 1
  store i32 %2684, ptr @test_count, align 4, !tbaa !5
  %2685 = load ptr, ptr %50, align 8, !tbaa !9
  %2686 = icmp eq ptr %2685, null
  br i1 %2686, label %2687, label %2740

2687:                                             ; preds = %2682
  br label %2688

2688:                                             ; preds = %2687
  br label %2689

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

2696:                                             ; preds = %2689
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = call i32 @fileno(ptr noundef %2697) #11
  %2699 = call i32 @isatty(i32 noundef %2698) #11
  %2700 = icmp ne i32 %2699, 0
  br i1 %2700, label %2701, label %2718

2701:                                             ; preds = %2696
  %2702 = load i32, ptr %51, align 4, !tbaa !5
  %2703 = call ptr @__errno_location() #12
  store i32 %2702, ptr %2703, align 4, !tbaa !5
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = load i32, ptr @test_count, align 4, !tbaa !5
  %2706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror(i32 noundef %2707, ptr noundef @.str.4)
  %2709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call ptr @s2n_strerror_debug(i32 noundef %2710, ptr noundef @.str.4)
  %2712 = call ptr @__errno_location() #12
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @strerror(i32 noundef %2713) #11
  %2715 = call ptr @__errno_location() #12
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2704, ptr noundef @.str.2, i32 noundef %2705, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 234, ptr noundef %2708, ptr noundef %2711, ptr noundef %2714, i32 noundef %2716) #11
  br label %2735

2718:                                             ; preds = %2696, %2689
  %2719 = load i32, ptr %51, align 4, !tbaa !5
  %2720 = call ptr @__errno_location() #12
  store i32 %2719, ptr %2720, align 4, !tbaa !5
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = load i32, ptr @test_count, align 4, !tbaa !5
  %2723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef @.str.4)
  %2726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @s2n_strerror_debug(i32 noundef %2727, ptr noundef @.str.4)
  %2729 = call ptr @__errno_location() #12
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @strerror(i32 noundef %2730) #11
  %2732 = call ptr @__errno_location() #12
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2721, ptr noundef @.str.5, i32 noundef %2722, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 234, ptr noundef %2725, ptr noundef %2728, ptr noundef %2731, i32 noundef %2733) #11
  br label %2735

2735:                                             ; preds = %2718, %2701
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2736

2736:                                             ; preds = %2735
  br label %2737

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

2738:                                             ; No predecessors!
  br label %2739

2739:                                             ; preds = %2738
  br label %2740

2740:                                             ; preds = %2739, %2682
  br label %2741

2741:                                             ; preds = %2740
  br label %2742

2742:                                             ; preds = %2741
  call void @llvm.lifetime.start.p0(i64 40, ptr %52) #11
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 40, i1 false)
  br label %2743

2743:                                             ; preds = %2742
  %2744 = load i32, ptr @test_count, align 4, !tbaa !5
  %2745 = add nsw i32 %2744, 1
  store i32 %2745, ptr @test_count, align 4, !tbaa !5
  %2746 = load ptr, ptr %50, align 8, !tbaa !9
  %2747 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %2746, ptr noundef @.str.11, ptr noundef %52)
  %2748 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  store i32 %2747, ptr %2748, align 4
  %2749 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  %2750 = load i32, ptr %2749, align 4
  %2751 = call zeroext i1 @s2n_result_is_ok(i32 %2750)
  br i1 %2751, label %2805, label %2752

2752:                                             ; preds = %2743
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

2754:                                             ; preds = %2753
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2755 = call ptr @__errno_location() #12
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  store i32 %2756, ptr %54, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @s2n_print_stacktrace(ptr noundef %2757)
  %2759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2760 = trunc i8 %2759 to i1
  br i1 %2760, label %2761, label %2783

2761:                                             ; preds = %2754
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @fileno(ptr noundef %2762) #11
  %2764 = call i32 @isatty(i32 noundef %2763) #11
  %2765 = icmp ne i32 %2764, 0
  br i1 %2765, label %2766, label %2783

2766:                                             ; preds = %2761
  %2767 = load i32, ptr %54, align 4, !tbaa !5
  %2768 = call ptr @__errno_location() #12
  store i32 %2767, ptr %2768, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror(i32 noundef %2772, ptr noundef @.str.4)
  %2774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror_debug(i32 noundef %2775, ptr noundef @.str.4)
  %2777 = call ptr @__errno_location() #12
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call ptr @strerror(i32 noundef %2778) #11
  %2780 = call ptr @__errno_location() #12
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2769, ptr noundef @.str.2, i32 noundef %2770, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 237, ptr noundef %2773, ptr noundef %2776, ptr noundef %2779, i32 noundef %2781) #11
  br label %2800

2783:                                             ; preds = %2761, %2754
  %2784 = load i32, ptr %54, align 4, !tbaa !5
  %2785 = call ptr @__errno_location() #12
  store i32 %2784, ptr %2785, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = load i32, ptr @test_count, align 4, !tbaa !5
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror(i32 noundef %2789, ptr noundef @.str.4)
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror_debug(i32 noundef %2792, ptr noundef @.str.4)
  %2794 = call ptr @__errno_location() #12
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call ptr @strerror(i32 noundef %2795) #11
  %2797 = call ptr @__errno_location() #12
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  %2799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2786, ptr noundef @.str.5, i32 noundef %2787, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 237, ptr noundef %2790, ptr noundef %2793, ptr noundef %2796, i32 noundef %2798) #11
  br label %2800

2800:                                             ; preds = %2783, %2766
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

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

2803:                                             ; No predecessors!
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

2805:                                             ; preds = %2804, %2743
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %2808 = getelementptr inbounds %struct.s2n_stuffer, ptr %52, i32 0, i32 2
  %2809 = load i32, ptr %2808, align 4, !tbaa !15
  %2810 = getelementptr inbounds %struct.s2n_stuffer, ptr %52, i32 0, i32 1
  %2811 = load i32, ptr %2810, align 8, !tbaa !18
  %2812 = sub i32 %2809, %2811
  store i32 %2812, ptr %55, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  %2813 = load i32, ptr %55, align 4, !tbaa !5
  %2814 = call ptr @s2n_stuffer_raw_read(ptr noundef %52, i32 noundef %2813)
  store ptr %2814, ptr %56, align 8, !tbaa !9
  br label %2815

2815:                                             ; preds = %2807
  %2816 = load i32, ptr @test_count, align 4, !tbaa !5
  %2817 = add nsw i32 %2816, 1
  store i32 %2817, ptr @test_count, align 4, !tbaa !5
  %2818 = load ptr, ptr %56, align 8, !tbaa !9
  %2819 = icmp eq ptr %2818, null
  br i1 %2819, label %2820, label %2873

2820:                                             ; preds = %2815
  br label %2821

2821:                                             ; preds = %2820
  br label %2822

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

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

2834:                                             ; preds = %2829
  %2835 = load i32, ptr %57, align 4, !tbaa !5
  %2836 = call ptr @__errno_location() #12
  store i32 %2835, ptr %2836, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror(i32 noundef %2840, ptr noundef @.str.4)
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef @.str.4)
  %2845 = call ptr @__errno_location() #12
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @strerror(i32 noundef %2846) #11
  %2848 = call ptr @__errno_location() #12
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef @.str.2, i32 noundef %2838, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 240, ptr noundef %2841, ptr noundef %2844, ptr noundef %2847, i32 noundef %2849) #11
  br label %2868

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

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

2869:                                             ; preds = %2868
  br label %2870

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

2871:                                             ; No predecessors!
  br label %2872

2872:                                             ; preds = %2871
  br label %2873

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

2874:                                             ; preds = %2873
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

2876:                                             ; preds = %2875
  %2877 = load i32, ptr @test_count, align 4, !tbaa !5
  %2878 = add nsw i32 %2877, 1
  store i32 %2878, ptr @test_count, align 4, !tbaa !5
  %2879 = load ptr, ptr %50, align 8, !tbaa !9
  %2880 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2879, ptr noundef @.str.23)
  %2881 = icmp eq i32 %2880, -1
  br i1 %2881, label %2882, label %2935

2882:                                             ; preds = %2876
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2885 = call ptr @__errno_location() #12
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  store i32 %2886, ptr %58, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = call i32 @s2n_print_stacktrace(ptr noundef %2887)
  %2889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2890 = trunc i8 %2889 to i1
  br i1 %2890, label %2891, label %2913

2891:                                             ; preds = %2884
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = call i32 @fileno(ptr noundef %2892) #11
  %2894 = call i32 @isatty(i32 noundef %2893) #11
  %2895 = icmp ne i32 %2894, 0
  br i1 %2895, label %2896, label %2913

2896:                                             ; preds = %2891
  %2897 = load i32, ptr %58, align 4, !tbaa !5
  %2898 = call ptr @__errno_location() #12
  store i32 %2897, ptr %2898, align 4, !tbaa !5
  %2899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror(i32 noundef %2902, ptr noundef @.str.4)
  %2904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror_debug(i32 noundef %2905, ptr noundef @.str.4)
  %2907 = call ptr @__errno_location() #12
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call ptr @strerror(i32 noundef %2908) #11
  %2910 = call ptr @__errno_location() #12
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2899, ptr noundef @.str.2, i32 noundef %2900, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 242, ptr noundef %2903, ptr noundef %2906, ptr noundef %2909, i32 noundef %2911) #11
  br label %2930

2913:                                             ; preds = %2891, %2884
  %2914 = load i32, ptr %58, align 4, !tbaa !5
  %2915 = call ptr @__errno_location() #12
  store i32 %2914, ptr %2915, align 4, !tbaa !5
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror(i32 noundef %2919, ptr noundef @.str.4)
  %2921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror_debug(i32 noundef %2922, ptr noundef @.str.4)
  %2924 = call ptr @__errno_location() #12
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @strerror(i32 noundef %2925) #11
  %2927 = call ptr @__errno_location() #12
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef @.str.5, i32 noundef %2917, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 242, ptr noundef %2920, ptr noundef %2923, ptr noundef %2926, i32 noundef %2928) #11
  br label %2930

2930:                                             ; preds = %2913, %2896
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2931

2931:                                             ; preds = %2930
  br label %2932

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

2933:                                             ; No predecessors!
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

2935:                                             ; preds = %2934, %2876
  br label %2936

2936:                                             ; preds = %2935
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  %2939 = load i32, ptr @test_count, align 4, !tbaa !5
  %2940 = add nsw i32 %2939, 1
  store i32 %2940, ptr @test_count, align 4, !tbaa !5
  %2941 = call i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef %49, i16 noundef zeroext 2)
  %2942 = icmp eq i32 %2941, -1
  br i1 %2942, label %2943, label %2996

2943:                                             ; preds = %2938
  br label %2944

2944:                                             ; preds = %2943
  br label %2945

2945:                                             ; preds = %2944
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2946 = call ptr @__errno_location() #12
  %2947 = load i32, ptr %2946, align 4, !tbaa !5
  store i32 %2947, ptr %59, align 4, !tbaa !5
  %2948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2949 = call i32 @s2n_print_stacktrace(ptr noundef %2948)
  %2950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2951 = trunc i8 %2950 to i1
  br i1 %2951, label %2952, label %2974

2952:                                             ; preds = %2945
  %2953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2954 = call i32 @fileno(ptr noundef %2953) #11
  %2955 = call i32 @isatty(i32 noundef %2954) #11
  %2956 = icmp ne i32 %2955, 0
  br i1 %2956, label %2957, label %2974

2957:                                             ; preds = %2952
  %2958 = load i32, ptr %59, align 4, !tbaa !5
  %2959 = call ptr @__errno_location() #12
  store i32 %2958, ptr %2959, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror(i32 noundef %2963, ptr noundef @.str.4)
  %2965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror_debug(i32 noundef %2966, ptr noundef @.str.4)
  %2968 = call ptr @__errno_location() #12
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @strerror(i32 noundef %2969) #11
  %2971 = call ptr @__errno_location() #12
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2960, ptr noundef @.str.2, i32 noundef %2961, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 244, ptr noundef %2964, ptr noundef %2967, ptr noundef %2970, i32 noundef %2972) #11
  br label %2991

2974:                                             ; preds = %2952, %2945
  %2975 = load i32, ptr %59, align 4, !tbaa !5
  %2976 = call ptr @__errno_location() #12
  store i32 %2975, ptr %2976, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = load i32, ptr @test_count, align 4, !tbaa !5
  %2979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror(i32 noundef %2980, ptr noundef @.str.4)
  %2982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call ptr @s2n_strerror_debug(i32 noundef %2983, ptr noundef @.str.4)
  %2985 = call ptr @__errno_location() #12
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call ptr @strerror(i32 noundef %2986) #11
  %2988 = call ptr @__errno_location() #12
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2977, ptr noundef @.str.5, i32 noundef %2978, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 244, ptr noundef %2981, ptr noundef %2984, ptr noundef %2987, i32 noundef %2989) #11
  br label %2991

2991:                                             ; preds = %2974, %2957
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

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

2994:                                             ; No predecessors!
  br label %2995

2995:                                             ; preds = %2994
  br label %2996

2996:                                             ; preds = %2995, %2938
  br label %2997

2997:                                             ; preds = %2996
  br label %2998

2998:                                             ; preds = %2997
  call void @llvm.lifetime.start.p0(i64 48, ptr %60) #11
  br label %2999

2999:                                             ; preds = %2998
  %3000 = load i32, ptr @test_count, align 4, !tbaa !5
  %3001 = add nsw i32 %3000, 1
  store i32 %3001, ptr @test_count, align 4, !tbaa !5
  %3002 = call i32 @s2n_pkey_zero_init(ptr noundef %60)
  %3003 = icmp eq i32 %3002, -1
  br i1 %3003, label %3004, label %3057

3004:                                             ; preds = %2999
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %3007 = call ptr @__errno_location() #12
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  store i32 %3008, ptr %61, align 4, !tbaa !5
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = call i32 @s2n_print_stacktrace(ptr noundef %3009)
  %3011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3012 = trunc i8 %3011 to i1
  br i1 %3012, label %3013, label %3035

3013:                                             ; preds = %3006
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @fileno(ptr noundef %3014) #11
  %3016 = call i32 @isatty(i32 noundef %3015) #11
  %3017 = icmp ne i32 %3016, 0
  br i1 %3017, label %3018, label %3035

3018:                                             ; preds = %3013
  %3019 = load i32, ptr %61, align 4, !tbaa !5
  %3020 = call ptr @__errno_location() #12
  store i32 %3019, ptr %3020, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3024, ptr noundef @.str.4)
  %3026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror_debug(i32 noundef %3027, ptr noundef @.str.4)
  %3029 = call ptr @__errno_location() #12
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #11
  %3032 = call ptr @__errno_location() #12
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3021, ptr noundef @.str.2, i32 noundef %3022, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 246, ptr noundef %3025, ptr noundef %3028, ptr noundef %3031, i32 noundef %3033) #11
  br label %3052

3035:                                             ; preds = %3013, %3006
  %3036 = load i32, ptr %61, align 4, !tbaa !5
  %3037 = call ptr @__errno_location() #12
  store i32 %3036, ptr %3037, align 4, !tbaa !5
  %3038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3039 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3041, ptr noundef @.str.4)
  %3043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @s2n_strerror_debug(i32 noundef %3044, ptr noundef @.str.4)
  %3046 = call ptr @__errno_location() #12
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call ptr @strerror(i32 noundef %3047) #11
  %3049 = call ptr @__errno_location() #12
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3038, ptr noundef @.str.5, i32 noundef %3039, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 246, ptr noundef %3042, ptr noundef %3045, ptr noundef %3048, i32 noundef %3050) #11
  br label %3052

3052:                                             ; preds = %3035, %3018
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

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

3055:                                             ; No predecessors!
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

3057:                                             ; preds = %3056, %2999
  br label %3058

3058:                                             ; preds = %3057
  br label %3059

3059:                                             ; preds = %3058
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  store i32 -1, ptr %62, align 4, !tbaa !5
  br label %3060

3060:                                             ; preds = %3059
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %3062 = add nsw i32 %3061, 1
  store i32 %3062, ptr @test_count, align 4, !tbaa !5
  %3063 = load ptr, ptr %50, align 8, !tbaa !9
  %3064 = load ptr, ptr %56, align 8, !tbaa !9
  %3065 = load i32, ptr %55, align 4, !tbaa !5
  %3066 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %49, ptr noundef %3063, ptr noundef %3064, i32 noundef %3065, ptr noundef %62, ptr noundef %60)
  %3067 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %3066, ptr %3067, align 4
  %3068 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %3069 = load i32, ptr %3068, align 4
  %3070 = call zeroext i1 @s2n_result_is_ok(i32 %3069)
  br i1 %3070, label %3124, label %3071

3071:                                             ; preds = %3060
  br label %3072

3072:                                             ; preds = %3071
  br label %3073

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

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

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

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

3119:                                             ; preds = %3102, %3085
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

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

3122:                                             ; No predecessors!
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

3124:                                             ; preds = %3123, %3060
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

3126:                                             ; preds = %3125
  br label %3127

3127:                                             ; preds = %3126
  %3128 = load i32, ptr @test_count, align 4, !tbaa !5
  %3129 = add nsw i32 %3128, 1
  store i32 %3129, ptr @test_count, align 4, !tbaa !5
  %3130 = load i32, ptr %62, align 4, !tbaa !5
  %3131 = icmp eq i32 0, %3130
  br i1 %3131, label %3185, label %3132

3132:                                             ; preds = %3127
  br label %3133

3133:                                             ; preds = %3132
  br label %3134

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

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

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

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

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

3181:                                             ; preds = %3180
  br label %3182

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

3183:                                             ; No predecessors!
  br label %3184

3184:                                             ; preds = %3183
  br label %3185

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

3186:                                             ; preds = %3185
  br label %3187

3187:                                             ; preds = %3186
  %3188 = load ptr, ptr %50, align 8, !tbaa !9
  %3189 = call i32 @s2n_connection_free(ptr noundef %3188)
  %3190 = call i32 @s2n_pkey_free(ptr noundef %60)
  %3191 = call i32 @s2n_x509_validator_wipe(ptr noundef %49)
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  %3192 = call i32 @s2n_stuffer_free(ptr noundef %52)
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %49) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %66)
  call void @llvm.lifetime.start.p0(i64 56, ptr %67) #11
  %3193 = call i32 @s2n_x509_validator_init(ptr noundef %67, ptr noundef %66, i8 noundef zeroext 1)
  br label %3194

3194:                                             ; preds = %3187
  br label %3195

3195:                                             ; preds = %3194
  br label %3196

3196:                                             ; preds = %3195
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = add nsw i32 %3197, 1
  store i32 %3198, ptr @test_count, align 4, !tbaa !5
  %3199 = call i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef %67, i16 noundef zeroext 0)
  %3200 = icmp eq i32 %3199, -1
  br i1 %3200, label %3254, label %3201

3201:                                             ; preds = %3196
  br label %3202

3202:                                             ; preds = %3201
  br label %3203

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

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

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

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

3249:                                             ; preds = %3232, %3215
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3250

3250:                                             ; preds = %3249
  br label %3251

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

3252:                                             ; No predecessors!
  br label %3253

3253:                                             ; preds = %3252
  br label %3254

3254:                                             ; preds = %3253, %3196
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256
  %3258 = load i32, ptr @test_count, align 4, !tbaa !5
  %3259 = add nsw i32 %3258, 1
  store i32 %3259, ptr @test_count, align 4, !tbaa !5
  %3260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = icmp eq i32 %3261, 469762089
  br i1 %3262, label %3316, label %3263

3263:                                             ; preds = %3257
  br label %3264

3264:                                             ; preds = %3263
  br label %3265

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

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

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

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

3311:                                             ; preds = %3294, %3277
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3312

3312:                                             ; preds = %3311
  br label %3313

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

3314:                                             ; No predecessors!
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

3316:                                             ; preds = %3315, %3257
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

3319:                                             ; preds = %3318
  %3320 = load i32, ptr @test_count, align 4, !tbaa !5
  %3321 = add nsw i32 %3320, 1
  store i32 %3321, ptr @test_count, align 4, !tbaa !5
  %3322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror_debug(i32 noundef %3323, ptr noundef @.str.4)
  %3325 = icmp eq ptr %3324, null
  br i1 %3325, label %3326, label %3379

3326:                                             ; preds = %3319
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

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

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

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

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

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

3375:                                             ; preds = %3374
  br label %3376

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

3377:                                             ; No predecessors!
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

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

3380:                                             ; preds = %3379
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

3383:                                             ; preds = %3382
  br label %3384

3384:                                             ; preds = %3383
  %3385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3385, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3386 = call ptr @__errno_location() #12
  store i32 0, ptr %3386, align 4, !tbaa !5
  br label %3387

3387:                                             ; preds = %3384
  br label %3388

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388
  br label %3390

3390:                                             ; preds = %3389
  %3391 = call i32 @s2n_x509_validator_wipe(ptr noundef %67)
  call void @s2n_x509_trust_store_wipe(ptr noundef %66)
  call void @llvm.lifetime.end.p0(i64 56, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %71)
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  %3392 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3392, ptr %72, align 8, !tbaa !9
  br label %3393

3393:                                             ; preds = %3390
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = add nsw i32 %3394, 1
  store i32 %3395, ptr @test_count, align 4, !tbaa !5
  %3396 = load ptr, ptr %72, align 8, !tbaa !9
  %3397 = icmp eq ptr %3396, null
  br i1 %3397, label %3398, label %3451

3398:                                             ; preds = %3393
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %3401 = call ptr @__errno_location() #12
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  store i32 %3402, ptr %73, align 4, !tbaa !5
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3404 = call i32 @s2n_print_stacktrace(ptr noundef %3403)
  %3405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3406 = trunc i8 %3405 to i1
  br i1 %3406, label %3407, label %3429

3407:                                             ; preds = %3400
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @fileno(ptr noundef %3408) #11
  %3410 = call i32 @isatty(i32 noundef %3409) #11
  %3411 = icmp ne i32 %3410, 0
  br i1 %3411, label %3412, label %3429

3412:                                             ; preds = %3407
  %3413 = load i32, ptr %73, align 4, !tbaa !5
  %3414 = call ptr @__errno_location() #12
  store i32 %3413, ptr %3414, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = load i32, ptr @test_count, align 4, !tbaa !5
  %3417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror(i32 noundef %3418, ptr noundef @.str.4)
  %3420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror_debug(i32 noundef %3421, ptr noundef @.str.4)
  %3423 = call ptr @__errno_location() #12
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call ptr @strerror(i32 noundef %3424) #11
  %3426 = call ptr @__errno_location() #12
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3415, ptr noundef @.str.2, i32 noundef %3416, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 277, ptr noundef %3419, ptr noundef %3422, ptr noundef %3425, i32 noundef %3427) #11
  br label %3446

3429:                                             ; preds = %3407, %3400
  %3430 = load i32, ptr %73, align 4, !tbaa !5
  %3431 = call ptr @__errno_location() #12
  store i32 %3430, ptr %3431, align 4, !tbaa !5
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = load i32, ptr @test_count, align 4, !tbaa !5
  %3434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  %3436 = call ptr @s2n_strerror(i32 noundef %3435, ptr noundef @.str.4)
  %3437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror_debug(i32 noundef %3438, ptr noundef @.str.4)
  %3440 = call ptr @__errno_location() #12
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call ptr @strerror(i32 noundef %3441) #11
  %3443 = call ptr @__errno_location() #12
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3432, ptr noundef @.str.5, i32 noundef %3433, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 277, ptr noundef %3436, ptr noundef %3439, ptr noundef %3442, i32 noundef %3444) #11
  br label %3446

3446:                                             ; preds = %3429, %3412
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

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

3449:                                             ; No predecessors!
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450, %3393
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #11
  call void @llvm.memset.p0.i64(ptr align 8 %74, i8 0, i64 16, i1 false)
  br label %3454

3454:                                             ; preds = %3453
  %3455 = load i32, ptr @test_count, align 4, !tbaa !5
  %3456 = add nsw i32 %3455, 1
  store i32 %3456, ptr @test_count, align 4, !tbaa !5
  %3457 = load ptr, ptr %72, align 8, !tbaa !9
  %3458 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %3457, ptr noundef @verify_host_accept_everything, ptr noundef %74)
  %3459 = icmp eq i32 %3458, -1
  br i1 %3459, label %3460, label %3513

3460:                                             ; preds = %3454
  br label %3461

3461:                                             ; preds = %3460
  br label %3462

3462:                                             ; preds = %3461
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %3463 = call ptr @__errno_location() #12
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  store i32 %3464, ptr %75, align 4, !tbaa !5
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = call i32 @s2n_print_stacktrace(ptr noundef %3465)
  %3467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3468 = trunc i8 %3467 to i1
  br i1 %3468, label %3469, label %3491

3469:                                             ; preds = %3462
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = call i32 @fileno(ptr noundef %3470) #11
  %3472 = call i32 @isatty(i32 noundef %3471) #11
  %3473 = icmp ne i32 %3472, 0
  br i1 %3473, label %3474, label %3491

3474:                                             ; preds = %3469
  %3475 = load i32, ptr %75, align 4, !tbaa !5
  %3476 = call ptr @__errno_location() #12
  store i32 %3475, ptr %3476, align 4, !tbaa !5
  %3477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3478 = load i32, ptr @test_count, align 4, !tbaa !5
  %3479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror(i32 noundef %3480, ptr noundef @.str.4)
  %3482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror_debug(i32 noundef %3483, ptr noundef @.str.4)
  %3485 = call ptr @__errno_location() #12
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call ptr @strerror(i32 noundef %3486) #11
  %3488 = call ptr @__errno_location() #12
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  %3490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3477, ptr noundef @.str.2, i32 noundef %3478, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 279, ptr noundef %3481, ptr noundef %3484, ptr noundef %3487, i32 noundef %3489) #11
  br label %3508

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

3508:                                             ; preds = %3491, %3474
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

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

3511:                                             ; No predecessors!
  br label %3512

3512:                                             ; preds = %3511
  br label %3513

3513:                                             ; preds = %3512, %3454
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514
  call void @llvm.lifetime.start.p0(i64 56, ptr %76) #11
  %3516 = call i32 @s2n_x509_validator_init(ptr noundef %76, ptr noundef %71, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 40, ptr %77) #11
  call void @llvm.memset.p0.i64(ptr align 8 %77, i8 0, i64 40, i1 false)
  br label %3517

3517:                                             ; preds = %3515
  %3518 = load i32, ptr @test_count, align 4, !tbaa !5
  %3519 = add nsw i32 %3518, 1
  store i32 %3519, ptr @test_count, align 4, !tbaa !5
  %3520 = load ptr, ptr %72, align 8, !tbaa !9
  %3521 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %3520, ptr noundef @.str.11, ptr noundef %77)
  %3522 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %3521, ptr %3522, align 4
  %3523 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %3524 = load i32, ptr %3523, align 4
  %3525 = call zeroext i1 @s2n_result_is_ok(i32 %3524)
  br i1 %3525, label %3579, label %3526

3526:                                             ; preds = %3517
  br label %3527

3527:                                             ; preds = %3526
  br label %3528

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

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

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

3557:                                             ; preds = %3535, %3528
  %3558 = load i32, ptr %79, align 4, !tbaa !5
  %3559 = call ptr @__errno_location() #12
  store i32 %3558, ptr %3559, align 4, !tbaa !5
  %3560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3561 = load i32, ptr @test_count, align 4, !tbaa !5
  %3562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3563 = load i32, ptr %3562, align 4, !tbaa !5
  %3564 = call ptr @s2n_strerror(i32 noundef %3563, ptr noundef @.str.4)
  %3565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3566 = load i32, ptr %3565, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror_debug(i32 noundef %3566, ptr noundef @.str.4)
  %3568 = call ptr @__errno_location() #12
  %3569 = load i32, ptr %3568, align 4, !tbaa !5
  %3570 = call ptr @strerror(i32 noundef %3569) #11
  %3571 = call ptr @__errno_location() #12
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  %3573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3560, ptr noundef @.str.5, i32 noundef %3561, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 285, ptr noundef %3564, ptr noundef %3567, ptr noundef %3570, i32 noundef %3572) #11
  br label %3574

3574:                                             ; preds = %3557, %3540
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3575

3575:                                             ; preds = %3574
  br label %3576

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

3577:                                             ; No predecessors!
  br label %3578

3578:                                             ; preds = %3577
  br label %3579

3579:                                             ; preds = %3578, %3517
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3582 = getelementptr inbounds %struct.s2n_stuffer, ptr %77, i32 0, i32 2
  %3583 = load i32, ptr %3582, align 4, !tbaa !15
  %3584 = getelementptr inbounds %struct.s2n_stuffer, ptr %77, i32 0, i32 1
  %3585 = load i32, ptr %3584, align 8, !tbaa !18
  %3586 = sub i32 %3583, %3585
  store i32 %3586, ptr %80, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #11
  %3587 = load i32, ptr %80, align 4, !tbaa !5
  %3588 = call ptr @s2n_stuffer_raw_read(ptr noundef %77, i32 noundef %3587)
  store ptr %3588, ptr %81, align 8, !tbaa !9
  br label %3589

3589:                                             ; preds = %3581
  %3590 = load i32, ptr @test_count, align 4, !tbaa !5
  %3591 = add nsw i32 %3590, 1
  store i32 %3591, ptr @test_count, align 4, !tbaa !5
  %3592 = load ptr, ptr %81, align 8, !tbaa !9
  %3593 = icmp eq ptr %3592, null
  br i1 %3593, label %3594, label %3647

3594:                                             ; preds = %3589
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %3597 = call ptr @__errno_location() #12
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  store i32 %3598, ptr %82, align 4, !tbaa !5
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = call i32 @s2n_print_stacktrace(ptr noundef %3599)
  %3601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3602 = trunc i8 %3601 to i1
  br i1 %3602, label %3603, label %3625

3603:                                             ; preds = %3596
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @fileno(ptr noundef %3604) #11
  %3606 = call i32 @isatty(i32 noundef %3605) #11
  %3607 = icmp ne i32 %3606, 0
  br i1 %3607, label %3608, label %3625

3608:                                             ; preds = %3603
  %3609 = load i32, ptr %82, align 4, !tbaa !5
  %3610 = call ptr @__errno_location() #12
  store i32 %3609, ptr %3610, align 4, !tbaa !5
  %3611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3612 = load i32, ptr @test_count, align 4, !tbaa !5
  %3613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @s2n_strerror(i32 noundef %3614, ptr noundef @.str.4)
  %3616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror_debug(i32 noundef %3617, ptr noundef @.str.4)
  %3619 = call ptr @__errno_location() #12
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  %3621 = call ptr @strerror(i32 noundef %3620) #11
  %3622 = call ptr @__errno_location() #12
  %3623 = load i32, ptr %3622, align 4, !tbaa !5
  %3624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3611, ptr noundef @.str.2, i32 noundef %3612, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 288, ptr noundef %3615, ptr noundef %3618, ptr noundef %3621, i32 noundef %3623) #11
  br label %3642

3625:                                             ; preds = %3603, %3596
  %3626 = load i32, ptr %82, align 4, !tbaa !5
  %3627 = call ptr @__errno_location() #12
  store i32 %3626, ptr %3627, align 4, !tbaa !5
  %3628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3629 = load i32, ptr @test_count, align 4, !tbaa !5
  %3630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call ptr @s2n_strerror(i32 noundef %3631, ptr noundef @.str.4)
  %3633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call ptr @s2n_strerror_debug(i32 noundef %3634, ptr noundef @.str.4)
  %3636 = call ptr @__errno_location() #12
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  %3638 = call ptr @strerror(i32 noundef %3637) #11
  %3639 = call ptr @__errno_location() #12
  %3640 = load i32, ptr %3639, align 4, !tbaa !5
  %3641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3628, ptr noundef @.str.5, i32 noundef %3629, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 288, ptr noundef %3632, ptr noundef %3635, ptr noundef %3638, i32 noundef %3640) #11
  br label %3642

3642:                                             ; preds = %3625, %3608
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3643

3643:                                             ; preds = %3642
  br label %3644

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

3645:                                             ; No predecessors!
  br label %3646

3646:                                             ; preds = %3645
  br label %3647

3647:                                             ; preds = %3646, %3589
  br label %3648

3648:                                             ; preds = %3647
  br label %3649

3649:                                             ; preds = %3648
  br label %3650

3650:                                             ; preds = %3649
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = add nsw i32 %3651, 1
  store i32 %3652, ptr @test_count, align 4, !tbaa !5
  %3653 = load ptr, ptr %72, align 8, !tbaa !9
  %3654 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %3653, ptr noundef @.str.23)
  %3655 = icmp eq i32 %3654, -1
  br i1 %3655, label %3656, label %3709

3656:                                             ; preds = %3650
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3659 = call ptr @__errno_location() #12
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  store i32 %3660, ptr %83, align 4, !tbaa !5
  %3661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3662 = call i32 @s2n_print_stacktrace(ptr noundef %3661)
  %3663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3664 = trunc i8 %3663 to i1
  br i1 %3664, label %3665, label %3687

3665:                                             ; preds = %3658
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = call i32 @fileno(ptr noundef %3666) #11
  %3668 = call i32 @isatty(i32 noundef %3667) #11
  %3669 = icmp ne i32 %3668, 0
  br i1 %3669, label %3670, label %3687

3670:                                             ; preds = %3665
  %3671 = load i32, ptr %83, align 4, !tbaa !5
  %3672 = call ptr @__errno_location() #12
  store i32 %3671, ptr %3672, align 4, !tbaa !5
  %3673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3674 = load i32, ptr @test_count, align 4, !tbaa !5
  %3675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call ptr @s2n_strerror(i32 noundef %3676, ptr noundef @.str.4)
  %3678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror_debug(i32 noundef %3679, ptr noundef @.str.4)
  %3681 = call ptr @__errno_location() #12
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  %3683 = call ptr @strerror(i32 noundef %3682) #11
  %3684 = call ptr @__errno_location() #12
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3673, ptr noundef @.str.2, i32 noundef %3674, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 290, ptr noundef %3677, ptr noundef %3680, ptr noundef %3683, i32 noundef %3685) #11
  br label %3704

3687:                                             ; preds = %3665, %3658
  %3688 = load i32, ptr %83, align 4, !tbaa !5
  %3689 = call ptr @__errno_location() #12
  store i32 %3688, ptr %3689, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = load i32, ptr @test_count, align 4, !tbaa !5
  %3692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror(i32 noundef %3693, ptr noundef @.str.4)
  %3695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror_debug(i32 noundef %3696, ptr noundef @.str.4)
  %3698 = call ptr @__errno_location() #12
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call ptr @strerror(i32 noundef %3699) #11
  %3701 = call ptr @__errno_location() #12
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3690, ptr noundef @.str.5, i32 noundef %3691, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 290, ptr noundef %3694, ptr noundef %3697, ptr noundef %3700, i32 noundef %3702) #11
  br label %3704

3704:                                             ; preds = %3687, %3670
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

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

3707:                                             ; No predecessors!
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708, %3650
  br label %3710

3710:                                             ; preds = %3709
  br label %3711

3711:                                             ; preds = %3710
  call void @llvm.lifetime.start.p0(i64 48, ptr %84) #11
  br label %3712

3712:                                             ; preds = %3711
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = add nsw i32 %3713, 1
  store i32 %3714, ptr @test_count, align 4, !tbaa !5
  %3715 = call i32 @s2n_pkey_zero_init(ptr noundef %84)
  %3716 = icmp eq i32 %3715, -1
  br i1 %3716, label %3717, label %3770

3717:                                             ; preds = %3712
  br label %3718

3718:                                             ; preds = %3717
  br label %3719

3719:                                             ; preds = %3718
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %3720 = call ptr @__errno_location() #12
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  store i32 %3721, ptr %85, align 4, !tbaa !5
  %3722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3723 = call i32 @s2n_print_stacktrace(ptr noundef %3722)
  %3724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3725 = trunc i8 %3724 to i1
  br i1 %3725, label %3726, label %3748

3726:                                             ; preds = %3719
  %3727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3728 = call i32 @fileno(ptr noundef %3727) #11
  %3729 = call i32 @isatty(i32 noundef %3728) #11
  %3730 = icmp ne i32 %3729, 0
  br i1 %3730, label %3731, label %3748

3731:                                             ; preds = %3726
  %3732 = load i32, ptr %85, align 4, !tbaa !5
  %3733 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %3742 = call ptr @__errno_location() #12
  %3743 = load i32, ptr %3742, align 4, !tbaa !5
  %3744 = call ptr @strerror(i32 noundef %3743) #11
  %3745 = call ptr @__errno_location() #12
  %3746 = load i32, ptr %3745, align 4, !tbaa !5
  %3747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3734, ptr noundef @.str.2, i32 noundef %3735, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 293, ptr noundef %3738, ptr noundef %3741, ptr noundef %3744, i32 noundef %3746) #11
  br label %3765

3748:                                             ; preds = %3726, %3719
  %3749 = load i32, ptr %85, align 4, !tbaa !5
  %3750 = call ptr @__errno_location() #12
  store i32 %3749, ptr %3750, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3754 = load i32, ptr %3753, align 4, !tbaa !5
  %3755 = call ptr @s2n_strerror(i32 noundef %3754, ptr noundef @.str.4)
  %3756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror_debug(i32 noundef %3757, ptr noundef @.str.4)
  %3759 = call ptr @__errno_location() #12
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call ptr @strerror(i32 noundef %3760) #11
  %3762 = call ptr @__errno_location() #12
  %3763 = load i32, ptr %3762, align 4, !tbaa !5
  %3764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3751, ptr noundef @.str.5, i32 noundef %3752, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 293, ptr noundef %3755, ptr noundef %3758, ptr noundef %3761, i32 noundef %3763) #11
  br label %3765

3765:                                             ; preds = %3748, %3731
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3766

3766:                                             ; preds = %3765
  br label %3767

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

3768:                                             ; No predecessors!
  br label %3769

3769:                                             ; preds = %3768
  br label %3770

3770:                                             ; preds = %3769, %3712
  br label %3771

3771:                                             ; preds = %3770
  br label %3772

3772:                                             ; preds = %3771
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  store i32 -1, ptr %86, align 4, !tbaa !5
  br label %3773

3773:                                             ; preds = %3772
  br label %3774

3774:                                             ; preds = %3773
  br label %3775

3775:                                             ; preds = %3774
  %3776 = load i32, ptr @test_count, align 4, !tbaa !5
  %3777 = add nsw i32 %3776, 1
  store i32 %3777, ptr @test_count, align 4, !tbaa !5
  %3778 = load ptr, ptr %72, align 8, !tbaa !9
  %3779 = load ptr, ptr %81, align 8, !tbaa !9
  %3780 = load i32, ptr %80, align 4, !tbaa !5
  %3781 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %76, ptr noundef %3778, ptr noundef %3779, i32 noundef %3780, ptr noundef %86, ptr noundef %84)
  %3782 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  store i32 %3781, ptr %3782, align 4
  %3783 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  %3784 = load i32, ptr %3783, align 4
  %3785 = call zeroext i1 @s2n_result_is_error(i32 %3784)
  br i1 %3785, label %3839, label %3786

3786:                                             ; preds = %3775
  br label %3787

3787:                                             ; preds = %3786
  br label %3788

3788:                                             ; preds = %3787
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3789 = call ptr @__errno_location() #12
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  store i32 %3790, ptr %88, align 4, !tbaa !5
  %3791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3792 = call i32 @s2n_print_stacktrace(ptr noundef %3791)
  %3793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3794 = trunc i8 %3793 to i1
  br i1 %3794, label %3795, label %3817

3795:                                             ; preds = %3788
  %3796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3797 = call i32 @fileno(ptr noundef %3796) #11
  %3798 = call i32 @isatty(i32 noundef %3797) #11
  %3799 = icmp ne i32 %3798, 0
  br i1 %3799, label %3800, label %3817

3800:                                             ; preds = %3795
  %3801 = load i32, ptr %88, align 4, !tbaa !5
  %3802 = call ptr @__errno_location() #12
  store i32 %3801, ptr %3802, align 4, !tbaa !5
  %3803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3804 = load i32, ptr @test_count, align 4, !tbaa !5
  %3805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = call ptr @s2n_strerror(i32 noundef %3806, ptr noundef @.str.4)
  %3808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call ptr @s2n_strerror_debug(i32 noundef %3809, ptr noundef @.str.4)
  %3811 = call ptr @__errno_location() #12
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  %3813 = call ptr @strerror(i32 noundef %3812) #11
  %3814 = call ptr @__errno_location() #12
  %3815 = load i32, ptr %3814, align 4, !tbaa !5
  %3816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3803, ptr noundef @.str.2, i32 noundef %3804, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 297, ptr noundef %3807, ptr noundef %3810, ptr noundef %3813, i32 noundef %3815) #11
  br label %3834

3817:                                             ; preds = %3795, %3788
  %3818 = load i32, ptr %88, align 4, !tbaa !5
  %3819 = call ptr @__errno_location() #12
  store i32 %3818, ptr %3819, align 4, !tbaa !5
  %3820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3821 = load i32, ptr @test_count, align 4, !tbaa !5
  %3822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  %3824 = call ptr @s2n_strerror(i32 noundef %3823, ptr noundef @.str.4)
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror_debug(i32 noundef %3826, ptr noundef @.str.4)
  %3828 = call ptr @__errno_location() #12
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @strerror(i32 noundef %3829) #11
  %3831 = call ptr @__errno_location() #12
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3820, ptr noundef @.str.5, i32 noundef %3821, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 297, ptr noundef %3824, ptr noundef %3827, ptr noundef %3830, i32 noundef %3832) #11
  br label %3834

3834:                                             ; preds = %3817, %3800
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3835

3835:                                             ; preds = %3834
  br label %3836

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

3837:                                             ; No predecessors!
  br label %3838

3838:                                             ; preds = %3837
  br label %3839

3839:                                             ; preds = %3838, %3775
  br label %3840

3840:                                             ; preds = %3839
  br label %3841

3841:                                             ; preds = %3840
  br label %3842

3842:                                             ; preds = %3841
  %3843 = load i32, ptr @test_count, align 4, !tbaa !5
  %3844 = add nsw i32 %3843, 1
  store i32 %3844, ptr @test_count, align 4, !tbaa !5
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = icmp eq i32 %3846, 335544366
  br i1 %3847, label %3901, label %3848

3848:                                             ; preds = %3842
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3851 = call ptr @__errno_location() #12
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  store i32 %3852, ptr %89, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @s2n_print_stacktrace(ptr noundef %3853)
  %3855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3856 = trunc i8 %3855 to i1
  br i1 %3856, label %3857, label %3879

3857:                                             ; preds = %3850
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @fileno(ptr noundef %3858) #11
  %3860 = call i32 @isatty(i32 noundef %3859) #11
  %3861 = icmp ne i32 %3860, 0
  br i1 %3861, label %3862, label %3879

3862:                                             ; preds = %3857
  %3863 = load i32, ptr %89, align 4, !tbaa !5
  %3864 = call ptr @__errno_location() #12
  store i32 %3863, ptr %3864, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror(i32 noundef %3868, ptr noundef @.str.4)
  %3870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror_debug(i32 noundef %3871, ptr noundef @.str.4)
  %3873 = call ptr @__errno_location() #12
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @strerror(i32 noundef %3874) #11
  %3876 = call ptr @__errno_location() #12
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3865, ptr noundef @.str.2, i32 noundef %3866, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 297, ptr noundef %3869, ptr noundef %3872, ptr noundef %3875, i32 noundef %3877) #11
  br label %3896

3879:                                             ; preds = %3857, %3850
  %3880 = load i32, ptr %89, align 4, !tbaa !5
  %3881 = call ptr @__errno_location() #12
  store i32 %3880, ptr %3881, align 4, !tbaa !5
  %3882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3883 = load i32, ptr @test_count, align 4, !tbaa !5
  %3884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3885 = load i32, ptr %3884, align 4, !tbaa !5
  %3886 = call ptr @s2n_strerror(i32 noundef %3885, ptr noundef @.str.4)
  %3887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call ptr @s2n_strerror_debug(i32 noundef %3888, ptr noundef @.str.4)
  %3890 = call ptr @__errno_location() #12
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = call ptr @strerror(i32 noundef %3891) #11
  %3893 = call ptr @__errno_location() #12
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3882, ptr noundef @.str.5, i32 noundef %3883, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 297, ptr noundef %3886, ptr noundef %3889, ptr noundef %3892, i32 noundef %3894) #11
  br label %3896

3896:                                             ; preds = %3879, %3862
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3897

3897:                                             ; preds = %3896
  br label %3898

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

3899:                                             ; No predecessors!
  br label %3900

3900:                                             ; preds = %3899
  br label %3901

3901:                                             ; preds = %3900, %3842
  br label %3902

3902:                                             ; preds = %3901
  br label %3903

3903:                                             ; preds = %3902
  br label %3904

3904:                                             ; preds = %3903
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = add nsw i32 %3905, 1
  store i32 %3906, ptr @test_count, align 4, !tbaa !5
  %3907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror_debug(i32 noundef %3908, ptr noundef @.str.4)
  %3910 = icmp eq ptr %3909, null
  br i1 %3910, label %3911, label %3964

3911:                                             ; preds = %3904
  br label %3912

3912:                                             ; preds = %3911
  br label %3913

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

3920:                                             ; preds = %3913
  %3921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3922 = call i32 @fileno(ptr noundef %3921) #11
  %3923 = call i32 @isatty(i32 noundef %3922) #11
  %3924 = icmp ne i32 %3923, 0
  br i1 %3924, label %3925, label %3942

3925:                                             ; preds = %3920
  %3926 = load i32, ptr %90, align 4, !tbaa !5
  %3927 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %3936 = call ptr @__errno_location() #12
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @strerror(i32 noundef %3937) #11
  %3939 = call ptr @__errno_location() #12
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3928, ptr noundef @.str.2, i32 noundef %3929, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 297, ptr noundef %3932, ptr noundef %3935, ptr noundef %3938, i32 noundef %3940) #11
  br label %3959

3942:                                             ; preds = %3920, %3913
  %3943 = load i32, ptr %90, align 4, !tbaa !5
  %3944 = call ptr @__errno_location() #12
  store i32 %3943, ptr %3944, align 4, !tbaa !5
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = load i32, ptr @test_count, align 4, !tbaa !5
  %3947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = call ptr @s2n_strerror(i32 noundef %3948, ptr noundef @.str.4)
  %3950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3951 = load i32, ptr %3950, align 4, !tbaa !5
  %3952 = call ptr @s2n_strerror_debug(i32 noundef %3951, ptr noundef @.str.4)
  %3953 = call ptr @__errno_location() #12
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @strerror(i32 noundef %3954) #11
  %3956 = call ptr @__errno_location() #12
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3945, ptr noundef @.str.5, i32 noundef %3946, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 297, ptr noundef %3949, ptr noundef %3952, ptr noundef %3955, i32 noundef %3957) #11
  br label %3959

3959:                                             ; preds = %3942, %3925
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3960

3960:                                             ; preds = %3959
  br label %3961

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

3962:                                             ; No predecessors!
  br label %3963

3963:                                             ; preds = %3962
  br label %3964

3964:                                             ; preds = %3963, %3904
  br label %3965

3965:                                             ; preds = %3964
  br label %3966

3966:                                             ; preds = %3965
  br label %3967

3967:                                             ; preds = %3966
  br label %3968

3968:                                             ; preds = %3967
  br label %3969

3969:                                             ; preds = %3968
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3970, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3971 = call ptr @__errno_location() #12
  store i32 0, ptr %3971, align 4, !tbaa !5
  br label %3972

3972:                                             ; preds = %3969
  br label %3973

3973:                                             ; preds = %3972
  br label %3974

3974:                                             ; preds = %3973
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

3976:                                             ; preds = %3975
  %3977 = load i32, ptr @test_count, align 4, !tbaa !5
  %3978 = add nsw i32 %3977, 1
  store i32 %3978, ptr @test_count, align 4, !tbaa !5
  %3979 = getelementptr inbounds %struct.host_verify_data, ptr %74, i32 0, i32 2
  %3980 = load i8, ptr %3979, align 1, !tbaa !19
  %3981 = zext i8 %3980 to i32
  %3982 = icmp eq i32 0, %3981
  br i1 %3982, label %4036, label %3983

3983:                                             ; preds = %3976
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

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

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

3997:                                             ; preds = %3992
  %3998 = load i32, ptr %91, align 4, !tbaa !5
  %3999 = call ptr @__errno_location() #12
  store i32 %3998, ptr %3999, align 4, !tbaa !5
  %4000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4001 = load i32, ptr @test_count, align 4, !tbaa !5
  %4002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call ptr @s2n_strerror(i32 noundef %4003, ptr noundef @.str.4)
  %4005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call ptr @s2n_strerror_debug(i32 noundef %4006, ptr noundef @.str.4)
  %4008 = call ptr @__errno_location() #12
  %4009 = load i32, ptr %4008, align 4, !tbaa !5
  %4010 = call ptr @strerror(i32 noundef %4009) #11
  %4011 = call ptr @__errno_location() #12
  %4012 = load i32, ptr %4011, align 4, !tbaa !5
  %4013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4000, ptr noundef @.str.2, i32 noundef %4001, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 298, ptr noundef %4004, ptr noundef %4007, ptr noundef %4010, i32 noundef %4012) #11
  br label %4031

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

4031:                                             ; preds = %4014, %3997
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4032

4032:                                             ; preds = %4031
  br label %4033

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

4034:                                             ; No predecessors!
  br label %4035

4035:                                             ; preds = %4034
  br label %4036

4036:                                             ; preds = %4035, %3976
  br label %4037

4037:                                             ; preds = %4036
  br label %4038

4038:                                             ; preds = %4037
  %4039 = load ptr, ptr %72, align 8, !tbaa !9
  %4040 = call i32 @s2n_connection_free(ptr noundef %4039)
  %4041 = call i32 @s2n_pkey_free(ptr noundef %84)
  %4042 = call i32 @s2n_x509_validator_wipe(ptr noundef %76)
  call void @s2n_x509_trust_store_wipe(ptr noundef %71)
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  %4043 = call i32 @s2n_stuffer_free(ptr noundef %77)
  call void @llvm.lifetime.end.p0(i64 40, ptr %77) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %92)
  br label %4044

4044:                                             ; preds = %4038
  %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_x509_trust_store_from_ca_file(ptr noundef %92, ptr noundef @.str.11, ptr noundef null)
  %4048 = icmp eq i32 0, %4047
  br i1 %4048, label %4102, label %4049

4049:                                             ; preds = %4044
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

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

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

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

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

4097:                                             ; preds = %4080, %4063
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4098

4098:                                             ; preds = %4097
  br label %4099

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

4100:                                             ; No predecessors!
  br label %4101

4101:                                             ; preds = %4100
  br label %4102

4102:                                             ; preds = %4101, %4044
  br label %4103

4103:                                             ; preds = %4102
  br label %4104

4104:                                             ; preds = %4103
  call void @llvm.lifetime.start.p0(i64 56, ptr %94) #11
  %4105 = call i32 @s2n_x509_validator_init(ptr noundef %94, ptr noundef %92, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  %4106 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4106, ptr %95, align 8, !tbaa !9
  br label %4107

4107:                                             ; preds = %4104
  %4108 = load i32, ptr @test_count, align 4, !tbaa !5
  %4109 = add nsw i32 %4108, 1
  store i32 %4109, ptr @test_count, align 4, !tbaa !5
  %4110 = load ptr, ptr %95, align 8, !tbaa !9
  %4111 = icmp eq ptr %4110, null
  br i1 %4111, label %4112, label %4165

4112:                                             ; preds = %4107
  br label %4113

4113:                                             ; preds = %4112
  br label %4114

4114:                                             ; preds = %4113
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %4115 = call ptr @__errno_location() #12
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  store i32 %4116, ptr %96, align 4, !tbaa !5
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = call i32 @s2n_print_stacktrace(ptr noundef %4117)
  %4119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4120 = trunc i8 %4119 to i1
  br i1 %4120, label %4121, label %4143

4121:                                             ; preds = %4114
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = call i32 @fileno(ptr noundef %4122) #11
  %4124 = call i32 @isatty(i32 noundef %4123) #11
  %4125 = icmp ne i32 %4124, 0
  br i1 %4125, label %4126, label %4143

4126:                                             ; preds = %4121
  %4127 = load i32, ptr %96, align 4, !tbaa !5
  %4128 = call ptr @__errno_location() #12
  store i32 %4127, ptr %4128, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @s2n_strerror(i32 noundef %4132, ptr noundef @.str.4)
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror_debug(i32 noundef %4135, ptr noundef @.str.4)
  %4137 = call ptr @__errno_location() #12
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @strerror(i32 noundef %4138) #11
  %4140 = call ptr @__errno_location() #12
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4129, ptr noundef @.str.2, i32 noundef %4130, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 316, ptr noundef %4133, ptr noundef %4136, ptr noundef %4139, i32 noundef %4141) #11
  br label %4160

4143:                                             ; preds = %4121, %4114
  %4144 = load i32, ptr %96, align 4, !tbaa !5
  %4145 = call ptr @__errno_location() #12
  store i32 %4144, ptr %4145, align 4, !tbaa !5
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = load i32, ptr @test_count, align 4, !tbaa !5
  %4148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @s2n_strerror(i32 noundef %4149, ptr noundef @.str.4)
  %4151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror_debug(i32 noundef %4152, ptr noundef @.str.4)
  %4154 = call ptr @__errno_location() #12
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call ptr @strerror(i32 noundef %4155) #11
  %4157 = call ptr @__errno_location() #12
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4146, ptr noundef @.str.5, i32 noundef %4147, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 316, ptr noundef %4150, ptr noundef %4153, ptr noundef %4156, i32 noundef %4158) #11
  br label %4160

4160:                                             ; preds = %4143, %4126
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4161

4161:                                             ; preds = %4160
  br label %4162

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

4163:                                             ; No predecessors!
  br label %4164

4164:                                             ; preds = %4163
  br label %4165

4165:                                             ; preds = %4164, %4107
  br label %4166

4166:                                             ; preds = %4165
  br label %4167

4167:                                             ; preds = %4166
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #11
  call void @llvm.memset.p0.i64(ptr align 8 %97, i8 0, i64 16, i1 false)
  br label %4168

4168:                                             ; preds = %4167
  %4169 = load i32, ptr @test_count, align 4, !tbaa !5
  %4170 = add nsw i32 %4169, 1
  store i32 %4170, ptr @test_count, align 4, !tbaa !5
  %4171 = load ptr, ptr %95, align 8, !tbaa !9
  %4172 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %4171, ptr noundef @verify_host_accept_everything, ptr noundef %97)
  %4173 = icmp eq i32 %4172, -1
  br i1 %4173, label %4174, label %4227

4174:                                             ; preds = %4168
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

4176:                                             ; preds = %4175
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %4177 = call ptr @__errno_location() #12
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  store i32 %4178, ptr %98, align 4, !tbaa !5
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = call i32 @s2n_print_stacktrace(ptr noundef %4179)
  %4181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4182 = trunc i8 %4181 to i1
  br i1 %4182, label %4183, label %4205

4183:                                             ; preds = %4176
  %4184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4185 = call i32 @fileno(ptr noundef %4184) #11
  %4186 = call i32 @isatty(i32 noundef %4185) #11
  %4187 = icmp ne i32 %4186, 0
  br i1 %4187, label %4188, label %4205

4188:                                             ; preds = %4183
  %4189 = load i32, ptr %98, align 4, !tbaa !5
  %4190 = call ptr @__errno_location() #12
  store i32 %4189, ptr %4190, align 4, !tbaa !5
  %4191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4192 = load i32, ptr @test_count, align 4, !tbaa !5
  %4193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call ptr @s2n_strerror(i32 noundef %4194, ptr noundef @.str.4)
  %4196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  %4198 = call ptr @s2n_strerror_debug(i32 noundef %4197, ptr noundef @.str.4)
  %4199 = call ptr @__errno_location() #12
  %4200 = load i32, ptr %4199, align 4, !tbaa !5
  %4201 = call ptr @strerror(i32 noundef %4200) #11
  %4202 = call ptr @__errno_location() #12
  %4203 = load i32, ptr %4202, align 4, !tbaa !5
  %4204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4191, ptr noundef @.str.2, i32 noundef %4192, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 319, ptr noundef %4195, ptr noundef %4198, ptr noundef %4201, i32 noundef %4203) #11
  br label %4222

4205:                                             ; preds = %4183, %4176
  %4206 = load i32, ptr %98, align 4, !tbaa !5
  %4207 = call ptr @__errno_location() #12
  store i32 %4206, ptr %4207, align 4, !tbaa !5
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = load i32, ptr @test_count, align 4, !tbaa !5
  %4210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  %4212 = call ptr @s2n_strerror(i32 noundef %4211, ptr noundef @.str.4)
  %4213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4214 = load i32, ptr %4213, align 4, !tbaa !5
  %4215 = call ptr @s2n_strerror_debug(i32 noundef %4214, ptr noundef @.str.4)
  %4216 = call ptr @__errno_location() #12
  %4217 = load i32, ptr %4216, align 4, !tbaa !5
  %4218 = call ptr @strerror(i32 noundef %4217) #11
  %4219 = call ptr @__errno_location() #12
  %4220 = load i32, ptr %4219, align 4, !tbaa !5
  %4221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4208, ptr noundef @.str.5, i32 noundef %4209, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 319, ptr noundef %4212, ptr noundef %4215, ptr noundef %4218, i32 noundef %4220) #11
  br label %4222

4222:                                             ; preds = %4205, %4188
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4223

4223:                                             ; preds = %4222
  br label %4224

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

4225:                                             ; No predecessors!
  br label %4226

4226:                                             ; preds = %4225
  br label %4227

4227:                                             ; preds = %4226, %4168
  br label %4228

4228:                                             ; preds = %4227
  br label %4229

4229:                                             ; preds = %4228
  call void @llvm.lifetime.start.p0(i64 40, ptr %99) #11
  call void @llvm.memset.p0.i64(ptr align 8 %99, i8 0, i64 40, i1 false)
  br label %4230

4230:                                             ; preds = %4229
  %4231 = load i32, ptr @test_count, align 4, !tbaa !5
  %4232 = add nsw i32 %4231, 1
  store i32 %4232, ptr @test_count, align 4, !tbaa !5
  %4233 = load ptr, ptr %95, align 8, !tbaa !9
  %4234 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %4233, ptr noundef @.str.11, ptr noundef %99)
  %4235 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %4234, ptr %4235, align 4
  %4236 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  %4237 = load i32, ptr %4236, align 4
  %4238 = call zeroext i1 @s2n_result_is_ok(i32 %4237)
  br i1 %4238, label %4292, label %4239

4239:                                             ; preds = %4230
  br label %4240

4240:                                             ; preds = %4239
  br label %4241

4241:                                             ; preds = %4240
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4242 = call ptr @__errno_location() #12
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  store i32 %4243, ptr %101, align 4, !tbaa !5
  %4244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4245 = call i32 @s2n_print_stacktrace(ptr noundef %4244)
  %4246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4247 = trunc i8 %4246 to i1
  br i1 %4247, label %4248, label %4270

4248:                                             ; preds = %4241
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = call i32 @fileno(ptr noundef %4249) #11
  %4251 = call i32 @isatty(i32 noundef %4250) #11
  %4252 = icmp ne i32 %4251, 0
  br i1 %4252, label %4253, label %4270

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

4270:                                             ; preds = %4248, %4241
  %4271 = load i32, ptr %101, align 4, !tbaa !5
  %4272 = call ptr @__errno_location() #12
  store i32 %4271, ptr %4272, align 4, !tbaa !5
  %4273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4274 = load i32, ptr @test_count, align 4, !tbaa !5
  %4275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @s2n_strerror(i32 noundef %4276, ptr noundef @.str.4)
  %4278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror_debug(i32 noundef %4279, ptr noundef @.str.4)
  %4281 = call ptr @__errno_location() #12
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @strerror(i32 noundef %4282) #11
  %4284 = call ptr @__errno_location() #12
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4273, ptr noundef @.str.5, i32 noundef %4274, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 322, ptr noundef %4277, ptr noundef %4280, ptr noundef %4283, i32 noundef %4285) #11
  br label %4287

4287:                                             ; preds = %4270, %4253
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4288

4288:                                             ; preds = %4287
  br label %4289

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

4290:                                             ; No predecessors!
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

4292:                                             ; preds = %4291, %4230
  br label %4293

4293:                                             ; preds = %4292
  br label %4294

4294:                                             ; preds = %4293
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4295 = getelementptr inbounds %struct.s2n_stuffer, ptr %99, i32 0, i32 2
  %4296 = load i32, ptr %4295, align 4, !tbaa !15
  %4297 = getelementptr inbounds %struct.s2n_stuffer, ptr %99, i32 0, i32 1
  %4298 = load i32, ptr %4297, align 8, !tbaa !18
  %4299 = sub i32 %4296, %4298
  store i32 %4299, ptr %102, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  %4300 = load i32, ptr %102, align 4, !tbaa !5
  %4301 = call ptr @s2n_stuffer_raw_read(ptr noundef %99, i32 noundef %4300)
  store ptr %4301, ptr %103, align 8, !tbaa !9
  br label %4302

4302:                                             ; preds = %4294
  %4303 = load i32, ptr @test_count, align 4, !tbaa !5
  %4304 = add nsw i32 %4303, 1
  store i32 %4304, ptr @test_count, align 4, !tbaa !5
  %4305 = load ptr, ptr %103, align 8, !tbaa !9
  %4306 = icmp eq ptr %4305, null
  br i1 %4306, label %4307, label %4360

4307:                                             ; preds = %4302
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

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

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

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

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

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

4356:                                             ; preds = %4355
  br label %4357

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

4358:                                             ; No predecessors!
  br label %4359

4359:                                             ; preds = %4358
  br label %4360

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

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361
  br label %4363

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

4369:                                             ; preds = %4363
  br label %4370

4370:                                             ; preds = %4369
  br label %4371

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

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

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

4400:                                             ; preds = %4378, %4371
  %4401 = load i32, ptr %105, align 4, !tbaa !5
  %4402 = call ptr @__errno_location() #12
  store i32 %4401, ptr %4402, align 4, !tbaa !5
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = load i32, ptr @test_count, align 4, !tbaa !5
  %4405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror(i32 noundef %4406, ptr noundef @.str.4)
  %4408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4409 = load i32, ptr %4408, align 4, !tbaa !5
  %4410 = call ptr @s2n_strerror_debug(i32 noundef %4409, ptr noundef @.str.4)
  %4411 = call ptr @__errno_location() #12
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = call ptr @strerror(i32 noundef %4412) #11
  %4414 = call ptr @__errno_location() #12
  %4415 = load i32, ptr %4414, align 4, !tbaa !5
  %4416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4403, ptr noundef @.str.5, i32 noundef %4404, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 327, ptr noundef %4407, ptr noundef %4410, ptr noundef %4413, i32 noundef %4415) #11
  br label %4417

4417:                                             ; preds = %4400, %4383
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %4418

4418:                                             ; preds = %4417
  br label %4419

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

4420:                                             ; No predecessors!
  br label %4421

4421:                                             ; preds = %4420
  br label %4422

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

4423:                                             ; preds = %4422
  br label %4424

4424:                                             ; preds = %4423
  call void @llvm.lifetime.start.p0(i64 48, ptr %106) #11
  br label %4425

4425:                                             ; preds = %4424
  %4426 = load i32, ptr @test_count, align 4, !tbaa !5
  %4427 = add nsw i32 %4426, 1
  store i32 %4427, ptr @test_count, align 4, !tbaa !5
  %4428 = call i32 @s2n_pkey_zero_init(ptr noundef %106)
  %4429 = icmp eq i32 %4428, -1
  br i1 %4429, label %4430, label %4483

4430:                                             ; preds = %4425
  br label %4431

4431:                                             ; preds = %4430
  br label %4432

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

4439:                                             ; preds = %4432
  %4440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4441 = call i32 @fileno(ptr noundef %4440) #11
  %4442 = call i32 @isatty(i32 noundef %4441) #11
  %4443 = icmp ne i32 %4442, 0
  br i1 %4443, label %4444, label %4461

4444:                                             ; preds = %4439
  %4445 = load i32, ptr %107, align 4, !tbaa !5
  %4446 = call ptr @__errno_location() #12
  store i32 %4445, ptr %4446, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = load i32, ptr @test_count, align 4, !tbaa !5
  %4449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4450 = load i32, ptr %4449, align 4, !tbaa !5
  %4451 = call ptr @s2n_strerror(i32 noundef %4450, ptr noundef @.str.4)
  %4452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4453 = load i32, ptr %4452, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror_debug(i32 noundef %4453, ptr noundef @.str.4)
  %4455 = call ptr @__errno_location() #12
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  %4457 = call ptr @strerror(i32 noundef %4456) #11
  %4458 = call ptr @__errno_location() #12
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4447, ptr noundef @.str.2, i32 noundef %4448, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 330, ptr noundef %4451, ptr noundef %4454, ptr noundef %4457, i32 noundef %4459) #11
  br label %4478

4461:                                             ; preds = %4439, %4432
  %4462 = load i32, ptr %107, align 4, !tbaa !5
  %4463 = call ptr @__errno_location() #12
  store i32 %4462, ptr %4463, align 4, !tbaa !5
  %4464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4465 = load i32, ptr @test_count, align 4, !tbaa !5
  %4466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4467 = load i32, ptr %4466, align 4, !tbaa !5
  %4468 = call ptr @s2n_strerror(i32 noundef %4467, ptr noundef @.str.4)
  %4469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4470 = load i32, ptr %4469, align 4, !tbaa !5
  %4471 = call ptr @s2n_strerror_debug(i32 noundef %4470, ptr noundef @.str.4)
  %4472 = call ptr @__errno_location() #12
  %4473 = load i32, ptr %4472, align 4, !tbaa !5
  %4474 = call ptr @strerror(i32 noundef %4473) #11
  %4475 = call ptr @__errno_location() #12
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  %4477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4464, ptr noundef @.str.5, i32 noundef %4465, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 330, ptr noundef %4468, ptr noundef %4471, ptr noundef %4474, i32 noundef %4476) #11
  br label %4478

4478:                                             ; preds = %4461, %4444
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %4479

4479:                                             ; preds = %4478
  br label %4480

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

4481:                                             ; No predecessors!
  br label %4482

4482:                                             ; preds = %4481
  br label %4483

4483:                                             ; preds = %4482, %4425
  br label %4484

4484:                                             ; preds = %4483
  br label %4485

4485:                                             ; preds = %4484
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  store i32 -1, ptr %108, align 4, !tbaa !5
  br label %4486

4486:                                             ; preds = %4485
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = add nsw i32 %4487, 1
  store i32 %4488, ptr @test_count, align 4, !tbaa !5
  %4489 = load ptr, ptr %95, align 8, !tbaa !9
  %4490 = load ptr, ptr %103, align 8, !tbaa !9
  %4491 = load i32, ptr %102, align 4, !tbaa !5
  %4492 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %94, ptr noundef %4489, ptr noundef %4490, i32 noundef %4491, ptr noundef %108, ptr noundef %106)
  %4493 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %4492, ptr %4493, align 4
  %4494 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  %4495 = load i32, ptr %4494, align 4
  %4496 = call zeroext i1 @s2n_result_is_ok(i32 %4495)
  br i1 %4496, label %4550, label %4497

4497:                                             ; preds = %4486
  br label %4498

4498:                                             ; preds = %4497
  br label %4499

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

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

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

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

4545:                                             ; preds = %4528, %4511
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %4546

4546:                                             ; preds = %4545
  br label %4547

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

4548:                                             ; No predecessors!
  br label %4549

4549:                                             ; preds = %4548
  br label %4550

4550:                                             ; preds = %4549, %4486
  br label %4551

4551:                                             ; preds = %4550
  br label %4552

4552:                                             ; preds = %4551
  br label %4553

4553:                                             ; preds = %4552
  %4554 = load i32, ptr @test_count, align 4, !tbaa !5
  %4555 = add nsw i32 %4554, 1
  store i32 %4555, ptr @test_count, align 4, !tbaa !5
  %4556 = getelementptr inbounds %struct.host_verify_data, ptr %97, i32 0, i32 2
  %4557 = load i8, ptr %4556, align 1, !tbaa !19
  %4558 = zext i8 %4557 to i32
  %4559 = icmp eq i32 1, %4558
  br i1 %4559, label %4613, label %4560

4560:                                             ; preds = %4553
  br label %4561

4561:                                             ; preds = %4560
  br label %4562

4562:                                             ; preds = %4561
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %4563 = call ptr @__errno_location() #12
  %4564 = load i32, ptr %4563, align 4, !tbaa !5
  store i32 %4564, ptr %111, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @s2n_print_stacktrace(ptr noundef %4565)
  %4567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4568 = trunc i8 %4567 to i1
  br i1 %4568, label %4569, label %4591

4569:                                             ; preds = %4562
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = call i32 @fileno(ptr noundef %4570) #11
  %4572 = call i32 @isatty(i32 noundef %4571) #11
  %4573 = icmp ne i32 %4572, 0
  br i1 %4573, label %4574, label %4591

4574:                                             ; preds = %4569
  %4575 = load i32, ptr %111, align 4, !tbaa !5
  %4576 = call ptr @__errno_location() #12
  store i32 %4575, ptr %4576, align 4, !tbaa !5
  %4577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4578 = load i32, ptr @test_count, align 4, !tbaa !5
  %4579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call ptr @s2n_strerror(i32 noundef %4580, ptr noundef @.str.4)
  %4582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = call ptr @s2n_strerror_debug(i32 noundef %4583, ptr noundef @.str.4)
  %4585 = call ptr @__errno_location() #12
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  %4587 = call ptr @strerror(i32 noundef %4586) #11
  %4588 = call ptr @__errno_location() #12
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4577, ptr noundef @.str.2, i32 noundef %4578, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 334, ptr noundef %4581, ptr noundef %4584, ptr noundef %4587, i32 noundef %4589) #11
  br label %4608

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

4608:                                             ; preds = %4591, %4574
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %4609

4609:                                             ; preds = %4608
  br label %4610

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

4611:                                             ; No predecessors!
  br label %4612

4612:                                             ; preds = %4611
  br label %4613

4613:                                             ; preds = %4612, %4553
  br label %4614

4614:                                             ; preds = %4613
  br label %4615

4615:                                             ; preds = %4614
  br label %4616

4616:                                             ; preds = %4615
  %4617 = load i32, ptr @test_count, align 4, !tbaa !5
  %4618 = add nsw i32 %4617, 1
  store i32 %4618, ptr @test_count, align 4, !tbaa !5
  %4619 = load i32, ptr %108, align 4, !tbaa !5
  %4620 = icmp eq i32 0, %4619
  br i1 %4620, label %4674, label %4621

4621:                                             ; preds = %4616
  br label %4622

4622:                                             ; preds = %4621
  br label %4623

4623:                                             ; preds = %4622
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %4624 = call ptr @__errno_location() #12
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  store i32 %4625, ptr %112, align 4, !tbaa !5
  %4626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4627 = call i32 @s2n_print_stacktrace(ptr noundef %4626)
  %4628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4629 = trunc i8 %4628 to i1
  br i1 %4629, label %4630, label %4652

4630:                                             ; preds = %4623
  %4631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4632 = call i32 @fileno(ptr noundef %4631) #11
  %4633 = call i32 @isatty(i32 noundef %4632) #11
  %4634 = icmp ne i32 %4633, 0
  br i1 %4634, label %4635, label %4652

4635:                                             ; preds = %4630
  %4636 = load i32, ptr %112, align 4, !tbaa !5
  %4637 = call ptr @__errno_location() #12
  store i32 %4636, ptr %4637, align 4, !tbaa !5
  %4638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4639 = load i32, ptr @test_count, align 4, !tbaa !5
  %4640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror(i32 noundef %4641, ptr noundef @.str.4)
  %4643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @s2n_strerror_debug(i32 noundef %4644, ptr noundef @.str.4)
  %4646 = call ptr @__errno_location() #12
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call ptr @strerror(i32 noundef %4647) #11
  %4649 = call ptr @__errno_location() #12
  %4650 = load i32, ptr %4649, align 4, !tbaa !5
  %4651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4638, ptr noundef @.str.2, i32 noundef %4639, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 335, ptr noundef %4642, ptr noundef %4645, ptr noundef %4648, i32 noundef %4650) #11
  br label %4669

4652:                                             ; preds = %4630, %4623
  %4653 = load i32, ptr %112, align 4, !tbaa !5
  %4654 = call ptr @__errno_location() #12
  store i32 %4653, ptr %4654, align 4, !tbaa !5
  %4655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4656 = load i32, ptr @test_count, align 4, !tbaa !5
  %4657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror(i32 noundef %4658, ptr noundef @.str.4)
  %4660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @s2n_strerror_debug(i32 noundef %4661, ptr noundef @.str.4)
  %4663 = call ptr @__errno_location() #12
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call ptr @strerror(i32 noundef %4664) #11
  %4666 = call ptr @__errno_location() #12
  %4667 = load i32, ptr %4666, align 4, !tbaa !5
  %4668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4655, ptr noundef @.str.5, i32 noundef %4656, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 335, ptr noundef %4659, ptr noundef %4662, ptr noundef %4665, i32 noundef %4667) #11
  br label %4669

4669:                                             ; preds = %4652, %4635
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

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

4672:                                             ; No predecessors!
  br label %4673

4673:                                             ; preds = %4672
  br label %4674

4674:                                             ; preds = %4673, %4616
  br label %4675

4675:                                             ; preds = %4674
  br label %4676

4676:                                             ; preds = %4675
  %4677 = load ptr, ptr %95, align 8, !tbaa !9
  %4678 = call i32 @s2n_connection_free(ptr noundef %4677)
  %4679 = call i32 @s2n_pkey_free(ptr noundef %106)
  %4680 = call i32 @s2n_x509_validator_wipe(ptr noundef %94)
  call void @s2n_x509_trust_store_wipe(ptr noundef %92)
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  %4681 = call i32 @s2n_stuffer_free(ptr noundef %99)
  call void @llvm.lifetime.end.p0(i64 40, ptr %99) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %94) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %113)
  br label %4682

4682:                                             ; preds = %4676
  %4683 = load i32, ptr @test_count, align 4, !tbaa !5
  %4684 = add nsw i32 %4683, 1
  store i32 %4684, ptr @test_count, align 4, !tbaa !5
  %4685 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %113, ptr noundef @.str.38, ptr noundef null)
  %4686 = icmp eq i32 0, %4685
  br i1 %4686, label %4740, label %4687

4687:                                             ; preds = %4682
  br label %4688

4688:                                             ; preds = %4687
  br label %4689

4689:                                             ; preds = %4688
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %4690 = call ptr @__errno_location() #12
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  store i32 %4691, ptr %114, align 4, !tbaa !5
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = call i32 @s2n_print_stacktrace(ptr noundef %4692)
  %4694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4695 = trunc i8 %4694 to i1
  br i1 %4695, label %4696, label %4718

4696:                                             ; preds = %4689
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = call i32 @fileno(ptr noundef %4697) #11
  %4699 = call i32 @isatty(i32 noundef %4698) #11
  %4700 = icmp ne i32 %4699, 0
  br i1 %4700, label %4701, label %4718

4701:                                             ; preds = %4696
  %4702 = load i32, ptr %114, align 4, !tbaa !5
  %4703 = call ptr @__errno_location() #12
  store i32 %4702, ptr %4703, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call ptr @s2n_strerror(i32 noundef %4707, ptr noundef @.str.4)
  %4709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  %4711 = call ptr @s2n_strerror_debug(i32 noundef %4710, ptr noundef @.str.4)
  %4712 = call ptr @__errno_location() #12
  %4713 = load i32, ptr %4712, align 4, !tbaa !5
  %4714 = call ptr @strerror(i32 noundef %4713) #11
  %4715 = call ptr @__errno_location() #12
  %4716 = load i32, ptr %4715, align 4, !tbaa !5
  %4717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4704, ptr noundef @.str.2, i32 noundef %4705, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 347, ptr noundef %4708, ptr noundef %4711, ptr noundef %4714, i32 noundef %4716) #11
  br label %4735

4718:                                             ; preds = %4696, %4689
  %4719 = load i32, ptr %114, align 4, !tbaa !5
  %4720 = call ptr @__errno_location() #12
  store i32 %4719, ptr %4720, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = load i32, ptr @test_count, align 4, !tbaa !5
  %4723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call ptr @s2n_strerror(i32 noundef %4724, ptr noundef @.str.4)
  %4726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = call ptr @s2n_strerror_debug(i32 noundef %4727, ptr noundef @.str.4)
  %4729 = call ptr @__errno_location() #12
  %4730 = load i32, ptr %4729, align 4, !tbaa !5
  %4731 = call ptr @strerror(i32 noundef %4730) #11
  %4732 = call ptr @__errno_location() #12
  %4733 = load i32, ptr %4732, align 4, !tbaa !5
  %4734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4721, ptr noundef @.str.5, i32 noundef %4722, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 347, ptr noundef %4725, ptr noundef %4728, ptr noundef %4731, i32 noundef %4733) #11
  br label %4735

4735:                                             ; preds = %4718, %4701
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

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

4738:                                             ; No predecessors!
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

4740:                                             ; preds = %4739, %4682
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

4742:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 56, ptr %115) #11
  %4743 = call i32 @s2n_x509_validator_init(ptr noundef %115, ptr noundef %113, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  %4744 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4744, ptr %116, align 8, !tbaa !9
  br label %4745

4745:                                             ; preds = %4742
  %4746 = load i32, ptr @test_count, align 4, !tbaa !5
  %4747 = add nsw i32 %4746, 1
  store i32 %4747, ptr @test_count, align 4, !tbaa !5
  %4748 = load ptr, ptr %116, align 8, !tbaa !9
  %4749 = icmp eq ptr %4748, null
  br i1 %4749, label %4750, label %4803

4750:                                             ; preds = %4745
  br label %4751

4751:                                             ; preds = %4750
  br label %4752

4752:                                             ; preds = %4751
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %4753 = call ptr @__errno_location() #12
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  store i32 %4754, ptr %117, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = call i32 @s2n_print_stacktrace(ptr noundef %4755)
  %4757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4758 = trunc i8 %4757 to i1
  br i1 %4758, label %4759, label %4781

4759:                                             ; preds = %4752
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = call i32 @fileno(ptr noundef %4760) #11
  %4762 = call i32 @isatty(i32 noundef %4761) #11
  %4763 = icmp ne i32 %4762, 0
  br i1 %4763, label %4764, label %4781

4764:                                             ; preds = %4759
  %4765 = load i32, ptr %117, align 4, !tbaa !5
  %4766 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %4775 = call ptr @__errno_location() #12
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #11
  %4778 = call ptr @__errno_location() #12
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4767, ptr noundef @.str.2, i32 noundef %4768, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4771, ptr noundef %4774, ptr noundef %4777, i32 noundef %4779) #11
  br label %4798

4781:                                             ; preds = %4759, %4752
  %4782 = load i32, ptr %117, align 4, !tbaa !5
  %4783 = call ptr @__errno_location() #12
  store i32 %4782, ptr %4783, align 4, !tbaa !5
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = load i32, ptr @test_count, align 4, !tbaa !5
  %4786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror(i32 noundef %4787, ptr noundef @.str.4)
  %4789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call ptr @s2n_strerror_debug(i32 noundef %4790, ptr noundef @.str.4)
  %4792 = call ptr @__errno_location() #12
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @strerror(i32 noundef %4793) #11
  %4795 = call ptr @__errno_location() #12
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4784, ptr noundef @.str.5, i32 noundef %4785, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4788, ptr noundef %4791, ptr noundef %4794, i32 noundef %4796) #11
  br label %4798

4798:                                             ; preds = %4781, %4764
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4799

4799:                                             ; preds = %4798
  br label %4800

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

4801:                                             ; No predecessors!
  br label %4802

4802:                                             ; preds = %4801
  br label %4803

4803:                                             ; preds = %4802, %4745
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

4805:                                             ; preds = %4804
  call void @llvm.lifetime.start.p0(i64 16, ptr %118) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %118, ptr align 8 @__const.main.verify_data, i64 16, i1 false)
  br label %4806

4806:                                             ; preds = %4805
  %4807 = load i32, ptr @test_count, align 4, !tbaa !5
  %4808 = add nsw i32 %4807, 1
  store i32 %4808, ptr @test_count, align 4, !tbaa !5
  %4809 = load ptr, ptr %116, align 8, !tbaa !9
  %4810 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %4809, ptr noundef @verify_host_verify_alt, ptr noundef %118)
  %4811 = icmp eq i32 %4810, -1
  br i1 %4811, label %4812, label %4865

4812:                                             ; preds = %4806
  br label %4813

4813:                                             ; preds = %4812
  br label %4814

4814:                                             ; preds = %4813
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %4815 = call ptr @__errno_location() #12
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  store i32 %4816, ptr %119, align 4, !tbaa !5
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = call i32 @s2n_print_stacktrace(ptr noundef %4817)
  %4819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4820 = trunc i8 %4819 to i1
  br i1 %4820, label %4821, label %4843

4821:                                             ; preds = %4814
  %4822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4823 = call i32 @fileno(ptr noundef %4822) #11
  %4824 = call i32 @isatty(i32 noundef %4823) #11
  %4825 = icmp ne i32 %4824, 0
  br i1 %4825, label %4826, label %4843

4826:                                             ; preds = %4821
  %4827 = load i32, ptr %119, align 4, !tbaa !5
  %4828 = call ptr @__errno_location() #12
  store i32 %4827, ptr %4828, align 4, !tbaa !5
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = load i32, ptr @test_count, align 4, !tbaa !5
  %4831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call ptr @s2n_strerror(i32 noundef %4832, ptr noundef @.str.4)
  %4834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4835 = load i32, ptr %4834, align 4, !tbaa !5
  %4836 = call ptr @s2n_strerror_debug(i32 noundef %4835, ptr noundef @.str.4)
  %4837 = call ptr @__errno_location() #12
  %4838 = load i32, ptr %4837, align 4, !tbaa !5
  %4839 = call ptr @strerror(i32 noundef %4838) #11
  %4840 = call ptr @__errno_location() #12
  %4841 = load i32, ptr %4840, align 4, !tbaa !5
  %4842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4829, ptr noundef @.str.2, i32 noundef %4830, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 356, ptr noundef %4833, ptr noundef %4836, ptr noundef %4839, i32 noundef %4841) #11
  br label %4860

4843:                                             ; preds = %4821, %4814
  %4844 = load i32, ptr %119, align 4, !tbaa !5
  %4845 = call ptr @__errno_location() #12
  store i32 %4844, ptr %4845, align 4, !tbaa !5
  %4846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4847 = load i32, ptr @test_count, align 4, !tbaa !5
  %4848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror(i32 noundef %4849, ptr noundef @.str.4)
  %4851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call ptr @s2n_strerror_debug(i32 noundef %4852, ptr noundef @.str.4)
  %4854 = call ptr @__errno_location() #12
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  %4856 = call ptr @strerror(i32 noundef %4855) #11
  %4857 = call ptr @__errno_location() #12
  %4858 = load i32, ptr %4857, align 4, !tbaa !5
  %4859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4846, ptr noundef @.str.5, i32 noundef %4847, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 356, ptr noundef %4850, ptr noundef %4853, ptr noundef %4856, i32 noundef %4858) #11
  br label %4860

4860:                                             ; preds = %4843, %4826
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %4861

4861:                                             ; preds = %4860
  br label %4862

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

4863:                                             ; No predecessors!
  br label %4864

4864:                                             ; preds = %4863
  br label %4865

4865:                                             ; preds = %4864, %4806
  br label %4866

4866:                                             ; preds = %4865
  br label %4867

4867:                                             ; preds = %4866
  call void @llvm.lifetime.start.p0(i64 40, ptr %120) #11
  call void @llvm.memset.p0.i64(ptr align 8 %120, i8 0, i64 40, i1 false)
  br label %4868

4868:                                             ; preds = %4867
  %4869 = load i32, ptr @test_count, align 4, !tbaa !5
  %4870 = add nsw i32 %4869, 1
  store i32 %4870, ptr @test_count, align 4, !tbaa !5
  %4871 = load ptr, ptr %116, align 8, !tbaa !9
  %4872 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %4871, ptr noundef @.str.38, ptr noundef %120)
  %4873 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %4872, ptr %4873, align 4
  %4874 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %4875 = load i32, ptr %4874, align 4
  %4876 = call zeroext i1 @s2n_result_is_ok(i32 %4875)
  br i1 %4876, label %4930, label %4877

4877:                                             ; preds = %4868
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %4880 = call ptr @__errno_location() #12
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  store i32 %4881, ptr %122, align 4, !tbaa !5
  %4882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4883 = call i32 @s2n_print_stacktrace(ptr noundef %4882)
  %4884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4885 = trunc i8 %4884 to i1
  br i1 %4885, label %4886, label %4908

4886:                                             ; preds = %4879
  %4887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4888 = call i32 @fileno(ptr noundef %4887) #11
  %4889 = call i32 @isatty(i32 noundef %4888) #11
  %4890 = icmp ne i32 %4889, 0
  br i1 %4890, label %4891, label %4908

4891:                                             ; preds = %4886
  %4892 = load i32, ptr %122, align 4, !tbaa !5
  %4893 = call ptr @__errno_location() #12
  store i32 %4892, ptr %4893, align 4, !tbaa !5
  %4894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror(i32 noundef %4897, ptr noundef @.str.4)
  %4899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call ptr @s2n_strerror_debug(i32 noundef %4900, ptr noundef @.str.4)
  %4902 = call ptr @__errno_location() #12
  %4903 = load i32, ptr %4902, align 4, !tbaa !5
  %4904 = call ptr @strerror(i32 noundef %4903) #11
  %4905 = call ptr @__errno_location() #12
  %4906 = load i32, ptr %4905, align 4, !tbaa !5
  %4907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4894, ptr noundef @.str.2, i32 noundef %4895, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 360, ptr noundef %4898, ptr noundef %4901, ptr noundef %4904, i32 noundef %4906) #11
  br label %4925

4908:                                             ; preds = %4886, %4879
  %4909 = load i32, ptr %122, align 4, !tbaa !5
  %4910 = call ptr @__errno_location() #12
  store i32 %4909, ptr %4910, align 4, !tbaa !5
  %4911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4912 = load i32, ptr @test_count, align 4, !tbaa !5
  %4913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call ptr @s2n_strerror(i32 noundef %4914, ptr noundef @.str.4)
  %4916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4917 = load i32, ptr %4916, align 4, !tbaa !5
  %4918 = call ptr @s2n_strerror_debug(i32 noundef %4917, ptr noundef @.str.4)
  %4919 = call ptr @__errno_location() #12
  %4920 = load i32, ptr %4919, align 4, !tbaa !5
  %4921 = call ptr @strerror(i32 noundef %4920) #11
  %4922 = call ptr @__errno_location() #12
  %4923 = load i32, ptr %4922, align 4, !tbaa !5
  %4924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4911, ptr noundef @.str.5, i32 noundef %4912, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 360, ptr noundef %4915, ptr noundef %4918, ptr noundef %4921, i32 noundef %4923) #11
  br label %4925

4925:                                             ; preds = %4908, %4891
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %4926

4926:                                             ; preds = %4925
  br label %4927

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

4928:                                             ; No predecessors!
  br label %4929

4929:                                             ; preds = %4928
  br label %4930

4930:                                             ; preds = %4929, %4868
  br label %4931

4931:                                             ; preds = %4930
  br label %4932

4932:                                             ; preds = %4931
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %4933 = getelementptr inbounds %struct.s2n_stuffer, ptr %120, i32 0, i32 2
  %4934 = load i32, ptr %4933, align 4, !tbaa !15
  %4935 = getelementptr inbounds %struct.s2n_stuffer, ptr %120, i32 0, i32 1
  %4936 = load i32, ptr %4935, align 8, !tbaa !18
  %4937 = sub i32 %4934, %4936
  store i32 %4937, ptr %123, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  %4938 = load i32, ptr %123, align 4, !tbaa !5
  %4939 = call ptr @s2n_stuffer_raw_read(ptr noundef %120, i32 noundef %4938)
  store ptr %4939, ptr %124, align 8, !tbaa !9
  br label %4940

4940:                                             ; preds = %4932
  %4941 = load i32, ptr @test_count, align 4, !tbaa !5
  %4942 = add nsw i32 %4941, 1
  store i32 %4942, ptr @test_count, align 4, !tbaa !5
  %4943 = load ptr, ptr %124, align 8, !tbaa !9
  %4944 = icmp eq ptr %4943, null
  br i1 %4944, label %4945, label %4998

4945:                                             ; preds = %4940
  br label %4946

4946:                                             ; preds = %4945
  br label %4947

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

4954:                                             ; preds = %4947
  %4955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4956 = call i32 @fileno(ptr noundef %4955) #11
  %4957 = call i32 @isatty(i32 noundef %4956) #11
  %4958 = icmp ne i32 %4957, 0
  br i1 %4958, label %4959, label %4976

4959:                                             ; preds = %4954
  %4960 = load i32, ptr %125, align 4, !tbaa !5
  %4961 = call ptr @__errno_location() #12
  store i32 %4960, ptr %4961, align 4, !tbaa !5
  %4962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4963 = load i32, ptr @test_count, align 4, !tbaa !5
  %4964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @s2n_strerror(i32 noundef %4965, ptr noundef @.str.4)
  %4967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call ptr @s2n_strerror_debug(i32 noundef %4968, ptr noundef @.str.4)
  %4970 = call ptr @__errno_location() #12
  %4971 = load i32, ptr %4970, align 4, !tbaa !5
  %4972 = call ptr @strerror(i32 noundef %4971) #11
  %4973 = call ptr @__errno_location() #12
  %4974 = load i32, ptr %4973, align 4, !tbaa !5
  %4975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4962, ptr noundef @.str.2, i32 noundef %4963, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 363, ptr noundef %4966, ptr noundef %4969, ptr noundef %4972, i32 noundef %4974) #11
  br label %4993

4976:                                             ; preds = %4954, %4947
  %4977 = load i32, ptr %125, align 4, !tbaa !5
  %4978 = call ptr @__errno_location() #12
  store i32 %4977, ptr %4978, align 4, !tbaa !5
  %4979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4980 = load i32, ptr @test_count, align 4, !tbaa !5
  %4981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4982 = load i32, ptr %4981, align 4, !tbaa !5
  %4983 = call ptr @s2n_strerror(i32 noundef %4982, ptr noundef @.str.4)
  %4984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4985 = load i32, ptr %4984, align 4, !tbaa !5
  %4986 = call ptr @s2n_strerror_debug(i32 noundef %4985, ptr noundef @.str.4)
  %4987 = call ptr @__errno_location() #12
  %4988 = load i32, ptr %4987, align 4, !tbaa !5
  %4989 = call ptr @strerror(i32 noundef %4988) #11
  %4990 = call ptr @__errno_location() #12
  %4991 = load i32, ptr %4990, align 4, !tbaa !5
  %4992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4979, ptr noundef @.str.5, i32 noundef %4980, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 363, ptr noundef %4983, ptr noundef %4986, ptr noundef %4989, i32 noundef %4991) #11
  br label %4993

4993:                                             ; preds = %4976, %4959
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %4994

4994:                                             ; preds = %4993
  br label %4995

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

4996:                                             ; No predecessors!
  br label %4997

4997:                                             ; preds = %4996
  br label %4998

4998:                                             ; preds = %4997, %4940
  br label %4999

4999:                                             ; preds = %4998
  br label %5000

5000:                                             ; preds = %4999
  call void @llvm.lifetime.start.p0(i64 48, ptr %126) #11
  br label %5001

5001:                                             ; preds = %5000
  %5002 = load i32, ptr @test_count, align 4, !tbaa !5
  %5003 = add nsw i32 %5002, 1
  store i32 %5003, ptr @test_count, align 4, !tbaa !5
  %5004 = call i32 @s2n_pkey_zero_init(ptr noundef %126)
  %5005 = icmp eq i32 %5004, -1
  br i1 %5005, label %5006, label %5059

5006:                                             ; preds = %5001
  br label %5007

5007:                                             ; preds = %5006
  br label %5008

5008:                                             ; preds = %5007
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %5009 = call ptr @__errno_location() #12
  %5010 = load i32, ptr %5009, align 4, !tbaa !5
  store i32 %5010, ptr %127, align 4, !tbaa !5
  %5011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5012 = call i32 @s2n_print_stacktrace(ptr noundef %5011)
  %5013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5014 = trunc i8 %5013 to i1
  br i1 %5014, label %5015, label %5037

5015:                                             ; preds = %5008
  %5016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5017 = call i32 @fileno(ptr noundef %5016) #11
  %5018 = call i32 @isatty(i32 noundef %5017) #11
  %5019 = icmp ne i32 %5018, 0
  br i1 %5019, label %5020, label %5037

5020:                                             ; preds = %5015
  %5021 = load i32, ptr %127, align 4, !tbaa !5
  %5022 = call ptr @__errno_location() #12
  store i32 %5021, ptr %5022, align 4, !tbaa !5
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = load i32, ptr @test_count, align 4, !tbaa !5
  %5025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call ptr @s2n_strerror(i32 noundef %5026, ptr noundef @.str.4)
  %5028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5029 = load i32, ptr %5028, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror_debug(i32 noundef %5029, ptr noundef @.str.4)
  %5031 = call ptr @__errno_location() #12
  %5032 = load i32, ptr %5031, align 4, !tbaa !5
  %5033 = call ptr @strerror(i32 noundef %5032) #11
  %5034 = call ptr @__errno_location() #12
  %5035 = load i32, ptr %5034, align 4, !tbaa !5
  %5036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5023, ptr noundef @.str.2, i32 noundef %5024, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 366, ptr noundef %5027, ptr noundef %5030, ptr noundef %5033, i32 noundef %5035) #11
  br label %5054

5037:                                             ; preds = %5015, %5008
  %5038 = load i32, ptr %127, align 4, !tbaa !5
  %5039 = call ptr @__errno_location() #12
  store i32 %5038, ptr %5039, align 4, !tbaa !5
  %5040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5041 = load i32, ptr @test_count, align 4, !tbaa !5
  %5042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5043 = load i32, ptr %5042, align 4, !tbaa !5
  %5044 = call ptr @s2n_strerror(i32 noundef %5043, ptr noundef @.str.4)
  %5045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5046 = load i32, ptr %5045, align 4, !tbaa !5
  %5047 = call ptr @s2n_strerror_debug(i32 noundef %5046, ptr noundef @.str.4)
  %5048 = call ptr @__errno_location() #12
  %5049 = load i32, ptr %5048, align 4, !tbaa !5
  %5050 = call ptr @strerror(i32 noundef %5049) #11
  %5051 = call ptr @__errno_location() #12
  %5052 = load i32, ptr %5051, align 4, !tbaa !5
  %5053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5040, ptr noundef @.str.5, i32 noundef %5041, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 366, ptr noundef %5044, ptr noundef %5047, ptr noundef %5050, i32 noundef %5052) #11
  br label %5054

5054:                                             ; preds = %5037, %5020
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5055

5055:                                             ; preds = %5054
  br label %5056

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

5057:                                             ; No predecessors!
  br label %5058

5058:                                             ; preds = %5057
  br label %5059

5059:                                             ; preds = %5058, %5001
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

5061:                                             ; preds = %5060
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  store i32 -1, ptr %128, align 4, !tbaa !5
  br label %5062

5062:                                             ; preds = %5061
  %5063 = load i32, ptr @test_count, align 4, !tbaa !5
  %5064 = add nsw i32 %5063, 1
  store i32 %5064, ptr @test_count, align 4, !tbaa !5
  %5065 = load ptr, ptr %116, align 8, !tbaa !9
  %5066 = load ptr, ptr %124, align 8, !tbaa !9
  %5067 = load i32, ptr %123, align 4, !tbaa !5
  %5068 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %115, ptr noundef %5065, ptr noundef %5066, i32 noundef %5067, ptr noundef %128, ptr noundef %126)
  %5069 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  store i32 %5068, ptr %5069, align 4
  %5070 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  %5071 = load i32, ptr %5070, align 4
  %5072 = call zeroext i1 @s2n_result_is_ok(i32 %5071)
  br i1 %5072, label %5126, label %5073

5073:                                             ; preds = %5062
  br label %5074

5074:                                             ; preds = %5073
  br label %5075

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

5082:                                             ; preds = %5075
  %5083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5084 = call i32 @fileno(ptr noundef %5083) #11
  %5085 = call i32 @isatty(i32 noundef %5084) #11
  %5086 = icmp ne i32 %5085, 0
  br i1 %5086, label %5087, label %5104

5087:                                             ; preds = %5082
  %5088 = load i32, ptr %130, align 4, !tbaa !5
  %5089 = call ptr @__errno_location() #12
  store i32 %5088, ptr %5089, align 4, !tbaa !5
  %5090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5091 = load i32, ptr @test_count, align 4, !tbaa !5
  %5092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5093 = load i32, ptr %5092, align 4, !tbaa !5
  %5094 = call ptr @s2n_strerror(i32 noundef %5093, ptr noundef @.str.4)
  %5095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call ptr @s2n_strerror_debug(i32 noundef %5096, ptr noundef @.str.4)
  %5098 = call ptr @__errno_location() #12
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call ptr @strerror(i32 noundef %5099) #11
  %5101 = call ptr @__errno_location() #12
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  %5103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5090, ptr noundef @.str.2, i32 noundef %5091, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 368, ptr noundef %5094, ptr noundef %5097, ptr noundef %5100, i32 noundef %5102) #11
  br label %5121

5104:                                             ; preds = %5082, %5075
  %5105 = load i32, ptr %130, align 4, !tbaa !5
  %5106 = call ptr @__errno_location() #12
  store i32 %5105, ptr %5106, align 4, !tbaa !5
  %5107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5108 = load i32, ptr @test_count, align 4, !tbaa !5
  %5109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5110 = load i32, ptr %5109, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror(i32 noundef %5110, ptr noundef @.str.4)
  %5112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5113 = load i32, ptr %5112, align 4, !tbaa !5
  %5114 = call ptr @s2n_strerror_debug(i32 noundef %5113, ptr noundef @.str.4)
  %5115 = call ptr @__errno_location() #12
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  %5117 = call ptr @strerror(i32 noundef %5116) #11
  %5118 = call ptr @__errno_location() #12
  %5119 = load i32, ptr %5118, align 4, !tbaa !5
  %5120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5107, ptr noundef @.str.5, i32 noundef %5108, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 368, ptr noundef %5111, ptr noundef %5114, ptr noundef %5117, i32 noundef %5119) #11
  br label %5121

5121:                                             ; preds = %5104, %5087
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %5122

5122:                                             ; preds = %5121
  br label %5123

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

5124:                                             ; No predecessors!
  br label %5125

5125:                                             ; preds = %5124
  br label %5126

5126:                                             ; preds = %5125, %5062
  br label %5127

5127:                                             ; preds = %5126
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

5129:                                             ; preds = %5128
  %5130 = load i32, ptr @test_count, align 4, !tbaa !5
  %5131 = add nsw i32 %5130, 1
  store i32 %5131, ptr @test_count, align 4, !tbaa !5
  %5132 = getelementptr inbounds %struct.host_verify_data, ptr %118, i32 0, i32 2
  %5133 = load i8, ptr %5132, align 1, !tbaa !19
  %5134 = zext i8 %5133 to i32
  %5135 = icmp eq i32 1, %5134
  br i1 %5135, label %5189, label %5136

5136:                                             ; preds = %5129
  br label %5137

5137:                                             ; preds = %5136
  br label %5138

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

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

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

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

5184:                                             ; preds = %5167, %5150
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

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

5187:                                             ; No predecessors!
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

5189:                                             ; preds = %5188, %5129
  br label %5190

5190:                                             ; preds = %5189
  br label %5191

5191:                                             ; preds = %5190
  br label %5192

5192:                                             ; preds = %5191
  %5193 = load i32, ptr @test_count, align 4, !tbaa !5
  %5194 = add nsw i32 %5193, 1
  store i32 %5194, ptr @test_count, align 4, !tbaa !5
  %5195 = getelementptr inbounds %struct.host_verify_data, ptr %118, i32 0, i32 1
  %5196 = load i8, ptr %5195, align 8, !tbaa !21
  %5197 = zext i8 %5196 to i32
  %5198 = icmp eq i32 1, %5197
  br i1 %5198, label %5252, label %5199

5199:                                             ; preds = %5192
  br label %5200

5200:                                             ; preds = %5199
  br label %5201

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

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

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

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

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

5248:                                             ; preds = %5247
  br label %5249

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

5250:                                             ; No predecessors!
  br label %5251

5251:                                             ; preds = %5250
  br label %5252

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

5253:                                             ; preds = %5252
  br label %5254

5254:                                             ; preds = %5253
  br label %5255

5255:                                             ; preds = %5254
  %5256 = load i32, ptr @test_count, align 4, !tbaa !5
  %5257 = add nsw i32 %5256, 1
  store i32 %5257, ptr @test_count, align 4, !tbaa !5
  %5258 = load i32, ptr %128, align 4, !tbaa !5
  %5259 = icmp eq i32 0, %5258
  br i1 %5259, label %5313, label %5260

5260:                                             ; preds = %5255
  br label %5261

5261:                                             ; preds = %5260
  br label %5262

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

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

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

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

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

5309:                                             ; preds = %5308
  br label %5310

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

5311:                                             ; No predecessors!
  br label %5312

5312:                                             ; preds = %5311
  br label %5313

5313:                                             ; preds = %5312, %5255
  br label %5314

5314:                                             ; preds = %5313
  br label %5315

5315:                                             ; preds = %5314
  %5316 = load ptr, ptr %116, align 8, !tbaa !9
  %5317 = call i32 @s2n_connection_free(ptr noundef %5316)
  %5318 = call i32 @s2n_pkey_free(ptr noundef %126)
  %5319 = call i32 @s2n_x509_validator_wipe(ptr noundef %115)
  call void @s2n_x509_trust_store_wipe(ptr noundef %113)
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  %5320 = call i32 @s2n_stuffer_free(ptr noundef %120)
  call void @llvm.lifetime.end.p0(i64 40, ptr %120) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %115) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %134) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %134)
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #11
  store ptr null, ptr %135, align 8, !tbaa !9
  br label %5321

5321:                                             ; preds = %5315
  %5322 = load i32, ptr @test_count, align 4, !tbaa !5
  %5323 = add nsw i32 %5322, 1
  store i32 %5323, ptr @test_count, align 4, !tbaa !5
  %5324 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %5324, ptr %135, align 8, !tbaa !9
  %5325 = icmp eq ptr %5324, null
  br i1 %5325, label %5326, label %5379

5326:                                             ; preds = %5321
  br label %5327

5327:                                             ; preds = %5326
  br label %5328

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

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

5340:                                             ; preds = %5335
  %5341 = load i32, ptr %136, align 4, !tbaa !5
  %5342 = call ptr @__errno_location() #12
  store i32 %5341, ptr %5342, align 4, !tbaa !5
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = load i32, ptr @test_count, align 4, !tbaa !5
  %5345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5346 = load i32, ptr %5345, align 4, !tbaa !5
  %5347 = call ptr @s2n_strerror(i32 noundef %5346, ptr noundef @.str.4)
  %5348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5349 = load i32, ptr %5348, align 4, !tbaa !5
  %5350 = call ptr @s2n_strerror_debug(i32 noundef %5349, ptr noundef @.str.4)
  %5351 = call ptr @__errno_location() #12
  %5352 = load i32, ptr %5351, align 4, !tbaa !5
  %5353 = call ptr @strerror(i32 noundef %5352) #11
  %5354 = call ptr @__errno_location() #12
  %5355 = load i32, ptr %5354, align 4, !tbaa !5
  %5356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5343, ptr noundef @.str.2, i32 noundef %5344, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 386, ptr noundef %5347, ptr noundef %5350, ptr noundef %5353, i32 noundef %5355) #11
  br label %5374

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

5374:                                             ; preds = %5357, %5340
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %5375

5375:                                             ; preds = %5374
  br label %5376

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

5377:                                             ; No predecessors!
  br label %5378

5378:                                             ; preds = %5377
  br label %5379

5379:                                             ; preds = %5378, %5321
  br label %5380

5380:                                             ; preds = %5379
  br label %5381

5381:                                             ; preds = %5380
  br label %5382

5382:                                             ; preds = %5381
  %5383 = load i32, ptr @test_count, align 4, !tbaa !5
  %5384 = add nsw i32 %5383, 1
  store i32 %5384, ptr @test_count, align 4, !tbaa !5
  %5385 = load ptr, ptr %135, align 8, !tbaa !9
  %5386 = call i32 @s2n_read_test_pem(ptr noundef @.str.11, ptr noundef %5385, i64 noundef 12000)
  %5387 = icmp eq i32 %5386, -1
  br i1 %5387, label %5388, label %5441

5388:                                             ; preds = %5382
  br label %5389

5389:                                             ; preds = %5388
  br label %5390

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

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

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

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

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

5437:                                             ; preds = %5436
  br label %5438

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

5439:                                             ; No predecessors!
  br label %5440

5440:                                             ; preds = %5439
  br label %5441

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

5442:                                             ; preds = %5441
  br label %5443

5443:                                             ; preds = %5442
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %5444 = load ptr, ptr %135, align 8, !tbaa !9
  %5445 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %134, ptr noundef %5444)
  store i32 %5445, ptr %138, align 4, !tbaa !5
  %5446 = load ptr, ptr %135, align 8, !tbaa !9
  call void @free(ptr noundef %5446) #11
  br label %5447

5447:                                             ; preds = %5443
  %5448 = load i32, ptr @test_count, align 4, !tbaa !5
  %5449 = add nsw i32 %5448, 1
  store i32 %5449, ptr @test_count, align 4, !tbaa !5
  %5450 = load i32, ptr %138, align 4, !tbaa !5
  %5451 = icmp eq i32 0, %5450
  br i1 %5451, label %5505, label %5452

5452:                                             ; preds = %5447
  br label %5453

5453:                                             ; preds = %5452
  br label %5454

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

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

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

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

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

5501:                                             ; preds = %5500
  br label %5502

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

5503:                                             ; No predecessors!
  br label %5504

5504:                                             ; preds = %5503
  br label %5505

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

5506:                                             ; preds = %5505
  br label %5507

5507:                                             ; preds = %5506
  call void @llvm.lifetime.start.p0(i64 56, ptr %140) #11
  %5508 = call i32 @s2n_x509_validator_init(ptr noundef %140, ptr noundef %134, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #11
  %5509 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5509, ptr %141, align 8, !tbaa !9
  br label %5510

5510:                                             ; preds = %5507
  %5511 = load i32, ptr @test_count, align 4, !tbaa !5
  %5512 = add nsw i32 %5511, 1
  store i32 %5512, ptr @test_count, align 4, !tbaa !5
  %5513 = load ptr, ptr %141, align 8, !tbaa !9
  %5514 = icmp eq ptr %5513, null
  br i1 %5514, label %5515, label %5568

5515:                                             ; preds = %5510
  br label %5516

5516:                                             ; preds = %5515
  br label %5517

5517:                                             ; preds = %5516
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %5518 = call ptr @__errno_location() #12
  %5519 = load i32, ptr %5518, align 4, !tbaa !5
  store i32 %5519, ptr %142, align 4, !tbaa !5
  %5520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5521 = call i32 @s2n_print_stacktrace(ptr noundef %5520)
  %5522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5523 = trunc i8 %5522 to i1
  br i1 %5523, label %5524, label %5546

5524:                                             ; preds = %5517
  %5525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5526 = call i32 @fileno(ptr noundef %5525) #11
  %5527 = call i32 @isatty(i32 noundef %5526) #11
  %5528 = icmp ne i32 %5527, 0
  br i1 %5528, label %5529, label %5546

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

5546:                                             ; preds = %5524, %5517
  %5547 = load i32, ptr %142, align 4, !tbaa !5
  %5548 = call ptr @__errno_location() #12
  store i32 %5547, ptr %5548, align 4, !tbaa !5
  %5549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5550 = load i32, ptr @test_count, align 4, !tbaa !5
  %5551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = call ptr @s2n_strerror(i32 noundef %5552, ptr noundef @.str.4)
  %5554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  %5556 = call ptr @s2n_strerror_debug(i32 noundef %5555, ptr noundef @.str.4)
  %5557 = call ptr @__errno_location() #12
  %5558 = load i32, ptr %5557, align 4, !tbaa !5
  %5559 = call ptr @strerror(i32 noundef %5558) #11
  %5560 = call ptr @__errno_location() #12
  %5561 = load i32, ptr %5560, align 4, !tbaa !5
  %5562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5549, ptr noundef @.str.5, i32 noundef %5550, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 396, ptr noundef %5553, ptr noundef %5556, ptr noundef %5559, i32 noundef %5561) #11
  br label %5563

5563:                                             ; preds = %5546, %5529
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %5564

5564:                                             ; preds = %5563
  br label %5565

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

5566:                                             ; No predecessors!
  br label %5567

5567:                                             ; preds = %5566
  br label %5568

5568:                                             ; preds = %5567, %5510
  br label %5569

5569:                                             ; preds = %5568
  br label %5570

5570:                                             ; preds = %5569
  call void @llvm.lifetime.start.p0(i64 16, ptr %143) #11
  call void @llvm.memset.p0.i64(ptr align 8 %143, i8 0, i64 16, i1 false)
  br label %5571

5571:                                             ; preds = %5570
  %5572 = load i32, ptr @test_count, align 4, !tbaa !5
  %5573 = add nsw i32 %5572, 1
  store i32 %5573, ptr @test_count, align 4, !tbaa !5
  %5574 = load ptr, ptr %141, align 8, !tbaa !9
  %5575 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %5574, ptr noundef @verify_host_accept_everything, ptr noundef %143)
  %5576 = icmp eq i32 %5575, -1
  br i1 %5576, label %5577, label %5630

5577:                                             ; preds = %5571
  br label %5578

5578:                                             ; preds = %5577
  br label %5579

5579:                                             ; preds = %5578
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %5580 = call ptr @__errno_location() #12
  %5581 = load i32, ptr %5580, align 4, !tbaa !5
  store i32 %5581, ptr %144, align 4, !tbaa !5
  %5582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5583 = call i32 @s2n_print_stacktrace(ptr noundef %5582)
  %5584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5585 = trunc i8 %5584 to i1
  br i1 %5585, label %5586, label %5608

5586:                                             ; preds = %5579
  %5587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5588 = call i32 @fileno(ptr noundef %5587) #11
  %5589 = call i32 @isatty(i32 noundef %5588) #11
  %5590 = icmp ne i32 %5589, 0
  br i1 %5590, label %5591, label %5608

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

5608:                                             ; preds = %5586, %5579
  %5609 = load i32, ptr %144, align 4, !tbaa !5
  %5610 = call ptr @__errno_location() #12
  store i32 %5609, ptr %5610, align 4, !tbaa !5
  %5611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5612 = load i32, ptr @test_count, align 4, !tbaa !5
  %5613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5614 = load i32, ptr %5613, align 4, !tbaa !5
  %5615 = call ptr @s2n_strerror(i32 noundef %5614, ptr noundef @.str.4)
  %5616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = call ptr @s2n_strerror_debug(i32 noundef %5617, ptr noundef @.str.4)
  %5619 = call ptr @__errno_location() #12
  %5620 = load i32, ptr %5619, align 4, !tbaa !5
  %5621 = call ptr @strerror(i32 noundef %5620) #11
  %5622 = call ptr @__errno_location() #12
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  %5624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5611, ptr noundef @.str.5, i32 noundef %5612, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 399, ptr noundef %5615, ptr noundef %5618, ptr noundef %5621, i32 noundef %5623) #11
  br label %5625

5625:                                             ; preds = %5608, %5591
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %5626

5626:                                             ; preds = %5625
  br label %5627

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

5628:                                             ; No predecessors!
  br label %5629

5629:                                             ; preds = %5628
  br label %5630

5630:                                             ; preds = %5629, %5571
  br label %5631

5631:                                             ; preds = %5630
  br label %5632

5632:                                             ; preds = %5631
  call void @llvm.lifetime.start.p0(i64 40, ptr %145) #11
  call void @llvm.memset.p0.i64(ptr align 8 %145, i8 0, i64 40, i1 false)
  br label %5633

5633:                                             ; preds = %5632
  %5634 = load i32, ptr @test_count, align 4, !tbaa !5
  %5635 = add nsw i32 %5634, 1
  store i32 %5635, ptr @test_count, align 4, !tbaa !5
  %5636 = load ptr, ptr %141, align 8, !tbaa !9
  %5637 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %5636, ptr noundef @.str.11, ptr noundef %145)
  %5638 = getelementptr inbounds %struct.s2n_result, ptr %146, i32 0, i32 0
  store i32 %5637, ptr %5638, align 4
  %5639 = getelementptr inbounds %struct.s2n_result, ptr %146, i32 0, i32 0
  %5640 = load i32, ptr %5639, align 4
  %5641 = call zeroext i1 @s2n_result_is_ok(i32 %5640)
  br i1 %5641, label %5695, label %5642

5642:                                             ; preds = %5633
  br label %5643

5643:                                             ; preds = %5642
  br label %5644

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

5651:                                             ; preds = %5644
  %5652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5653 = call i32 @fileno(ptr noundef %5652) #11
  %5654 = call i32 @isatty(i32 noundef %5653) #11
  %5655 = icmp ne i32 %5654, 0
  br i1 %5655, label %5656, label %5673

5656:                                             ; preds = %5651
  %5657 = load i32, ptr %147, align 4, !tbaa !5
  %5658 = call ptr @__errno_location() #12
  store i32 %5657, ptr %5658, align 4, !tbaa !5
  %5659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5660 = load i32, ptr @test_count, align 4, !tbaa !5
  %5661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @s2n_strerror(i32 noundef %5662, ptr noundef @.str.4)
  %5664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call ptr @s2n_strerror_debug(i32 noundef %5665, ptr noundef @.str.4)
  %5667 = call ptr @__errno_location() #12
  %5668 = load i32, ptr %5667, align 4, !tbaa !5
  %5669 = call ptr @strerror(i32 noundef %5668) #11
  %5670 = call ptr @__errno_location() #12
  %5671 = load i32, ptr %5670, align 4, !tbaa !5
  %5672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5659, ptr noundef @.str.2, i32 noundef %5660, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 402, ptr noundef %5663, ptr noundef %5666, ptr noundef %5669, i32 noundef %5671) #11
  br label %5690

5673:                                             ; preds = %5651, %5644
  %5674 = load i32, ptr %147, align 4, !tbaa !5
  %5675 = call ptr @__errno_location() #12
  store i32 %5674, ptr %5675, align 4, !tbaa !5
  %5676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5677 = load i32, ptr @test_count, align 4, !tbaa !5
  %5678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5679 = load i32, ptr %5678, align 4, !tbaa !5
  %5680 = call ptr @s2n_strerror(i32 noundef %5679, ptr noundef @.str.4)
  %5681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5682 = load i32, ptr %5681, align 4, !tbaa !5
  %5683 = call ptr @s2n_strerror_debug(i32 noundef %5682, ptr noundef @.str.4)
  %5684 = call ptr @__errno_location() #12
  %5685 = load i32, ptr %5684, align 4, !tbaa !5
  %5686 = call ptr @strerror(i32 noundef %5685) #11
  %5687 = call ptr @__errno_location() #12
  %5688 = load i32, ptr %5687, align 4, !tbaa !5
  %5689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5676, ptr noundef @.str.5, i32 noundef %5677, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 402, ptr noundef %5680, ptr noundef %5683, ptr noundef %5686, i32 noundef %5688) #11
  br label %5690

5690:                                             ; preds = %5673, %5656
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %5691

5691:                                             ; preds = %5690
  br label %5692

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

5693:                                             ; No predecessors!
  br label %5694

5694:                                             ; preds = %5693
  br label %5695

5695:                                             ; preds = %5694, %5633
  br label %5696

5696:                                             ; preds = %5695
  br label %5697

5697:                                             ; preds = %5696
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %5698 = getelementptr inbounds %struct.s2n_stuffer, ptr %145, i32 0, i32 2
  %5699 = load i32, ptr %5698, align 4, !tbaa !15
  %5700 = getelementptr inbounds %struct.s2n_stuffer, ptr %145, i32 0, i32 1
  %5701 = load i32, ptr %5700, align 8, !tbaa !18
  %5702 = sub i32 %5699, %5701
  store i32 %5702, ptr %148, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #11
  %5703 = load i32, ptr %148, align 4, !tbaa !5
  %5704 = call ptr @s2n_stuffer_raw_read(ptr noundef %145, i32 noundef %5703)
  store ptr %5704, ptr %149, align 8, !tbaa !9
  br label %5705

5705:                                             ; preds = %5697
  %5706 = load i32, ptr @test_count, align 4, !tbaa !5
  %5707 = add nsw i32 %5706, 1
  store i32 %5707, ptr @test_count, align 4, !tbaa !5
  %5708 = load ptr, ptr %149, align 8, !tbaa !9
  %5709 = icmp eq ptr %5708, null
  br i1 %5709, label %5710, label %5763

5710:                                             ; preds = %5705
  br label %5711

5711:                                             ; preds = %5710
  br label %5712

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

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

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

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

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

5759:                                             ; preds = %5758
  br label %5760

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

5761:                                             ; No predecessors!
  br label %5762

5762:                                             ; preds = %5761
  br label %5763

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

5764:                                             ; preds = %5763
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

5766:                                             ; preds = %5765
  %5767 = load i32, ptr @test_count, align 4, !tbaa !5
  %5768 = add nsw i32 %5767, 1
  store i32 %5768, ptr @test_count, align 4, !tbaa !5
  %5769 = load ptr, ptr %141, align 8, !tbaa !9
  %5770 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5769, ptr noundef @.str.23)
  %5771 = icmp eq i32 %5770, -1
  br i1 %5771, label %5772, label %5825

5772:                                             ; preds = %5766
  br label %5773

5773:                                             ; preds = %5772
  br label %5774

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

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

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

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

5820:                                             ; preds = %5803, %5786
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %5821

5821:                                             ; preds = %5820
  br label %5822

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

5823:                                             ; No predecessors!
  br label %5824

5824:                                             ; preds = %5823
  br label %5825

5825:                                             ; preds = %5824, %5766
  br label %5826

5826:                                             ; preds = %5825
  br label %5827

5827:                                             ; preds = %5826
  call void @llvm.lifetime.start.p0(i64 48, ptr %152) #11
  br label %5828

5828:                                             ; preds = %5827
  %5829 = load i32, ptr @test_count, align 4, !tbaa !5
  %5830 = add nsw i32 %5829, 1
  store i32 %5830, ptr @test_count, align 4, !tbaa !5
  %5831 = call i32 @s2n_pkey_zero_init(ptr noundef %152)
  %5832 = icmp eq i32 %5831, -1
  br i1 %5832, label %5833, label %5886

5833:                                             ; preds = %5828
  br label %5834

5834:                                             ; preds = %5833
  br label %5835

5835:                                             ; preds = %5834
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %5836 = call ptr @__errno_location() #12
  %5837 = load i32, ptr %5836, align 4, !tbaa !5
  store i32 %5837, ptr %153, align 4, !tbaa !5
  %5838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5839 = call i32 @s2n_print_stacktrace(ptr noundef %5838)
  %5840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5841 = trunc i8 %5840 to i1
  br i1 %5841, label %5842, label %5864

5842:                                             ; preds = %5835
  %5843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5844 = call i32 @fileno(ptr noundef %5843) #11
  %5845 = call i32 @isatty(i32 noundef %5844) #11
  %5846 = icmp ne i32 %5845, 0
  br i1 %5846, label %5847, label %5864

5847:                                             ; preds = %5842
  %5848 = load i32, ptr %153, align 4, !tbaa !5
  %5849 = call ptr @__errno_location() #12
  store i32 %5848, ptr %5849, align 4, !tbaa !5
  %5850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5851 = load i32, ptr @test_count, align 4, !tbaa !5
  %5852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  %5854 = call ptr @s2n_strerror(i32 noundef %5853, ptr noundef @.str.4)
  %5855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5856 = load i32, ptr %5855, align 4, !tbaa !5
  %5857 = call ptr @s2n_strerror_debug(i32 noundef %5856, ptr noundef @.str.4)
  %5858 = call ptr @__errno_location() #12
  %5859 = load i32, ptr %5858, align 4, !tbaa !5
  %5860 = call ptr @strerror(i32 noundef %5859) #11
  %5861 = call ptr @__errno_location() #12
  %5862 = load i32, ptr %5861, align 4, !tbaa !5
  %5863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5850, ptr noundef @.str.2, i32 noundef %5851, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 410, ptr noundef %5854, ptr noundef %5857, ptr noundef %5860, i32 noundef %5862) #11
  br label %5881

5864:                                             ; preds = %5842, %5835
  %5865 = load i32, ptr %153, align 4, !tbaa !5
  %5866 = call ptr @__errno_location() #12
  store i32 %5865, ptr %5866, align 4, !tbaa !5
  %5867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5868 = load i32, ptr @test_count, align 4, !tbaa !5
  %5869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call ptr @s2n_strerror(i32 noundef %5870, ptr noundef @.str.4)
  %5872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call ptr @s2n_strerror_debug(i32 noundef %5873, ptr noundef @.str.4)
  %5875 = call ptr @__errno_location() #12
  %5876 = load i32, ptr %5875, align 4, !tbaa !5
  %5877 = call ptr @strerror(i32 noundef %5876) #11
  %5878 = call ptr @__errno_location() #12
  %5879 = load i32, ptr %5878, align 4, !tbaa !5
  %5880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5867, ptr noundef @.str.5, i32 noundef %5868, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 410, ptr noundef %5871, ptr noundef %5874, ptr noundef %5877, i32 noundef %5879) #11
  br label %5881

5881:                                             ; preds = %5864, %5847
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

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

5884:                                             ; No predecessors!
  br label %5885

5885:                                             ; preds = %5884
  br label %5886

5886:                                             ; preds = %5885, %5828
  br label %5887

5887:                                             ; preds = %5886
  br label %5888

5888:                                             ; preds = %5887
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  store i32 -1, ptr %154, align 4, !tbaa !5
  br label %5889

5889:                                             ; preds = %5888
  %5890 = load i32, ptr @test_count, align 4, !tbaa !5
  %5891 = add nsw i32 %5890, 1
  store i32 %5891, ptr @test_count, align 4, !tbaa !5
  %5892 = load ptr, ptr %141, align 8, !tbaa !9
  %5893 = load ptr, ptr %149, align 8, !tbaa !9
  %5894 = load i32, ptr %148, align 4, !tbaa !5
  %5895 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %140, ptr noundef %5892, ptr noundef %5893, i32 noundef %5894, ptr noundef %154, ptr noundef %152)
  %5896 = getelementptr inbounds %struct.s2n_result, ptr %155, i32 0, i32 0
  store i32 %5895, ptr %5896, align 4
  %5897 = getelementptr inbounds %struct.s2n_result, ptr %155, i32 0, i32 0
  %5898 = load i32, ptr %5897, align 4
  %5899 = call zeroext i1 @s2n_result_is_ok(i32 %5898)
  br i1 %5899, label %5953, label %5900

5900:                                             ; preds = %5889
  br label %5901

5901:                                             ; preds = %5900
  br label %5902

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

5909:                                             ; preds = %5902
  %5910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5911 = call i32 @fileno(ptr noundef %5910) #11
  %5912 = call i32 @isatty(i32 noundef %5911) #11
  %5913 = icmp ne i32 %5912, 0
  br i1 %5913, label %5914, label %5931

5914:                                             ; preds = %5909
  %5915 = load i32, ptr %156, align 4, !tbaa !5
  %5916 = call ptr @__errno_location() #12
  store i32 %5915, ptr %5916, align 4, !tbaa !5
  %5917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5918 = load i32, ptr @test_count, align 4, !tbaa !5
  %5919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5920 = load i32, ptr %5919, align 4, !tbaa !5
  %5921 = call ptr @s2n_strerror(i32 noundef %5920, ptr noundef @.str.4)
  %5922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5923 = load i32, ptr %5922, align 4, !tbaa !5
  %5924 = call ptr @s2n_strerror_debug(i32 noundef %5923, ptr noundef @.str.4)
  %5925 = call ptr @__errno_location() #12
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call ptr @strerror(i32 noundef %5926) #11
  %5928 = call ptr @__errno_location() #12
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5917, ptr noundef @.str.2, i32 noundef %5918, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 412, ptr noundef %5921, ptr noundef %5924, ptr noundef %5927, i32 noundef %5929) #11
  br label %5948

5931:                                             ; preds = %5909, %5902
  %5932 = load i32, ptr %156, align 4, !tbaa !5
  %5933 = call ptr @__errno_location() #12
  store i32 %5932, ptr %5933, align 4, !tbaa !5
  %5934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5937 = load i32, ptr %5936, align 4, !tbaa !5
  %5938 = call ptr @s2n_strerror(i32 noundef %5937, ptr noundef @.str.4)
  %5939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call ptr @s2n_strerror_debug(i32 noundef %5940, ptr noundef @.str.4)
  %5942 = call ptr @__errno_location() #12
  %5943 = load i32, ptr %5942, align 4, !tbaa !5
  %5944 = call ptr @strerror(i32 noundef %5943) #11
  %5945 = call ptr @__errno_location() #12
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5934, ptr noundef @.str.5, i32 noundef %5935, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 412, ptr noundef %5938, ptr noundef %5941, ptr noundef %5944, i32 noundef %5946) #11
  br label %5948

5948:                                             ; preds = %5931, %5914
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %5949

5949:                                             ; preds = %5948
  br label %5950

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

5951:                                             ; No predecessors!
  br label %5952

5952:                                             ; preds = %5951
  br label %5953

5953:                                             ; preds = %5952, %5889
  br label %5954

5954:                                             ; preds = %5953
  br label %5955

5955:                                             ; preds = %5954
  br label %5956

5956:                                             ; preds = %5955
  %5957 = load i32, ptr @test_count, align 4, !tbaa !5
  %5958 = add nsw i32 %5957, 1
  store i32 %5958, ptr @test_count, align 4, !tbaa !5
  %5959 = getelementptr inbounds %struct.host_verify_data, ptr %143, i32 0, i32 2
  %5960 = load i8, ptr %5959, align 1, !tbaa !19
  %5961 = zext i8 %5960 to i32
  %5962 = icmp eq i32 1, %5961
  br i1 %5962, label %6016, label %5963

5963:                                             ; preds = %5956
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

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

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

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

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

6011:                                             ; preds = %5994, %5977
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %6012

6012:                                             ; preds = %6011
  br label %6013

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

6014:                                             ; No predecessors!
  br label %6015

6015:                                             ; preds = %6014
  br label %6016

6016:                                             ; preds = %6015, %5956
  br label %6017

6017:                                             ; preds = %6016
  br label %6018

6018:                                             ; preds = %6017
  br label %6019

6019:                                             ; preds = %6018
  %6020 = load i32, ptr @test_count, align 4, !tbaa !5
  %6021 = add nsw i32 %6020, 1
  store i32 %6021, ptr @test_count, align 4, !tbaa !5
  %6022 = load i32, ptr %154, align 4, !tbaa !5
  %6023 = icmp eq i32 0, %6022
  br i1 %6023, label %6077, label %6024

6024:                                             ; preds = %6019
  br label %6025

6025:                                             ; preds = %6024
  br label %6026

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

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

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

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

6072:                                             ; preds = %6055, %6038
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %6073

6073:                                             ; preds = %6072
  br label %6074

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

6075:                                             ; No predecessors!
  br label %6076

6076:                                             ; preds = %6075
  br label %6077

6077:                                             ; preds = %6076, %6019
  br label %6078

6078:                                             ; preds = %6077
  br label %6079

6079:                                             ; preds = %6078
  %6080 = load ptr, ptr %141, align 8, !tbaa !9
  %6081 = call i32 @s2n_connection_free(ptr noundef %6080)
  %6082 = call i32 @s2n_pkey_free(ptr noundef %152)
  %6083 = call i32 @s2n_x509_validator_wipe(ptr noundef %140)
  call void @s2n_x509_trust_store_wipe(ptr noundef %134)
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  %6084 = call i32 @s2n_stuffer_free(ptr noundef %145)
  call void @llvm.lifetime.end.p0(i64 40, ptr %145) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %140) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %134) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %159)
  br label %6085

6085:                                             ; preds = %6079
  %6086 = load i32, ptr @test_count, align 4, !tbaa !5
  %6087 = add nsw i32 %6086, 1
  store i32 %6087, ptr @test_count, align 4, !tbaa !5
  %6088 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %159, ptr noundef @.str.11, ptr noundef null)
  %6089 = icmp eq i32 0, %6088
  br i1 %6089, label %6143, label %6090

6090:                                             ; preds = %6085
  br label %6091

6091:                                             ; preds = %6090
  br label %6092

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

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

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

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

6138:                                             ; preds = %6121, %6104
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %6139

6139:                                             ; preds = %6138
  br label %6140

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

6141:                                             ; No predecessors!
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

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

6144:                                             ; preds = %6143
  br label %6145

6145:                                             ; preds = %6144
  call void @llvm.lifetime.start.p0(i64 56, ptr %161) #11
  %6146 = call i32 @s2n_x509_validator_init(ptr noundef %161, ptr noundef %159, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #11
  %6147 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6147, ptr %162, align 8, !tbaa !9
  br label %6148

6148:                                             ; preds = %6145
  %6149 = load i32, ptr @test_count, align 4, !tbaa !5
  %6150 = add nsw i32 %6149, 1
  store i32 %6150, ptr @test_count, align 4, !tbaa !5
  %6151 = load ptr, ptr %162, align 8, !tbaa !9
  %6152 = icmp eq ptr %6151, null
  br i1 %6152, label %6153, label %6206

6153:                                             ; preds = %6148
  br label %6154

6154:                                             ; preds = %6153
  br label %6155

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

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

6167:                                             ; preds = %6162
  %6168 = load i32, ptr %163, align 4, !tbaa !5
  %6169 = call ptr @__errno_location() #12
  store i32 %6168, ptr %6169, align 4, !tbaa !5
  %6170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6171 = load i32, ptr @test_count, align 4, !tbaa !5
  %6172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6173 = load i32, ptr %6172, align 4, !tbaa !5
  %6174 = call ptr @s2n_strerror(i32 noundef %6173, ptr noundef @.str.4)
  %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_debug(i32 noundef %6176, ptr noundef @.str.4)
  %6178 = call ptr @__errno_location() #12
  %6179 = load i32, ptr %6178, align 4, !tbaa !5
  %6180 = call ptr @strerror(i32 noundef %6179) #11
  %6181 = call ptr @__errno_location() #12
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6170, ptr noundef @.str.2, i32 noundef %6171, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 433, ptr noundef %6174, ptr noundef %6177, ptr noundef %6180, i32 noundef %6182) #11
  br label %6201

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

6201:                                             ; preds = %6184, %6167
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %6202

6202:                                             ; preds = %6201
  br label %6203

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

6204:                                             ; No predecessors!
  br label %6205

6205:                                             ; preds = %6204
  br label %6206

6206:                                             ; preds = %6205, %6148
  br label %6207

6207:                                             ; preds = %6206
  br label %6208

6208:                                             ; preds = %6207
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #11
  call void @llvm.memset.p0.i64(ptr align 8 %164, i8 0, i64 16, i1 false)
  br label %6209

6209:                                             ; preds = %6208
  %6210 = load i32, ptr @test_count, align 4, !tbaa !5
  %6211 = add nsw i32 %6210, 1
  store i32 %6211, ptr @test_count, align 4, !tbaa !5
  %6212 = load ptr, ptr %162, align 8, !tbaa !9
  %6213 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %6212, ptr noundef @verify_host_accept_everything, ptr noundef %164)
  %6214 = icmp eq i32 %6213, -1
  br i1 %6214, label %6215, label %6268

6215:                                             ; preds = %6209
  br label %6216

6216:                                             ; preds = %6215
  br label %6217

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

6224:                                             ; preds = %6217
  %6225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6226 = call i32 @fileno(ptr noundef %6225) #11
  %6227 = call i32 @isatty(i32 noundef %6226) #11
  %6228 = icmp ne i32 %6227, 0
  br i1 %6228, label %6229, label %6246

6229:                                             ; preds = %6224
  %6230 = load i32, ptr %165, align 4, !tbaa !5
  %6231 = call ptr @__errno_location() #12
  store i32 %6230, ptr %6231, align 4, !tbaa !5
  %6232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6233 = load i32, ptr @test_count, align 4, !tbaa !5
  %6234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6235 = load i32, ptr %6234, align 4, !tbaa !5
  %6236 = call ptr @s2n_strerror(i32 noundef %6235, ptr noundef @.str.4)
  %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_debug(i32 noundef %6238, ptr noundef @.str.4)
  %6240 = call ptr @__errno_location() #12
  %6241 = load i32, ptr %6240, align 4, !tbaa !5
  %6242 = call ptr @strerror(i32 noundef %6241) #11
  %6243 = call ptr @__errno_location() #12
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6232, ptr noundef @.str.2, i32 noundef %6233, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 436, ptr noundef %6236, ptr noundef %6239, ptr noundef %6242, i32 noundef %6244) #11
  br label %6263

6246:                                             ; preds = %6224, %6217
  %6247 = load i32, ptr %165, align 4, !tbaa !5
  %6248 = call ptr @__errno_location() #12
  store i32 %6247, ptr %6248, align 4, !tbaa !5
  %6249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6250 = load i32, ptr @test_count, align 4, !tbaa !5
  %6251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call ptr @s2n_strerror(i32 noundef %6252, ptr noundef @.str.4)
  %6254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  %6256 = call ptr @s2n_strerror_debug(i32 noundef %6255, ptr noundef @.str.4)
  %6257 = call ptr @__errno_location() #12
  %6258 = load i32, ptr %6257, align 4, !tbaa !5
  %6259 = call ptr @strerror(i32 noundef %6258) #11
  %6260 = call ptr @__errno_location() #12
  %6261 = load i32, ptr %6260, align 4, !tbaa !5
  %6262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6249, ptr noundef @.str.5, i32 noundef %6250, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 436, ptr noundef %6253, ptr noundef %6256, ptr noundef %6259, i32 noundef %6261) #11
  br label %6263

6263:                                             ; preds = %6246, %6229
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %6264

6264:                                             ; preds = %6263
  br label %6265

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

6266:                                             ; No predecessors!
  br label %6267

6267:                                             ; preds = %6266
  br label %6268

6268:                                             ; preds = %6267, %6209
  br label %6269

6269:                                             ; preds = %6268
  br label %6270

6270:                                             ; preds = %6269
  call void @llvm.lifetime.start.p0(i64 40, ptr %166) #11
  call void @llvm.memset.p0.i64(ptr align 8 %166, i8 0, i64 40, i1 false)
  br label %6271

6271:                                             ; preds = %6270
  %6272 = load i32, ptr @test_count, align 4, !tbaa !5
  %6273 = add nsw i32 %6272, 1
  store i32 %6273, ptr @test_count, align 4, !tbaa !5
  %6274 = load ptr, ptr %162, align 8, !tbaa !9
  %6275 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %6274, ptr noundef @.str.11, ptr noundef %166)
  %6276 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  store i32 %6275, ptr %6276, align 4
  %6277 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  %6278 = load i32, ptr %6277, align 4
  %6279 = call zeroext i1 @s2n_result_is_ok(i32 %6278)
  br i1 %6279, label %6333, label %6280

6280:                                             ; preds = %6271
  br label %6281

6281:                                             ; preds = %6280
  br label %6282

6282:                                             ; preds = %6281
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %6283 = call ptr @__errno_location() #12
  %6284 = load i32, ptr %6283, align 4, !tbaa !5
  store i32 %6284, ptr %168, align 4, !tbaa !5
  %6285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6286 = call i32 @s2n_print_stacktrace(ptr noundef %6285)
  %6287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6288 = trunc i8 %6287 to i1
  br i1 %6288, label %6289, label %6311

6289:                                             ; preds = %6282
  %6290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6291 = call i32 @fileno(ptr noundef %6290) #11
  %6292 = call i32 @isatty(i32 noundef %6291) #11
  %6293 = icmp ne i32 %6292, 0
  br i1 %6293, label %6294, label %6311

6294:                                             ; preds = %6289
  %6295 = load i32, ptr %168, align 4, !tbaa !5
  %6296 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %6305 = call ptr @__errno_location() #12
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @strerror(i32 noundef %6306) #11
  %6308 = call ptr @__errno_location() #12
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6297, ptr noundef @.str.2, i32 noundef %6298, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 439, ptr noundef %6301, ptr noundef %6304, ptr noundef %6307, i32 noundef %6309) #11
  br label %6328

6311:                                             ; preds = %6289, %6282
  %6312 = load i32, ptr %168, align 4, !tbaa !5
  %6313 = call ptr @__errno_location() #12
  store i32 %6312, ptr %6313, align 4, !tbaa !5
  %6314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6315 = load i32, ptr @test_count, align 4, !tbaa !5
  %6316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call ptr @s2n_strerror(i32 noundef %6317, ptr noundef @.str.4)
  %6319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  %6321 = call ptr @s2n_strerror_debug(i32 noundef %6320, ptr noundef @.str.4)
  %6322 = call ptr @__errno_location() #12
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  %6324 = call ptr @strerror(i32 noundef %6323) #11
  %6325 = call ptr @__errno_location() #12
  %6326 = load i32, ptr %6325, align 4, !tbaa !5
  %6327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6314, ptr noundef @.str.5, i32 noundef %6315, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 439, ptr noundef %6318, ptr noundef %6321, ptr noundef %6324, i32 noundef %6326) #11
  br label %6328

6328:                                             ; preds = %6311, %6294
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %6329

6329:                                             ; preds = %6328
  br label %6330

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

6331:                                             ; No predecessors!
  br label %6332

6332:                                             ; preds = %6331
  br label %6333

6333:                                             ; preds = %6332, %6271
  br label %6334

6334:                                             ; preds = %6333
  br label %6335

6335:                                             ; preds = %6334
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %6336 = getelementptr inbounds %struct.s2n_stuffer, ptr %166, i32 0, i32 2
  %6337 = load i32, ptr %6336, align 4, !tbaa !15
  %6338 = getelementptr inbounds %struct.s2n_stuffer, ptr %166, i32 0, i32 1
  %6339 = load i32, ptr %6338, align 8, !tbaa !18
  %6340 = sub i32 %6337, %6339
  store i32 %6340, ptr %169, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #11
  %6341 = load i32, ptr %169, align 4, !tbaa !5
  %6342 = call ptr @s2n_stuffer_raw_read(ptr noundef %166, i32 noundef %6341)
  store ptr %6342, ptr %170, align 8, !tbaa !9
  br label %6343

6343:                                             ; preds = %6335
  %6344 = load i32, ptr @test_count, align 4, !tbaa !5
  %6345 = add nsw i32 %6344, 1
  store i32 %6345, ptr @test_count, align 4, !tbaa !5
  %6346 = load ptr, ptr %170, align 8, !tbaa !9
  %6347 = icmp eq ptr %6346, null
  br i1 %6347, label %6348, label %6401

6348:                                             ; preds = %6343
  br label %6349

6349:                                             ; preds = %6348
  br label %6350

6350:                                             ; preds = %6349
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %6351 = call ptr @__errno_location() #12
  %6352 = load i32, ptr %6351, align 4, !tbaa !5
  store i32 %6352, ptr %171, align 4, !tbaa !5
  %6353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6354 = call i32 @s2n_print_stacktrace(ptr noundef %6353)
  %6355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6356 = trunc i8 %6355 to i1
  br i1 %6356, label %6357, label %6379

6357:                                             ; preds = %6350
  %6358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6359 = call i32 @fileno(ptr noundef %6358) #11
  %6360 = call i32 @isatty(i32 noundef %6359) #11
  %6361 = icmp ne i32 %6360, 0
  br i1 %6361, label %6362, label %6379

6362:                                             ; preds = %6357
  %6363 = load i32, ptr %171, align 4, !tbaa !5
  %6364 = call ptr @__errno_location() #12
  store i32 %6363, ptr %6364, align 4, !tbaa !5
  %6365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6366 = load i32, ptr @test_count, align 4, !tbaa !5
  %6367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6368 = load i32, ptr %6367, align 4, !tbaa !5
  %6369 = call ptr @s2n_strerror(i32 noundef %6368, ptr noundef @.str.4)
  %6370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @s2n_strerror_debug(i32 noundef %6371, ptr noundef @.str.4)
  %6373 = call ptr @__errno_location() #12
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @strerror(i32 noundef %6374) #11
  %6376 = call ptr @__errno_location() #12
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  %6378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6365, ptr noundef @.str.2, i32 noundef %6366, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 442, ptr noundef %6369, ptr noundef %6372, ptr noundef %6375, i32 noundef %6377) #11
  br label %6396

6379:                                             ; preds = %6357, %6350
  %6380 = load i32, ptr %171, align 4, !tbaa !5
  %6381 = call ptr @__errno_location() #12
  store i32 %6380, ptr %6381, align 4, !tbaa !5
  %6382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6383 = load i32, ptr @test_count, align 4, !tbaa !5
  %6384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  %6386 = call ptr @s2n_strerror(i32 noundef %6385, ptr noundef @.str.4)
  %6387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror_debug(i32 noundef %6388, ptr noundef @.str.4)
  %6390 = call ptr @__errno_location() #12
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @strerror(i32 noundef %6391) #11
  %6393 = call ptr @__errno_location() #12
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6382, ptr noundef @.str.5, i32 noundef %6383, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 442, ptr noundef %6386, ptr noundef %6389, ptr noundef %6392, i32 noundef %6394) #11
  br label %6396

6396:                                             ; preds = %6379, %6362
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

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

6399:                                             ; No predecessors!
  br label %6400

6400:                                             ; preds = %6399
  br label %6401

6401:                                             ; preds = %6400, %6343
  br label %6402

6402:                                             ; preds = %6401
  br label %6403

6403:                                             ; preds = %6402
  br label %6404

6404:                                             ; preds = %6403
  %6405 = load i32, ptr @test_count, align 4, !tbaa !5
  %6406 = add nsw i32 %6405, 1
  store i32 %6406, ptr @test_count, align 4, !tbaa !5
  %6407 = load ptr, ptr %162, align 8, !tbaa !9
  %6408 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6407, ptr noundef @.str.23)
  %6409 = icmp eq i32 %6408, -1
  br i1 %6409, label %6410, label %6463

6410:                                             ; preds = %6404
  br label %6411

6411:                                             ; preds = %6410
  br label %6412

6412:                                             ; preds = %6411
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %6413 = call ptr @__errno_location() #12
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  store i32 %6414, ptr %172, align 4, !tbaa !5
  %6415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6416 = call i32 @s2n_print_stacktrace(ptr noundef %6415)
  %6417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6418 = trunc i8 %6417 to i1
  br i1 %6418, label %6419, label %6441

6419:                                             ; preds = %6412
  %6420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6421 = call i32 @fileno(ptr noundef %6420) #11
  %6422 = call i32 @isatty(i32 noundef %6421) #11
  %6423 = icmp ne i32 %6422, 0
  br i1 %6423, label %6424, label %6441

6424:                                             ; preds = %6419
  %6425 = load i32, ptr %172, align 4, !tbaa !5
  %6426 = call ptr @__errno_location() #12
  store i32 %6425, ptr %6426, align 4, !tbaa !5
  %6427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6428 = load i32, ptr @test_count, align 4, !tbaa !5
  %6429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6430 = load i32, ptr %6429, align 4, !tbaa !5
  %6431 = call ptr @s2n_strerror(i32 noundef %6430, ptr noundef @.str.4)
  %6432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  %6434 = call ptr @s2n_strerror_debug(i32 noundef %6433, ptr noundef @.str.4)
  %6435 = call ptr @__errno_location() #12
  %6436 = load i32, ptr %6435, align 4, !tbaa !5
  %6437 = call ptr @strerror(i32 noundef %6436) #11
  %6438 = call ptr @__errno_location() #12
  %6439 = load i32, ptr %6438, align 4, !tbaa !5
  %6440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6427, ptr noundef @.str.2, i32 noundef %6428, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 444, ptr noundef %6431, ptr noundef %6434, ptr noundef %6437, i32 noundef %6439) #11
  br label %6458

6441:                                             ; preds = %6419, %6412
  %6442 = load i32, ptr %172, align 4, !tbaa !5
  %6443 = call ptr @__errno_location() #12
  store i32 %6442, ptr %6443, align 4, !tbaa !5
  %6444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6445 = load i32, ptr @test_count, align 4, !tbaa !5
  %6446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6447 = load i32, ptr %6446, align 4, !tbaa !5
  %6448 = call ptr @s2n_strerror(i32 noundef %6447, ptr noundef @.str.4)
  %6449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6450 = load i32, ptr %6449, align 4, !tbaa !5
  %6451 = call ptr @s2n_strerror_debug(i32 noundef %6450, ptr noundef @.str.4)
  %6452 = call ptr @__errno_location() #12
  %6453 = load i32, ptr %6452, align 4, !tbaa !5
  %6454 = call ptr @strerror(i32 noundef %6453) #11
  %6455 = call ptr @__errno_location() #12
  %6456 = load i32, ptr %6455, align 4, !tbaa !5
  %6457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6444, ptr noundef @.str.5, i32 noundef %6445, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 444, ptr noundef %6448, ptr noundef %6451, ptr noundef %6454, i32 noundef %6456) #11
  br label %6458

6458:                                             ; preds = %6441, %6424
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %6459

6459:                                             ; preds = %6458
  br label %6460

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

6461:                                             ; No predecessors!
  br label %6462

6462:                                             ; preds = %6461
  br label %6463

6463:                                             ; preds = %6462, %6404
  br label %6464

6464:                                             ; preds = %6463
  br label %6465

6465:                                             ; preds = %6464
  br label %6466

6466:                                             ; preds = %6465
  %6467 = load i32, ptr @test_count, align 4, !tbaa !5
  %6468 = add nsw i32 %6467, 1
  store i32 %6468, ptr @test_count, align 4, !tbaa !5
  %6469 = call i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef %161, i16 noundef zeroext 2)
  %6470 = icmp eq i32 %6469, -1
  br i1 %6470, label %6471, label %6524

6471:                                             ; preds = %6466
  br label %6472

6472:                                             ; preds = %6471
  br label %6473

6473:                                             ; preds = %6472
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %6474 = call ptr @__errno_location() #12
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  store i32 %6475, ptr %173, align 4, !tbaa !5
  %6476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6477 = call i32 @s2n_print_stacktrace(ptr noundef %6476)
  %6478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6479 = trunc i8 %6478 to i1
  br i1 %6479, label %6480, label %6502

6480:                                             ; preds = %6473
  %6481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6482 = call i32 @fileno(ptr noundef %6481) #11
  %6483 = call i32 @isatty(i32 noundef %6482) #11
  %6484 = icmp ne i32 %6483, 0
  br i1 %6484, label %6485, label %6502

6485:                                             ; preds = %6480
  %6486 = load i32, ptr %173, align 4, !tbaa !5
  %6487 = call ptr @__errno_location() #12
  store i32 %6486, ptr %6487, align 4, !tbaa !5
  %6488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6489 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6491, ptr noundef @.str.4)
  %6493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call ptr @s2n_strerror_debug(i32 noundef %6494, ptr noundef @.str.4)
  %6496 = call ptr @__errno_location() #12
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call ptr @strerror(i32 noundef %6497) #11
  %6499 = call ptr @__errno_location() #12
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  %6501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6488, ptr noundef @.str.2, i32 noundef %6489, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 446, ptr noundef %6492, ptr noundef %6495, ptr noundef %6498, i32 noundef %6500) #11
  br label %6519

6502:                                             ; preds = %6480, %6473
  %6503 = load i32, ptr %173, align 4, !tbaa !5
  %6504 = call ptr @__errno_location() #12
  store i32 %6503, ptr %6504, align 4, !tbaa !5
  %6505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6506 = load i32, ptr @test_count, align 4, !tbaa !5
  %6507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6508 = load i32, ptr %6507, align 4, !tbaa !5
  %6509 = call ptr @s2n_strerror(i32 noundef %6508, ptr noundef @.str.4)
  %6510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call ptr @s2n_strerror_debug(i32 noundef %6511, ptr noundef @.str.4)
  %6513 = call ptr @__errno_location() #12
  %6514 = load i32, ptr %6513, align 4, !tbaa !5
  %6515 = call ptr @strerror(i32 noundef %6514) #11
  %6516 = call ptr @__errno_location() #12
  %6517 = load i32, ptr %6516, align 4, !tbaa !5
  %6518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6505, ptr noundef @.str.5, i32 noundef %6506, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 446, ptr noundef %6509, ptr noundef %6512, ptr noundef %6515, i32 noundef %6517) #11
  br label %6519

6519:                                             ; preds = %6502, %6485
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %6520

6520:                                             ; preds = %6519
  br label %6521

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

6522:                                             ; No predecessors!
  br label %6523

6523:                                             ; preds = %6522
  br label %6524

6524:                                             ; preds = %6523, %6466
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

6526:                                             ; preds = %6525
  call void @llvm.lifetime.start.p0(i64 48, ptr %174) #11
  br label %6527

6527:                                             ; preds = %6526
  %6528 = load i32, ptr @test_count, align 4, !tbaa !5
  %6529 = add nsw i32 %6528, 1
  store i32 %6529, ptr @test_count, align 4, !tbaa !5
  %6530 = call i32 @s2n_pkey_zero_init(ptr noundef %174)
  %6531 = icmp eq i32 %6530, -1
  br i1 %6531, label %6532, label %6585

6532:                                             ; preds = %6527
  br label %6533

6533:                                             ; preds = %6532
  br label %6534

6534:                                             ; preds = %6533
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %6535 = call ptr @__errno_location() #12
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  store i32 %6536, ptr %175, align 4, !tbaa !5
  %6537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6538 = call i32 @s2n_print_stacktrace(ptr noundef %6537)
  %6539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6540 = trunc i8 %6539 to i1
  br i1 %6540, label %6541, label %6563

6541:                                             ; preds = %6534
  %6542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6543 = call i32 @fileno(ptr noundef %6542) #11
  %6544 = call i32 @isatty(i32 noundef %6543) #11
  %6545 = icmp ne i32 %6544, 0
  br i1 %6545, label %6546, label %6563

6546:                                             ; preds = %6541
  %6547 = load i32, ptr %175, align 4, !tbaa !5
  %6548 = call ptr @__errno_location() #12
  store i32 %6547, ptr %6548, align 4, !tbaa !5
  %6549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6550 = load i32, ptr @test_count, align 4, !tbaa !5
  %6551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6552 = load i32, ptr %6551, align 4, !tbaa !5
  %6553 = call ptr @s2n_strerror(i32 noundef %6552, ptr noundef @.str.4)
  %6554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6555 = load i32, ptr %6554, align 4, !tbaa !5
  %6556 = call ptr @s2n_strerror_debug(i32 noundef %6555, ptr noundef @.str.4)
  %6557 = call ptr @__errno_location() #12
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  %6559 = call ptr @strerror(i32 noundef %6558) #11
  %6560 = call ptr @__errno_location() #12
  %6561 = load i32, ptr %6560, align 4, !tbaa !5
  %6562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6549, ptr noundef @.str.2, i32 noundef %6550, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 448, ptr noundef %6553, ptr noundef %6556, ptr noundef %6559, i32 noundef %6561) #11
  br label %6580

6563:                                             ; preds = %6541, %6534
  %6564 = load i32, ptr %175, align 4, !tbaa !5
  %6565 = call ptr @__errno_location() #12
  store i32 %6564, ptr %6565, align 4, !tbaa !5
  %6566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6567 = load i32, ptr @test_count, align 4, !tbaa !5
  %6568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6569 = load i32, ptr %6568, align 4, !tbaa !5
  %6570 = call ptr @s2n_strerror(i32 noundef %6569, ptr noundef @.str.4)
  %6571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6572 = load i32, ptr %6571, align 4, !tbaa !5
  %6573 = call ptr @s2n_strerror_debug(i32 noundef %6572, ptr noundef @.str.4)
  %6574 = call ptr @__errno_location() #12
  %6575 = load i32, ptr %6574, align 4, !tbaa !5
  %6576 = call ptr @strerror(i32 noundef %6575) #11
  %6577 = call ptr @__errno_location() #12
  %6578 = load i32, ptr %6577, align 4, !tbaa !5
  %6579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6566, ptr noundef @.str.5, i32 noundef %6567, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 448, ptr noundef %6570, ptr noundef %6573, ptr noundef %6576, i32 noundef %6578) #11
  br label %6580

6580:                                             ; preds = %6563, %6546
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %6581

6581:                                             ; preds = %6580
  br label %6582

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

6583:                                             ; No predecessors!
  br label %6584

6584:                                             ; preds = %6583
  br label %6585

6585:                                             ; preds = %6584, %6527
  br label %6586

6586:                                             ; preds = %6585
  br label %6587

6587:                                             ; preds = %6586
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  store i32 -1, ptr %176, align 4, !tbaa !5
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

6589:                                             ; preds = %6588
  br label %6590

6590:                                             ; preds = %6589
  %6591 = load i32, ptr @test_count, align 4, !tbaa !5
  %6592 = add nsw i32 %6591, 1
  store i32 %6592, ptr @test_count, align 4, !tbaa !5
  %6593 = load ptr, ptr %162, align 8, !tbaa !9
  %6594 = load ptr, ptr %170, align 8, !tbaa !9
  %6595 = load i32, ptr %169, align 4, !tbaa !5
  %6596 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %161, ptr noundef %6593, ptr noundef %6594, i32 noundef %6595, ptr noundef %176, ptr noundef %174)
  %6597 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  store i32 %6596, ptr %6597, align 4
  %6598 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  %6599 = load i32, ptr %6598, align 4
  %6600 = call zeroext i1 @s2n_result_is_error(i32 %6599)
  br i1 %6600, label %6654, label %6601

6601:                                             ; preds = %6590
  br label %6602

6602:                                             ; preds = %6601
  br label %6603

6603:                                             ; preds = %6602
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %6604 = call ptr @__errno_location() #12
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  store i32 %6605, ptr %178, align 4, !tbaa !5
  %6606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6607 = call i32 @s2n_print_stacktrace(ptr noundef %6606)
  %6608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6609 = trunc i8 %6608 to i1
  br i1 %6609, label %6610, label %6632

6610:                                             ; preds = %6603
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = call i32 @fileno(ptr noundef %6611) #11
  %6613 = call i32 @isatty(i32 noundef %6612) #11
  %6614 = icmp ne i32 %6613, 0
  br i1 %6614, label %6615, label %6632

6615:                                             ; preds = %6610
  %6616 = load i32, ptr %178, align 4, !tbaa !5
  %6617 = call ptr @__errno_location() #12
  store i32 %6616, ptr %6617, align 4, !tbaa !5
  %6618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6619 = load i32, ptr @test_count, align 4, !tbaa !5
  %6620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call ptr @s2n_strerror(i32 noundef %6621, ptr noundef @.str.4)
  %6623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = call ptr @s2n_strerror_debug(i32 noundef %6624, ptr noundef @.str.4)
  %6626 = call ptr @__errno_location() #12
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call ptr @strerror(i32 noundef %6627) #11
  %6629 = call ptr @__errno_location() #12
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  %6631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6618, ptr noundef @.str.2, i32 noundef %6619, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6622, ptr noundef %6625, ptr noundef %6628, i32 noundef %6630) #11
  br label %6649

6632:                                             ; preds = %6610, %6603
  %6633 = load i32, ptr %178, align 4, !tbaa !5
  %6634 = call ptr @__errno_location() #12
  store i32 %6633, ptr %6634, align 4, !tbaa !5
  %6635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6636 = load i32, ptr @test_count, align 4, !tbaa !5
  %6637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  %6639 = call ptr @s2n_strerror(i32 noundef %6638, ptr noundef @.str.4)
  %6640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6641 = load i32, ptr %6640, align 4, !tbaa !5
  %6642 = call ptr @s2n_strerror_debug(i32 noundef %6641, ptr noundef @.str.4)
  %6643 = call ptr @__errno_location() #12
  %6644 = load i32, ptr %6643, align 4, !tbaa !5
  %6645 = call ptr @strerror(i32 noundef %6644) #11
  %6646 = call ptr @__errno_location() #12
  %6647 = load i32, ptr %6646, align 4, !tbaa !5
  %6648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6635, ptr noundef @.str.5, i32 noundef %6636, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6639, ptr noundef %6642, ptr noundef %6645, i32 noundef %6647) #11
  br label %6649

6649:                                             ; preds = %6632, %6615
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %6650

6650:                                             ; preds = %6649
  br label %6651

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

6652:                                             ; No predecessors!
  br label %6653

6653:                                             ; preds = %6652
  br label %6654

6654:                                             ; preds = %6653, %6590
  br label %6655

6655:                                             ; preds = %6654
  br label %6656

6656:                                             ; preds = %6655
  br label %6657

6657:                                             ; preds = %6656
  %6658 = load i32, ptr @test_count, align 4, !tbaa !5
  %6659 = add nsw i32 %6658, 1
  store i32 %6659, ptr @test_count, align 4, !tbaa !5
  %6660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6661 = load i32, ptr %6660, align 4, !tbaa !5
  %6662 = icmp eq i32 %6661, 335544372
  br i1 %6662, label %6716, label %6663

6663:                                             ; preds = %6657
  br label %6664

6664:                                             ; preds = %6663
  br label %6665

6665:                                             ; preds = %6664
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %6666 = call ptr @__errno_location() #12
  %6667 = load i32, ptr %6666, align 4, !tbaa !5
  store i32 %6667, ptr %179, align 4, !tbaa !5
  %6668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6669 = call i32 @s2n_print_stacktrace(ptr noundef %6668)
  %6670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6671 = trunc i8 %6670 to i1
  br i1 %6671, label %6672, label %6694

6672:                                             ; preds = %6665
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = call i32 @fileno(ptr noundef %6673) #11
  %6675 = call i32 @isatty(i32 noundef %6674) #11
  %6676 = icmp ne i32 %6675, 0
  br i1 %6676, label %6677, label %6694

6677:                                             ; preds = %6672
  %6678 = load i32, ptr %179, align 4, !tbaa !5
  %6679 = call ptr @__errno_location() #12
  store i32 %6678, ptr %6679, align 4, !tbaa !5
  %6680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6681 = load i32, ptr @test_count, align 4, !tbaa !5
  %6682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6683 = load i32, ptr %6682, align 4, !tbaa !5
  %6684 = call ptr @s2n_strerror(i32 noundef %6683, ptr noundef @.str.4)
  %6685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6686 = load i32, ptr %6685, align 4, !tbaa !5
  %6687 = call ptr @s2n_strerror_debug(i32 noundef %6686, ptr noundef @.str.4)
  %6688 = call ptr @__errno_location() #12
  %6689 = load i32, ptr %6688, align 4, !tbaa !5
  %6690 = call ptr @strerror(i32 noundef %6689) #11
  %6691 = call ptr @__errno_location() #12
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  %6693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6680, ptr noundef @.str.2, i32 noundef %6681, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6684, ptr noundef %6687, ptr noundef %6690, i32 noundef %6692) #11
  br label %6711

6694:                                             ; preds = %6672, %6665
  %6695 = load i32, ptr %179, align 4, !tbaa !5
  %6696 = call ptr @__errno_location() #12
  store i32 %6695, ptr %6696, align 4, !tbaa !5
  %6697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6698 = load i32, ptr @test_count, align 4, !tbaa !5
  %6699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6700 = load i32, ptr %6699, align 4, !tbaa !5
  %6701 = call ptr @s2n_strerror(i32 noundef %6700, ptr noundef @.str.4)
  %6702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6703 = load i32, ptr %6702, align 4, !tbaa !5
  %6704 = call ptr @s2n_strerror_debug(i32 noundef %6703, ptr noundef @.str.4)
  %6705 = call ptr @__errno_location() #12
  %6706 = load i32, ptr %6705, align 4, !tbaa !5
  %6707 = call ptr @strerror(i32 noundef %6706) #11
  %6708 = call ptr @__errno_location() #12
  %6709 = load i32, ptr %6708, align 4, !tbaa !5
  %6710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6697, ptr noundef @.str.5, i32 noundef %6698, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6701, ptr noundef %6704, ptr noundef %6707, i32 noundef %6709) #11
  br label %6711

6711:                                             ; preds = %6694, %6677
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %6712

6712:                                             ; preds = %6711
  br label %6713

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

6714:                                             ; No predecessors!
  br label %6715

6715:                                             ; preds = %6714
  br label %6716

6716:                                             ; preds = %6715, %6657
  br label %6717

6717:                                             ; preds = %6716
  br label %6718

6718:                                             ; preds = %6717
  br label %6719

6719:                                             ; preds = %6718
  %6720 = load i32, ptr @test_count, align 4, !tbaa !5
  %6721 = add nsw i32 %6720, 1
  store i32 %6721, ptr @test_count, align 4, !tbaa !5
  %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.4)
  %6725 = icmp eq ptr %6724, null
  br i1 %6725, label %6726, label %6779

6726:                                             ; preds = %6719
  br label %6727

6727:                                             ; preds = %6726
  br label %6728

6728:                                             ; preds = %6727
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %6729 = call ptr @__errno_location() #12
  %6730 = load i32, ptr %6729, align 4, !tbaa !5
  store i32 %6730, ptr %180, align 4, !tbaa !5
  %6731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6732 = call i32 @s2n_print_stacktrace(ptr noundef %6731)
  %6733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6734 = trunc i8 %6733 to i1
  br i1 %6734, label %6735, label %6757

6735:                                             ; preds = %6728
  %6736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6737 = call i32 @fileno(ptr noundef %6736) #11
  %6738 = call i32 @isatty(i32 noundef %6737) #11
  %6739 = icmp ne i32 %6738, 0
  br i1 %6739, label %6740, label %6757

6740:                                             ; preds = %6735
  %6741 = load i32, ptr %180, align 4, !tbaa !5
  %6742 = call ptr @__errno_location() #12
  store i32 %6741, ptr %6742, align 4, !tbaa !5
  %6743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6744 = load i32, ptr @test_count, align 4, !tbaa !5
  %6745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call ptr @s2n_strerror(i32 noundef %6746, ptr noundef @.str.4)
  %6748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6749 = load i32, ptr %6748, align 4, !tbaa !5
  %6750 = call ptr @s2n_strerror_debug(i32 noundef %6749, ptr noundef @.str.4)
  %6751 = call ptr @__errno_location() #12
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call ptr @strerror(i32 noundef %6752) #11
  %6754 = call ptr @__errno_location() #12
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  %6756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6743, ptr noundef @.str.2, i32 noundef %6744, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6747, ptr noundef %6750, ptr noundef %6753, i32 noundef %6755) #11
  br label %6774

6757:                                             ; preds = %6735, %6728
  %6758 = load i32, ptr %180, align 4, !tbaa !5
  %6759 = call ptr @__errno_location() #12
  store i32 %6758, ptr %6759, align 4, !tbaa !5
  %6760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6761 = load i32, ptr @test_count, align 4, !tbaa !5
  %6762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6763 = load i32, ptr %6762, align 4, !tbaa !5
  %6764 = call ptr @s2n_strerror(i32 noundef %6763, ptr noundef @.str.4)
  %6765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6766 = load i32, ptr %6765, align 4, !tbaa !5
  %6767 = call ptr @s2n_strerror_debug(i32 noundef %6766, ptr noundef @.str.4)
  %6768 = call ptr @__errno_location() #12
  %6769 = load i32, ptr %6768, align 4, !tbaa !5
  %6770 = call ptr @strerror(i32 noundef %6769) #11
  %6771 = call ptr @__errno_location() #12
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  %6773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6760, ptr noundef @.str.5, i32 noundef %6761, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6764, ptr noundef %6767, ptr noundef %6770, i32 noundef %6772) #11
  br label %6774

6774:                                             ; preds = %6757, %6740
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %6775

6775:                                             ; preds = %6774
  br label %6776

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

6777:                                             ; No predecessors!
  br label %6778

6778:                                             ; preds = %6777
  br label %6779

6779:                                             ; preds = %6778, %6719
  br label %6780

6780:                                             ; preds = %6779
  br label %6781

6781:                                             ; preds = %6780
  br label %6782

6782:                                             ; preds = %6781
  br label %6783

6783:                                             ; preds = %6782
  br label %6784

6784:                                             ; preds = %6783
  %6785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6785, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6786 = call ptr @__errno_location() #12
  store i32 0, ptr %6786, align 4, !tbaa !5
  br label %6787

6787:                                             ; preds = %6784
  br label %6788

6788:                                             ; preds = %6787
  br label %6789

6789:                                             ; preds = %6788
  br label %6790

6790:                                             ; preds = %6789
  br label %6791

6791:                                             ; preds = %6790
  %6792 = load i32, ptr @test_count, align 4, !tbaa !5
  %6793 = add nsw i32 %6792, 1
  store i32 %6793, ptr @test_count, align 4, !tbaa !5
  %6794 = getelementptr inbounds %struct.host_verify_data, ptr %164, i32 0, i32 2
  %6795 = load i8, ptr %6794, align 1, !tbaa !19
  %6796 = zext i8 %6795 to i32
  %6797 = icmp eq i32 0, %6796
  br i1 %6797, label %6851, label %6798

6798:                                             ; preds = %6791
  br label %6799

6799:                                             ; preds = %6798
  br label %6800

6800:                                             ; preds = %6799
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %6801 = call ptr @__errno_location() #12
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  store i32 %6802, ptr %181, align 4, !tbaa !5
  %6803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6804 = call i32 @s2n_print_stacktrace(ptr noundef %6803)
  %6805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6806 = trunc i8 %6805 to i1
  br i1 %6806, label %6807, label %6829

6807:                                             ; preds = %6800
  %6808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6809 = call i32 @fileno(ptr noundef %6808) #11
  %6810 = call i32 @isatty(i32 noundef %6809) #11
  %6811 = icmp ne i32 %6810, 0
  br i1 %6811, label %6812, label %6829

6812:                                             ; preds = %6807
  %6813 = load i32, ptr %181, align 4, !tbaa !5
  %6814 = call ptr @__errno_location() #12
  store i32 %6813, ptr %6814, align 4, !tbaa !5
  %6815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6816 = load i32, ptr @test_count, align 4, !tbaa !5
  %6817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call ptr @s2n_strerror(i32 noundef %6818, ptr noundef @.str.4)
  %6820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call ptr @s2n_strerror_debug(i32 noundef %6821, ptr noundef @.str.4)
  %6823 = call ptr @__errno_location() #12
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call ptr @strerror(i32 noundef %6824) #11
  %6826 = call ptr @__errno_location() #12
  %6827 = load i32, ptr %6826, align 4, !tbaa !5
  %6828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6815, ptr noundef @.str.2, i32 noundef %6816, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 453, ptr noundef %6819, ptr noundef %6822, ptr noundef %6825, i32 noundef %6827) #11
  br label %6846

6829:                                             ; preds = %6807, %6800
  %6830 = load i32, ptr %181, align 4, !tbaa !5
  %6831 = call ptr @__errno_location() #12
  store i32 %6830, ptr %6831, align 4, !tbaa !5
  %6832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6833 = load i32, ptr @test_count, align 4, !tbaa !5
  %6834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  %6836 = call ptr @s2n_strerror(i32 noundef %6835, ptr noundef @.str.4)
  %6837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = call ptr @s2n_strerror_debug(i32 noundef %6838, ptr noundef @.str.4)
  %6840 = call ptr @__errno_location() #12
  %6841 = load i32, ptr %6840, align 4, !tbaa !5
  %6842 = call ptr @strerror(i32 noundef %6841) #11
  %6843 = call ptr @__errno_location() #12
  %6844 = load i32, ptr %6843, align 4, !tbaa !5
  %6845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6832, ptr noundef @.str.5, i32 noundef %6833, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 453, ptr noundef %6836, ptr noundef %6839, ptr noundef %6842, i32 noundef %6844) #11
  br label %6846

6846:                                             ; preds = %6829, %6812
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %6847

6847:                                             ; preds = %6846
  br label %6848

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

6849:                                             ; No predecessors!
  br label %6850

6850:                                             ; preds = %6849
  br label %6851

6851:                                             ; preds = %6850, %6791
  br label %6852

6852:                                             ; preds = %6851
  br label %6853

6853:                                             ; preds = %6852
  br label %6854

6854:                                             ; preds = %6853
  %6855 = load i32, ptr @test_count, align 4, !tbaa !5
  %6856 = add nsw i32 %6855, 1
  store i32 %6856, ptr @test_count, align 4, !tbaa !5
  %6857 = load i32, ptr %176, align 4, !tbaa !5
  %6858 = icmp eq i32 -1, %6857
  br i1 %6858, label %6912, label %6859

6859:                                             ; preds = %6854
  br label %6860

6860:                                             ; preds = %6859
  br label %6861

6861:                                             ; preds = %6860
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %6862 = call ptr @__errno_location() #12
  %6863 = load i32, ptr %6862, align 4, !tbaa !5
  store i32 %6863, ptr %182, align 4, !tbaa !5
  %6864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6865 = call i32 @s2n_print_stacktrace(ptr noundef %6864)
  %6866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6867 = trunc i8 %6866 to i1
  br i1 %6867, label %6868, label %6890

6868:                                             ; preds = %6861
  %6869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6870 = call i32 @fileno(ptr noundef %6869) #11
  %6871 = call i32 @isatty(i32 noundef %6870) #11
  %6872 = icmp ne i32 %6871, 0
  br i1 %6872, label %6873, label %6890

6873:                                             ; preds = %6868
  %6874 = load i32, ptr %182, align 4, !tbaa !5
  %6875 = call ptr @__errno_location() #12
  store i32 %6874, ptr %6875, align 4, !tbaa !5
  %6876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6877 = load i32, ptr @test_count, align 4, !tbaa !5
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror(i32 noundef %6879, ptr noundef @.str.4)
  %6881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @s2n_strerror_debug(i32 noundef %6882, ptr noundef @.str.4)
  %6884 = call ptr @__errno_location() #12
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call ptr @strerror(i32 noundef %6885) #11
  %6887 = call ptr @__errno_location() #12
  %6888 = load i32, ptr %6887, align 4, !tbaa !5
  %6889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6876, ptr noundef @.str.2, i32 noundef %6877, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 454, ptr noundef %6880, ptr noundef %6883, ptr noundef %6886, i32 noundef %6888) #11
  br label %6907

6890:                                             ; preds = %6868, %6861
  %6891 = load i32, ptr %182, align 4, !tbaa !5
  %6892 = call ptr @__errno_location() #12
  store i32 %6891, ptr %6892, align 4, !tbaa !5
  %6893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6894 = load i32, ptr @test_count, align 4, !tbaa !5
  %6895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call ptr @s2n_strerror(i32 noundef %6896, ptr noundef @.str.4)
  %6898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call ptr @s2n_strerror_debug(i32 noundef %6899, ptr noundef @.str.4)
  %6901 = call ptr @__errno_location() #12
  %6902 = load i32, ptr %6901, align 4, !tbaa !5
  %6903 = call ptr @strerror(i32 noundef %6902) #11
  %6904 = call ptr @__errno_location() #12
  %6905 = load i32, ptr %6904, align 4, !tbaa !5
  %6906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6893, ptr noundef @.str.5, i32 noundef %6894, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 454, ptr noundef %6897, ptr noundef %6900, ptr noundef %6903, i32 noundef %6905) #11
  br label %6907

6907:                                             ; preds = %6890, %6873
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

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

6910:                                             ; No predecessors!
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

6912:                                             ; preds = %6911, %6854
  br label %6913

6913:                                             ; preds = %6912
  br label %6914

6914:                                             ; preds = %6913
  %6915 = load ptr, ptr %162, align 8, !tbaa !9
  %6916 = call i32 @s2n_connection_free(ptr noundef %6915)
  %6917 = call i32 @s2n_pkey_free(ptr noundef %174)
  %6918 = call i32 @s2n_x509_validator_wipe(ptr noundef %161)
  call void @s2n_x509_trust_store_wipe(ptr noundef %159)
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %174) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  %6919 = call i32 @s2n_stuffer_free(ptr noundef %166)
  call void @llvm.lifetime.end.p0(i64 40, ptr %166) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %161) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %183) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %183)
  br label %6920

6920:                                             ; preds = %6914
  %6921 = load i32, ptr @test_count, align 4, !tbaa !5
  %6922 = add nsw i32 %6921, 1
  store i32 %6922, ptr @test_count, align 4, !tbaa !5
  %6923 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %183, ptr noundef @.str.11, ptr noundef null)
  %6924 = icmp eq i32 %6923, -1
  br i1 %6924, label %6925, label %6978

6925:                                             ; preds = %6920
  br label %6926

6926:                                             ; preds = %6925
  br label %6927

6927:                                             ; preds = %6926
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %6928 = call ptr @__errno_location() #12
  %6929 = load i32, ptr %6928, align 4, !tbaa !5
  store i32 %6929, ptr %184, align 4, !tbaa !5
  %6930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6931 = call i32 @s2n_print_stacktrace(ptr noundef %6930)
  %6932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6933 = trunc i8 %6932 to i1
  br i1 %6933, label %6934, label %6956

6934:                                             ; preds = %6927
  %6935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6936 = call i32 @fileno(ptr noundef %6935) #11
  %6937 = call i32 @isatty(i32 noundef %6936) #11
  %6938 = icmp ne i32 %6937, 0
  br i1 %6938, label %6939, label %6956

6939:                                             ; preds = %6934
  %6940 = load i32, ptr %184, align 4, !tbaa !5
  %6941 = call ptr @__errno_location() #12
  store i32 %6940, ptr %6941, align 4, !tbaa !5
  %6942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6943 = load i32, ptr @test_count, align 4, !tbaa !5
  %6944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6945 = load i32, ptr %6944, align 4, !tbaa !5
  %6946 = call ptr @s2n_strerror(i32 noundef %6945, ptr noundef @.str.4)
  %6947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  %6949 = call ptr @s2n_strerror_debug(i32 noundef %6948, ptr noundef @.str.4)
  %6950 = call ptr @__errno_location() #12
  %6951 = load i32, ptr %6950, align 4, !tbaa !5
  %6952 = call ptr @strerror(i32 noundef %6951) #11
  %6953 = call ptr @__errno_location() #12
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6942, ptr noundef @.str.2, i32 noundef %6943, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 471, ptr noundef %6946, ptr noundef %6949, ptr noundef %6952, i32 noundef %6954) #11
  br label %6973

6956:                                             ; preds = %6934, %6927
  %6957 = load i32, ptr %184, align 4, !tbaa !5
  %6958 = call ptr @__errno_location() #12
  store i32 %6957, ptr %6958, align 4, !tbaa !5
  %6959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6960 = load i32, ptr @test_count, align 4, !tbaa !5
  %6961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6962 = load i32, ptr %6961, align 4, !tbaa !5
  %6963 = call ptr @s2n_strerror(i32 noundef %6962, ptr noundef @.str.4)
  %6964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6965 = load i32, ptr %6964, align 4, !tbaa !5
  %6966 = call ptr @s2n_strerror_debug(i32 noundef %6965, ptr noundef @.str.4)
  %6967 = call ptr @__errno_location() #12
  %6968 = load i32, ptr %6967, align 4, !tbaa !5
  %6969 = call ptr @strerror(i32 noundef %6968) #11
  %6970 = call ptr @__errno_location() #12
  %6971 = load i32, ptr %6970, align 4, !tbaa !5
  %6972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6959, ptr noundef @.str.5, i32 noundef %6960, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 471, ptr noundef %6963, ptr noundef %6966, ptr noundef %6969, i32 noundef %6971) #11
  br label %6973

6973:                                             ; preds = %6956, %6939
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %6974

6974:                                             ; preds = %6973
  br label %6975

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

6976:                                             ; No predecessors!
  br label %6977

6977:                                             ; preds = %6976
  br label %6978

6978:                                             ; preds = %6977, %6920
  br label %6979

6979:                                             ; preds = %6978
  br label %6980

6980:                                             ; preds = %6979
  call void @llvm.lifetime.start.p0(i64 56, ptr %185) #11
  %6981 = call i32 @s2n_x509_validator_init(ptr noundef %185, ptr noundef %183, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #11
  %6982 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6982, ptr %186, align 8, !tbaa !9
  br label %6983

6983:                                             ; preds = %6980
  %6984 = load i32, ptr @test_count, align 4, !tbaa !5
  %6985 = add nsw i32 %6984, 1
  store i32 %6985, ptr @test_count, align 4, !tbaa !5
  %6986 = load ptr, ptr %186, align 8, !tbaa !9
  %6987 = icmp eq ptr %6986, null
  br i1 %6987, label %6988, label %7041

6988:                                             ; preds = %6983
  br label %6989

6989:                                             ; preds = %6988
  br label %6990

6990:                                             ; preds = %6989
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %6991 = call ptr @__errno_location() #12
  %6992 = load i32, ptr %6991, align 4, !tbaa !5
  store i32 %6992, ptr %187, align 4, !tbaa !5
  %6993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6994 = call i32 @s2n_print_stacktrace(ptr noundef %6993)
  %6995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6996 = trunc i8 %6995 to i1
  br i1 %6996, label %6997, label %7019

6997:                                             ; preds = %6990
  %6998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6999 = call i32 @fileno(ptr noundef %6998) #11
  %7000 = call i32 @isatty(i32 noundef %6999) #11
  %7001 = icmp ne i32 %7000, 0
  br i1 %7001, label %7002, label %7019

7002:                                             ; preds = %6997
  %7003 = load i32, ptr %187, align 4, !tbaa !5
  %7004 = call ptr @__errno_location() #12
  store i32 %7003, ptr %7004, align 4, !tbaa !5
  %7005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7006 = load i32, ptr @test_count, align 4, !tbaa !5
  %7007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call ptr @s2n_strerror(i32 noundef %7008, ptr noundef @.str.4)
  %7010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call ptr @s2n_strerror_debug(i32 noundef %7011, ptr noundef @.str.4)
  %7013 = call ptr @__errno_location() #12
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call ptr @strerror(i32 noundef %7014) #11
  %7016 = call ptr @__errno_location() #12
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7005, ptr noundef @.str.2, i32 noundef %7006, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 477, ptr noundef %7009, ptr noundef %7012, ptr noundef %7015, i32 noundef %7017) #11
  br label %7036

7019:                                             ; preds = %6997, %6990
  %7020 = load i32, ptr %187, align 4, !tbaa !5
  %7021 = call ptr @__errno_location() #12
  store i32 %7020, ptr %7021, align 4, !tbaa !5
  %7022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7023 = load i32, ptr @test_count, align 4, !tbaa !5
  %7024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call ptr @s2n_strerror(i32 noundef %7025, ptr noundef @.str.4)
  %7027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call ptr @s2n_strerror_debug(i32 noundef %7028, ptr noundef @.str.4)
  %7030 = call ptr @__errno_location() #12
  %7031 = load i32, ptr %7030, align 4, !tbaa !5
  %7032 = call ptr @strerror(i32 noundef %7031) #11
  %7033 = call ptr @__errno_location() #12
  %7034 = load i32, ptr %7033, align 4, !tbaa !5
  %7035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7022, ptr noundef @.str.5, i32 noundef %7023, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 477, ptr noundef %7026, ptr noundef %7029, ptr noundef %7032, i32 noundef %7034) #11
  br label %7036

7036:                                             ; preds = %7019, %7002
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %7037

7037:                                             ; preds = %7036
  br label %7038

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

7039:                                             ; No predecessors!
  br label %7040

7040:                                             ; preds = %7039
  br label %7041

7041:                                             ; preds = %7040, %6983
  br label %7042

7042:                                             ; preds = %7041
  br label %7043

7043:                                             ; preds = %7042
  call void @llvm.lifetime.start.p0(i64 16, ptr %188) #11
  call void @llvm.memset.p0.i64(ptr align 8 %188, i8 0, i64 16, i1 false)
  br label %7044

7044:                                             ; preds = %7043
  %7045 = load i32, ptr @test_count, align 4, !tbaa !5
  %7046 = add nsw i32 %7045, 1
  store i32 %7046, ptr @test_count, align 4, !tbaa !5
  %7047 = load ptr, ptr %186, align 8, !tbaa !9
  %7048 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %7047, ptr noundef @verify_host_accept_everything, ptr noundef %188)
  %7049 = icmp eq i32 %7048, -1
  br i1 %7049, label %7050, label %7103

7050:                                             ; preds = %7044
  br label %7051

7051:                                             ; preds = %7050
  br label %7052

7052:                                             ; preds = %7051
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %7053 = call ptr @__errno_location() #12
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  store i32 %7054, ptr %189, align 4, !tbaa !5
  %7055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7056 = call i32 @s2n_print_stacktrace(ptr noundef %7055)
  %7057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7058 = trunc i8 %7057 to i1
  br i1 %7058, label %7059, label %7081

7059:                                             ; preds = %7052
  %7060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7061 = call i32 @fileno(ptr noundef %7060) #11
  %7062 = call i32 @isatty(i32 noundef %7061) #11
  %7063 = icmp ne i32 %7062, 0
  br i1 %7063, label %7064, label %7081

7064:                                             ; preds = %7059
  %7065 = load i32, ptr %189, align 4, !tbaa !5
  %7066 = call ptr @__errno_location() #12
  store i32 %7065, ptr %7066, align 4, !tbaa !5
  %7067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7068 = load i32, ptr @test_count, align 4, !tbaa !5
  %7069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call ptr @s2n_strerror(i32 noundef %7070, ptr noundef @.str.4)
  %7072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call ptr @s2n_strerror_debug(i32 noundef %7073, ptr noundef @.str.4)
  %7075 = call ptr @__errno_location() #12
  %7076 = load i32, ptr %7075, align 4, !tbaa !5
  %7077 = call ptr @strerror(i32 noundef %7076) #11
  %7078 = call ptr @__errno_location() #12
  %7079 = load i32, ptr %7078, align 4, !tbaa !5
  %7080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7067, ptr noundef @.str.2, i32 noundef %7068, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 480, ptr noundef %7071, ptr noundef %7074, ptr noundef %7077, i32 noundef %7079) #11
  br label %7098

7081:                                             ; preds = %7059, %7052
  %7082 = load i32, ptr %189, align 4, !tbaa !5
  %7083 = call ptr @__errno_location() #12
  store i32 %7082, ptr %7083, align 4, !tbaa !5
  %7084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7085 = load i32, ptr @test_count, align 4, !tbaa !5
  %7086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7087 = load i32, ptr %7086, align 4, !tbaa !5
  %7088 = call ptr @s2n_strerror(i32 noundef %7087, ptr noundef @.str.4)
  %7089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7090 = load i32, ptr %7089, align 4, !tbaa !5
  %7091 = call ptr @s2n_strerror_debug(i32 noundef %7090, ptr noundef @.str.4)
  %7092 = call ptr @__errno_location() #12
  %7093 = load i32, ptr %7092, align 4, !tbaa !5
  %7094 = call ptr @strerror(i32 noundef %7093) #11
  %7095 = call ptr @__errno_location() #12
  %7096 = load i32, ptr %7095, align 4, !tbaa !5
  %7097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7084, ptr noundef @.str.5, i32 noundef %7085, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 480, ptr noundef %7088, ptr noundef %7091, ptr noundef %7094, i32 noundef %7096) #11
  br label %7098

7098:                                             ; preds = %7081, %7064
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %7099

7099:                                             ; preds = %7098
  br label %7100

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

7101:                                             ; No predecessors!
  br label %7102

7102:                                             ; preds = %7101
  br label %7103

7103:                                             ; preds = %7102, %7044
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

7105:                                             ; preds = %7104
  call void @llvm.lifetime.start.p0(i64 40, ptr %190) #11
  call void @llvm.memset.p0.i64(ptr align 8 %190, i8 0, i64 40, i1 false)
  br label %7106

7106:                                             ; preds = %7105
  %7107 = load i32, ptr @test_count, align 4, !tbaa !5
  %7108 = add nsw i32 %7107, 1
  store i32 %7108, ptr @test_count, align 4, !tbaa !5
  %7109 = load ptr, ptr %186, align 8, !tbaa !9
  %7110 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %7109, ptr noundef @.str.11, ptr noundef %190)
  %7111 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  store i32 %7110, ptr %7111, align 4
  %7112 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  %7113 = load i32, ptr %7112, align 4
  %7114 = call zeroext i1 @s2n_result_is_ok(i32 %7113)
  br i1 %7114, label %7168, label %7115

7115:                                             ; preds = %7106
  br label %7116

7116:                                             ; preds = %7115
  br label %7117

7117:                                             ; preds = %7116
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %7118 = call ptr @__errno_location() #12
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  store i32 %7119, ptr %192, align 4, !tbaa !5
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = call i32 @s2n_print_stacktrace(ptr noundef %7120)
  %7122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7123 = trunc i8 %7122 to i1
  br i1 %7123, label %7124, label %7146

7124:                                             ; preds = %7117
  %7125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7126 = call i32 @fileno(ptr noundef %7125) #11
  %7127 = call i32 @isatty(i32 noundef %7126) #11
  %7128 = icmp ne i32 %7127, 0
  br i1 %7128, label %7129, label %7146

7129:                                             ; preds = %7124
  %7130 = load i32, ptr %192, align 4, !tbaa !5
  %7131 = call ptr @__errno_location() #12
  store i32 %7130, ptr %7131, align 4, !tbaa !5
  %7132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7133 = load i32, ptr @test_count, align 4, !tbaa !5
  %7134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call ptr @s2n_strerror(i32 noundef %7135, ptr noundef @.str.4)
  %7137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7138 = load i32, ptr %7137, align 4, !tbaa !5
  %7139 = call ptr @s2n_strerror_debug(i32 noundef %7138, ptr noundef @.str.4)
  %7140 = call ptr @__errno_location() #12
  %7141 = load i32, ptr %7140, align 4, !tbaa !5
  %7142 = call ptr @strerror(i32 noundef %7141) #11
  %7143 = call ptr @__errno_location() #12
  %7144 = load i32, ptr %7143, align 4, !tbaa !5
  %7145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7132, ptr noundef @.str.2, i32 noundef %7133, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 483, ptr noundef %7136, ptr noundef %7139, ptr noundef %7142, i32 noundef %7144) #11
  br label %7163

7146:                                             ; preds = %7124, %7117
  %7147 = load i32, ptr %192, align 4, !tbaa !5
  %7148 = call ptr @__errno_location() #12
  store i32 %7147, ptr %7148, align 4, !tbaa !5
  %7149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7150 = load i32, ptr @test_count, align 4, !tbaa !5
  %7151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call ptr @s2n_strerror(i32 noundef %7152, ptr noundef @.str.4)
  %7154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7155 = load i32, ptr %7154, align 4, !tbaa !5
  %7156 = call ptr @s2n_strerror_debug(i32 noundef %7155, ptr noundef @.str.4)
  %7157 = call ptr @__errno_location() #12
  %7158 = load i32, ptr %7157, align 4, !tbaa !5
  %7159 = call ptr @strerror(i32 noundef %7158) #11
  %7160 = call ptr @__errno_location() #12
  %7161 = load i32, ptr %7160, align 4, !tbaa !5
  %7162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7149, ptr noundef @.str.5, i32 noundef %7150, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 483, ptr noundef %7153, ptr noundef %7156, ptr noundef %7159, i32 noundef %7161) #11
  br label %7163

7163:                                             ; preds = %7146, %7129
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %7164

7164:                                             ; preds = %7163
  br label %7165

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

7166:                                             ; No predecessors!
  br label %7167

7167:                                             ; preds = %7166
  br label %7168

7168:                                             ; preds = %7167, %7106
  br label %7169

7169:                                             ; preds = %7168
  br label %7170

7170:                                             ; preds = %7169
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %7171 = getelementptr inbounds %struct.s2n_stuffer, ptr %190, i32 0, i32 2
  %7172 = load i32, ptr %7171, align 4, !tbaa !15
  %7173 = getelementptr inbounds %struct.s2n_stuffer, ptr %190, i32 0, i32 1
  %7174 = load i32, ptr %7173, align 8, !tbaa !18
  %7175 = sub i32 %7172, %7174
  store i32 %7175, ptr %193, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #11
  %7176 = load i32, ptr %193, align 4, !tbaa !5
  %7177 = call ptr @s2n_stuffer_raw_read(ptr noundef %190, i32 noundef %7176)
  store ptr %7177, ptr %194, align 8, !tbaa !9
  br label %7178

7178:                                             ; preds = %7170
  %7179 = load i32, ptr @test_count, align 4, !tbaa !5
  %7180 = add nsw i32 %7179, 1
  store i32 %7180, ptr @test_count, align 4, !tbaa !5
  %7181 = load ptr, ptr %194, align 8, !tbaa !9
  %7182 = icmp eq ptr %7181, null
  br i1 %7182, label %7183, label %7236

7183:                                             ; preds = %7178
  br label %7184

7184:                                             ; preds = %7183
  br label %7185

7185:                                             ; preds = %7184
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %7186 = call ptr @__errno_location() #12
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  store i32 %7187, ptr %195, align 4, !tbaa !5
  %7188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7189 = call i32 @s2n_print_stacktrace(ptr noundef %7188)
  %7190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7191 = trunc i8 %7190 to i1
  br i1 %7191, label %7192, label %7214

7192:                                             ; preds = %7185
  %7193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7194 = call i32 @fileno(ptr noundef %7193) #11
  %7195 = call i32 @isatty(i32 noundef %7194) #11
  %7196 = icmp ne i32 %7195, 0
  br i1 %7196, label %7197, label %7214

7197:                                             ; preds = %7192
  %7198 = load i32, ptr %195, align 4, !tbaa !5
  %7199 = call ptr @__errno_location() #12
  store i32 %7198, ptr %7199, align 4, !tbaa !5
  %7200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7201 = load i32, ptr @test_count, align 4, !tbaa !5
  %7202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call ptr @s2n_strerror(i32 noundef %7203, ptr noundef @.str.4)
  %7205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7206 = load i32, ptr %7205, align 4, !tbaa !5
  %7207 = call ptr @s2n_strerror_debug(i32 noundef %7206, ptr noundef @.str.4)
  %7208 = call ptr @__errno_location() #12
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  %7210 = call ptr @strerror(i32 noundef %7209) #11
  %7211 = call ptr @__errno_location() #12
  %7212 = load i32, ptr %7211, align 4, !tbaa !5
  %7213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7200, ptr noundef @.str.2, i32 noundef %7201, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 486, ptr noundef %7204, ptr noundef %7207, ptr noundef %7210, i32 noundef %7212) #11
  br label %7231

7214:                                             ; preds = %7192, %7185
  %7215 = load i32, ptr %195, align 4, !tbaa !5
  %7216 = call ptr @__errno_location() #12
  store i32 %7215, ptr %7216, align 4, !tbaa !5
  %7217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7218 = load i32, ptr @test_count, align 4, !tbaa !5
  %7219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7220 = load i32, ptr %7219, align 4, !tbaa !5
  %7221 = call ptr @s2n_strerror(i32 noundef %7220, ptr noundef @.str.4)
  %7222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7223 = load i32, ptr %7222, align 4, !tbaa !5
  %7224 = call ptr @s2n_strerror_debug(i32 noundef %7223, ptr noundef @.str.4)
  %7225 = call ptr @__errno_location() #12
  %7226 = load i32, ptr %7225, align 4, !tbaa !5
  %7227 = call ptr @strerror(i32 noundef %7226) #11
  %7228 = call ptr @__errno_location() #12
  %7229 = load i32, ptr %7228, align 4, !tbaa !5
  %7230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7217, ptr noundef @.str.5, i32 noundef %7218, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 486, ptr noundef %7221, ptr noundef %7224, ptr noundef %7227, i32 noundef %7229) #11
  br label %7231

7231:                                             ; preds = %7214, %7197
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %7232

7232:                                             ; preds = %7231
  br label %7233

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

7234:                                             ; No predecessors!
  br label %7235

7235:                                             ; preds = %7234
  br label %7236

7236:                                             ; preds = %7235, %7178
  br label %7237

7237:                                             ; preds = %7236
  br label %7238

7238:                                             ; preds = %7237
  br label %7239

7239:                                             ; preds = %7238
  %7240 = load i32, ptr @test_count, align 4, !tbaa !5
  %7241 = add nsw i32 %7240, 1
  store i32 %7241, ptr @test_count, align 4, !tbaa !5
  %7242 = load ptr, ptr %186, align 8, !tbaa !9
  %7243 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %7242, ptr noundef @.str.23)
  %7244 = icmp eq i32 %7243, -1
  br i1 %7244, label %7245, label %7298

7245:                                             ; preds = %7239
  br label %7246

7246:                                             ; preds = %7245
  br label %7247

7247:                                             ; preds = %7246
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %7248 = call ptr @__errno_location() #12
  %7249 = load i32, ptr %7248, align 4, !tbaa !5
  store i32 %7249, ptr %196, align 4, !tbaa !5
  %7250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7251 = call i32 @s2n_print_stacktrace(ptr noundef %7250)
  %7252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7253 = trunc i8 %7252 to i1
  br i1 %7253, label %7254, label %7276

7254:                                             ; preds = %7247
  %7255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7256 = call i32 @fileno(ptr noundef %7255) #11
  %7257 = call i32 @isatty(i32 noundef %7256) #11
  %7258 = icmp ne i32 %7257, 0
  br i1 %7258, label %7259, label %7276

7259:                                             ; preds = %7254
  %7260 = load i32, ptr %196, align 4, !tbaa !5
  %7261 = call ptr @__errno_location() #12
  store i32 %7260, ptr %7261, align 4, !tbaa !5
  %7262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7263 = load i32, ptr @test_count, align 4, !tbaa !5
  %7264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7265 = load i32, ptr %7264, align 4, !tbaa !5
  %7266 = call ptr @s2n_strerror(i32 noundef %7265, ptr noundef @.str.4)
  %7267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @s2n_strerror_debug(i32 noundef %7268, ptr noundef @.str.4)
  %7270 = call ptr @__errno_location() #12
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @strerror(i32 noundef %7271) #11
  %7273 = call ptr @__errno_location() #12
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7262, ptr noundef @.str.2, i32 noundef %7263, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 488, ptr noundef %7266, ptr noundef %7269, ptr noundef %7272, i32 noundef %7274) #11
  br label %7293

7276:                                             ; preds = %7254, %7247
  %7277 = load i32, ptr %196, align 4, !tbaa !5
  %7278 = call ptr @__errno_location() #12
  store i32 %7277, ptr %7278, align 4, !tbaa !5
  %7279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7280 = load i32, ptr @test_count, align 4, !tbaa !5
  %7281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7282 = load i32, ptr %7281, align 4, !tbaa !5
  %7283 = call ptr @s2n_strerror(i32 noundef %7282, ptr noundef @.str.4)
  %7284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7285 = load i32, ptr %7284, align 4, !tbaa !5
  %7286 = call ptr @s2n_strerror_debug(i32 noundef %7285, ptr noundef @.str.4)
  %7287 = call ptr @__errno_location() #12
  %7288 = load i32, ptr %7287, align 4, !tbaa !5
  %7289 = call ptr @strerror(i32 noundef %7288) #11
  %7290 = call ptr @__errno_location() #12
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  %7292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7279, ptr noundef @.str.5, i32 noundef %7280, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 488, ptr noundef %7283, ptr noundef %7286, ptr noundef %7289, i32 noundef %7291) #11
  br label %7293

7293:                                             ; preds = %7276, %7259
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %7294

7294:                                             ; preds = %7293
  br label %7295

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

7296:                                             ; No predecessors!
  br label %7297

7297:                                             ; preds = %7296
  br label %7298

7298:                                             ; preds = %7297, %7239
  br label %7299

7299:                                             ; preds = %7298
  br label %7300

7300:                                             ; preds = %7299
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #11
  %7301 = load ptr, ptr %186, align 8, !tbaa !9
  %7302 = getelementptr inbounds %struct.s2n_connection, ptr %7301, i32 0, i32 1
  %7303 = load ptr, ptr %7302, align 8, !tbaa !22
  %7304 = getelementptr inbounds %struct.s2n_config, ptr %7303, i32 0, i32 5
  %7305 = load ptr, ptr %7304, align 8, !tbaa !47
  store ptr %7305, ptr %197, align 8, !tbaa !9
  %7306 = load ptr, ptr %186, align 8, !tbaa !9
  %7307 = getelementptr inbounds %struct.s2n_connection, ptr %7306, i32 0, i32 1
  %7308 = load ptr, ptr %7307, align 8, !tbaa !22
  %7309 = call i32 @s2n_config_set_wall_clock(ptr noundef %7308, ptr noundef @fetch_expired_after_ocsp_timestamp, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 48, ptr %198) #11
  br label %7310

7310:                                             ; preds = %7300
  %7311 = load i32, ptr @test_count, align 4, !tbaa !5
  %7312 = add nsw i32 %7311, 1
  store i32 %7312, ptr @test_count, align 4, !tbaa !5
  %7313 = call i32 @s2n_pkey_zero_init(ptr noundef %198)
  %7314 = icmp eq i32 %7313, -1
  br i1 %7314, label %7315, label %7368

7315:                                             ; preds = %7310
  br label %7316

7316:                                             ; preds = %7315
  br label %7317

7317:                                             ; preds = %7316
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %7318 = call ptr @__errno_location() #12
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  store i32 %7319, ptr %199, align 4, !tbaa !5
  %7320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7321 = call i32 @s2n_print_stacktrace(ptr noundef %7320)
  %7322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7323 = trunc i8 %7322 to i1
  br i1 %7323, label %7324, label %7346

7324:                                             ; preds = %7317
  %7325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7326 = call i32 @fileno(ptr noundef %7325) #11
  %7327 = call i32 @isatty(i32 noundef %7326) #11
  %7328 = icmp ne i32 %7327, 0
  br i1 %7328, label %7329, label %7346

7329:                                             ; preds = %7324
  %7330 = load i32, ptr %199, align 4, !tbaa !5
  %7331 = call ptr @__errno_location() #12
  store i32 %7330, ptr %7331, align 4, !tbaa !5
  %7332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7333 = load i32, ptr @test_count, align 4, !tbaa !5
  %7334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7335 = load i32, ptr %7334, align 4, !tbaa !5
  %7336 = call ptr @s2n_strerror(i32 noundef %7335, ptr noundef @.str.4)
  %7337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call ptr @s2n_strerror_debug(i32 noundef %7338, ptr noundef @.str.4)
  %7340 = call ptr @__errno_location() #12
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call ptr @strerror(i32 noundef %7341) #11
  %7343 = call ptr @__errno_location() #12
  %7344 = load i32, ptr %7343, align 4, !tbaa !5
  %7345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7332, ptr noundef @.str.2, i32 noundef %7333, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 494, ptr noundef %7336, ptr noundef %7339, ptr noundef %7342, i32 noundef %7344) #11
  br label %7363

7346:                                             ; preds = %7324, %7317
  %7347 = load i32, ptr %199, align 4, !tbaa !5
  %7348 = call ptr @__errno_location() #12
  store i32 %7347, ptr %7348, align 4, !tbaa !5
  %7349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7350 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7352, ptr noundef @.str.4)
  %7354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call ptr @s2n_strerror_debug(i32 noundef %7355, ptr noundef @.str.4)
  %7357 = call ptr @__errno_location() #12
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call ptr @strerror(i32 noundef %7358) #11
  %7360 = call ptr @__errno_location() #12
  %7361 = load i32, ptr %7360, align 4, !tbaa !5
  %7362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7349, ptr noundef @.str.5, i32 noundef %7350, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 494, ptr noundef %7353, ptr noundef %7356, ptr noundef %7359, i32 noundef %7361) #11
  br label %7363

7363:                                             ; preds = %7346, %7329
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %7364

7364:                                             ; preds = %7363
  br label %7365

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

7366:                                             ; No predecessors!
  br label %7367

7367:                                             ; preds = %7366
  br label %7368

7368:                                             ; preds = %7367, %7310
  br label %7369

7369:                                             ; preds = %7368
  br label %7370

7370:                                             ; preds = %7369
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  store i32 -1, ptr %200, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  store i32 335544369, ptr %201, align 4, !tbaa !5
  %7371 = call zeroext i1 @s2n_supports_large_time_t()
  br i1 %7371, label %7373, label %7372

7372:                                             ; preds = %7370
  store i32 402653194, ptr %201, align 4, !tbaa !5
  br label %7377

7373:                                             ; preds = %7370
  %7374 = call zeroext i1 @s2n_libcrypto_supports_2050()
  br i1 %7374, label %7376, label %7375

7375:                                             ; preds = %7373
  store i32 335544366, ptr %201, align 4, !tbaa !5
  br label %7376

7376:                                             ; preds = %7375, %7373
  br label %7377

7377:                                             ; preds = %7376, %7372
  br label %7378

7378:                                             ; preds = %7377
  br label %7379

7379:                                             ; preds = %7378
  br label %7380

7380:                                             ; preds = %7379
  %7381 = load i32, ptr @test_count, align 4, !tbaa !5
  %7382 = add nsw i32 %7381, 1
  store i32 %7382, ptr @test_count, align 4, !tbaa !5
  %7383 = load ptr, ptr %186, align 8, !tbaa !9
  %7384 = load ptr, ptr %194, align 8, !tbaa !9
  %7385 = load i32, ptr %193, align 4, !tbaa !5
  %7386 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %185, ptr noundef %7383, ptr noundef %7384, i32 noundef %7385, ptr noundef %200, ptr noundef %198)
  %7387 = getelementptr inbounds %struct.s2n_result, ptr %202, i32 0, i32 0
  store i32 %7386, ptr %7387, align 4
  %7388 = getelementptr inbounds %struct.s2n_result, ptr %202, i32 0, i32 0
  %7389 = load i32, ptr %7388, align 4
  %7390 = call zeroext i1 @s2n_result_is_error(i32 %7389)
  br i1 %7390, label %7444, label %7391

7391:                                             ; preds = %7380
  br label %7392

7392:                                             ; preds = %7391
  br label %7393

7393:                                             ; preds = %7392
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %7394 = call ptr @__errno_location() #12
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  store i32 %7395, ptr %203, align 4, !tbaa !5
  %7396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7397 = call i32 @s2n_print_stacktrace(ptr noundef %7396)
  %7398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7399 = trunc i8 %7398 to i1
  br i1 %7399, label %7400, label %7422

7400:                                             ; preds = %7393
  %7401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7402 = call i32 @fileno(ptr noundef %7401) #11
  %7403 = call i32 @isatty(i32 noundef %7402) #11
  %7404 = icmp ne i32 %7403, 0
  br i1 %7404, label %7405, label %7422

7405:                                             ; preds = %7400
  %7406 = load i32, ptr %203, align 4, !tbaa !5
  %7407 = call ptr @__errno_location() #12
  store i32 %7406, ptr %7407, align 4, !tbaa !5
  %7408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7409 = load i32, ptr @test_count, align 4, !tbaa !5
  %7410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7411 = load i32, ptr %7410, align 4, !tbaa !5
  %7412 = call ptr @s2n_strerror(i32 noundef %7411, ptr noundef @.str.4)
  %7413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  %7415 = call ptr @s2n_strerror_debug(i32 noundef %7414, ptr noundef @.str.4)
  %7416 = call ptr @__errno_location() #12
  %7417 = load i32, ptr %7416, align 4, !tbaa !5
  %7418 = call ptr @strerror(i32 noundef %7417) #11
  %7419 = call ptr @__errno_location() #12
  %7420 = load i32, ptr %7419, align 4, !tbaa !5
  %7421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7408, ptr noundef @.str.2, i32 noundef %7409, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 508, ptr noundef %7412, ptr noundef %7415, ptr noundef %7418, i32 noundef %7420) #11
  br label %7439

7422:                                             ; preds = %7400, %7393
  %7423 = load i32, ptr %203, align 4, !tbaa !5
  %7424 = call ptr @__errno_location() #12
  store i32 %7423, ptr %7424, align 4, !tbaa !5
  %7425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7426 = load i32, ptr @test_count, align 4, !tbaa !5
  %7427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7428 = load i32, ptr %7427, align 4, !tbaa !5
  %7429 = call ptr @s2n_strerror(i32 noundef %7428, ptr noundef @.str.4)
  %7430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7431 = load i32, ptr %7430, align 4, !tbaa !5
  %7432 = call ptr @s2n_strerror_debug(i32 noundef %7431, ptr noundef @.str.4)
  %7433 = call ptr @__errno_location() #12
  %7434 = load i32, ptr %7433, align 4, !tbaa !5
  %7435 = call ptr @strerror(i32 noundef %7434) #11
  %7436 = call ptr @__errno_location() #12
  %7437 = load i32, ptr %7436, align 4, !tbaa !5
  %7438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7425, ptr noundef @.str.5, i32 noundef %7426, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 508, ptr noundef %7429, ptr noundef %7432, ptr noundef %7435, i32 noundef %7437) #11
  br label %7439

7439:                                             ; preds = %7422, %7405
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %7440

7440:                                             ; preds = %7439
  br label %7441

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

7442:                                             ; No predecessors!
  br label %7443

7443:                                             ; preds = %7442
  br label %7444

7444:                                             ; preds = %7443, %7380
  br label %7445

7445:                                             ; preds = %7444
  br label %7446

7446:                                             ; preds = %7445
  br label %7447

7447:                                             ; preds = %7446
  %7448 = load i32, ptr @test_count, align 4, !tbaa !5
  %7449 = add nsw i32 %7448, 1
  store i32 %7449, ptr @test_count, align 4, !tbaa !5
  %7450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7451 = load i32, ptr %7450, align 4, !tbaa !5
  %7452 = load i32, ptr %201, align 4, !tbaa !5
  %7453 = icmp eq i32 %7451, %7452
  br i1 %7453, label %7507, label %7454

7454:                                             ; preds = %7447
  br label %7455

7455:                                             ; preds = %7454
  br label %7456

7456:                                             ; preds = %7455
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %7457 = call ptr @__errno_location() #12
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  store i32 %7458, ptr %204, align 4, !tbaa !5
  %7459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7460 = call i32 @s2n_print_stacktrace(ptr noundef %7459)
  %7461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7462 = trunc i8 %7461 to i1
  br i1 %7462, label %7463, label %7485

7463:                                             ; preds = %7456
  %7464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7465 = call i32 @fileno(ptr noundef %7464) #11
  %7466 = call i32 @isatty(i32 noundef %7465) #11
  %7467 = icmp ne i32 %7466, 0
  br i1 %7467, label %7468, label %7485

7468:                                             ; preds = %7463
  %7469 = load i32, ptr %204, align 4, !tbaa !5
  %7470 = call ptr @__errno_location() #12
  store i32 %7469, ptr %7470, align 4, !tbaa !5
  %7471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7472 = load i32, ptr @test_count, align 4, !tbaa !5
  %7473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7474 = load i32, ptr %7473, align 4, !tbaa !5
  %7475 = call ptr @s2n_strerror(i32 noundef %7474, ptr noundef @.str.4)
  %7476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7477 = load i32, ptr %7476, align 4, !tbaa !5
  %7478 = call ptr @s2n_strerror_debug(i32 noundef %7477, ptr noundef @.str.4)
  %7479 = call ptr @__errno_location() #12
  %7480 = load i32, ptr %7479, align 4, !tbaa !5
  %7481 = call ptr @strerror(i32 noundef %7480) #11
  %7482 = call ptr @__errno_location() #12
  %7483 = load i32, ptr %7482, align 4, !tbaa !5
  %7484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7471, ptr noundef @.str.2, i32 noundef %7472, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 508, ptr noundef %7475, ptr noundef %7478, ptr noundef %7481, i32 noundef %7483) #11
  br label %7502

7485:                                             ; preds = %7463, %7456
  %7486 = load i32, ptr %204, align 4, !tbaa !5
  %7487 = call ptr @__errno_location() #12
  store i32 %7486, ptr %7487, align 4, !tbaa !5
  %7488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7489 = load i32, ptr @test_count, align 4, !tbaa !5
  %7490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  %7492 = call ptr @s2n_strerror(i32 noundef %7491, ptr noundef @.str.4)
  %7493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7494 = load i32, ptr %7493, align 4, !tbaa !5
  %7495 = call ptr @s2n_strerror_debug(i32 noundef %7494, ptr noundef @.str.4)
  %7496 = call ptr @__errno_location() #12
  %7497 = load i32, ptr %7496, align 4, !tbaa !5
  %7498 = call ptr @strerror(i32 noundef %7497) #11
  %7499 = call ptr @__errno_location() #12
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7488, ptr noundef @.str.5, i32 noundef %7489, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 508, ptr noundef %7492, ptr noundef %7495, ptr noundef %7498, i32 noundef %7500) #11
  br label %7502

7502:                                             ; preds = %7485, %7468
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %7503

7503:                                             ; preds = %7502
  br label %7504

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

7505:                                             ; No predecessors!
  br label %7506

7506:                                             ; preds = %7505
  br label %7507

7507:                                             ; preds = %7506, %7447
  br label %7508

7508:                                             ; preds = %7507
  br label %7509

7509:                                             ; preds = %7508
  br label %7510

7510:                                             ; preds = %7509
  %7511 = load i32, ptr @test_count, align 4, !tbaa !5
  %7512 = add nsw i32 %7511, 1
  store i32 %7512, ptr @test_count, align 4, !tbaa !5
  %7513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7514 = load i32, ptr %7513, align 4, !tbaa !5
  %7515 = call ptr @s2n_strerror_debug(i32 noundef %7514, ptr noundef @.str.4)
  %7516 = icmp eq ptr %7515, null
  br i1 %7516, label %7517, label %7570

7517:                                             ; preds = %7510
  br label %7518

7518:                                             ; preds = %7517
  br label %7519

7519:                                             ; preds = %7518
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %7520 = call ptr @__errno_location() #12
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  store i32 %7521, ptr %205, align 4, !tbaa !5
  %7522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7523 = call i32 @s2n_print_stacktrace(ptr noundef %7522)
  %7524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7525 = trunc i8 %7524 to i1
  br i1 %7525, label %7526, label %7548

7526:                                             ; preds = %7519
  %7527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7528 = call i32 @fileno(ptr noundef %7527) #11
  %7529 = call i32 @isatty(i32 noundef %7528) #11
  %7530 = icmp ne i32 %7529, 0
  br i1 %7530, label %7531, label %7548

7531:                                             ; preds = %7526
  %7532 = load i32, ptr %205, align 4, !tbaa !5
  %7533 = call ptr @__errno_location() #12
  store i32 %7532, ptr %7533, align 4, !tbaa !5
  %7534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7535 = load i32, ptr @test_count, align 4, !tbaa !5
  %7536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7537 = load i32, ptr %7536, align 4, !tbaa !5
  %7538 = call ptr @s2n_strerror(i32 noundef %7537, ptr noundef @.str.4)
  %7539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7540 = load i32, ptr %7539, align 4, !tbaa !5
  %7541 = call ptr @s2n_strerror_debug(i32 noundef %7540, ptr noundef @.str.4)
  %7542 = call ptr @__errno_location() #12
  %7543 = load i32, ptr %7542, align 4, !tbaa !5
  %7544 = call ptr @strerror(i32 noundef %7543) #11
  %7545 = call ptr @__errno_location() #12
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  %7547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7534, ptr noundef @.str.2, i32 noundef %7535, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 508, ptr noundef %7538, ptr noundef %7541, ptr noundef %7544, i32 noundef %7546) #11
  br label %7565

7548:                                             ; preds = %7526, %7519
  %7549 = load i32, ptr %205, align 4, !tbaa !5
  %7550 = call ptr @__errno_location() #12
  store i32 %7549, ptr %7550, align 4, !tbaa !5
  %7551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7552 = load i32, ptr @test_count, align 4, !tbaa !5
  %7553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7554 = load i32, ptr %7553, align 4, !tbaa !5
  %7555 = call ptr @s2n_strerror(i32 noundef %7554, ptr noundef @.str.4)
  %7556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7557 = load i32, ptr %7556, align 4, !tbaa !5
  %7558 = call ptr @s2n_strerror_debug(i32 noundef %7557, ptr noundef @.str.4)
  %7559 = call ptr @__errno_location() #12
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  %7561 = call ptr @strerror(i32 noundef %7560) #11
  %7562 = call ptr @__errno_location() #12
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7551, ptr noundef @.str.5, i32 noundef %7552, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 508, ptr noundef %7555, ptr noundef %7558, ptr noundef %7561, i32 noundef %7563) #11
  br label %7565

7565:                                             ; preds = %7548, %7531
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %7566

7566:                                             ; preds = %7565
  br label %7567

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

7568:                                             ; No predecessors!
  br label %7569

7569:                                             ; preds = %7568
  br label %7570

7570:                                             ; preds = %7569, %7510
  br label %7571

7571:                                             ; preds = %7570
  br label %7572

7572:                                             ; preds = %7571
  br label %7573

7573:                                             ; preds = %7572
  br label %7574

7574:                                             ; preds = %7573
  br label %7575

7575:                                             ; preds = %7574
  %7576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7576, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7577 = call ptr @__errno_location() #12
  store i32 0, ptr %7577, align 4, !tbaa !5
  br label %7578

7578:                                             ; preds = %7575
  br label %7579

7579:                                             ; preds = %7578
  br label %7580

7580:                                             ; preds = %7579
  br label %7581

7581:                                             ; preds = %7580
  br label %7582

7582:                                             ; preds = %7581
  %7583 = load i32, ptr @test_count, align 4, !tbaa !5
  %7584 = add nsw i32 %7583, 1
  store i32 %7584, ptr @test_count, align 4, !tbaa !5
  %7585 = getelementptr inbounds %struct.host_verify_data, ptr %188, i32 0, i32 2
  %7586 = load i8, ptr %7585, align 1, !tbaa !19
  %7587 = zext i8 %7586 to i32
  %7588 = icmp eq i32 1, %7587
  br i1 %7588, label %7642, label %7589

7589:                                             ; preds = %7582
  br label %7590

7590:                                             ; preds = %7589
  br label %7591

7591:                                             ; preds = %7590
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %7592 = call ptr @__errno_location() #12
  %7593 = load i32, ptr %7592, align 4, !tbaa !5
  store i32 %7593, ptr %206, align 4, !tbaa !5
  %7594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7595 = call i32 @s2n_print_stacktrace(ptr noundef %7594)
  %7596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7597 = trunc i8 %7596 to i1
  br i1 %7597, label %7598, label %7620

7598:                                             ; preds = %7591
  %7599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7600 = call i32 @fileno(ptr noundef %7599) #11
  %7601 = call i32 @isatty(i32 noundef %7600) #11
  %7602 = icmp ne i32 %7601, 0
  br i1 %7602, label %7603, label %7620

7603:                                             ; preds = %7598
  %7604 = load i32, ptr %206, align 4, !tbaa !5
  %7605 = call ptr @__errno_location() #12
  store i32 %7604, ptr %7605, align 4, !tbaa !5
  %7606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7607 = load i32, ptr @test_count, align 4, !tbaa !5
  %7608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7609 = load i32, ptr %7608, align 4, !tbaa !5
  %7610 = call ptr @s2n_strerror(i32 noundef %7609, ptr noundef @.str.4)
  %7611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7612 = load i32, ptr %7611, align 4, !tbaa !5
  %7613 = call ptr @s2n_strerror_debug(i32 noundef %7612, ptr noundef @.str.4)
  %7614 = call ptr @__errno_location() #12
  %7615 = load i32, ptr %7614, align 4, !tbaa !5
  %7616 = call ptr @strerror(i32 noundef %7615) #11
  %7617 = call ptr @__errno_location() #12
  %7618 = load i32, ptr %7617, align 4, !tbaa !5
  %7619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7606, ptr noundef @.str.2, i32 noundef %7607, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 510, ptr noundef %7610, ptr noundef %7613, ptr noundef %7616, i32 noundef %7618) #11
  br label %7637

7620:                                             ; preds = %7598, %7591
  %7621 = load i32, ptr %206, align 4, !tbaa !5
  %7622 = call ptr @__errno_location() #12
  store i32 %7621, ptr %7622, align 4, !tbaa !5
  %7623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7624 = load i32, ptr @test_count, align 4, !tbaa !5
  %7625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  %7627 = call ptr @s2n_strerror(i32 noundef %7626, ptr noundef @.str.4)
  %7628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call ptr @s2n_strerror_debug(i32 noundef %7629, ptr noundef @.str.4)
  %7631 = call ptr @__errno_location() #12
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @strerror(i32 noundef %7632) #11
  %7634 = call ptr @__errno_location() #12
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7623, ptr noundef @.str.5, i32 noundef %7624, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 510, ptr noundef %7627, ptr noundef %7630, ptr noundef %7633, i32 noundef %7635) #11
  br label %7637

7637:                                             ; preds = %7620, %7603
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %7638

7638:                                             ; preds = %7637
  br label %7639

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

7640:                                             ; No predecessors!
  br label %7641

7641:                                             ; preds = %7640
  br label %7642

7642:                                             ; preds = %7641, %7582
  br label %7643

7643:                                             ; preds = %7642
  br label %7644

7644:                                             ; preds = %7643
  %7645 = load ptr, ptr %186, align 8, !tbaa !9
  %7646 = getelementptr inbounds %struct.s2n_connection, ptr %7645, i32 0, i32 1
  %7647 = load ptr, ptr %7646, align 8, !tbaa !22
  %7648 = load ptr, ptr %197, align 8, !tbaa !9
  %7649 = call i32 @s2n_config_set_wall_clock(ptr noundef %7647, ptr noundef %7648, ptr noundef null)
  %7650 = load ptr, ptr %186, align 8, !tbaa !9
  %7651 = call i32 @s2n_connection_free(ptr noundef %7650)
  %7652 = call i32 @s2n_pkey_free(ptr noundef %198)
  %7653 = call i32 @s2n_x509_validator_wipe(ptr noundef %185)
  call void @s2n_x509_trust_store_wipe(ptr noundef %183)
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %198) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  %7654 = call i32 @s2n_stuffer_free(ptr noundef %190)
  call void @llvm.lifetime.end.p0(i64 40, ptr %190) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %185) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %207) #11
  call void @llvm.memset.p0.i64(ptr align 8 %207, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef %207)
  br label %7655

7655:                                             ; preds = %7644
  %7656 = load i32, ptr @test_count, align 4, !tbaa !5
  %7657 = add nsw i32 %7656, 1
  store i32 %7657, ptr @test_count, align 4, !tbaa !5
  %7658 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %207, ptr noundef @.str.48, ptr noundef null)
  %7659 = icmp eq i32 %7658, -1
  br i1 %7659, label %7660, label %7713

7660:                                             ; preds = %7655
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

7662:                                             ; preds = %7661
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %7663 = call ptr @__errno_location() #12
  %7664 = load i32, ptr %7663, align 4, !tbaa !5
  store i32 %7664, ptr %208, align 4, !tbaa !5
  %7665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7666 = call i32 @s2n_print_stacktrace(ptr noundef %7665)
  %7667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7668 = trunc i8 %7667 to i1
  br i1 %7668, label %7669, label %7691

7669:                                             ; preds = %7662
  %7670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7671 = call i32 @fileno(ptr noundef %7670) #11
  %7672 = call i32 @isatty(i32 noundef %7671) #11
  %7673 = icmp ne i32 %7672, 0
  br i1 %7673, label %7674, label %7691

7674:                                             ; preds = %7669
  %7675 = load i32, ptr %208, align 4, !tbaa !5
  %7676 = call ptr @__errno_location() #12
  store i32 %7675, ptr %7676, align 4, !tbaa !5
  %7677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7678 = load i32, ptr @test_count, align 4, !tbaa !5
  %7679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  %7681 = call ptr @s2n_strerror(i32 noundef %7680, ptr noundef @.str.4)
  %7682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7683 = load i32, ptr %7682, align 4, !tbaa !5
  %7684 = call ptr @s2n_strerror_debug(i32 noundef %7683, ptr noundef @.str.4)
  %7685 = call ptr @__errno_location() #12
  %7686 = load i32, ptr %7685, align 4, !tbaa !5
  %7687 = call ptr @strerror(i32 noundef %7686) #11
  %7688 = call ptr @__errno_location() #12
  %7689 = load i32, ptr %7688, align 4, !tbaa !5
  %7690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7677, ptr noundef @.str.2, i32 noundef %7678, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 527, ptr noundef %7681, ptr noundef %7684, ptr noundef %7687, i32 noundef %7689) #11
  br label %7708

7691:                                             ; preds = %7669, %7662
  %7692 = load i32, ptr %208, align 4, !tbaa !5
  %7693 = call ptr @__errno_location() #12
  store i32 %7692, ptr %7693, align 4, !tbaa !5
  %7694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7695 = load i32, ptr @test_count, align 4, !tbaa !5
  %7696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call ptr @s2n_strerror(i32 noundef %7697, ptr noundef @.str.4)
  %7699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  %7701 = call ptr @s2n_strerror_debug(i32 noundef %7700, ptr noundef @.str.4)
  %7702 = call ptr @__errno_location() #12
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call ptr @strerror(i32 noundef %7703) #11
  %7705 = call ptr @__errno_location() #12
  %7706 = load i32, ptr %7705, align 4, !tbaa !5
  %7707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7694, ptr noundef @.str.5, i32 noundef %7695, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 527, ptr noundef %7698, ptr noundef %7701, ptr noundef %7704, i32 noundef %7706) #11
  br label %7708

7708:                                             ; preds = %7691, %7674
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %7709

7709:                                             ; preds = %7708
  br label %7710

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

7711:                                             ; No predecessors!
  br label %7712

7712:                                             ; preds = %7711
  br label %7713

7713:                                             ; preds = %7712, %7655
  br label %7714

7714:                                             ; preds = %7713
  br label %7715

7715:                                             ; preds = %7714
  call void @llvm.lifetime.start.p0(i64 56, ptr %209) #11
  call void @llvm.memset.p0.i64(ptr align 8 %209, i8 0, i64 56, i1 false)
  br label %7716

7716:                                             ; preds = %7715
  %7717 = load i32, ptr @test_count, align 4, !tbaa !5
  %7718 = add nsw i32 %7717, 1
  store i32 %7718, ptr @test_count, align 4, !tbaa !5
  %7719 = call i32 @s2n_x509_validator_init(ptr noundef %209, ptr noundef %207, i8 noundef zeroext 0)
  %7720 = icmp eq i32 %7719, -1
  br i1 %7720, label %7721, label %7774

7721:                                             ; preds = %7716
  br label %7722

7722:                                             ; preds = %7721
  br label %7723

7723:                                             ; preds = %7722
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %7724 = call ptr @__errno_location() #12
  %7725 = load i32, ptr %7724, align 4, !tbaa !5
  store i32 %7725, ptr %210, align 4, !tbaa !5
  %7726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7727 = call i32 @s2n_print_stacktrace(ptr noundef %7726)
  %7728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7729 = trunc i8 %7728 to i1
  br i1 %7729, label %7730, label %7752

7730:                                             ; preds = %7723
  %7731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7732 = call i32 @fileno(ptr noundef %7731) #11
  %7733 = call i32 @isatty(i32 noundef %7732) #11
  %7734 = icmp ne i32 %7733, 0
  br i1 %7734, label %7735, label %7752

7735:                                             ; preds = %7730
  %7736 = load i32, ptr %210, align 4, !tbaa !5
  %7737 = call ptr @__errno_location() #12
  store i32 %7736, ptr %7737, align 4, !tbaa !5
  %7738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7739 = load i32, ptr @test_count, align 4, !tbaa !5
  %7740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7741 = load i32, ptr %7740, align 4, !tbaa !5
  %7742 = call ptr @s2n_strerror(i32 noundef %7741, ptr noundef @.str.4)
  %7743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7744 = load i32, ptr %7743, align 4, !tbaa !5
  %7745 = call ptr @s2n_strerror_debug(i32 noundef %7744, ptr noundef @.str.4)
  %7746 = call ptr @__errno_location() #12
  %7747 = load i32, ptr %7746, align 4, !tbaa !5
  %7748 = call ptr @strerror(i32 noundef %7747) #11
  %7749 = call ptr @__errno_location() #12
  %7750 = load i32, ptr %7749, align 4, !tbaa !5
  %7751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7738, ptr noundef @.str.2, i32 noundef %7739, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 530, ptr noundef %7742, ptr noundef %7745, ptr noundef %7748, i32 noundef %7750) #11
  br label %7769

7752:                                             ; preds = %7730, %7723
  %7753 = load i32, ptr %210, align 4, !tbaa !5
  %7754 = call ptr @__errno_location() #12
  store i32 %7753, ptr %7754, align 4, !tbaa !5
  %7755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7756 = load i32, ptr @test_count, align 4, !tbaa !5
  %7757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7758 = load i32, ptr %7757, align 4, !tbaa !5
  %7759 = call ptr @s2n_strerror(i32 noundef %7758, ptr noundef @.str.4)
  %7760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7761 = load i32, ptr %7760, align 4, !tbaa !5
  %7762 = call ptr @s2n_strerror_debug(i32 noundef %7761, ptr noundef @.str.4)
  %7763 = call ptr @__errno_location() #12
  %7764 = load i32, ptr %7763, align 4, !tbaa !5
  %7765 = call ptr @strerror(i32 noundef %7764) #11
  %7766 = call ptr @__errno_location() #12
  %7767 = load i32, ptr %7766, align 4, !tbaa !5
  %7768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7755, ptr noundef @.str.5, i32 noundef %7756, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 530, ptr noundef %7759, ptr noundef %7762, ptr noundef %7765, i32 noundef %7767) #11
  br label %7769

7769:                                             ; preds = %7752, %7735
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %7770

7770:                                             ; preds = %7769
  br label %7771

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

7772:                                             ; No predecessors!
  br label %7773

7773:                                             ; preds = %7772
  br label %7774

7774:                                             ; preds = %7773, %7716
  br label %7775

7775:                                             ; preds = %7774
  br label %7776

7776:                                             ; preds = %7775
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #11
  %7777 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7777, ptr %211, align 8, !tbaa !9
  br label %7778

7778:                                             ; preds = %7776
  %7779 = load i32, ptr @test_count, align 4, !tbaa !5
  %7780 = add nsw i32 %7779, 1
  store i32 %7780, ptr @test_count, align 4, !tbaa !5
  %7781 = load ptr, ptr %211, align 8, !tbaa !9
  %7782 = icmp eq ptr %7781, null
  br i1 %7782, label %7783, label %7836

7783:                                             ; preds = %7778
  br label %7784

7784:                                             ; preds = %7783
  br label %7785

7785:                                             ; preds = %7784
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %7786 = call ptr @__errno_location() #12
  %7787 = load i32, ptr %7786, align 4, !tbaa !5
  store i32 %7787, ptr %212, align 4, !tbaa !5
  %7788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7789 = call i32 @s2n_print_stacktrace(ptr noundef %7788)
  %7790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7791 = trunc i8 %7790 to i1
  br i1 %7791, label %7792, label %7814

7792:                                             ; preds = %7785
  %7793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7794 = call i32 @fileno(ptr noundef %7793) #11
  %7795 = call i32 @isatty(i32 noundef %7794) #11
  %7796 = icmp ne i32 %7795, 0
  br i1 %7796, label %7797, label %7814

7797:                                             ; preds = %7792
  %7798 = load i32, ptr %212, align 4, !tbaa !5
  %7799 = call ptr @__errno_location() #12
  store i32 %7798, ptr %7799, align 4, !tbaa !5
  %7800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7801 = load i32, ptr @test_count, align 4, !tbaa !5
  %7802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7803 = load i32, ptr %7802, align 4, !tbaa !5
  %7804 = call ptr @s2n_strerror(i32 noundef %7803, ptr noundef @.str.4)
  %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_debug(i32 noundef %7806, ptr noundef @.str.4)
  %7808 = call ptr @__errno_location() #12
  %7809 = load i32, ptr %7808, align 4, !tbaa !5
  %7810 = call ptr @strerror(i32 noundef %7809) #11
  %7811 = call ptr @__errno_location() #12
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  %7813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7800, ptr noundef @.str.2, i32 noundef %7801, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 533, ptr noundef %7804, ptr noundef %7807, ptr noundef %7810, i32 noundef %7812) #11
  br label %7831

7814:                                             ; preds = %7792, %7785
  %7815 = load i32, ptr %212, align 4, !tbaa !5
  %7816 = call ptr @__errno_location() #12
  store i32 %7815, ptr %7816, align 4, !tbaa !5
  %7817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7818 = load i32, ptr @test_count, align 4, !tbaa !5
  %7819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7820 = load i32, ptr %7819, align 4, !tbaa !5
  %7821 = call ptr @s2n_strerror(i32 noundef %7820, ptr noundef @.str.4)
  %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_debug(i32 noundef %7823, ptr noundef @.str.4)
  %7825 = call ptr @__errno_location() #12
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call ptr @strerror(i32 noundef %7826) #11
  %7828 = call ptr @__errno_location() #12
  %7829 = load i32, ptr %7828, align 4, !tbaa !5
  %7830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7817, ptr noundef @.str.5, i32 noundef %7818, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 533, ptr noundef %7821, ptr noundef %7824, ptr noundef %7827, i32 noundef %7829) #11
  br label %7831

7831:                                             ; preds = %7814, %7797
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %7832

7832:                                             ; preds = %7831
  br label %7833

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

7834:                                             ; No predecessors!
  br label %7835

7835:                                             ; preds = %7834
  br label %7836

7836:                                             ; preds = %7835, %7778
  br label %7837

7837:                                             ; preds = %7836
  br label %7838

7838:                                             ; preds = %7837
  call void @llvm.lifetime.start.p0(i64 16, ptr %213) #11
  call void @llvm.memset.p0.i64(ptr align 8 %213, i8 0, i64 16, i1 false)
  br label %7839

7839:                                             ; preds = %7838
  %7840 = load i32, ptr @test_count, align 4, !tbaa !5
  %7841 = add nsw i32 %7840, 1
  store i32 %7841, ptr @test_count, align 4, !tbaa !5
  %7842 = load ptr, ptr %211, align 8, !tbaa !9
  %7843 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %7842, ptr noundef @verify_host_accept_everything, ptr noundef %213)
  %7844 = icmp eq i32 %7843, -1
  br i1 %7844, label %7845, label %7898

7845:                                             ; preds = %7839
  br label %7846

7846:                                             ; preds = %7845
  br label %7847

7847:                                             ; preds = %7846
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %7848 = call ptr @__errno_location() #12
  %7849 = load i32, ptr %7848, align 4, !tbaa !5
  store i32 %7849, ptr %214, align 4, !tbaa !5
  %7850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7851 = call i32 @s2n_print_stacktrace(ptr noundef %7850)
  %7852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7853 = trunc i8 %7852 to i1
  br i1 %7853, label %7854, label %7876

7854:                                             ; preds = %7847
  %7855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7856 = call i32 @fileno(ptr noundef %7855) #11
  %7857 = call i32 @isatty(i32 noundef %7856) #11
  %7858 = icmp ne i32 %7857, 0
  br i1 %7858, label %7859, label %7876

7859:                                             ; preds = %7854
  %7860 = load i32, ptr %214, align 4, !tbaa !5
  %7861 = call ptr @__errno_location() #12
  store i32 %7860, ptr %7861, align 4, !tbaa !5
  %7862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7863 = load i32, ptr @test_count, align 4, !tbaa !5
  %7864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call ptr @s2n_strerror(i32 noundef %7865, ptr noundef @.str.4)
  %7867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7868 = load i32, ptr %7867, align 4, !tbaa !5
  %7869 = call ptr @s2n_strerror_debug(i32 noundef %7868, ptr noundef @.str.4)
  %7870 = call ptr @__errno_location() #12
  %7871 = load i32, ptr %7870, align 4, !tbaa !5
  %7872 = call ptr @strerror(i32 noundef %7871) #11
  %7873 = call ptr @__errno_location() #12
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  %7875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7862, ptr noundef @.str.2, i32 noundef %7863, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 536, ptr noundef %7866, ptr noundef %7869, ptr noundef %7872, i32 noundef %7874) #11
  br label %7893

7876:                                             ; preds = %7854, %7847
  %7877 = load i32, ptr %214, align 4, !tbaa !5
  %7878 = call ptr @__errno_location() #12
  store i32 %7877, ptr %7878, align 4, !tbaa !5
  %7879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7880 = load i32, ptr @test_count, align 4, !tbaa !5
  %7881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call ptr @s2n_strerror(i32 noundef %7882, ptr noundef @.str.4)
  %7884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call ptr @s2n_strerror_debug(i32 noundef %7885, ptr noundef @.str.4)
  %7887 = call ptr @__errno_location() #12
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call ptr @strerror(i32 noundef %7888) #11
  %7890 = call ptr @__errno_location() #12
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7879, ptr noundef @.str.5, i32 noundef %7880, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 536, ptr noundef %7883, ptr noundef %7886, ptr noundef %7889, i32 noundef %7891) #11
  br label %7893

7893:                                             ; preds = %7876, %7859
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %7894

7894:                                             ; preds = %7893
  br label %7895

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

7896:                                             ; No predecessors!
  br label %7897

7897:                                             ; preds = %7896
  br label %7898

7898:                                             ; preds = %7897, %7839
  br label %7899

7899:                                             ; preds = %7898
  br label %7900

7900:                                             ; preds = %7899
  call void @llvm.lifetime.start.p0(i64 40, ptr %215) #11
  call void @llvm.memset.p0.i64(ptr align 8 %215, i8 0, i64 40, i1 false)
  br label %7901

7901:                                             ; preds = %7900
  %7902 = load i32, ptr @test_count, align 4, !tbaa !5
  %7903 = add nsw i32 %7902, 1
  store i32 %7903, ptr @test_count, align 4, !tbaa !5
  %7904 = load ptr, ptr %211, align 8, !tbaa !9
  %7905 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %7904, ptr noundef @.str.51, ptr noundef %215)
  %7906 = getelementptr inbounds %struct.s2n_result, ptr %216, i32 0, i32 0
  store i32 %7905, ptr %7906, align 4
  %7907 = getelementptr inbounds %struct.s2n_result, ptr %216, i32 0, i32 0
  %7908 = load i32, ptr %7907, align 4
  %7909 = call zeroext i1 @s2n_result_is_ok(i32 %7908)
  br i1 %7909, label %7963, label %7910

7910:                                             ; preds = %7901
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

7912:                                             ; preds = %7911
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %7913 = call ptr @__errno_location() #12
  %7914 = load i32, ptr %7913, align 4, !tbaa !5
  store i32 %7914, ptr %217, align 4, !tbaa !5
  %7915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7916 = call i32 @s2n_print_stacktrace(ptr noundef %7915)
  %7917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7918 = trunc i8 %7917 to i1
  br i1 %7918, label %7919, label %7941

7919:                                             ; preds = %7912
  %7920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7921 = call i32 @fileno(ptr noundef %7920) #11
  %7922 = call i32 @isatty(i32 noundef %7921) #11
  %7923 = icmp ne i32 %7922, 0
  br i1 %7923, label %7924, label %7941

7924:                                             ; preds = %7919
  %7925 = load i32, ptr %217, align 4, !tbaa !5
  %7926 = call ptr @__errno_location() #12
  store i32 %7925, ptr %7926, align 4, !tbaa !5
  %7927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7928 = load i32, ptr @test_count, align 4, !tbaa !5
  %7929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call ptr @s2n_strerror(i32 noundef %7930, ptr noundef @.str.4)
  %7932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @s2n_strerror_debug(i32 noundef %7933, ptr noundef @.str.4)
  %7935 = call ptr @__errno_location() #12
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call ptr @strerror(i32 noundef %7936) #11
  %7938 = call ptr @__errno_location() #12
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7927, ptr noundef @.str.2, i32 noundef %7928, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 539, ptr noundef %7931, ptr noundef %7934, ptr noundef %7937, i32 noundef %7939) #11
  br label %7958

7941:                                             ; preds = %7919, %7912
  %7942 = load i32, ptr %217, align 4, !tbaa !5
  %7943 = call ptr @__errno_location() #12
  store i32 %7942, ptr %7943, align 4, !tbaa !5
  %7944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7945 = load i32, ptr @test_count, align 4, !tbaa !5
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror(i32 noundef %7947, ptr noundef @.str.4)
  %7949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @s2n_strerror_debug(i32 noundef %7950, ptr noundef @.str.4)
  %7952 = call ptr @__errno_location() #12
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call ptr @strerror(i32 noundef %7953) #11
  %7955 = call ptr @__errno_location() #12
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7944, ptr noundef @.str.5, i32 noundef %7945, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 539, ptr noundef %7948, ptr noundef %7951, ptr noundef %7954, i32 noundef %7956) #11
  br label %7958

7958:                                             ; preds = %7941, %7924
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %7959

7959:                                             ; preds = %7958
  br label %7960

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

7961:                                             ; No predecessors!
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

7963:                                             ; preds = %7962, %7901
  br label %7964

7964:                                             ; preds = %7963
  br label %7965

7965:                                             ; preds = %7964
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %7966 = getelementptr inbounds %struct.s2n_stuffer, ptr %215, i32 0, i32 2
  %7967 = load i32, ptr %7966, align 4, !tbaa !15
  %7968 = getelementptr inbounds %struct.s2n_stuffer, ptr %215, i32 0, i32 1
  %7969 = load i32, ptr %7968, align 8, !tbaa !18
  %7970 = sub i32 %7967, %7969
  store i32 %7970, ptr %218, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #11
  %7971 = load i32, ptr %218, align 4, !tbaa !5
  %7972 = call ptr @s2n_stuffer_raw_read(ptr noundef %215, i32 noundef %7971)
  store ptr %7972, ptr %219, align 8, !tbaa !9
  br label %7973

7973:                                             ; preds = %7965
  %7974 = load i32, ptr @test_count, align 4, !tbaa !5
  %7975 = add nsw i32 %7974, 1
  store i32 %7975, ptr @test_count, align 4, !tbaa !5
  %7976 = load ptr, ptr %219, align 8, !tbaa !9
  %7977 = icmp eq ptr %7976, null
  br i1 %7977, label %7978, label %8031

7978:                                             ; preds = %7973
  br label %7979

7979:                                             ; preds = %7978
  br label %7980

7980:                                             ; preds = %7979
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %7981 = call ptr @__errno_location() #12
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  store i32 %7982, ptr %220, align 4, !tbaa !5
  %7983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7984 = call i32 @s2n_print_stacktrace(ptr noundef %7983)
  %7985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7986 = trunc i8 %7985 to i1
  br i1 %7986, label %7987, label %8009

7987:                                             ; preds = %7980
  %7988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7989 = call i32 @fileno(ptr noundef %7988) #11
  %7990 = call i32 @isatty(i32 noundef %7989) #11
  %7991 = icmp ne i32 %7990, 0
  br i1 %7991, label %7992, label %8009

7992:                                             ; preds = %7987
  %7993 = load i32, ptr %220, align 4, !tbaa !5
  %7994 = call ptr @__errno_location() #12
  store i32 %7993, ptr %7994, align 4, !tbaa !5
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = load i32, ptr @test_count, align 4, !tbaa !5
  %7997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7998 = load i32, ptr %7997, align 4, !tbaa !5
  %7999 = call ptr @s2n_strerror(i32 noundef %7998, ptr noundef @.str.4)
  %8000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  %8002 = call ptr @s2n_strerror_debug(i32 noundef %8001, ptr noundef @.str.4)
  %8003 = call ptr @__errno_location() #12
  %8004 = load i32, ptr %8003, align 4, !tbaa !5
  %8005 = call ptr @strerror(i32 noundef %8004) #11
  %8006 = call ptr @__errno_location() #12
  %8007 = load i32, ptr %8006, align 4, !tbaa !5
  %8008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7995, ptr noundef @.str.2, i32 noundef %7996, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 542, ptr noundef %7999, ptr noundef %8002, ptr noundef %8005, i32 noundef %8007) #11
  br label %8026

8009:                                             ; preds = %7987, %7980
  %8010 = load i32, ptr %220, align 4, !tbaa !5
  %8011 = call ptr @__errno_location() #12
  store i32 %8010, ptr %8011, align 4, !tbaa !5
  %8012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8013 = load i32, ptr @test_count, align 4, !tbaa !5
  %8014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8015 = load i32, ptr %8014, align 4, !tbaa !5
  %8016 = call ptr @s2n_strerror(i32 noundef %8015, ptr noundef @.str.4)
  %8017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8018 = load i32, ptr %8017, align 4, !tbaa !5
  %8019 = call ptr @s2n_strerror_debug(i32 noundef %8018, ptr noundef @.str.4)
  %8020 = call ptr @__errno_location() #12
  %8021 = load i32, ptr %8020, align 4, !tbaa !5
  %8022 = call ptr @strerror(i32 noundef %8021) #11
  %8023 = call ptr @__errno_location() #12
  %8024 = load i32, ptr %8023, align 4, !tbaa !5
  %8025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8012, ptr noundef @.str.5, i32 noundef %8013, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 542, ptr noundef %8016, ptr noundef %8019, ptr noundef %8022, i32 noundef %8024) #11
  br label %8026

8026:                                             ; preds = %8009, %7992
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %8027

8027:                                             ; preds = %8026
  br label %8028

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

8029:                                             ; No predecessors!
  br label %8030

8030:                                             ; preds = %8029
  br label %8031

8031:                                             ; preds = %8030, %7973
  br label %8032

8032:                                             ; preds = %8031
  br label %8033

8033:                                             ; preds = %8032
  br label %8034

8034:                                             ; preds = %8033
  %8035 = load i32, ptr @test_count, align 4, !tbaa !5
  %8036 = add nsw i32 %8035, 1
  store i32 %8036, ptr @test_count, align 4, !tbaa !5
  %8037 = load ptr, ptr %211, align 8, !tbaa !9
  %8038 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8037, ptr noundef @.str.23)
  %8039 = icmp eq i32 %8038, -1
  br i1 %8039, label %8040, label %8093

8040:                                             ; preds = %8034
  br label %8041

8041:                                             ; preds = %8040
  br label %8042

8042:                                             ; preds = %8041
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #11
  %8043 = call ptr @__errno_location() #12
  %8044 = load i32, ptr %8043, align 4, !tbaa !5
  store i32 %8044, ptr %221, align 4, !tbaa !5
  %8045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8046 = call i32 @s2n_print_stacktrace(ptr noundef %8045)
  %8047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8048 = trunc i8 %8047 to i1
  br i1 %8048, label %8049, label %8071

8049:                                             ; preds = %8042
  %8050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8051 = call i32 @fileno(ptr noundef %8050) #11
  %8052 = call i32 @isatty(i32 noundef %8051) #11
  %8053 = icmp ne i32 %8052, 0
  br i1 %8053, label %8054, label %8071

8054:                                             ; preds = %8049
  %8055 = load i32, ptr %221, align 4, !tbaa !5
  %8056 = call ptr @__errno_location() #12
  store i32 %8055, ptr %8056, align 4, !tbaa !5
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = load i32, ptr @test_count, align 4, !tbaa !5
  %8059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8060 = load i32, ptr %8059, align 4, !tbaa !5
  %8061 = call ptr @s2n_strerror(i32 noundef %8060, ptr noundef @.str.4)
  %8062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  %8064 = call ptr @s2n_strerror_debug(i32 noundef %8063, ptr noundef @.str.4)
  %8065 = call ptr @__errno_location() #12
  %8066 = load i32, ptr %8065, align 4, !tbaa !5
  %8067 = call ptr @strerror(i32 noundef %8066) #11
  %8068 = call ptr @__errno_location() #12
  %8069 = load i32, ptr %8068, align 4, !tbaa !5
  %8070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8057, ptr noundef @.str.2, i32 noundef %8058, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 544, ptr noundef %8061, ptr noundef %8064, ptr noundef %8067, i32 noundef %8069) #11
  br label %8088

8071:                                             ; preds = %8049, %8042
  %8072 = load i32, ptr %221, align 4, !tbaa !5
  %8073 = call ptr @__errno_location() #12
  store i32 %8072, ptr %8073, align 4, !tbaa !5
  %8074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8075 = load i32, ptr @test_count, align 4, !tbaa !5
  %8076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8077 = load i32, ptr %8076, align 4, !tbaa !5
  %8078 = call ptr @s2n_strerror(i32 noundef %8077, ptr noundef @.str.4)
  %8079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8080 = load i32, ptr %8079, align 4, !tbaa !5
  %8081 = call ptr @s2n_strerror_debug(i32 noundef %8080, ptr noundef @.str.4)
  %8082 = call ptr @__errno_location() #12
  %8083 = load i32, ptr %8082, align 4, !tbaa !5
  %8084 = call ptr @strerror(i32 noundef %8083) #11
  %8085 = call ptr @__errno_location() #12
  %8086 = load i32, ptr %8085, align 4, !tbaa !5
  %8087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8074, ptr noundef @.str.5, i32 noundef %8075, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 544, ptr noundef %8078, ptr noundef %8081, ptr noundef %8084, i32 noundef %8086) #11
  br label %8088

8088:                                             ; preds = %8071, %8054
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #11
  br label %8089

8089:                                             ; preds = %8088
  br label %8090

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

8091:                                             ; No predecessors!
  br label %8092

8092:                                             ; preds = %8091
  br label %8093

8093:                                             ; preds = %8092, %8034
  br label %8094

8094:                                             ; preds = %8093
  br label %8095

8095:                                             ; preds = %8094
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #11
  %8096 = load ptr, ptr %211, align 8, !tbaa !9
  %8097 = getelementptr inbounds %struct.s2n_connection, ptr %8096, i32 0, i32 1
  %8098 = load ptr, ptr %8097, align 8, !tbaa !22
  %8099 = getelementptr inbounds %struct.s2n_config, ptr %8098, i32 0, i32 5
  %8100 = load ptr, ptr %8099, align 8, !tbaa !47
  store ptr %8100, ptr %222, align 8, !tbaa !9
  br label %8101

8101:                                             ; preds = %8095
  %8102 = load i32, ptr @test_count, align 4, !tbaa !5
  %8103 = add nsw i32 %8102, 1
  store i32 %8103, ptr @test_count, align 4, !tbaa !5
  %8104 = load ptr, ptr %211, align 8, !tbaa !9
  %8105 = getelementptr inbounds %struct.s2n_connection, ptr %8104, i32 0, i32 1
  %8106 = load ptr, ptr %8105, align 8, !tbaa !22
  %8107 = call i32 @s2n_config_set_wall_clock(ptr noundef %8106, ptr noundef @fetch_early_expired_after_ocsp_timestamp, ptr noundef null)
  %8108 = icmp eq i32 %8107, -1
  br i1 %8108, label %8109, label %8162

8109:                                             ; preds = %8101
  br label %8110

8110:                                             ; preds = %8109
  br label %8111

8111:                                             ; preds = %8110
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %8112 = call ptr @__errno_location() #12
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  store i32 %8113, ptr %223, align 4, !tbaa !5
  %8114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8115 = call i32 @s2n_print_stacktrace(ptr noundef %8114)
  %8116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8117 = trunc i8 %8116 to i1
  br i1 %8117, label %8118, label %8140

8118:                                             ; preds = %8111
  %8119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8120 = call i32 @fileno(ptr noundef %8119) #11
  %8121 = call i32 @isatty(i32 noundef %8120) #11
  %8122 = icmp ne i32 %8121, 0
  br i1 %8122, label %8123, label %8140

8123:                                             ; preds = %8118
  %8124 = load i32, ptr %223, align 4, !tbaa !5
  %8125 = call ptr @__errno_location() #12
  store i32 %8124, ptr %8125, align 4, !tbaa !5
  %8126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8127 = load i32, ptr @test_count, align 4, !tbaa !5
  %8128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8129 = load i32, ptr %8128, align 4, !tbaa !5
  %8130 = call ptr @s2n_strerror(i32 noundef %8129, ptr noundef @.str.4)
  %8131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8132 = load i32, ptr %8131, align 4, !tbaa !5
  %8133 = call ptr @s2n_strerror_debug(i32 noundef %8132, ptr noundef @.str.4)
  %8134 = call ptr @__errno_location() #12
  %8135 = load i32, ptr %8134, align 4, !tbaa !5
  %8136 = call ptr @strerror(i32 noundef %8135) #11
  %8137 = call ptr @__errno_location() #12
  %8138 = load i32, ptr %8137, align 4, !tbaa !5
  %8139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8126, ptr noundef @.str.2, i32 noundef %8127, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 547, ptr noundef %8130, ptr noundef %8133, ptr noundef %8136, i32 noundef %8138) #11
  br label %8157

8140:                                             ; preds = %8118, %8111
  %8141 = load i32, ptr %223, align 4, !tbaa !5
  %8142 = call ptr @__errno_location() #12
  store i32 %8141, ptr %8142, align 4, !tbaa !5
  %8143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8144 = load i32, ptr @test_count, align 4, !tbaa !5
  %8145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8146 = load i32, ptr %8145, align 4, !tbaa !5
  %8147 = call ptr @s2n_strerror(i32 noundef %8146, ptr noundef @.str.4)
  %8148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8149 = load i32, ptr %8148, align 4, !tbaa !5
  %8150 = call ptr @s2n_strerror_debug(i32 noundef %8149, ptr noundef @.str.4)
  %8151 = call ptr @__errno_location() #12
  %8152 = load i32, ptr %8151, align 4, !tbaa !5
  %8153 = call ptr @strerror(i32 noundef %8152) #11
  %8154 = call ptr @__errno_location() #12
  %8155 = load i32, ptr %8154, align 4, !tbaa !5
  %8156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8143, ptr noundef @.str.5, i32 noundef %8144, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 547, ptr noundef %8147, ptr noundef %8150, ptr noundef %8153, i32 noundef %8155) #11
  br label %8157

8157:                                             ; preds = %8140, %8123
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %8158

8158:                                             ; preds = %8157
  br label %8159

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

8160:                                             ; No predecessors!
  br label %8161

8161:                                             ; preds = %8160
  br label %8162

8162:                                             ; preds = %8161, %8101
  br label %8163

8163:                                             ; preds = %8162
  br label %8164

8164:                                             ; preds = %8163
  call void @llvm.lifetime.start.p0(i64 48, ptr %224) #11
  call void @llvm.memset.p0.i64(ptr align 8 %224, i8 0, i64 48, i1 false)
  br label %8165

8165:                                             ; preds = %8164
  %8166 = load i32, ptr @test_count, align 4, !tbaa !5
  %8167 = add nsw i32 %8166, 1
  store i32 %8167, ptr @test_count, align 4, !tbaa !5
  %8168 = call i32 @s2n_pkey_zero_init(ptr noundef %224)
  %8169 = icmp eq i32 %8168, -1
  br i1 %8169, label %8170, label %8223

8170:                                             ; preds = %8165
  br label %8171

8171:                                             ; preds = %8170
  br label %8172

8172:                                             ; preds = %8171
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %8173 = call ptr @__errno_location() #12
  %8174 = load i32, ptr %8173, align 4, !tbaa !5
  store i32 %8174, ptr %225, align 4, !tbaa !5
  %8175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8176 = call i32 @s2n_print_stacktrace(ptr noundef %8175)
  %8177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8178 = trunc i8 %8177 to i1
  br i1 %8178, label %8179, label %8201

8179:                                             ; preds = %8172
  %8180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8181 = call i32 @fileno(ptr noundef %8180) #11
  %8182 = call i32 @isatty(i32 noundef %8181) #11
  %8183 = icmp ne i32 %8182, 0
  br i1 %8183, label %8184, label %8201

8184:                                             ; preds = %8179
  %8185 = load i32, ptr %225, align 4, !tbaa !5
  %8186 = call ptr @__errno_location() #12
  store i32 %8185, ptr %8186, align 4, !tbaa !5
  %8187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8188 = load i32, ptr @test_count, align 4, !tbaa !5
  %8189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8190 = load i32, ptr %8189, align 4, !tbaa !5
  %8191 = call ptr @s2n_strerror(i32 noundef %8190, ptr noundef @.str.4)
  %8192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8193 = load i32, ptr %8192, align 4, !tbaa !5
  %8194 = call ptr @s2n_strerror_debug(i32 noundef %8193, ptr noundef @.str.4)
  %8195 = call ptr @__errno_location() #12
  %8196 = load i32, ptr %8195, align 4, !tbaa !5
  %8197 = call ptr @strerror(i32 noundef %8196) #11
  %8198 = call ptr @__errno_location() #12
  %8199 = load i32, ptr %8198, align 4, !tbaa !5
  %8200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8187, ptr noundef @.str.2, i32 noundef %8188, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 550, ptr noundef %8191, ptr noundef %8194, ptr noundef %8197, i32 noundef %8199) #11
  br label %8218

8201:                                             ; preds = %8179, %8172
  %8202 = load i32, ptr %225, align 4, !tbaa !5
  %8203 = call ptr @__errno_location() #12
  store i32 %8202, ptr %8203, align 4, !tbaa !5
  %8204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8205 = load i32, ptr @test_count, align 4, !tbaa !5
  %8206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  %8208 = call ptr @s2n_strerror(i32 noundef %8207, ptr noundef @.str.4)
  %8209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror_debug(i32 noundef %8210, ptr noundef @.str.4)
  %8212 = call ptr @__errno_location() #12
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @strerror(i32 noundef %8213) #11
  %8215 = call ptr @__errno_location() #12
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8204, ptr noundef @.str.5, i32 noundef %8205, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 550, ptr noundef %8208, ptr noundef %8211, ptr noundef %8214, i32 noundef %8216) #11
  br label %8218

8218:                                             ; preds = %8201, %8184
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  br label %8219

8219:                                             ; preds = %8218
  br label %8220

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

8221:                                             ; No predecessors!
  br label %8222

8222:                                             ; preds = %8221
  br label %8223

8223:                                             ; preds = %8222, %8165
  br label %8224

8224:                                             ; preds = %8223
  br label %8225

8225:                                             ; preds = %8224
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  store i32 -1, ptr %226, align 4, !tbaa !5
  br label %8226

8226:                                             ; preds = %8225
  br label %8227

8227:                                             ; preds = %8226
  br label %8228

8228:                                             ; preds = %8227
  %8229 = load i32, ptr @test_count, align 4, !tbaa !5
  %8230 = add nsw i32 %8229, 1
  store i32 %8230, ptr @test_count, align 4, !tbaa !5
  %8231 = load ptr, ptr %211, align 8, !tbaa !9
  %8232 = load ptr, ptr %219, align 8, !tbaa !9
  %8233 = load i32, ptr %218, align 4, !tbaa !5
  %8234 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %209, ptr noundef %8231, ptr noundef %8232, i32 noundef %8233, ptr noundef %226, ptr noundef %224)
  %8235 = getelementptr inbounds %struct.s2n_result, ptr %227, i32 0, i32 0
  store i32 %8234, ptr %8235, align 4
  %8236 = getelementptr inbounds %struct.s2n_result, ptr %227, i32 0, i32 0
  %8237 = load i32, ptr %8236, align 4
  %8238 = call zeroext i1 @s2n_result_is_error(i32 %8237)
  br i1 %8238, label %8292, label %8239

8239:                                             ; preds = %8228
  br label %8240

8240:                                             ; preds = %8239
  br label %8241

8241:                                             ; preds = %8240
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %8242 = call ptr @__errno_location() #12
  %8243 = load i32, ptr %8242, align 4, !tbaa !5
  store i32 %8243, ptr %228, align 4, !tbaa !5
  %8244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8245 = call i32 @s2n_print_stacktrace(ptr noundef %8244)
  %8246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8247 = trunc i8 %8246 to i1
  br i1 %8247, label %8248, label %8270

8248:                                             ; preds = %8241
  %8249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8250 = call i32 @fileno(ptr noundef %8249) #11
  %8251 = call i32 @isatty(i32 noundef %8250) #11
  %8252 = icmp ne i32 %8251, 0
  br i1 %8252, label %8253, label %8270

8253:                                             ; preds = %8248
  %8254 = load i32, ptr %228, align 4, !tbaa !5
  %8255 = call ptr @__errno_location() #12
  store i32 %8254, ptr %8255, align 4, !tbaa !5
  %8256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8257 = load i32, ptr @test_count, align 4, !tbaa !5
  %8258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8259 = load i32, ptr %8258, align 4, !tbaa !5
  %8260 = call ptr @s2n_strerror(i32 noundef %8259, ptr noundef @.str.4)
  %8261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  %8263 = call ptr @s2n_strerror_debug(i32 noundef %8262, ptr noundef @.str.4)
  %8264 = call ptr @__errno_location() #12
  %8265 = load i32, ptr %8264, align 4, !tbaa !5
  %8266 = call ptr @strerror(i32 noundef %8265) #11
  %8267 = call ptr @__errno_location() #12
  %8268 = load i32, ptr %8267, align 4, !tbaa !5
  %8269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8256, ptr noundef @.str.2, i32 noundef %8257, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8260, ptr noundef %8263, ptr noundef %8266, i32 noundef %8268) #11
  br label %8287

8270:                                             ; preds = %8248, %8241
  %8271 = load i32, ptr %228, align 4, !tbaa !5
  %8272 = call ptr @__errno_location() #12
  store i32 %8271, ptr %8272, align 4, !tbaa !5
  %8273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8274 = load i32, ptr @test_count, align 4, !tbaa !5
  %8275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8276 = load i32, ptr %8275, align 4, !tbaa !5
  %8277 = call ptr @s2n_strerror(i32 noundef %8276, ptr noundef @.str.4)
  %8278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call ptr @s2n_strerror_debug(i32 noundef %8279, ptr noundef @.str.4)
  %8281 = call ptr @__errno_location() #12
  %8282 = load i32, ptr %8281, align 4, !tbaa !5
  %8283 = call ptr @strerror(i32 noundef %8282) #11
  %8284 = call ptr @__errno_location() #12
  %8285 = load i32, ptr %8284, align 4, !tbaa !5
  %8286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8273, ptr noundef @.str.5, i32 noundef %8274, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8277, ptr noundef %8280, ptr noundef %8283, i32 noundef %8285) #11
  br label %8287

8287:                                             ; preds = %8270, %8253
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %8288

8288:                                             ; preds = %8287
  br label %8289

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

8290:                                             ; No predecessors!
  br label %8291

8291:                                             ; preds = %8290
  br label %8292

8292:                                             ; preds = %8291, %8228
  br label %8293

8293:                                             ; preds = %8292
  br label %8294

8294:                                             ; preds = %8293
  br label %8295

8295:                                             ; preds = %8294
  %8296 = load i32, ptr @test_count, align 4, !tbaa !5
  %8297 = add nsw i32 %8296, 1
  store i32 %8297, ptr @test_count, align 4, !tbaa !5
  %8298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8299 = load i32, ptr %8298, align 4, !tbaa !5
  %8300 = icmp eq i32 %8299, 335544369
  br i1 %8300, label %8354, label %8301

8301:                                             ; preds = %8295
  br label %8302

8302:                                             ; preds = %8301
  br label %8303

8303:                                             ; preds = %8302
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  %8304 = call ptr @__errno_location() #12
  %8305 = load i32, ptr %8304, align 4, !tbaa !5
  store i32 %8305, ptr %229, align 4, !tbaa !5
  %8306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8307 = call i32 @s2n_print_stacktrace(ptr noundef %8306)
  %8308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8309 = trunc i8 %8308 to i1
  br i1 %8309, label %8310, label %8332

8310:                                             ; preds = %8303
  %8311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8312 = call i32 @fileno(ptr noundef %8311) #11
  %8313 = call i32 @isatty(i32 noundef %8312) #11
  %8314 = icmp ne i32 %8313, 0
  br i1 %8314, label %8315, label %8332

8315:                                             ; preds = %8310
  %8316 = load i32, ptr %229, align 4, !tbaa !5
  %8317 = call ptr @__errno_location() #12
  store i32 %8316, ptr %8317, align 4, !tbaa !5
  %8318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8319 = load i32, ptr @test_count, align 4, !tbaa !5
  %8320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8321 = load i32, ptr %8320, align 4, !tbaa !5
  %8322 = call ptr @s2n_strerror(i32 noundef %8321, ptr noundef @.str.4)
  %8323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  %8325 = call ptr @s2n_strerror_debug(i32 noundef %8324, ptr noundef @.str.4)
  %8326 = call ptr @__errno_location() #12
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @strerror(i32 noundef %8327) #11
  %8329 = call ptr @__errno_location() #12
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8318, ptr noundef @.str.2, i32 noundef %8319, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8322, ptr noundef %8325, ptr noundef %8328, i32 noundef %8330) #11
  br label %8349

8332:                                             ; preds = %8310, %8303
  %8333 = load i32, ptr %229, align 4, !tbaa !5
  %8334 = call ptr @__errno_location() #12
  store i32 %8333, ptr %8334, align 4, !tbaa !5
  %8335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8336 = load i32, ptr @test_count, align 4, !tbaa !5
  %8337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8338 = load i32, ptr %8337, align 4, !tbaa !5
  %8339 = call ptr @s2n_strerror(i32 noundef %8338, ptr noundef @.str.4)
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror_debug(i32 noundef %8341, ptr noundef @.str.4)
  %8343 = call ptr @__errno_location() #12
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @strerror(i32 noundef %8344) #11
  %8346 = call ptr @__errno_location() #12
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8335, ptr noundef @.str.5, i32 noundef %8336, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8339, ptr noundef %8342, ptr noundef %8345, i32 noundef %8347) #11
  br label %8349

8349:                                             ; preds = %8332, %8315
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  br label %8350

8350:                                             ; preds = %8349
  br label %8351

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

8352:                                             ; No predecessors!
  br label %8353

8353:                                             ; preds = %8352
  br label %8354

8354:                                             ; preds = %8353, %8295
  br label %8355

8355:                                             ; preds = %8354
  br label %8356

8356:                                             ; preds = %8355
  br label %8357

8357:                                             ; preds = %8356
  %8358 = load i32, ptr @test_count, align 4, !tbaa !5
  %8359 = add nsw i32 %8358, 1
  store i32 %8359, ptr @test_count, align 4, !tbaa !5
  %8360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call ptr @s2n_strerror_debug(i32 noundef %8361, ptr noundef @.str.4)
  %8363 = icmp eq ptr %8362, null
  br i1 %8363, label %8364, label %8417

8364:                                             ; preds = %8357
  br label %8365

8365:                                             ; preds = %8364
  br label %8366

8366:                                             ; preds = %8365
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %8367 = call ptr @__errno_location() #12
  %8368 = load i32, ptr %8367, align 4, !tbaa !5
  store i32 %8368, ptr %230, align 4, !tbaa !5
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = call i32 @s2n_print_stacktrace(ptr noundef %8369)
  %8371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8372 = trunc i8 %8371 to i1
  br i1 %8372, label %8373, label %8395

8373:                                             ; preds = %8366
  %8374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8375 = call i32 @fileno(ptr noundef %8374) #11
  %8376 = call i32 @isatty(i32 noundef %8375) #11
  %8377 = icmp ne i32 %8376, 0
  br i1 %8377, label %8378, label %8395

8378:                                             ; preds = %8373
  %8379 = load i32, ptr %230, align 4, !tbaa !5
  %8380 = call ptr @__errno_location() #12
  store i32 %8379, ptr %8380, align 4, !tbaa !5
  %8381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8382 = load i32, ptr @test_count, align 4, !tbaa !5
  %8383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8384 = load i32, ptr %8383, align 4, !tbaa !5
  %8385 = call ptr @s2n_strerror(i32 noundef %8384, ptr noundef @.str.4)
  %8386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8387 = load i32, ptr %8386, align 4, !tbaa !5
  %8388 = call ptr @s2n_strerror_debug(i32 noundef %8387, ptr noundef @.str.4)
  %8389 = call ptr @__errno_location() #12
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call ptr @strerror(i32 noundef %8390) #11
  %8392 = call ptr @__errno_location() #12
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8381, ptr noundef @.str.2, i32 noundef %8382, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8385, ptr noundef %8388, ptr noundef %8391, i32 noundef %8393) #11
  br label %8412

8395:                                             ; preds = %8373, %8366
  %8396 = load i32, ptr %230, align 4, !tbaa !5
  %8397 = call ptr @__errno_location() #12
  store i32 %8396, ptr %8397, align 4, !tbaa !5
  %8398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8399 = load i32, ptr @test_count, align 4, !tbaa !5
  %8400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8401 = load i32, ptr %8400, align 4, !tbaa !5
  %8402 = call ptr @s2n_strerror(i32 noundef %8401, ptr noundef @.str.4)
  %8403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8404 = load i32, ptr %8403, align 4, !tbaa !5
  %8405 = call ptr @s2n_strerror_debug(i32 noundef %8404, ptr noundef @.str.4)
  %8406 = call ptr @__errno_location() #12
  %8407 = load i32, ptr %8406, align 4, !tbaa !5
  %8408 = call ptr @strerror(i32 noundef %8407) #11
  %8409 = call ptr @__errno_location() #12
  %8410 = load i32, ptr %8409, align 4, !tbaa !5
  %8411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8398, ptr noundef @.str.5, i32 noundef %8399, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8402, ptr noundef %8405, ptr noundef %8408, i32 noundef %8410) #11
  br label %8412

8412:                                             ; preds = %8395, %8378
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %8413

8413:                                             ; preds = %8412
  br label %8414

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

8415:                                             ; No predecessors!
  br label %8416

8416:                                             ; preds = %8415
  br label %8417

8417:                                             ; preds = %8416, %8357
  br label %8418

8418:                                             ; preds = %8417
  br label %8419

8419:                                             ; preds = %8418
  br label %8420

8420:                                             ; preds = %8419
  br label %8421

8421:                                             ; preds = %8420
  br label %8422

8422:                                             ; preds = %8421
  %8423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8423, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8424 = call ptr @__errno_location() #12
  store i32 0, ptr %8424, align 4, !tbaa !5
  br label %8425

8425:                                             ; preds = %8422
  br label %8426

8426:                                             ; preds = %8425
  br label %8427

8427:                                             ; preds = %8426
  br label %8428

8428:                                             ; preds = %8427
  br label %8429

8429:                                             ; preds = %8428
  %8430 = load i32, ptr @test_count, align 4, !tbaa !5
  %8431 = add nsw i32 %8430, 1
  store i32 %8431, ptr @test_count, align 4, !tbaa !5
  %8432 = getelementptr inbounds %struct.host_verify_data, ptr %213, i32 0, i32 2
  %8433 = load i8, ptr %8432, align 1, !tbaa !19
  %8434 = zext i8 %8433 to i32
  %8435 = icmp eq i32 1, %8434
  br i1 %8435, label %8489, label %8436

8436:                                             ; preds = %8429
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

8438:                                             ; preds = %8437
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %8439 = call ptr @__errno_location() #12
  %8440 = load i32, ptr %8439, align 4, !tbaa !5
  store i32 %8440, ptr %231, align 4, !tbaa !5
  %8441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8442 = call i32 @s2n_print_stacktrace(ptr noundef %8441)
  %8443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8444 = trunc i8 %8443 to i1
  br i1 %8444, label %8445, label %8467

8445:                                             ; preds = %8438
  %8446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8447 = call i32 @fileno(ptr noundef %8446) #11
  %8448 = call i32 @isatty(i32 noundef %8447) #11
  %8449 = icmp ne i32 %8448, 0
  br i1 %8449, label %8450, label %8467

8450:                                             ; preds = %8445
  %8451 = load i32, ptr %231, align 4, !tbaa !5
  %8452 = call ptr @__errno_location() #12
  store i32 %8451, ptr %8452, align 4, !tbaa !5
  %8453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8454 = load i32, ptr @test_count, align 4, !tbaa !5
  %8455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8456 = load i32, ptr %8455, align 4, !tbaa !5
  %8457 = call ptr @s2n_strerror(i32 noundef %8456, ptr noundef @.str.4)
  %8458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8459 = load i32, ptr %8458, align 4, !tbaa !5
  %8460 = call ptr @s2n_strerror_debug(i32 noundef %8459, ptr noundef @.str.4)
  %8461 = call ptr @__errno_location() #12
  %8462 = load i32, ptr %8461, align 4, !tbaa !5
  %8463 = call ptr @strerror(i32 noundef %8462) #11
  %8464 = call ptr @__errno_location() #12
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8453, ptr noundef @.str.2, i32 noundef %8454, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 557, ptr noundef %8457, ptr noundef %8460, ptr noundef %8463, i32 noundef %8465) #11
  br label %8484

8467:                                             ; preds = %8445, %8438
  %8468 = load i32, ptr %231, align 4, !tbaa !5
  %8469 = call ptr @__errno_location() #12
  store i32 %8468, ptr %8469, align 4, !tbaa !5
  %8470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8471 = load i32, ptr @test_count, align 4, !tbaa !5
  %8472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8473 = load i32, ptr %8472, align 4, !tbaa !5
  %8474 = call ptr @s2n_strerror(i32 noundef %8473, ptr noundef @.str.4)
  %8475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8476 = load i32, ptr %8475, align 4, !tbaa !5
  %8477 = call ptr @s2n_strerror_debug(i32 noundef %8476, ptr noundef @.str.4)
  %8478 = call ptr @__errno_location() #12
  %8479 = load i32, ptr %8478, align 4, !tbaa !5
  %8480 = call ptr @strerror(i32 noundef %8479) #11
  %8481 = call ptr @__errno_location() #12
  %8482 = load i32, ptr %8481, align 4, !tbaa !5
  %8483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8470, ptr noundef @.str.5, i32 noundef %8471, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 557, ptr noundef %8474, ptr noundef %8477, ptr noundef %8480, i32 noundef %8482) #11
  br label %8484

8484:                                             ; preds = %8467, %8450
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %8485

8485:                                             ; preds = %8484
  br label %8486

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

8487:                                             ; No predecessors!
  br label %8488

8488:                                             ; preds = %8487
  br label %8489

8489:                                             ; preds = %8488, %8429
  br label %8490

8490:                                             ; preds = %8489
  br label %8491

8491:                                             ; preds = %8490
  br label %8492

8492:                                             ; preds = %8491
  %8493 = load i32, ptr @test_count, align 4, !tbaa !5
  %8494 = add nsw i32 %8493, 1
  store i32 %8494, ptr @test_count, align 4, !tbaa !5
  %8495 = load ptr, ptr %211, align 8, !tbaa !9
  %8496 = getelementptr inbounds %struct.s2n_connection, ptr %8495, i32 0, i32 1
  %8497 = load ptr, ptr %8496, align 8, !tbaa !22
  %8498 = load ptr, ptr %222, align 8, !tbaa !9
  %8499 = call i32 @s2n_config_set_wall_clock(ptr noundef %8497, ptr noundef %8498, ptr noundef null)
  %8500 = icmp eq i32 %8499, -1
  br i1 %8500, label %8501, label %8554

8501:                                             ; preds = %8492
  br label %8502

8502:                                             ; preds = %8501
  br label %8503

8503:                                             ; preds = %8502
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %8504 = call ptr @__errno_location() #12
  %8505 = load i32, ptr %8504, align 4, !tbaa !5
  store i32 %8505, ptr %232, align 4, !tbaa !5
  %8506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8507 = call i32 @s2n_print_stacktrace(ptr noundef %8506)
  %8508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8509 = trunc i8 %8508 to i1
  br i1 %8509, label %8510, label %8532

8510:                                             ; preds = %8503
  %8511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8512 = call i32 @fileno(ptr noundef %8511) #11
  %8513 = call i32 @isatty(i32 noundef %8512) #11
  %8514 = icmp ne i32 %8513, 0
  br i1 %8514, label %8515, label %8532

8515:                                             ; preds = %8510
  %8516 = load i32, ptr %232, align 4, !tbaa !5
  %8517 = call ptr @__errno_location() #12
  store i32 %8516, ptr %8517, align 4, !tbaa !5
  %8518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8519 = load i32, ptr @test_count, align 4, !tbaa !5
  %8520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8521 = load i32, ptr %8520, align 4, !tbaa !5
  %8522 = call ptr @s2n_strerror(i32 noundef %8521, ptr noundef @.str.4)
  %8523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8524 = load i32, ptr %8523, align 4, !tbaa !5
  %8525 = call ptr @s2n_strerror_debug(i32 noundef %8524, ptr noundef @.str.4)
  %8526 = call ptr @__errno_location() #12
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call ptr @strerror(i32 noundef %8527) #11
  %8529 = call ptr @__errno_location() #12
  %8530 = load i32, ptr %8529, align 4, !tbaa !5
  %8531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8518, ptr noundef @.str.2, i32 noundef %8519, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 558, ptr noundef %8522, ptr noundef %8525, ptr noundef %8528, i32 noundef %8530) #11
  br label %8549

8532:                                             ; preds = %8510, %8503
  %8533 = load i32, ptr %232, align 4, !tbaa !5
  %8534 = call ptr @__errno_location() #12
  store i32 %8533, ptr %8534, align 4, !tbaa !5
  %8535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8536 = load i32, ptr @test_count, align 4, !tbaa !5
  %8537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  %8539 = call ptr @s2n_strerror(i32 noundef %8538, ptr noundef @.str.4)
  %8540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8541 = load i32, ptr %8540, align 4, !tbaa !5
  %8542 = call ptr @s2n_strerror_debug(i32 noundef %8541, ptr noundef @.str.4)
  %8543 = call ptr @__errno_location() #12
  %8544 = load i32, ptr %8543, align 4, !tbaa !5
  %8545 = call ptr @strerror(i32 noundef %8544) #11
  %8546 = call ptr @__errno_location() #12
  %8547 = load i32, ptr %8546, align 4, !tbaa !5
  %8548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8535, ptr noundef @.str.5, i32 noundef %8536, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 558, ptr noundef %8539, ptr noundef %8542, ptr noundef %8545, i32 noundef %8547) #11
  br label %8549

8549:                                             ; preds = %8532, %8515
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  br label %8550

8550:                                             ; preds = %8549
  br label %8551

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

8552:                                             ; No predecessors!
  br label %8553

8553:                                             ; preds = %8552
  br label %8554

8554:                                             ; preds = %8553, %8492
  br label %8555

8555:                                             ; preds = %8554
  br label %8556

8556:                                             ; preds = %8555
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  %8557 = call i32 @s2n_pkey_free(ptr noundef %224)
  call void @llvm.lifetime.end.p0(i64 48, ptr %224) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  %8558 = call i32 @s2n_stuffer_free(ptr noundef %215)
  call void @llvm.lifetime.end.p0(i64 40, ptr %215) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %213) #11
  %8559 = call i32 @s2n_connection_ptr_free(ptr noundef %211)
  %8560 = getelementptr inbounds %struct.s2n_result, ptr %233, i32 0, i32 0
  store i32 %8559, ptr %8560, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #11
  %8561 = call i32 @s2n_x509_validator_wipe(ptr noundef %209)
  call void @llvm.lifetime.end.p0(i64 56, ptr %209) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef %207)
  call void @llvm.lifetime.end.p0(i64 16, ptr %207) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %234) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %234)
  br label %8562

8562:                                             ; preds = %8556
  %8563 = load i32, ptr @test_count, align 4, !tbaa !5
  %8564 = add nsw i32 %8563, 1
  store i32 %8564, ptr @test_count, align 4, !tbaa !5
  %8565 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %234, ptr noundef @.str.11, ptr noundef null)
  %8566 = icmp eq i32 %8565, -1
  br i1 %8566, label %8567, label %8620

8567:                                             ; preds = %8562
  br label %8568

8568:                                             ; preds = %8567
  br label %8569

8569:                                             ; preds = %8568
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %8570 = call ptr @__errno_location() #12
  %8571 = load i32, ptr %8570, align 4, !tbaa !5
  store i32 %8571, ptr %235, align 4, !tbaa !5
  %8572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8573 = call i32 @s2n_print_stacktrace(ptr noundef %8572)
  %8574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8575 = trunc i8 %8574 to i1
  br i1 %8575, label %8576, label %8598

8576:                                             ; preds = %8569
  %8577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8578 = call i32 @fileno(ptr noundef %8577) #11
  %8579 = call i32 @isatty(i32 noundef %8578) #11
  %8580 = icmp ne i32 %8579, 0
  br i1 %8580, label %8581, label %8598

8581:                                             ; preds = %8576
  %8582 = load i32, ptr %235, align 4, !tbaa !5
  %8583 = call ptr @__errno_location() #12
  store i32 %8582, ptr %8583, align 4, !tbaa !5
  %8584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8585 = load i32, ptr @test_count, align 4, !tbaa !5
  %8586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = call ptr @s2n_strerror(i32 noundef %8587, ptr noundef @.str.4)
  %8589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8590 = load i32, ptr %8589, align 4, !tbaa !5
  %8591 = call ptr @s2n_strerror_debug(i32 noundef %8590, ptr noundef @.str.4)
  %8592 = call ptr @__errno_location() #12
  %8593 = load i32, ptr %8592, align 4, !tbaa !5
  %8594 = call ptr @strerror(i32 noundef %8593) #11
  %8595 = call ptr @__errno_location() #12
  %8596 = load i32, ptr %8595, align 4, !tbaa !5
  %8597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8584, ptr noundef @.str.2, i32 noundef %8585, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 565, ptr noundef %8588, ptr noundef %8591, ptr noundef %8594, i32 noundef %8596) #11
  br label %8615

8598:                                             ; preds = %8576, %8569
  %8599 = load i32, ptr %235, align 4, !tbaa !5
  %8600 = call ptr @__errno_location() #12
  store i32 %8599, ptr %8600, align 4, !tbaa !5
  %8601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8602 = load i32, ptr @test_count, align 4, !tbaa !5
  %8603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8604 = load i32, ptr %8603, align 4, !tbaa !5
  %8605 = call ptr @s2n_strerror(i32 noundef %8604, ptr noundef @.str.4)
  %8606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror_debug(i32 noundef %8607, ptr noundef @.str.4)
  %8609 = call ptr @__errno_location() #12
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call ptr @strerror(i32 noundef %8610) #11
  %8612 = call ptr @__errno_location() #12
  %8613 = load i32, ptr %8612, align 4, !tbaa !5
  %8614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8601, ptr noundef @.str.5, i32 noundef %8602, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 565, ptr noundef %8605, ptr noundef %8608, ptr noundef %8611, i32 noundef %8613) #11
  br label %8615

8615:                                             ; preds = %8598, %8581
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %8616

8616:                                             ; preds = %8615
  br label %8617

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

8618:                                             ; No predecessors!
  br label %8619

8619:                                             ; preds = %8618
  br label %8620

8620:                                             ; preds = %8619, %8562
  br label %8621

8621:                                             ; preds = %8620
  br label %8622

8622:                                             ; preds = %8621
  call void @llvm.lifetime.start.p0(i64 56, ptr %236) #11
  %8623 = call i32 @s2n_x509_validator_init(ptr noundef %236, ptr noundef %234, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #11
  %8624 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8624, ptr %237, align 8, !tbaa !9
  br label %8625

8625:                                             ; preds = %8622
  %8626 = load i32, ptr @test_count, align 4, !tbaa !5
  %8627 = add nsw i32 %8626, 1
  store i32 %8627, ptr @test_count, align 4, !tbaa !5
  %8628 = load ptr, ptr %237, align 8, !tbaa !9
  %8629 = icmp eq ptr %8628, null
  br i1 %8629, label %8630, label %8683

8630:                                             ; preds = %8625
  br label %8631

8631:                                             ; preds = %8630
  br label %8632

8632:                                             ; preds = %8631
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %8633 = call ptr @__errno_location() #12
  %8634 = load i32, ptr %8633, align 4, !tbaa !5
  store i32 %8634, ptr %238, 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 !11, !range !13, !noundef !14
  %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) #11
  %8642 = call i32 @isatty(i32 noundef %8641) #11
  %8643 = icmp ne i32 %8642, 0
  br i1 %8643, label %8644, label %8661

8644:                                             ; preds = %8639
  %8645 = load i32, ptr %238, align 4, !tbaa !5
  %8646 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %8655 = call ptr @__errno_location() #12
  %8656 = load i32, ptr %8655, align 4, !tbaa !5
  %8657 = call ptr @strerror(i32 noundef %8656) #11
  %8658 = call ptr @__errno_location() #12
  %8659 = load i32, ptr %8658, align 4, !tbaa !5
  %8660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8647, ptr noundef @.str.2, i32 noundef %8648, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 571, ptr noundef %8651, ptr noundef %8654, ptr noundef %8657, i32 noundef %8659) #11
  br label %8678

8661:                                             ; preds = %8639, %8632
  %8662 = load i32, ptr %238, align 4, !tbaa !5
  %8663 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %8672 = call ptr @__errno_location() #12
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call ptr @strerror(i32 noundef %8673) #11
  %8675 = call ptr @__errno_location() #12
  %8676 = load i32, ptr %8675, align 4, !tbaa !5
  %8677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8664, ptr noundef @.str.5, i32 noundef %8665, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 571, ptr noundef %8668, ptr noundef %8671, ptr noundef %8674, i32 noundef %8676) #11
  br label %8678

8678:                                             ; preds = %8661, %8644
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %8679

8679:                                             ; preds = %8678
  br label %8680

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

8681:                                             ; No predecessors!
  br label %8682

8682:                                             ; preds = %8681
  br label %8683

8683:                                             ; preds = %8682, %8625
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

8685:                                             ; preds = %8684
  call void @llvm.lifetime.start.p0(i64 16, ptr %239) #11
  call void @llvm.memset.p0.i64(ptr align 8 %239, i8 0, i64 16, i1 false)
  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 %237, align 8, !tbaa !9
  %8690 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %8689, ptr noundef @verify_host_accept_everything, ptr noundef %239)
  %8691 = icmp eq i32 %8690, -1
  br i1 %8691, label %8692, label %8745

8692:                                             ; preds = %8686
  br label %8693

8693:                                             ; preds = %8692
  br label %8694

8694:                                             ; preds = %8693
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %8695 = call ptr @__errno_location() #12
  %8696 = load i32, ptr %8695, align 4, !tbaa !5
  store i32 %8696, ptr %240, align 4, !tbaa !5
  %8697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8698 = call i32 @s2n_print_stacktrace(ptr noundef %8697)
  %8699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8700 = trunc i8 %8699 to i1
  br i1 %8700, label %8701, label %8723

8701:                                             ; preds = %8694
  %8702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8703 = call i32 @fileno(ptr noundef %8702) #11
  %8704 = call i32 @isatty(i32 noundef %8703) #11
  %8705 = icmp ne i32 %8704, 0
  br i1 %8705, label %8706, label %8723

8706:                                             ; preds = %8701
  %8707 = load i32, ptr %240, align 4, !tbaa !5
  %8708 = call ptr @__errno_location() #12
  store i32 %8707, ptr %8708, align 4, !tbaa !5
  %8709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8710 = load i32, ptr @test_count, align 4, !tbaa !5
  %8711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8712 = load i32, ptr %8711, align 4, !tbaa !5
  %8713 = call ptr @s2n_strerror(i32 noundef %8712, ptr noundef @.str.4)
  %8714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8715 = load i32, ptr %8714, align 4, !tbaa !5
  %8716 = call ptr @s2n_strerror_debug(i32 noundef %8715, ptr noundef @.str.4)
  %8717 = call ptr @__errno_location() #12
  %8718 = load i32, ptr %8717, align 4, !tbaa !5
  %8719 = call ptr @strerror(i32 noundef %8718) #11
  %8720 = call ptr @__errno_location() #12
  %8721 = load i32, ptr %8720, align 4, !tbaa !5
  %8722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8709, ptr noundef @.str.2, i32 noundef %8710, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 574, ptr noundef %8713, ptr noundef %8716, ptr noundef %8719, i32 noundef %8721) #11
  br label %8740

8723:                                             ; preds = %8701, %8694
  %8724 = load i32, ptr %240, align 4, !tbaa !5
  %8725 = call ptr @__errno_location() #12
  store i32 %8724, ptr %8725, align 4, !tbaa !5
  %8726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8727 = load i32, ptr @test_count, align 4, !tbaa !5
  %8728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = call ptr @s2n_strerror(i32 noundef %8729, ptr noundef @.str.4)
  %8731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @s2n_strerror_debug(i32 noundef %8732, ptr noundef @.str.4)
  %8734 = call ptr @__errno_location() #12
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call ptr @strerror(i32 noundef %8735) #11
  %8737 = call ptr @__errno_location() #12
  %8738 = load i32, ptr %8737, align 4, !tbaa !5
  %8739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8726, ptr noundef @.str.5, i32 noundef %8727, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 574, ptr noundef %8730, ptr noundef %8733, ptr noundef %8736, i32 noundef %8738) #11
  br label %8740

8740:                                             ; preds = %8723, %8706
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %8741

8741:                                             ; preds = %8740
  br label %8742

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

8743:                                             ; No predecessors!
  br label %8744

8744:                                             ; preds = %8743
  br label %8745

8745:                                             ; preds = %8744, %8686
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746
  call void @llvm.lifetime.start.p0(i64 40, ptr %241) #11
  call void @llvm.memset.p0.i64(ptr align 8 %241, i8 0, i64 40, i1 false)
  br label %8748

8748:                                             ; preds = %8747
  %8749 = load i32, ptr @test_count, align 4, !tbaa !5
  %8750 = add nsw i32 %8749, 1
  store i32 %8750, ptr @test_count, align 4, !tbaa !5
  %8751 = load ptr, ptr %237, align 8, !tbaa !9
  %8752 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %8751, ptr noundef @.str.11, ptr noundef %241)
  %8753 = getelementptr inbounds %struct.s2n_result, ptr %242, i32 0, i32 0
  store i32 %8752, ptr %8753, align 4
  %8754 = getelementptr inbounds %struct.s2n_result, ptr %242, i32 0, i32 0
  %8755 = load i32, ptr %8754, align 4
  %8756 = call zeroext i1 @s2n_result_is_ok(i32 %8755)
  br i1 %8756, label %8810, label %8757

8757:                                             ; preds = %8748
  br label %8758

8758:                                             ; preds = %8757
  br label %8759

8759:                                             ; preds = %8758
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %8760 = call ptr @__errno_location() #12
  %8761 = load i32, ptr %8760, align 4, !tbaa !5
  store i32 %8761, ptr %243, align 4, !tbaa !5
  %8762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8763 = call i32 @s2n_print_stacktrace(ptr noundef %8762)
  %8764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8765 = trunc i8 %8764 to i1
  br i1 %8765, label %8766, label %8788

8766:                                             ; preds = %8759
  %8767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8768 = call i32 @fileno(ptr noundef %8767) #11
  %8769 = call i32 @isatty(i32 noundef %8768) #11
  %8770 = icmp ne i32 %8769, 0
  br i1 %8770, label %8771, label %8788

8771:                                             ; preds = %8766
  %8772 = load i32, ptr %243, align 4, !tbaa !5
  %8773 = call ptr @__errno_location() #12
  store i32 %8772, ptr %8773, align 4, !tbaa !5
  %8774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8775 = load i32, ptr @test_count, align 4, !tbaa !5
  %8776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8777 = load i32, ptr %8776, align 4, !tbaa !5
  %8778 = call ptr @s2n_strerror(i32 noundef %8777, ptr noundef @.str.4)
  %8779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8780 = load i32, ptr %8779, align 4, !tbaa !5
  %8781 = call ptr @s2n_strerror_debug(i32 noundef %8780, ptr noundef @.str.4)
  %8782 = call ptr @__errno_location() #12
  %8783 = load i32, ptr %8782, align 4, !tbaa !5
  %8784 = call ptr @strerror(i32 noundef %8783) #11
  %8785 = call ptr @__errno_location() #12
  %8786 = load i32, ptr %8785, align 4, !tbaa !5
  %8787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8774, ptr noundef @.str.2, i32 noundef %8775, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 577, ptr noundef %8778, ptr noundef %8781, ptr noundef %8784, i32 noundef %8786) #11
  br label %8805

8788:                                             ; preds = %8766, %8759
  %8789 = load i32, ptr %243, align 4, !tbaa !5
  %8790 = call ptr @__errno_location() #12
  store i32 %8789, ptr %8790, align 4, !tbaa !5
  %8791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8792 = load i32, ptr @test_count, align 4, !tbaa !5
  %8793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call ptr @s2n_strerror(i32 noundef %8794, ptr noundef @.str.4)
  %8796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call ptr @s2n_strerror_debug(i32 noundef %8797, ptr noundef @.str.4)
  %8799 = call ptr @__errno_location() #12
  %8800 = load i32, ptr %8799, align 4, !tbaa !5
  %8801 = call ptr @strerror(i32 noundef %8800) #11
  %8802 = call ptr @__errno_location() #12
  %8803 = load i32, ptr %8802, align 4, !tbaa !5
  %8804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8791, ptr noundef @.str.5, i32 noundef %8792, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 577, ptr noundef %8795, ptr noundef %8798, ptr noundef %8801, i32 noundef %8803) #11
  br label %8805

8805:                                             ; preds = %8788, %8771
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %8806

8806:                                             ; preds = %8805
  br label %8807

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

8808:                                             ; No predecessors!
  br label %8809

8809:                                             ; preds = %8808
  br label %8810

8810:                                             ; preds = %8809, %8748
  br label %8811

8811:                                             ; preds = %8810
  br label %8812

8812:                                             ; preds = %8811
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #11
  %8813 = getelementptr inbounds %struct.s2n_stuffer, ptr %241, i32 0, i32 2
  %8814 = load i32, ptr %8813, align 4, !tbaa !15
  %8815 = getelementptr inbounds %struct.s2n_stuffer, ptr %241, i32 0, i32 1
  %8816 = load i32, ptr %8815, align 8, !tbaa !18
  %8817 = sub i32 %8814, %8816
  store i32 %8817, ptr %244, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #11
  %8818 = load i32, ptr %244, align 4, !tbaa !5
  %8819 = call ptr @s2n_stuffer_raw_read(ptr noundef %241, i32 noundef %8818)
  store ptr %8819, ptr %245, align 8, !tbaa !9
  br label %8820

8820:                                             ; preds = %8812
  %8821 = load i32, ptr @test_count, align 4, !tbaa !5
  %8822 = add nsw i32 %8821, 1
  store i32 %8822, ptr @test_count, align 4, !tbaa !5
  %8823 = load ptr, ptr %245, align 8, !tbaa !9
  %8824 = icmp eq ptr %8823, null
  br i1 %8824, label %8825, label %8878

8825:                                             ; preds = %8820
  br label %8826

8826:                                             ; preds = %8825
  br label %8827

8827:                                             ; preds = %8826
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  %8828 = call ptr @__errno_location() #12
  %8829 = load i32, ptr %8828, align 4, !tbaa !5
  store i32 %8829, ptr %246, align 4, !tbaa !5
  %8830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8831 = call i32 @s2n_print_stacktrace(ptr noundef %8830)
  %8832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8833 = trunc i8 %8832 to i1
  br i1 %8833, label %8834, label %8856

8834:                                             ; preds = %8827
  %8835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8836 = call i32 @fileno(ptr noundef %8835) #11
  %8837 = call i32 @isatty(i32 noundef %8836) #11
  %8838 = icmp ne i32 %8837, 0
  br i1 %8838, label %8839, label %8856

8839:                                             ; preds = %8834
  %8840 = load i32, ptr %246, align 4, !tbaa !5
  %8841 = call ptr @__errno_location() #12
  store i32 %8840, ptr %8841, align 4, !tbaa !5
  %8842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8843 = load i32, ptr @test_count, align 4, !tbaa !5
  %8844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8845 = load i32, ptr %8844, align 4, !tbaa !5
  %8846 = call ptr @s2n_strerror(i32 noundef %8845, ptr noundef @.str.4)
  %8847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = call ptr @s2n_strerror_debug(i32 noundef %8848, ptr noundef @.str.4)
  %8850 = call ptr @__errno_location() #12
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call ptr @strerror(i32 noundef %8851) #11
  %8853 = call ptr @__errno_location() #12
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8842, ptr noundef @.str.2, i32 noundef %8843, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 580, ptr noundef %8846, ptr noundef %8849, ptr noundef %8852, i32 noundef %8854) #11
  br label %8873

8856:                                             ; preds = %8834, %8827
  %8857 = load i32, ptr %246, align 4, !tbaa !5
  %8858 = call ptr @__errno_location() #12
  store i32 %8857, ptr %8858, align 4, !tbaa !5
  %8859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8860 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8862, ptr noundef @.str.4)
  %8864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call ptr @s2n_strerror_debug(i32 noundef %8865, ptr noundef @.str.4)
  %8867 = call ptr @__errno_location() #12
  %8868 = load i32, ptr %8867, align 4, !tbaa !5
  %8869 = call ptr @strerror(i32 noundef %8868) #11
  %8870 = call ptr @__errno_location() #12
  %8871 = load i32, ptr %8870, align 4, !tbaa !5
  %8872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8859, ptr noundef @.str.5, i32 noundef %8860, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 580, ptr noundef %8863, ptr noundef %8866, ptr noundef %8869, i32 noundef %8871) #11
  br label %8873

8873:                                             ; preds = %8856, %8839
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  br label %8874

8874:                                             ; preds = %8873
  br label %8875

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

8876:                                             ; No predecessors!
  br label %8877

8877:                                             ; preds = %8876
  br label %8878

8878:                                             ; preds = %8877, %8820
  br label %8879

8879:                                             ; preds = %8878
  br label %8880

8880:                                             ; preds = %8879
  br label %8881

8881:                                             ; preds = %8880
  %8882 = load i32, ptr @test_count, align 4, !tbaa !5
  %8883 = add nsw i32 %8882, 1
  store i32 %8883, ptr @test_count, align 4, !tbaa !5
  %8884 = load ptr, ptr %237, align 8, !tbaa !9
  %8885 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8884, ptr noundef @.str.23)
  %8886 = icmp eq i32 %8885, -1
  br i1 %8886, label %8887, label %8940

8887:                                             ; preds = %8881
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  %8890 = call ptr @__errno_location() #12
  %8891 = load i32, ptr %8890, align 4, !tbaa !5
  store i32 %8891, ptr %247, align 4, !tbaa !5
  %8892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8893 = call i32 @s2n_print_stacktrace(ptr noundef %8892)
  %8894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8895 = trunc i8 %8894 to i1
  br i1 %8895, label %8896, label %8918

8896:                                             ; preds = %8889
  %8897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8898 = call i32 @fileno(ptr noundef %8897) #11
  %8899 = call i32 @isatty(i32 noundef %8898) #11
  %8900 = icmp ne i32 %8899, 0
  br i1 %8900, label %8901, label %8918

8901:                                             ; preds = %8896
  %8902 = load i32, ptr %247, align 4, !tbaa !5
  %8903 = call ptr @__errno_location() #12
  store i32 %8902, ptr %8903, align 4, !tbaa !5
  %8904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8905 = load i32, ptr @test_count, align 4, !tbaa !5
  %8906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8907 = load i32, ptr %8906, align 4, !tbaa !5
  %8908 = call ptr @s2n_strerror(i32 noundef %8907, ptr noundef @.str.4)
  %8909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8910 = load i32, ptr %8909, align 4, !tbaa !5
  %8911 = call ptr @s2n_strerror_debug(i32 noundef %8910, ptr noundef @.str.4)
  %8912 = call ptr @__errno_location() #12
  %8913 = load i32, ptr %8912, align 4, !tbaa !5
  %8914 = call ptr @strerror(i32 noundef %8913) #11
  %8915 = call ptr @__errno_location() #12
  %8916 = load i32, ptr %8915, align 4, !tbaa !5
  %8917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8904, ptr noundef @.str.2, i32 noundef %8905, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 582, ptr noundef %8908, ptr noundef %8911, ptr noundef %8914, i32 noundef %8916) #11
  br label %8935

8918:                                             ; preds = %8896, %8889
  %8919 = load i32, ptr %247, align 4, !tbaa !5
  %8920 = call ptr @__errno_location() #12
  store i32 %8919, ptr %8920, align 4, !tbaa !5
  %8921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8922 = load i32, ptr @test_count, align 4, !tbaa !5
  %8923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8924 = load i32, ptr %8923, align 4, !tbaa !5
  %8925 = call ptr @s2n_strerror(i32 noundef %8924, ptr noundef @.str.4)
  %8926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8927 = load i32, ptr %8926, align 4, !tbaa !5
  %8928 = call ptr @s2n_strerror_debug(i32 noundef %8927, ptr noundef @.str.4)
  %8929 = call ptr @__errno_location() #12
  %8930 = load i32, ptr %8929, align 4, !tbaa !5
  %8931 = call ptr @strerror(i32 noundef %8930) #11
  %8932 = call ptr @__errno_location() #12
  %8933 = load i32, ptr %8932, align 4, !tbaa !5
  %8934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8921, ptr noundef @.str.5, i32 noundef %8922, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 582, ptr noundef %8925, ptr noundef %8928, ptr noundef %8931, i32 noundef %8933) #11
  br label %8935

8935:                                             ; preds = %8918, %8901
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %8936

8936:                                             ; preds = %8935
  br label %8937

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

8938:                                             ; No predecessors!
  br label %8939

8939:                                             ; preds = %8938
  br label %8940

8940:                                             ; preds = %8939, %8881
  br label %8941

8941:                                             ; preds = %8940
  br label %8942

8942:                                             ; preds = %8941
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #11
  store i64 200, ptr %248, align 8, !tbaa !51
  br label %8943

8943:                                             ; preds = %8942
  %8944 = load i32, ptr @test_count, align 4, !tbaa !5
  %8945 = add nsw i32 %8944, 1
  store i32 %8945, ptr @test_count, align 4, !tbaa !5
  %8946 = load i32, ptr %244, align 4, !tbaa !5
  %8947 = zext i32 %8946 to i64
  %8948 = load i64, ptr %248, align 8, !tbaa !51
  %8949 = icmp ugt i64 %8947, %8948
  br i1 %8949, label %9003, label %8950

8950:                                             ; preds = %8943
  br label %8951

8951:                                             ; preds = %8950
  br label %8952

8952:                                             ; preds = %8951
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %8953 = call ptr @__errno_location() #12
  %8954 = load i32, ptr %8953, align 4, !tbaa !5
  store i32 %8954, ptr %249, align 4, !tbaa !5
  %8955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8956 = call i32 @s2n_print_stacktrace(ptr noundef %8955)
  %8957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8958 = trunc i8 %8957 to i1
  br i1 %8958, label %8959, label %8981

8959:                                             ; preds = %8952
  %8960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8961 = call i32 @fileno(ptr noundef %8960) #11
  %8962 = call i32 @isatty(i32 noundef %8961) #11
  %8963 = icmp ne i32 %8962, 0
  br i1 %8963, label %8964, label %8981

8964:                                             ; preds = %8959
  %8965 = load i32, ptr %249, align 4, !tbaa !5
  %8966 = call ptr @__errno_location() #12
  store i32 %8965, ptr %8966, align 4, !tbaa !5
  %8967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8968 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8970, ptr noundef @.str.4)
  %8972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call ptr @s2n_strerror_debug(i32 noundef %8973, ptr noundef @.str.4)
  %8975 = call ptr @__errno_location() #12
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call ptr @strerror(i32 noundef %8976) #11
  %8978 = call ptr @__errno_location() #12
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8967, ptr noundef @.str.2, i32 noundef %8968, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 586, ptr noundef %8971, ptr noundef %8974, ptr noundef %8977, i32 noundef %8979) #11
  br label %8998

8981:                                             ; preds = %8959, %8952
  %8982 = load i32, ptr %249, align 4, !tbaa !5
  %8983 = call ptr @__errno_location() #12
  store i32 %8982, ptr %8983, align 4, !tbaa !5
  %8984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8985 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8987, ptr noundef @.str.4)
  %8989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8990 = load i32, ptr %8989, align 4, !tbaa !5
  %8991 = call ptr @s2n_strerror_debug(i32 noundef %8990, ptr noundef @.str.4)
  %8992 = call ptr @__errno_location() #12
  %8993 = load i32, ptr %8992, align 4, !tbaa !5
  %8994 = call ptr @strerror(i32 noundef %8993) #11
  %8995 = call ptr @__errno_location() #12
  %8996 = load i32, ptr %8995, align 4, !tbaa !5
  %8997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8984, ptr noundef @.str.5, i32 noundef %8985, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 586, ptr noundef %8988, ptr noundef %8991, ptr noundef %8994, i32 noundef %8996) #11
  br label %8998

8998:                                             ; preds = %8981, %8964
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %8999

8999:                                             ; preds = %8998
  br label %9000

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

9001:                                             ; No predecessors!
  br label %9002

9002:                                             ; preds = %9001
  br label %9003

9003:                                             ; preds = %9002, %8943
  br label %9004

9004:                                             ; preds = %9003
  br label %9005

9005:                                             ; preds = %9004
  %9006 = load ptr, ptr %245, align 8, !tbaa !9
  %9007 = load i64, ptr %248, align 8, !tbaa !51
  %9008 = getelementptr inbounds i8, ptr %9006, i64 %9007
  %9009 = load i8, ptr %9008, align 1, !tbaa !52
  %9010 = zext i8 %9009 to i32
  %9011 = shl i32 %9010, 2
  %9012 = trunc i32 %9011 to i8
  %9013 = load ptr, ptr %245, align 8, !tbaa !9
  %9014 = load i64, ptr %248, align 8, !tbaa !51
  %9015 = getelementptr inbounds i8, ptr %9013, i64 %9014
  store i8 %9012, ptr %9015, align 1, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 48, ptr %250) #11
  br label %9016

9016:                                             ; preds = %9005
  %9017 = load i32, ptr @test_count, align 4, !tbaa !5
  %9018 = add nsw i32 %9017, 1
  store i32 %9018, ptr @test_count, align 4, !tbaa !5
  %9019 = call i32 @s2n_pkey_zero_init(ptr noundef %250)
  %9020 = icmp eq i32 %9019, -1
  br i1 %9020, label %9021, label %9074

9021:                                             ; preds = %9016
  br label %9022

9022:                                             ; preds = %9021
  br label %9023

9023:                                             ; preds = %9022
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %9024 = call ptr @__errno_location() #12
  %9025 = load i32, ptr %9024, align 4, !tbaa !5
  store i32 %9025, ptr %251, align 4, !tbaa !5
  %9026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9027 = call i32 @s2n_print_stacktrace(ptr noundef %9026)
  %9028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9029 = trunc i8 %9028 to i1
  br i1 %9029, label %9030, label %9052

9030:                                             ; preds = %9023
  %9031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9032 = call i32 @fileno(ptr noundef %9031) #11
  %9033 = call i32 @isatty(i32 noundef %9032) #11
  %9034 = icmp ne i32 %9033, 0
  br i1 %9034, label %9035, label %9052

9035:                                             ; preds = %9030
  %9036 = load i32, ptr %251, align 4, !tbaa !5
  %9037 = call ptr @__errno_location() #12
  store i32 %9036, ptr %9037, align 4, !tbaa !5
  %9038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9039 = load i32, ptr @test_count, align 4, !tbaa !5
  %9040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9041 = load i32, ptr %9040, align 4, !tbaa !5
  %9042 = call ptr @s2n_strerror(i32 noundef %9041, ptr noundef @.str.4)
  %9043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9044 = load i32, ptr %9043, align 4, !tbaa !5
  %9045 = call ptr @s2n_strerror_debug(i32 noundef %9044, ptr noundef @.str.4)
  %9046 = call ptr @__errno_location() #12
  %9047 = load i32, ptr %9046, align 4, !tbaa !5
  %9048 = call ptr @strerror(i32 noundef %9047) #11
  %9049 = call ptr @__errno_location() #12
  %9050 = load i32, ptr %9049, align 4, !tbaa !5
  %9051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9038, ptr noundef @.str.2, i32 noundef %9039, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 589, ptr noundef %9042, ptr noundef %9045, ptr noundef %9048, i32 noundef %9050) #11
  br label %9069

9052:                                             ; preds = %9030, %9023
  %9053 = load i32, ptr %251, align 4, !tbaa !5
  %9054 = call ptr @__errno_location() #12
  store i32 %9053, ptr %9054, align 4, !tbaa !5
  %9055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9056 = load i32, ptr @test_count, align 4, !tbaa !5
  %9057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9058 = load i32, ptr %9057, align 4, !tbaa !5
  %9059 = call ptr @s2n_strerror(i32 noundef %9058, ptr noundef @.str.4)
  %9060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9061 = load i32, ptr %9060, align 4, !tbaa !5
  %9062 = call ptr @s2n_strerror_debug(i32 noundef %9061, ptr noundef @.str.4)
  %9063 = call ptr @__errno_location() #12
  %9064 = load i32, ptr %9063, align 4, !tbaa !5
  %9065 = call ptr @strerror(i32 noundef %9064) #11
  %9066 = call ptr @__errno_location() #12
  %9067 = load i32, ptr %9066, align 4, !tbaa !5
  %9068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9055, ptr noundef @.str.5, i32 noundef %9056, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 589, ptr noundef %9059, ptr noundef %9062, ptr noundef %9065, i32 noundef %9067) #11
  br label %9069

9069:                                             ; preds = %9052, %9035
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %9070

9070:                                             ; preds = %9069
  br label %9071

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

9072:                                             ; No predecessors!
  br label %9073

9073:                                             ; preds = %9072
  br label %9074

9074:                                             ; preds = %9073, %9016
  br label %9075

9075:                                             ; preds = %9074
  br label %9076

9076:                                             ; preds = %9075
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  store i32 -1, ptr %252, align 4, !tbaa !5
  br label %9077

9077:                                             ; preds = %9076
  br label %9078

9078:                                             ; preds = %9077
  br label %9079

9079:                                             ; preds = %9078
  %9080 = load i32, ptr @test_count, align 4, !tbaa !5
  %9081 = add nsw i32 %9080, 1
  store i32 %9081, ptr @test_count, align 4, !tbaa !5
  %9082 = load ptr, ptr %237, align 8, !tbaa !9
  %9083 = load ptr, ptr %245, align 8, !tbaa !9
  %9084 = load i32, ptr %244, align 4, !tbaa !5
  %9085 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %236, ptr noundef %9082, ptr noundef %9083, i32 noundef %9084, ptr noundef %252, ptr noundef %250)
  %9086 = getelementptr inbounds %struct.s2n_result, ptr %253, i32 0, i32 0
  store i32 %9085, ptr %9086, align 4
  %9087 = getelementptr inbounds %struct.s2n_result, ptr %253, i32 0, i32 0
  %9088 = load i32, ptr %9087, align 4
  %9089 = call zeroext i1 @s2n_result_is_error(i32 %9088)
  br i1 %9089, label %9143, label %9090

9090:                                             ; preds = %9079
  br label %9091

9091:                                             ; preds = %9090
  br label %9092

9092:                                             ; preds = %9091
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %9093 = call ptr @__errno_location() #12
  %9094 = load i32, ptr %9093, align 4, !tbaa !5
  store i32 %9094, ptr %254, align 4, !tbaa !5
  %9095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9096 = call i32 @s2n_print_stacktrace(ptr noundef %9095)
  %9097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9098 = trunc i8 %9097 to i1
  br i1 %9098, label %9099, label %9121

9099:                                             ; preds = %9092
  %9100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9101 = call i32 @fileno(ptr noundef %9100) #11
  %9102 = call i32 @isatty(i32 noundef %9101) #11
  %9103 = icmp ne i32 %9102, 0
  br i1 %9103, label %9104, label %9121

9104:                                             ; preds = %9099
  %9105 = load i32, ptr %254, align 4, !tbaa !5
  %9106 = call ptr @__errno_location() #12
  store i32 %9105, ptr %9106, align 4, !tbaa !5
  %9107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9108 = load i32, ptr @test_count, align 4, !tbaa !5
  %9109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9110 = load i32, ptr %9109, align 4, !tbaa !5
  %9111 = call ptr @s2n_strerror(i32 noundef %9110, ptr noundef @.str.4)
  %9112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9113 = load i32, ptr %9112, align 4, !tbaa !5
  %9114 = call ptr @s2n_strerror_debug(i32 noundef %9113, ptr noundef @.str.4)
  %9115 = call ptr @__errno_location() #12
  %9116 = load i32, ptr %9115, align 4, !tbaa !5
  %9117 = call ptr @strerror(i32 noundef %9116) #11
  %9118 = call ptr @__errno_location() #12
  %9119 = load i32, ptr %9118, align 4, !tbaa !5
  %9120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9107, ptr noundef @.str.2, i32 noundef %9108, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9111, ptr noundef %9114, ptr noundef %9117, i32 noundef %9119) #11
  br label %9138

9121:                                             ; preds = %9099, %9092
  %9122 = load i32, ptr %254, align 4, !tbaa !5
  %9123 = call ptr @__errno_location() #12
  store i32 %9122, ptr %9123, align 4, !tbaa !5
  %9124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9125 = load i32, ptr @test_count, align 4, !tbaa !5
  %9126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9127 = load i32, ptr %9126, align 4, !tbaa !5
  %9128 = call ptr @s2n_strerror(i32 noundef %9127, ptr noundef @.str.4)
  %9129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9130 = load i32, ptr %9129, align 4, !tbaa !5
  %9131 = call ptr @s2n_strerror_debug(i32 noundef %9130, ptr noundef @.str.4)
  %9132 = call ptr @__errno_location() #12
  %9133 = load i32, ptr %9132, align 4, !tbaa !5
  %9134 = call ptr @strerror(i32 noundef %9133) #11
  %9135 = call ptr @__errno_location() #12
  %9136 = load i32, ptr %9135, align 4, !tbaa !5
  %9137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9124, ptr noundef @.str.5, i32 noundef %9125, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9128, ptr noundef %9131, ptr noundef %9134, i32 noundef %9136) #11
  br label %9138

9138:                                             ; preds = %9121, %9104
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %9139

9139:                                             ; preds = %9138
  br label %9140

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

9141:                                             ; No predecessors!
  br label %9142

9142:                                             ; preds = %9141
  br label %9143

9143:                                             ; preds = %9142, %9079
  br label %9144

9144:                                             ; preds = %9143
  br label %9145

9145:                                             ; preds = %9144
  br label %9146

9146:                                             ; preds = %9145
  %9147 = load i32, ptr @test_count, align 4, !tbaa !5
  %9148 = add nsw i32 %9147, 1
  store i32 %9148, ptr @test_count, align 4, !tbaa !5
  %9149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9150 = load i32, ptr %9149, align 4, !tbaa !5
  %9151 = icmp eq i32 %9150, 335544366
  br i1 %9151, label %9205, label %9152

9152:                                             ; preds = %9146
  br label %9153

9153:                                             ; preds = %9152
  br label %9154

9154:                                             ; preds = %9153
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %9155 = call ptr @__errno_location() #12
  %9156 = load i32, ptr %9155, align 4, !tbaa !5
  store i32 %9156, ptr %255, align 4, !tbaa !5
  %9157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9158 = call i32 @s2n_print_stacktrace(ptr noundef %9157)
  %9159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9160 = trunc i8 %9159 to i1
  br i1 %9160, label %9161, label %9183

9161:                                             ; preds = %9154
  %9162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9163 = call i32 @fileno(ptr noundef %9162) #11
  %9164 = call i32 @isatty(i32 noundef %9163) #11
  %9165 = icmp ne i32 %9164, 0
  br i1 %9165, label %9166, label %9183

9166:                                             ; preds = %9161
  %9167 = load i32, ptr %255, align 4, !tbaa !5
  %9168 = call ptr @__errno_location() #12
  store i32 %9167, ptr %9168, align 4, !tbaa !5
  %9169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9170 = load i32, ptr @test_count, align 4, !tbaa !5
  %9171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9172 = load i32, ptr %9171, align 4, !tbaa !5
  %9173 = call ptr @s2n_strerror(i32 noundef %9172, ptr noundef @.str.4)
  %9174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9175 = load i32, ptr %9174, align 4, !tbaa !5
  %9176 = call ptr @s2n_strerror_debug(i32 noundef %9175, ptr noundef @.str.4)
  %9177 = call ptr @__errno_location() #12
  %9178 = load i32, ptr %9177, align 4, !tbaa !5
  %9179 = call ptr @strerror(i32 noundef %9178) #11
  %9180 = call ptr @__errno_location() #12
  %9181 = load i32, ptr %9180, align 4, !tbaa !5
  %9182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9169, ptr noundef @.str.2, i32 noundef %9170, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9173, ptr noundef %9176, ptr noundef %9179, i32 noundef %9181) #11
  br label %9200

9183:                                             ; preds = %9161, %9154
  %9184 = load i32, ptr %255, align 4, !tbaa !5
  %9185 = call ptr @__errno_location() #12
  store i32 %9184, ptr %9185, align 4, !tbaa !5
  %9186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9187 = load i32, ptr @test_count, align 4, !tbaa !5
  %9188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  %9190 = call ptr @s2n_strerror(i32 noundef %9189, ptr noundef @.str.4)
  %9191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9192 = load i32, ptr %9191, align 4, !tbaa !5
  %9193 = call ptr @s2n_strerror_debug(i32 noundef %9192, ptr noundef @.str.4)
  %9194 = call ptr @__errno_location() #12
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call ptr @strerror(i32 noundef %9195) #11
  %9197 = call ptr @__errno_location() #12
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9186, ptr noundef @.str.5, i32 noundef %9187, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9190, ptr noundef %9193, ptr noundef %9196, i32 noundef %9198) #11
  br label %9200

9200:                                             ; preds = %9183, %9166
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %9201

9201:                                             ; preds = %9200
  br label %9202

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

9203:                                             ; No predecessors!
  br label %9204

9204:                                             ; preds = %9203
  br label %9205

9205:                                             ; preds = %9204, %9146
  br label %9206

9206:                                             ; preds = %9205
  br label %9207

9207:                                             ; preds = %9206
  br label %9208

9208:                                             ; preds = %9207
  %9209 = load i32, ptr @test_count, align 4, !tbaa !5
  %9210 = add nsw i32 %9209, 1
  store i32 %9210, ptr @test_count, align 4, !tbaa !5
  %9211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9212 = load i32, ptr %9211, align 4, !tbaa !5
  %9213 = call ptr @s2n_strerror_debug(i32 noundef %9212, ptr noundef @.str.4)
  %9214 = icmp eq ptr %9213, null
  br i1 %9214, label %9215, label %9268

9215:                                             ; preds = %9208
  br label %9216

9216:                                             ; preds = %9215
  br label %9217

9217:                                             ; preds = %9216
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #11
  %9218 = call ptr @__errno_location() #12
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  store i32 %9219, ptr %256, align 4, !tbaa !5
  %9220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9221 = call i32 @s2n_print_stacktrace(ptr noundef %9220)
  %9222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9223 = trunc i8 %9222 to i1
  br i1 %9223, label %9224, label %9246

9224:                                             ; preds = %9217
  %9225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9226 = call i32 @fileno(ptr noundef %9225) #11
  %9227 = call i32 @isatty(i32 noundef %9226) #11
  %9228 = icmp ne i32 %9227, 0
  br i1 %9228, label %9229, label %9246

9229:                                             ; preds = %9224
  %9230 = load i32, ptr %256, align 4, !tbaa !5
  %9231 = call ptr @__errno_location() #12
  store i32 %9230, ptr %9231, align 4, !tbaa !5
  %9232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9233 = load i32, ptr @test_count, align 4, !tbaa !5
  %9234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9235 = load i32, ptr %9234, align 4, !tbaa !5
  %9236 = call ptr @s2n_strerror(i32 noundef %9235, ptr noundef @.str.4)
  %9237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9238 = load i32, ptr %9237, align 4, !tbaa !5
  %9239 = call ptr @s2n_strerror_debug(i32 noundef %9238, ptr noundef @.str.4)
  %9240 = call ptr @__errno_location() #12
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @strerror(i32 noundef %9241) #11
  %9243 = call ptr @__errno_location() #12
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9232, ptr noundef @.str.2, i32 noundef %9233, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9236, ptr noundef %9239, ptr noundef %9242, i32 noundef %9244) #11
  br label %9263

9246:                                             ; preds = %9224, %9217
  %9247 = load i32, ptr %256, align 4, !tbaa !5
  %9248 = call ptr @__errno_location() #12
  store i32 %9247, ptr %9248, align 4, !tbaa !5
  %9249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9250 = load i32, ptr @test_count, align 4, !tbaa !5
  %9251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9252 = load i32, ptr %9251, align 4, !tbaa !5
  %9253 = call ptr @s2n_strerror(i32 noundef %9252, ptr noundef @.str.4)
  %9254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9255 = load i32, ptr %9254, align 4, !tbaa !5
  %9256 = call ptr @s2n_strerror_debug(i32 noundef %9255, ptr noundef @.str.4)
  %9257 = call ptr @__errno_location() #12
  %9258 = load i32, ptr %9257, align 4, !tbaa !5
  %9259 = call ptr @strerror(i32 noundef %9258) #11
  %9260 = call ptr @__errno_location() #12
  %9261 = load i32, ptr %9260, align 4, !tbaa !5
  %9262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9249, ptr noundef @.str.5, i32 noundef %9250, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9253, ptr noundef %9256, ptr noundef %9259, i32 noundef %9261) #11
  br label %9263

9263:                                             ; preds = %9246, %9229
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #11
  br label %9264

9264:                                             ; preds = %9263
  br label %9265

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

9266:                                             ; No predecessors!
  br label %9267

9267:                                             ; preds = %9266
  br label %9268

9268:                                             ; preds = %9267, %9208
  br label %9269

9269:                                             ; preds = %9268
  br label %9270

9270:                                             ; preds = %9269
  br label %9271

9271:                                             ; preds = %9270
  br label %9272

9272:                                             ; preds = %9271
  br label %9273

9273:                                             ; preds = %9272
  %9274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9274, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9275 = call ptr @__errno_location() #12
  store i32 0, ptr %9275, align 4, !tbaa !5
  br label %9276

9276:                                             ; preds = %9273
  br label %9277

9277:                                             ; preds = %9276
  br label %9278

9278:                                             ; preds = %9277
  br label %9279

9279:                                             ; preds = %9278
  br label %9280

9280:                                             ; preds = %9279
  %9281 = load i32, ptr @test_count, align 4, !tbaa !5
  %9282 = add nsw i32 %9281, 1
  store i32 %9282, ptr @test_count, align 4, !tbaa !5
  %9283 = getelementptr inbounds %struct.host_verify_data, ptr %239, i32 0, i32 2
  %9284 = load i8, ptr %9283, align 1, !tbaa !19
  %9285 = zext i8 %9284 to i32
  %9286 = icmp eq i32 1, %9285
  br i1 %9286, label %9340, label %9287

9287:                                             ; preds = %9280
  br label %9288

9288:                                             ; preds = %9287
  br label %9289

9289:                                             ; preds = %9288
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %9290 = call ptr @__errno_location() #12
  %9291 = load i32, ptr %9290, align 4, !tbaa !5
  store i32 %9291, ptr %257, align 4, !tbaa !5
  %9292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9293 = call i32 @s2n_print_stacktrace(ptr noundef %9292)
  %9294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9295 = trunc i8 %9294 to i1
  br i1 %9295, label %9296, label %9318

9296:                                             ; preds = %9289
  %9297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9298 = call i32 @fileno(ptr noundef %9297) #11
  %9299 = call i32 @isatty(i32 noundef %9298) #11
  %9300 = icmp ne i32 %9299, 0
  br i1 %9300, label %9301, label %9318

9301:                                             ; preds = %9296
  %9302 = load i32, ptr %257, align 4, !tbaa !5
  %9303 = call ptr @__errno_location() #12
  store i32 %9302, ptr %9303, align 4, !tbaa !5
  %9304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9305 = load i32, ptr @test_count, align 4, !tbaa !5
  %9306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9307 = load i32, ptr %9306, align 4, !tbaa !5
  %9308 = call ptr @s2n_strerror(i32 noundef %9307, ptr noundef @.str.4)
  %9309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9310 = load i32, ptr %9309, align 4, !tbaa !5
  %9311 = call ptr @s2n_strerror_debug(i32 noundef %9310, ptr noundef @.str.4)
  %9312 = call ptr @__errno_location() #12
  %9313 = load i32, ptr %9312, align 4, !tbaa !5
  %9314 = call ptr @strerror(i32 noundef %9313) #11
  %9315 = call ptr @__errno_location() #12
  %9316 = load i32, ptr %9315, align 4, !tbaa !5
  %9317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9304, ptr noundef @.str.2, i32 noundef %9305, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 595, ptr noundef %9308, ptr noundef %9311, ptr noundef %9314, i32 noundef %9316) #11
  br label %9335

9318:                                             ; preds = %9296, %9289
  %9319 = load i32, ptr %257, align 4, !tbaa !5
  %9320 = call ptr @__errno_location() #12
  store i32 %9319, ptr %9320, align 4, !tbaa !5
  %9321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9322 = load i32, ptr @test_count, align 4, !tbaa !5
  %9323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  %9325 = call ptr @s2n_strerror(i32 noundef %9324, ptr noundef @.str.4)
  %9326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9327 = load i32, ptr %9326, align 4, !tbaa !5
  %9328 = call ptr @s2n_strerror_debug(i32 noundef %9327, ptr noundef @.str.4)
  %9329 = call ptr @__errno_location() #12
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  %9331 = call ptr @strerror(i32 noundef %9330) #11
  %9332 = call ptr @__errno_location() #12
  %9333 = load i32, ptr %9332, align 4, !tbaa !5
  %9334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9321, ptr noundef @.str.5, i32 noundef %9322, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 595, ptr noundef %9325, ptr noundef %9328, ptr noundef %9331, i32 noundef %9333) #11
  br label %9335

9335:                                             ; preds = %9318, %9301
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %9336

9336:                                             ; preds = %9335
  br label %9337

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

9338:                                             ; No predecessors!
  br label %9339

9339:                                             ; preds = %9338
  br label %9340

9340:                                             ; preds = %9339, %9280
  br label %9341

9341:                                             ; preds = %9340
  br label %9342

9342:                                             ; preds = %9341
  %9343 = load ptr, ptr %237, align 8, !tbaa !9
  %9344 = call i32 @s2n_connection_free(ptr noundef %9343)
  %9345 = call i32 @s2n_pkey_free(ptr noundef %250)
  %9346 = call i32 @s2n_x509_validator_wipe(ptr noundef %236)
  call void @s2n_x509_trust_store_wipe(ptr noundef %234)
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %250) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #11
  %9347 = call i32 @s2n_stuffer_free(ptr noundef %241)
  call void @llvm.lifetime.end.p0(i64 40, ptr %241) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %239) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %236) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %234) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %258) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %258)
  br label %9348

9348:                                             ; preds = %9342
  %9349 = load i32, ptr @test_count, align 4, !tbaa !5
  %9350 = add nsw i32 %9349, 1
  store i32 %9350, ptr @test_count, align 4, !tbaa !5
  %9351 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %258, ptr noundef @.str.11, ptr noundef null)
  %9352 = icmp eq i32 %9351, -1
  br i1 %9352, label %9353, label %9406

9353:                                             ; preds = %9348
  br label %9354

9354:                                             ; preds = %9353
  br label %9355

9355:                                             ; preds = %9354
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #11
  %9356 = call ptr @__errno_location() #12
  %9357 = load i32, ptr %9356, align 4, !tbaa !5
  store i32 %9357, ptr %259, align 4, !tbaa !5
  %9358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9359 = call i32 @s2n_print_stacktrace(ptr noundef %9358)
  %9360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9361 = trunc i8 %9360 to i1
  br i1 %9361, label %9362, label %9384

9362:                                             ; preds = %9355
  %9363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9364 = call i32 @fileno(ptr noundef %9363) #11
  %9365 = call i32 @isatty(i32 noundef %9364) #11
  %9366 = icmp ne i32 %9365, 0
  br i1 %9366, label %9367, label %9384

9367:                                             ; preds = %9362
  %9368 = load i32, ptr %259, align 4, !tbaa !5
  %9369 = call ptr @__errno_location() #12
  store i32 %9368, ptr %9369, align 4, !tbaa !5
  %9370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9371 = load i32, ptr @test_count, align 4, !tbaa !5
  %9372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9373 = load i32, ptr %9372, align 4, !tbaa !5
  %9374 = call ptr @s2n_strerror(i32 noundef %9373, ptr noundef @.str.4)
  %9375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9376 = load i32, ptr %9375, align 4, !tbaa !5
  %9377 = call ptr @s2n_strerror_debug(i32 noundef %9376, ptr noundef @.str.4)
  %9378 = call ptr @__errno_location() #12
  %9379 = load i32, ptr %9378, align 4, !tbaa !5
  %9380 = call ptr @strerror(i32 noundef %9379) #11
  %9381 = call ptr @__errno_location() #12
  %9382 = load i32, ptr %9381, align 4, !tbaa !5
  %9383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9370, ptr noundef @.str.2, i32 noundef %9371, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 606, ptr noundef %9374, ptr noundef %9377, ptr noundef %9380, i32 noundef %9382) #11
  br label %9401

9384:                                             ; preds = %9362, %9355
  %9385 = load i32, ptr %259, align 4, !tbaa !5
  %9386 = call ptr @__errno_location() #12
  store i32 %9385, ptr %9386, align 4, !tbaa !5
  %9387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9388 = load i32, ptr @test_count, align 4, !tbaa !5
  %9389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9390 = load i32, ptr %9389, align 4, !tbaa !5
  %9391 = call ptr @s2n_strerror(i32 noundef %9390, ptr noundef @.str.4)
  %9392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call ptr @s2n_strerror_debug(i32 noundef %9393, ptr noundef @.str.4)
  %9395 = call ptr @__errno_location() #12
  %9396 = load i32, ptr %9395, align 4, !tbaa !5
  %9397 = call ptr @strerror(i32 noundef %9396) #11
  %9398 = call ptr @__errno_location() #12
  %9399 = load i32, ptr %9398, align 4, !tbaa !5
  %9400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9387, ptr noundef @.str.5, i32 noundef %9388, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 606, ptr noundef %9391, ptr noundef %9394, ptr noundef %9397, i32 noundef %9399) #11
  br label %9401

9401:                                             ; preds = %9384, %9367
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #11
  br label %9402

9402:                                             ; preds = %9401
  br label %9403

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

9404:                                             ; No predecessors!
  br label %9405

9405:                                             ; preds = %9404
  br label %9406

9406:                                             ; preds = %9405, %9348
  br label %9407

9407:                                             ; preds = %9406
  br label %9408

9408:                                             ; preds = %9407
  call void @llvm.lifetime.start.p0(i64 16, ptr %260) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %260, ptr align 8 @__const.main.verify_data.58, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %261) #11
  %9409 = call i32 @s2n_x509_validator_init(ptr noundef %261, ptr noundef %258, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %262) #11
  %9410 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9410, ptr %262, align 8, !tbaa !9
  br label %9411

9411:                                             ; preds = %9408
  %9412 = load i32, ptr @test_count, align 4, !tbaa !5
  %9413 = add nsw i32 %9412, 1
  store i32 %9413, ptr @test_count, align 4, !tbaa !5
  %9414 = load ptr, ptr %262, align 8, !tbaa !9
  %9415 = icmp eq ptr %9414, null
  br i1 %9415, label %9416, label %9469

9416:                                             ; preds = %9411
  br label %9417

9417:                                             ; preds = %9416
  br label %9418

9418:                                             ; preds = %9417
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #11
  %9419 = call ptr @__errno_location() #12
  %9420 = load i32, ptr %9419, align 4, !tbaa !5
  store i32 %9420, ptr %263, align 4, !tbaa !5
  %9421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9422 = call i32 @s2n_print_stacktrace(ptr noundef %9421)
  %9423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9424 = trunc i8 %9423 to i1
  br i1 %9424, label %9425, label %9447

9425:                                             ; preds = %9418
  %9426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9427 = call i32 @fileno(ptr noundef %9426) #11
  %9428 = call i32 @isatty(i32 noundef %9427) #11
  %9429 = icmp ne i32 %9428, 0
  br i1 %9429, label %9430, label %9447

9430:                                             ; preds = %9425
  %9431 = load i32, ptr %263, align 4, !tbaa !5
  %9432 = call ptr @__errno_location() #12
  store i32 %9431, ptr %9432, align 4, !tbaa !5
  %9433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9434 = load i32, ptr @test_count, align 4, !tbaa !5
  %9435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9436 = load i32, ptr %9435, align 4, !tbaa !5
  %9437 = call ptr @s2n_strerror(i32 noundef %9436, ptr noundef @.str.4)
  %9438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9439 = load i32, ptr %9438, align 4, !tbaa !5
  %9440 = call ptr @s2n_strerror_debug(i32 noundef %9439, ptr noundef @.str.4)
  %9441 = call ptr @__errno_location() #12
  %9442 = load i32, ptr %9441, align 4, !tbaa !5
  %9443 = call ptr @strerror(i32 noundef %9442) #11
  %9444 = call ptr @__errno_location() #12
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9433, ptr noundef @.str.2, i32 noundef %9434, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 618, ptr noundef %9437, ptr noundef %9440, ptr noundef %9443, i32 noundef %9445) #11
  br label %9464

9447:                                             ; preds = %9425, %9418
  %9448 = load i32, ptr %263, align 4, !tbaa !5
  %9449 = call ptr @__errno_location() #12
  store i32 %9448, ptr %9449, align 4, !tbaa !5
  %9450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9451 = load i32, ptr @test_count, align 4, !tbaa !5
  %9452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9453 = load i32, ptr %9452, align 4, !tbaa !5
  %9454 = call ptr @s2n_strerror(i32 noundef %9453, ptr noundef @.str.4)
  %9455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9456 = load i32, ptr %9455, align 4, !tbaa !5
  %9457 = call ptr @s2n_strerror_debug(i32 noundef %9456, ptr noundef @.str.4)
  %9458 = call ptr @__errno_location() #12
  %9459 = load i32, ptr %9458, align 4, !tbaa !5
  %9460 = call ptr @strerror(i32 noundef %9459) #11
  %9461 = call ptr @__errno_location() #12
  %9462 = load i32, ptr %9461, align 4, !tbaa !5
  %9463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9450, ptr noundef @.str.5, i32 noundef %9451, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 618, ptr noundef %9454, ptr noundef %9457, ptr noundef %9460, i32 noundef %9462) #11
  br label %9464

9464:                                             ; preds = %9447, %9430
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #11
  br label %9465

9465:                                             ; preds = %9464
  br label %9466

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

9467:                                             ; No predecessors!
  br label %9468

9468:                                             ; preds = %9467
  br label %9469

9469:                                             ; preds = %9468, %9411
  br label %9470

9470:                                             ; preds = %9469
  br label %9471

9471:                                             ; preds = %9470
  br label %9472

9472:                                             ; preds = %9471
  %9473 = load i32, ptr @test_count, align 4, !tbaa !5
  %9474 = add nsw i32 %9473, 1
  store i32 %9474, ptr @test_count, align 4, !tbaa !5
  %9475 = load ptr, ptr %262, align 8, !tbaa !9
  %9476 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %9475, ptr noundef @verify_host_reject_everything, ptr noundef %260)
  %9477 = icmp eq i32 %9476, -1
  br i1 %9477, label %9478, label %9531

9478:                                             ; preds = %9472
  br label %9479

9479:                                             ; preds = %9478
  br label %9480

9480:                                             ; preds = %9479
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %9481 = call ptr @__errno_location() #12
  %9482 = load i32, ptr %9481, align 4, !tbaa !5
  store i32 %9482, ptr %264, align 4, !tbaa !5
  %9483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9484 = call i32 @s2n_print_stacktrace(ptr noundef %9483)
  %9485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9486 = trunc i8 %9485 to i1
  br i1 %9486, label %9487, label %9509

9487:                                             ; preds = %9480
  %9488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9489 = call i32 @fileno(ptr noundef %9488) #11
  %9490 = call i32 @isatty(i32 noundef %9489) #11
  %9491 = icmp ne i32 %9490, 0
  br i1 %9491, label %9492, label %9509

9492:                                             ; preds = %9487
  %9493 = load i32, ptr %264, align 4, !tbaa !5
  %9494 = call ptr @__errno_location() #12
  store i32 %9493, ptr %9494, align 4, !tbaa !5
  %9495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9496 = load i32, ptr @test_count, align 4, !tbaa !5
  %9497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call ptr @s2n_strerror(i32 noundef %9498, ptr noundef @.str.4)
  %9500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call ptr @s2n_strerror_debug(i32 noundef %9501, ptr noundef @.str.4)
  %9503 = call ptr @__errno_location() #12
  %9504 = load i32, ptr %9503, align 4, !tbaa !5
  %9505 = call ptr @strerror(i32 noundef %9504) #11
  %9506 = call ptr @__errno_location() #12
  %9507 = load i32, ptr %9506, align 4, !tbaa !5
  %9508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9495, ptr noundef @.str.2, i32 noundef %9496, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 619, ptr noundef %9499, ptr noundef %9502, ptr noundef %9505, i32 noundef %9507) #11
  br label %9526

9509:                                             ; preds = %9487, %9480
  %9510 = load i32, ptr %264, align 4, !tbaa !5
  %9511 = call ptr @__errno_location() #12
  store i32 %9510, ptr %9511, align 4, !tbaa !5
  %9512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9513 = load i32, ptr @test_count, align 4, !tbaa !5
  %9514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9515 = load i32, ptr %9514, align 4, !tbaa !5
  %9516 = call ptr @s2n_strerror(i32 noundef %9515, ptr noundef @.str.4)
  %9517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9518 = load i32, ptr %9517, align 4, !tbaa !5
  %9519 = call ptr @s2n_strerror_debug(i32 noundef %9518, ptr noundef @.str.4)
  %9520 = call ptr @__errno_location() #12
  %9521 = load i32, ptr %9520, align 4, !tbaa !5
  %9522 = call ptr @strerror(i32 noundef %9521) #11
  %9523 = call ptr @__errno_location() #12
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  %9525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9512, ptr noundef @.str.5, i32 noundef %9513, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 619, ptr noundef %9516, ptr noundef %9519, ptr noundef %9522, i32 noundef %9524) #11
  br label %9526

9526:                                             ; preds = %9509, %9492
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %9527

9527:                                             ; preds = %9526
  br label %9528

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

9529:                                             ; No predecessors!
  br label %9530

9530:                                             ; preds = %9529
  br label %9531

9531:                                             ; preds = %9530, %9472
  br label %9532

9532:                                             ; preds = %9531
  br label %9533

9533:                                             ; preds = %9532
  call void @llvm.lifetime.start.p0(i64 40, ptr %265) #11
  call void @llvm.memset.p0.i64(ptr align 8 %265, i8 0, i64 40, i1 false)
  br label %9534

9534:                                             ; preds = %9533
  %9535 = load i32, ptr @test_count, align 4, !tbaa !5
  %9536 = add nsw i32 %9535, 1
  store i32 %9536, ptr @test_count, align 4, !tbaa !5
  %9537 = load ptr, ptr %262, align 8, !tbaa !9
  %9538 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %9537, ptr noundef @.str.11, ptr noundef %265)
  %9539 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  store i32 %9538, ptr %9539, align 4
  %9540 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  %9541 = load i32, ptr %9540, align 4
  %9542 = call zeroext i1 @s2n_result_is_ok(i32 %9541)
  br i1 %9542, label %9596, label %9543

9543:                                             ; preds = %9534
  br label %9544

9544:                                             ; preds = %9543
  br label %9545

9545:                                             ; preds = %9544
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %9546 = call ptr @__errno_location() #12
  %9547 = load i32, ptr %9546, align 4, !tbaa !5
  store i32 %9547, ptr %267, align 4, !tbaa !5
  %9548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9549 = call i32 @s2n_print_stacktrace(ptr noundef %9548)
  %9550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9551 = trunc i8 %9550 to i1
  br i1 %9551, label %9552, label %9574

9552:                                             ; preds = %9545
  %9553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9554 = call i32 @fileno(ptr noundef %9553) #11
  %9555 = call i32 @isatty(i32 noundef %9554) #11
  %9556 = icmp ne i32 %9555, 0
  br i1 %9556, label %9557, label %9574

9557:                                             ; preds = %9552
  %9558 = load i32, ptr %267, align 4, !tbaa !5
  %9559 = call ptr @__errno_location() #12
  store i32 %9558, ptr %9559, align 4, !tbaa !5
  %9560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9561 = load i32, ptr @test_count, align 4, !tbaa !5
  %9562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9563 = load i32, ptr %9562, align 4, !tbaa !5
  %9564 = call ptr @s2n_strerror(i32 noundef %9563, ptr noundef @.str.4)
  %9565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9566 = load i32, ptr %9565, align 4, !tbaa !5
  %9567 = call ptr @s2n_strerror_debug(i32 noundef %9566, ptr noundef @.str.4)
  %9568 = call ptr @__errno_location() #12
  %9569 = load i32, ptr %9568, align 4, !tbaa !5
  %9570 = call ptr @strerror(i32 noundef %9569) #11
  %9571 = call ptr @__errno_location() #12
  %9572 = load i32, ptr %9571, align 4, !tbaa !5
  %9573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9560, ptr noundef @.str.2, i32 noundef %9561, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 622, ptr noundef %9564, ptr noundef %9567, ptr noundef %9570, i32 noundef %9572) #11
  br label %9591

9574:                                             ; preds = %9552, %9545
  %9575 = load i32, ptr %267, align 4, !tbaa !5
  %9576 = call ptr @__errno_location() #12
  store i32 %9575, ptr %9576, align 4, !tbaa !5
  %9577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9578 = load i32, ptr @test_count, align 4, !tbaa !5
  %9579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9580 = load i32, ptr %9579, align 4, !tbaa !5
  %9581 = call ptr @s2n_strerror(i32 noundef %9580, ptr noundef @.str.4)
  %9582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9583 = load i32, ptr %9582, align 4, !tbaa !5
  %9584 = call ptr @s2n_strerror_debug(i32 noundef %9583, ptr noundef @.str.4)
  %9585 = call ptr @__errno_location() #12
  %9586 = load i32, ptr %9585, align 4, !tbaa !5
  %9587 = call ptr @strerror(i32 noundef %9586) #11
  %9588 = call ptr @__errno_location() #12
  %9589 = load i32, ptr %9588, align 4, !tbaa !5
  %9590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9577, ptr noundef @.str.5, i32 noundef %9578, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 622, ptr noundef %9581, ptr noundef %9584, ptr noundef %9587, i32 noundef %9589) #11
  br label %9591

9591:                                             ; preds = %9574, %9557
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %9592

9592:                                             ; preds = %9591
  br label %9593

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

9594:                                             ; No predecessors!
  br label %9595

9595:                                             ; preds = %9594
  br label %9596

9596:                                             ; preds = %9595, %9534
  br label %9597

9597:                                             ; preds = %9596
  br label %9598

9598:                                             ; preds = %9597
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %9599 = getelementptr inbounds %struct.s2n_stuffer, ptr %265, i32 0, i32 2
  %9600 = load i32, ptr %9599, align 4, !tbaa !15
  %9601 = getelementptr inbounds %struct.s2n_stuffer, ptr %265, i32 0, i32 1
  %9602 = load i32, ptr %9601, align 8, !tbaa !18
  %9603 = sub i32 %9600, %9602
  store i32 %9603, ptr %268, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %269) #11
  %9604 = load i32, ptr %268, align 4, !tbaa !5
  %9605 = call ptr @s2n_stuffer_raw_read(ptr noundef %265, i32 noundef %9604)
  store ptr %9605, ptr %269, align 8, !tbaa !9
  br label %9606

9606:                                             ; preds = %9598
  %9607 = load i32, ptr @test_count, align 4, !tbaa !5
  %9608 = add nsw i32 %9607, 1
  store i32 %9608, ptr @test_count, align 4, !tbaa !5
  %9609 = load ptr, ptr %269, align 8, !tbaa !9
  %9610 = icmp eq ptr %9609, null
  br i1 %9610, label %9611, label %9664

9611:                                             ; preds = %9606
  br label %9612

9612:                                             ; preds = %9611
  br label %9613

9613:                                             ; preds = %9612
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %9614 = call ptr @__errno_location() #12
  %9615 = load i32, ptr %9614, align 4, !tbaa !5
  store i32 %9615, ptr %270, align 4, !tbaa !5
  %9616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9617 = call i32 @s2n_print_stacktrace(ptr noundef %9616)
  %9618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9619 = trunc i8 %9618 to i1
  br i1 %9619, label %9620, label %9642

9620:                                             ; preds = %9613
  %9621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9622 = call i32 @fileno(ptr noundef %9621) #11
  %9623 = call i32 @isatty(i32 noundef %9622) #11
  %9624 = icmp ne i32 %9623, 0
  br i1 %9624, label %9625, label %9642

9625:                                             ; preds = %9620
  %9626 = load i32, ptr %270, align 4, !tbaa !5
  %9627 = call ptr @__errno_location() #12
  store i32 %9626, ptr %9627, align 4, !tbaa !5
  %9628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9629 = load i32, ptr @test_count, align 4, !tbaa !5
  %9630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9631 = load i32, ptr %9630, align 4, !tbaa !5
  %9632 = call ptr @s2n_strerror(i32 noundef %9631, ptr noundef @.str.4)
  %9633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9634 = load i32, ptr %9633, align 4, !tbaa !5
  %9635 = call ptr @s2n_strerror_debug(i32 noundef %9634, ptr noundef @.str.4)
  %9636 = call ptr @__errno_location() #12
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  %9638 = call ptr @strerror(i32 noundef %9637) #11
  %9639 = call ptr @__errno_location() #12
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9628, ptr noundef @.str.2, i32 noundef %9629, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 625, ptr noundef %9632, ptr noundef %9635, ptr noundef %9638, i32 noundef %9640) #11
  br label %9659

9642:                                             ; preds = %9620, %9613
  %9643 = load i32, ptr %270, align 4, !tbaa !5
  %9644 = call ptr @__errno_location() #12
  store i32 %9643, ptr %9644, align 4, !tbaa !5
  %9645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9646 = load i32, ptr @test_count, align 4, !tbaa !5
  %9647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9648 = load i32, ptr %9647, align 4, !tbaa !5
  %9649 = call ptr @s2n_strerror(i32 noundef %9648, ptr noundef @.str.4)
  %9650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9651 = load i32, ptr %9650, align 4, !tbaa !5
  %9652 = call ptr @s2n_strerror_debug(i32 noundef %9651, ptr noundef @.str.4)
  %9653 = call ptr @__errno_location() #12
  %9654 = load i32, ptr %9653, align 4, !tbaa !5
  %9655 = call ptr @strerror(i32 noundef %9654) #11
  %9656 = call ptr @__errno_location() #12
  %9657 = load i32, ptr %9656, align 4, !tbaa !5
  %9658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9645, ptr noundef @.str.5, i32 noundef %9646, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 625, ptr noundef %9649, ptr noundef %9652, ptr noundef %9655, i32 noundef %9657) #11
  br label %9659

9659:                                             ; preds = %9642, %9625
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %9660

9660:                                             ; preds = %9659
  br label %9661

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

9662:                                             ; No predecessors!
  br label %9663

9663:                                             ; preds = %9662
  br label %9664

9664:                                             ; preds = %9663, %9606
  br label %9665

9665:                                             ; preds = %9664
  br label %9666

9666:                                             ; preds = %9665
  br label %9667

9667:                                             ; preds = %9666
  %9668 = load i32, ptr @test_count, align 4, !tbaa !5
  %9669 = add nsw i32 %9668, 1
  store i32 %9669, ptr @test_count, align 4, !tbaa !5
  %9670 = load ptr, ptr %262, align 8, !tbaa !9
  %9671 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %9670, ptr noundef @.str.23)
  %9672 = icmp eq i32 %9671, -1
  br i1 %9672, label %9673, label %9726

9673:                                             ; preds = %9667
  br label %9674

9674:                                             ; preds = %9673
  br label %9675

9675:                                             ; preds = %9674
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #11
  %9676 = call ptr @__errno_location() #12
  %9677 = load i32, ptr %9676, align 4, !tbaa !5
  store i32 %9677, ptr %271, align 4, !tbaa !5
  %9678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9679 = call i32 @s2n_print_stacktrace(ptr noundef %9678)
  %9680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9681 = trunc i8 %9680 to i1
  br i1 %9681, label %9682, label %9704

9682:                                             ; preds = %9675
  %9683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9684 = call i32 @fileno(ptr noundef %9683) #11
  %9685 = call i32 @isatty(i32 noundef %9684) #11
  %9686 = icmp ne i32 %9685, 0
  br i1 %9686, label %9687, label %9704

9687:                                             ; preds = %9682
  %9688 = load i32, ptr %271, align 4, !tbaa !5
  %9689 = call ptr @__errno_location() #12
  store i32 %9688, ptr %9689, align 4, !tbaa !5
  %9690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9691 = load i32, ptr @test_count, align 4, !tbaa !5
  %9692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9693 = load i32, ptr %9692, align 4, !tbaa !5
  %9694 = call ptr @s2n_strerror(i32 noundef %9693, ptr noundef @.str.4)
  %9695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9696 = load i32, ptr %9695, align 4, !tbaa !5
  %9697 = call ptr @s2n_strerror_debug(i32 noundef %9696, ptr noundef @.str.4)
  %9698 = call ptr @__errno_location() #12
  %9699 = load i32, ptr %9698, align 4, !tbaa !5
  %9700 = call ptr @strerror(i32 noundef %9699) #11
  %9701 = call ptr @__errno_location() #12
  %9702 = load i32, ptr %9701, align 4, !tbaa !5
  %9703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9690, ptr noundef @.str.2, i32 noundef %9691, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 627, ptr noundef %9694, ptr noundef %9697, ptr noundef %9700, i32 noundef %9702) #11
  br label %9721

9704:                                             ; preds = %9682, %9675
  %9705 = load i32, ptr %271, align 4, !tbaa !5
  %9706 = call ptr @__errno_location() #12
  store i32 %9705, ptr %9706, align 4, !tbaa !5
  %9707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9708 = load i32, ptr @test_count, align 4, !tbaa !5
  %9709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9710 = load i32, ptr %9709, align 4, !tbaa !5
  %9711 = call ptr @s2n_strerror(i32 noundef %9710, ptr noundef @.str.4)
  %9712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9713 = load i32, ptr %9712, align 4, !tbaa !5
  %9714 = call ptr @s2n_strerror_debug(i32 noundef %9713, ptr noundef @.str.4)
  %9715 = call ptr @__errno_location() #12
  %9716 = load i32, ptr %9715, align 4, !tbaa !5
  %9717 = call ptr @strerror(i32 noundef %9716) #11
  %9718 = call ptr @__errno_location() #12
  %9719 = load i32, ptr %9718, align 4, !tbaa !5
  %9720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9707, ptr noundef @.str.5, i32 noundef %9708, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 627, ptr noundef %9711, ptr noundef %9714, ptr noundef %9717, i32 noundef %9719) #11
  br label %9721

9721:                                             ; preds = %9704, %9687
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #11
  br label %9722

9722:                                             ; preds = %9721
  br label %9723

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

9724:                                             ; No predecessors!
  br label %9725

9725:                                             ; preds = %9724
  br label %9726

9726:                                             ; preds = %9725, %9667
  br label %9727

9727:                                             ; preds = %9726
  br label %9728

9728:                                             ; preds = %9727
  call void @llvm.lifetime.start.p0(i64 48, ptr %272) #11
  br label %9729

9729:                                             ; preds = %9728
  %9730 = load i32, ptr @test_count, align 4, !tbaa !5
  %9731 = add nsw i32 %9730, 1
  store i32 %9731, ptr @test_count, align 4, !tbaa !5
  %9732 = call i32 @s2n_pkey_zero_init(ptr noundef %272)
  %9733 = icmp eq i32 %9732, -1
  br i1 %9733, label %9734, label %9787

9734:                                             ; preds = %9729
  br label %9735

9735:                                             ; preds = %9734
  br label %9736

9736:                                             ; preds = %9735
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #11
  %9737 = call ptr @__errno_location() #12
  %9738 = load i32, ptr %9737, align 4, !tbaa !5
  store i32 %9738, ptr %273, align 4, !tbaa !5
  %9739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9740 = call i32 @s2n_print_stacktrace(ptr noundef %9739)
  %9741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9742 = trunc i8 %9741 to i1
  br i1 %9742, label %9743, label %9765

9743:                                             ; preds = %9736
  %9744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9745 = call i32 @fileno(ptr noundef %9744) #11
  %9746 = call i32 @isatty(i32 noundef %9745) #11
  %9747 = icmp ne i32 %9746, 0
  br i1 %9747, label %9748, label %9765

9748:                                             ; preds = %9743
  %9749 = load i32, ptr %273, align 4, !tbaa !5
  %9750 = call ptr @__errno_location() #12
  store i32 %9749, ptr %9750, align 4, !tbaa !5
  %9751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9752 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9754, ptr noundef @.str.4)
  %9756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  %9758 = call ptr @s2n_strerror_debug(i32 noundef %9757, ptr noundef @.str.4)
  %9759 = call ptr @__errno_location() #12
  %9760 = load i32, ptr %9759, align 4, !tbaa !5
  %9761 = call ptr @strerror(i32 noundef %9760) #11
  %9762 = call ptr @__errno_location() #12
  %9763 = load i32, ptr %9762, align 4, !tbaa !5
  %9764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9751, ptr noundef @.str.2, i32 noundef %9752, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 630, ptr noundef %9755, ptr noundef %9758, ptr noundef %9761, i32 noundef %9763) #11
  br label %9782

9765:                                             ; preds = %9743, %9736
  %9766 = load i32, ptr %273, align 4, !tbaa !5
  %9767 = call ptr @__errno_location() #12
  store i32 %9766, ptr %9767, align 4, !tbaa !5
  %9768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9769 = load i32, ptr @test_count, align 4, !tbaa !5
  %9770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9771 = load i32, ptr %9770, align 4, !tbaa !5
  %9772 = call ptr @s2n_strerror(i32 noundef %9771, ptr noundef @.str.4)
  %9773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9774 = load i32, ptr %9773, align 4, !tbaa !5
  %9775 = call ptr @s2n_strerror_debug(i32 noundef %9774, ptr noundef @.str.4)
  %9776 = call ptr @__errno_location() #12
  %9777 = load i32, ptr %9776, align 4, !tbaa !5
  %9778 = call ptr @strerror(i32 noundef %9777) #11
  %9779 = call ptr @__errno_location() #12
  %9780 = load i32, ptr %9779, align 4, !tbaa !5
  %9781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9768, ptr noundef @.str.5, i32 noundef %9769, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 630, ptr noundef %9772, ptr noundef %9775, ptr noundef %9778, i32 noundef %9780) #11
  br label %9782

9782:                                             ; preds = %9765, %9748
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #11
  br label %9783

9783:                                             ; preds = %9782
  br label %9784

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

9785:                                             ; No predecessors!
  br label %9786

9786:                                             ; preds = %9785
  br label %9787

9787:                                             ; preds = %9786, %9729
  br label %9788

9788:                                             ; preds = %9787
  br label %9789

9789:                                             ; preds = %9788
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #11
  store i32 -1, ptr %274, align 4, !tbaa !5
  br label %9790

9790:                                             ; preds = %9789
  br label %9791

9791:                                             ; preds = %9790
  br label %9792

9792:                                             ; preds = %9791
  %9793 = load i32, ptr @test_count, align 4, !tbaa !5
  %9794 = add nsw i32 %9793, 1
  store i32 %9794, ptr @test_count, align 4, !tbaa !5
  %9795 = load ptr, ptr %262, align 8, !tbaa !9
  %9796 = load ptr, ptr %269, align 8, !tbaa !9
  %9797 = load i32, ptr %268, align 4, !tbaa !5
  %9798 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %261, ptr noundef %9795, ptr noundef %9796, i32 noundef %9797, ptr noundef %274, ptr noundef %272)
  %9799 = getelementptr inbounds %struct.s2n_result, ptr %275, i32 0, i32 0
  store i32 %9798, ptr %9799, align 4
  %9800 = getelementptr inbounds %struct.s2n_result, ptr %275, i32 0, i32 0
  %9801 = load i32, ptr %9800, align 4
  %9802 = call zeroext i1 @s2n_result_is_error(i32 %9801)
  br i1 %9802, label %9856, label %9803

9803:                                             ; preds = %9792
  br label %9804

9804:                                             ; preds = %9803
  br label %9805

9805:                                             ; preds = %9804
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  %9806 = call ptr @__errno_location() #12
  %9807 = load i32, ptr %9806, align 4, !tbaa !5
  store i32 %9807, ptr %276, align 4, !tbaa !5
  %9808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9809 = call i32 @s2n_print_stacktrace(ptr noundef %9808)
  %9810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9811 = trunc i8 %9810 to i1
  br i1 %9811, label %9812, label %9834

9812:                                             ; preds = %9805
  %9813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9814 = call i32 @fileno(ptr noundef %9813) #11
  %9815 = call i32 @isatty(i32 noundef %9814) #11
  %9816 = icmp ne i32 %9815, 0
  br i1 %9816, label %9817, label %9834

9817:                                             ; preds = %9812
  %9818 = load i32, ptr %276, align 4, !tbaa !5
  %9819 = call ptr @__errno_location() #12
  store i32 %9818, ptr %9819, align 4, !tbaa !5
  %9820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9821 = load i32, ptr @test_count, align 4, !tbaa !5
  %9822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9823 = load i32, ptr %9822, align 4, !tbaa !5
  %9824 = call ptr @s2n_strerror(i32 noundef %9823, ptr noundef @.str.4)
  %9825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9826 = load i32, ptr %9825, align 4, !tbaa !5
  %9827 = call ptr @s2n_strerror_debug(i32 noundef %9826, ptr noundef @.str.4)
  %9828 = call ptr @__errno_location() #12
  %9829 = load i32, ptr %9828, align 4, !tbaa !5
  %9830 = call ptr @strerror(i32 noundef %9829) #11
  %9831 = call ptr @__errno_location() #12
  %9832 = load i32, ptr %9831, align 4, !tbaa !5
  %9833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9820, ptr noundef @.str.2, i32 noundef %9821, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9824, ptr noundef %9827, ptr noundef %9830, i32 noundef %9832) #11
  br label %9851

9834:                                             ; preds = %9812, %9805
  %9835 = load i32, ptr %276, align 4, !tbaa !5
  %9836 = call ptr @__errno_location() #12
  store i32 %9835, ptr %9836, align 4, !tbaa !5
  %9837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9838 = load i32, ptr @test_count, align 4, !tbaa !5
  %9839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9840 = load i32, ptr %9839, align 4, !tbaa !5
  %9841 = call ptr @s2n_strerror(i32 noundef %9840, ptr noundef @.str.4)
  %9842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9843 = load i32, ptr %9842, align 4, !tbaa !5
  %9844 = call ptr @s2n_strerror_debug(i32 noundef %9843, ptr noundef @.str.4)
  %9845 = call ptr @__errno_location() #12
  %9846 = load i32, ptr %9845, align 4, !tbaa !5
  %9847 = call ptr @strerror(i32 noundef %9846) #11
  %9848 = call ptr @__errno_location() #12
  %9849 = load i32, ptr %9848, align 4, !tbaa !5
  %9850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9837, ptr noundef @.str.5, i32 noundef %9838, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9841, ptr noundef %9844, ptr noundef %9847, i32 noundef %9849) #11
  br label %9851

9851:                                             ; preds = %9834, %9817
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  br label %9852

9852:                                             ; preds = %9851
  br label %9853

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

9854:                                             ; No predecessors!
  br label %9855

9855:                                             ; preds = %9854
  br label %9856

9856:                                             ; preds = %9855, %9792
  br label %9857

9857:                                             ; preds = %9856
  br label %9858

9858:                                             ; preds = %9857
  br label %9859

9859:                                             ; preds = %9858
  %9860 = load i32, ptr @test_count, align 4, !tbaa !5
  %9861 = add nsw i32 %9860, 1
  store i32 %9861, ptr @test_count, align 4, !tbaa !5
  %9862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9863 = load i32, ptr %9862, align 4, !tbaa !5
  %9864 = icmp eq i32 %9863, 335544366
  br i1 %9864, label %9918, label %9865

9865:                                             ; preds = %9859
  br label %9866

9866:                                             ; preds = %9865
  br label %9867

9867:                                             ; preds = %9866
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #11
  %9868 = call ptr @__errno_location() #12
  %9869 = load i32, ptr %9868, align 4, !tbaa !5
  store i32 %9869, ptr %277, align 4, !tbaa !5
  %9870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9871 = call i32 @s2n_print_stacktrace(ptr noundef %9870)
  %9872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9873 = trunc i8 %9872 to i1
  br i1 %9873, label %9874, label %9896

9874:                                             ; preds = %9867
  %9875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9876 = call i32 @fileno(ptr noundef %9875) #11
  %9877 = call i32 @isatty(i32 noundef %9876) #11
  %9878 = icmp ne i32 %9877, 0
  br i1 %9878, label %9879, label %9896

9879:                                             ; preds = %9874
  %9880 = load i32, ptr %277, align 4, !tbaa !5
  %9881 = call ptr @__errno_location() #12
  store i32 %9880, ptr %9881, align 4, !tbaa !5
  %9882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9883 = load i32, ptr @test_count, align 4, !tbaa !5
  %9884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9885 = load i32, ptr %9884, align 4, !tbaa !5
  %9886 = call ptr @s2n_strerror(i32 noundef %9885, ptr noundef @.str.4)
  %9887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9888 = load i32, ptr %9887, align 4, !tbaa !5
  %9889 = call ptr @s2n_strerror_debug(i32 noundef %9888, ptr noundef @.str.4)
  %9890 = call ptr @__errno_location() #12
  %9891 = load i32, ptr %9890, align 4, !tbaa !5
  %9892 = call ptr @strerror(i32 noundef %9891) #11
  %9893 = call ptr @__errno_location() #12
  %9894 = load i32, ptr %9893, align 4, !tbaa !5
  %9895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9882, ptr noundef @.str.2, i32 noundef %9883, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9886, ptr noundef %9889, ptr noundef %9892, i32 noundef %9894) #11
  br label %9913

9896:                                             ; preds = %9874, %9867
  %9897 = load i32, ptr %277, align 4, !tbaa !5
  %9898 = call ptr @__errno_location() #12
  store i32 %9897, ptr %9898, align 4, !tbaa !5
  %9899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9900 = load i32, ptr @test_count, align 4, !tbaa !5
  %9901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9902 = load i32, ptr %9901, align 4, !tbaa !5
  %9903 = call ptr @s2n_strerror(i32 noundef %9902, ptr noundef @.str.4)
  %9904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9905 = load i32, ptr %9904, align 4, !tbaa !5
  %9906 = call ptr @s2n_strerror_debug(i32 noundef %9905, ptr noundef @.str.4)
  %9907 = call ptr @__errno_location() #12
  %9908 = load i32, ptr %9907, align 4, !tbaa !5
  %9909 = call ptr @strerror(i32 noundef %9908) #11
  %9910 = call ptr @__errno_location() #12
  %9911 = load i32, ptr %9910, align 4, !tbaa !5
  %9912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9899, ptr noundef @.str.5, i32 noundef %9900, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9903, ptr noundef %9906, ptr noundef %9909, i32 noundef %9911) #11
  br label %9913

9913:                                             ; preds = %9896, %9879
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #11
  br label %9914

9914:                                             ; preds = %9913
  br label %9915

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

9916:                                             ; No predecessors!
  br label %9917

9917:                                             ; preds = %9916
  br label %9918

9918:                                             ; preds = %9917, %9859
  br label %9919

9919:                                             ; preds = %9918
  br label %9920

9920:                                             ; preds = %9919
  br label %9921

9921:                                             ; preds = %9920
  %9922 = load i32, ptr @test_count, align 4, !tbaa !5
  %9923 = add nsw i32 %9922, 1
  store i32 %9923, ptr @test_count, align 4, !tbaa !5
  %9924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9925 = load i32, ptr %9924, align 4, !tbaa !5
  %9926 = call ptr @s2n_strerror_debug(i32 noundef %9925, ptr noundef @.str.4)
  %9927 = icmp eq ptr %9926, null
  br i1 %9927, label %9928, label %9981

9928:                                             ; preds = %9921
  br label %9929

9929:                                             ; preds = %9928
  br label %9930

9930:                                             ; preds = %9929
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %9931 = call ptr @__errno_location() #12
  %9932 = load i32, ptr %9931, align 4, !tbaa !5
  store i32 %9932, ptr %278, align 4, !tbaa !5
  %9933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9934 = call i32 @s2n_print_stacktrace(ptr noundef %9933)
  %9935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9936 = trunc i8 %9935 to i1
  br i1 %9936, label %9937, label %9959

9937:                                             ; preds = %9930
  %9938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9939 = call i32 @fileno(ptr noundef %9938) #11
  %9940 = call i32 @isatty(i32 noundef %9939) #11
  %9941 = icmp ne i32 %9940, 0
  br i1 %9941, label %9942, label %9959

9942:                                             ; preds = %9937
  %9943 = load i32, ptr %278, align 4, !tbaa !5
  %9944 = call ptr @__errno_location() #12
  store i32 %9943, ptr %9944, align 4, !tbaa !5
  %9945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9946 = load i32, ptr @test_count, align 4, !tbaa !5
  %9947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9948 = load i32, ptr %9947, align 4, !tbaa !5
  %9949 = call ptr @s2n_strerror(i32 noundef %9948, ptr noundef @.str.4)
  %9950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9951 = load i32, ptr %9950, align 4, !tbaa !5
  %9952 = call ptr @s2n_strerror_debug(i32 noundef %9951, ptr noundef @.str.4)
  %9953 = call ptr @__errno_location() #12
  %9954 = load i32, ptr %9953, align 4, !tbaa !5
  %9955 = call ptr @strerror(i32 noundef %9954) #11
  %9956 = call ptr @__errno_location() #12
  %9957 = load i32, ptr %9956, align 4, !tbaa !5
  %9958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9945, ptr noundef @.str.2, i32 noundef %9946, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9949, ptr noundef %9952, ptr noundef %9955, i32 noundef %9957) #11
  br label %9976

9959:                                             ; preds = %9937, %9930
  %9960 = load i32, ptr %278, align 4, !tbaa !5
  %9961 = call ptr @__errno_location() #12
  store i32 %9960, ptr %9961, align 4, !tbaa !5
  %9962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9963 = load i32, ptr @test_count, align 4, !tbaa !5
  %9964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9965 = load i32, ptr %9964, align 4, !tbaa !5
  %9966 = call ptr @s2n_strerror(i32 noundef %9965, ptr noundef @.str.4)
  %9967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9968 = load i32, ptr %9967, align 4, !tbaa !5
  %9969 = call ptr @s2n_strerror_debug(i32 noundef %9968, ptr noundef @.str.4)
  %9970 = call ptr @__errno_location() #12
  %9971 = load i32, ptr %9970, align 4, !tbaa !5
  %9972 = call ptr @strerror(i32 noundef %9971) #11
  %9973 = call ptr @__errno_location() #12
  %9974 = load i32, ptr %9973, align 4, !tbaa !5
  %9975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9962, ptr noundef @.str.5, i32 noundef %9963, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9966, ptr noundef %9969, ptr noundef %9972, i32 noundef %9974) #11
  br label %9976

9976:                                             ; preds = %9959, %9942
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %9977

9977:                                             ; preds = %9976
  br label %9978

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

9979:                                             ; No predecessors!
  br label %9980

9980:                                             ; preds = %9979
  br label %9981

9981:                                             ; preds = %9980, %9921
  br label %9982

9982:                                             ; preds = %9981
  br label %9983

9983:                                             ; preds = %9982
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

9985:                                             ; preds = %9984
  br label %9986

9986:                                             ; preds = %9985
  %9987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9987, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9988 = call ptr @__errno_location() #12
  store i32 0, ptr %9988, align 4, !tbaa !5
  br label %9989

9989:                                             ; preds = %9986
  br label %9990

9990:                                             ; preds = %9989
  br label %9991

9991:                                             ; preds = %9990
  br label %9992

9992:                                             ; preds = %9991
  br label %9993

9993:                                             ; preds = %9992
  %9994 = load i32, ptr @test_count, align 4, !tbaa !5
  %9995 = add nsw i32 %9994, 1
  store i32 %9995, ptr @test_count, align 4, !tbaa !5
  %9996 = getelementptr inbounds %struct.host_verify_data, ptr %260, i32 0, i32 2
  %9997 = load i8, ptr %9996, align 1, !tbaa !19
  %9998 = zext i8 %9997 to i32
  %9999 = icmp eq i32 1, %9998
  br i1 %9999, label %10053, label %10000

10000:                                            ; preds = %9993
  br label %10001

10001:                                            ; preds = %10000
  br label %10002

10002:                                            ; preds = %10001
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %10003 = call ptr @__errno_location() #12
  %10004 = load i32, ptr %10003, align 4, !tbaa !5
  store i32 %10004, ptr %279, align 4, !tbaa !5
  %10005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10006 = call i32 @s2n_print_stacktrace(ptr noundef %10005)
  %10007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10008 = trunc i8 %10007 to i1
  br i1 %10008, label %10009, label %10031

10009:                                            ; preds = %10002
  %10010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10011 = call i32 @fileno(ptr noundef %10010) #11
  %10012 = call i32 @isatty(i32 noundef %10011) #11
  %10013 = icmp ne i32 %10012, 0
  br i1 %10013, label %10014, label %10031

10014:                                            ; preds = %10009
  %10015 = load i32, ptr %279, align 4, !tbaa !5
  %10016 = call ptr @__errno_location() #12
  store i32 %10015, ptr %10016, align 4, !tbaa !5
  %10017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10018 = load i32, ptr @test_count, align 4, !tbaa !5
  %10019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10020 = load i32, ptr %10019, align 4, !tbaa !5
  %10021 = call ptr @s2n_strerror(i32 noundef %10020, ptr noundef @.str.4)
  %10022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10023 = load i32, ptr %10022, align 4, !tbaa !5
  %10024 = call ptr @s2n_strerror_debug(i32 noundef %10023, ptr noundef @.str.4)
  %10025 = call ptr @__errno_location() #12
  %10026 = load i32, ptr %10025, align 4, !tbaa !5
  %10027 = call ptr @strerror(i32 noundef %10026) #11
  %10028 = call ptr @__errno_location() #12
  %10029 = load i32, ptr %10028, align 4, !tbaa !5
  %10030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10017, ptr noundef @.str.2, i32 noundef %10018, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 636, ptr noundef %10021, ptr noundef %10024, ptr noundef %10027, i32 noundef %10029) #11
  br label %10048

10031:                                            ; preds = %10009, %10002
  %10032 = load i32, ptr %279, align 4, !tbaa !5
  %10033 = call ptr @__errno_location() #12
  store i32 %10032, ptr %10033, align 4, !tbaa !5
  %10034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10035 = load i32, ptr @test_count, align 4, !tbaa !5
  %10036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10037 = load i32, ptr %10036, align 4, !tbaa !5
  %10038 = call ptr @s2n_strerror(i32 noundef %10037, ptr noundef @.str.4)
  %10039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10040 = load i32, ptr %10039, align 4, !tbaa !5
  %10041 = call ptr @s2n_strerror_debug(i32 noundef %10040, ptr noundef @.str.4)
  %10042 = call ptr @__errno_location() #12
  %10043 = load i32, ptr %10042, align 4, !tbaa !5
  %10044 = call ptr @strerror(i32 noundef %10043) #11
  %10045 = call ptr @__errno_location() #12
  %10046 = load i32, ptr %10045, align 4, !tbaa !5
  %10047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10034, ptr noundef @.str.5, i32 noundef %10035, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 636, ptr noundef %10038, ptr noundef %10041, ptr noundef %10044, i32 noundef %10046) #11
  br label %10048

10048:                                            ; preds = %10031, %10014
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  br label %10049

10049:                                            ; preds = %10048
  br label %10050

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

10051:                                            ; No predecessors!
  br label %10052

10052:                                            ; preds = %10051
  br label %10053

10053:                                            ; preds = %10052, %9993
  br label %10054

10054:                                            ; preds = %10053
  br label %10055

10055:                                            ; preds = %10054
  %10056 = load ptr, ptr %262, align 8, !tbaa !9
  %10057 = call i32 @s2n_connection_free(ptr noundef %10056)
  %10058 = call i32 @s2n_pkey_free(ptr noundef %272)
  %10059 = call i32 @s2n_x509_validator_wipe(ptr noundef %261)
  call void @s2n_x509_trust_store_wipe(ptr noundef %258)
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %272) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  %10060 = call i32 @s2n_stuffer_free(ptr noundef %265)
  call void @llvm.lifetime.end.p0(i64 40, ptr %265) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %262) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %261) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %260) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %258) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %280) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %280)
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #11
  store ptr null, ptr %281, align 8, !tbaa !9
  br label %10061

10061:                                            ; preds = %10055
  %10062 = load i32, ptr @test_count, align 4, !tbaa !5
  %10063 = add nsw i32 %10062, 1
  store i32 %10063, ptr @test_count, align 4, !tbaa !5
  %10064 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %10064, ptr %281, align 8, !tbaa !9
  %10065 = icmp eq ptr %10064, null
  br i1 %10065, label %10066, label %10119

10066:                                            ; preds = %10061
  br label %10067

10067:                                            ; preds = %10066
  br label %10068

10068:                                            ; preds = %10067
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %10069 = call ptr @__errno_location() #12
  %10070 = load i32, ptr %10069, align 4, !tbaa !5
  store i32 %10070, ptr %282, align 4, !tbaa !5
  %10071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10072 = call i32 @s2n_print_stacktrace(ptr noundef %10071)
  %10073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10074 = trunc i8 %10073 to i1
  br i1 %10074, label %10075, label %10097

10075:                                            ; preds = %10068
  %10076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10077 = call i32 @fileno(ptr noundef %10076) #11
  %10078 = call i32 @isatty(i32 noundef %10077) #11
  %10079 = icmp ne i32 %10078, 0
  br i1 %10079, label %10080, label %10097

10080:                                            ; preds = %10075
  %10081 = load i32, ptr %282, align 4, !tbaa !5
  %10082 = call ptr @__errno_location() #12
  store i32 %10081, ptr %10082, align 4, !tbaa !5
  %10083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10084 = load i32, ptr @test_count, align 4, !tbaa !5
  %10085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10086 = load i32, ptr %10085, align 4, !tbaa !5
  %10087 = call ptr @s2n_strerror(i32 noundef %10086, ptr noundef @.str.4)
  %10088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10089 = load i32, ptr %10088, align 4, !tbaa !5
  %10090 = call ptr @s2n_strerror_debug(i32 noundef %10089, ptr noundef @.str.4)
  %10091 = call ptr @__errno_location() #12
  %10092 = load i32, ptr %10091, align 4, !tbaa !5
  %10093 = call ptr @strerror(i32 noundef %10092) #11
  %10094 = call ptr @__errno_location() #12
  %10095 = load i32, ptr %10094, align 4, !tbaa !5
  %10096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10083, ptr noundef @.str.2, i32 noundef %10084, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 649, ptr noundef %10087, ptr noundef %10090, ptr noundef %10093, i32 noundef %10095) #11
  br label %10114

10097:                                            ; preds = %10075, %10068
  %10098 = load i32, ptr %282, align 4, !tbaa !5
  %10099 = call ptr @__errno_location() #12
  store i32 %10098, ptr %10099, align 4, !tbaa !5
  %10100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10101 = load i32, ptr @test_count, align 4, !tbaa !5
  %10102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10103 = load i32, ptr %10102, align 4, !tbaa !5
  %10104 = call ptr @s2n_strerror(i32 noundef %10103, ptr noundef @.str.4)
  %10105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10106 = load i32, ptr %10105, align 4, !tbaa !5
  %10107 = call ptr @s2n_strerror_debug(i32 noundef %10106, ptr noundef @.str.4)
  %10108 = call ptr @__errno_location() #12
  %10109 = load i32, ptr %10108, align 4, !tbaa !5
  %10110 = call ptr @strerror(i32 noundef %10109) #11
  %10111 = call ptr @__errno_location() #12
  %10112 = load i32, ptr %10111, align 4, !tbaa !5
  %10113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10100, ptr noundef @.str.5, i32 noundef %10101, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 649, ptr noundef %10104, ptr noundef %10107, ptr noundef %10110, i32 noundef %10112) #11
  br label %10114

10114:                                            ; preds = %10097, %10080
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %10115

10115:                                            ; preds = %10114
  br label %10116

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

10117:                                            ; No predecessors!
  br label %10118

10118:                                            ; preds = %10117
  br label %10119

10119:                                            ; preds = %10118, %10061
  br label %10120

10120:                                            ; preds = %10119
  br label %10121

10121:                                            ; preds = %10120
  br label %10122

10122:                                            ; preds = %10121
  %10123 = load i32, ptr @test_count, align 4, !tbaa !5
  %10124 = add nsw i32 %10123, 1
  store i32 %10124, ptr @test_count, align 4, !tbaa !5
  %10125 = load ptr, ptr %281, align 8, !tbaa !9
  %10126 = call i32 @s2n_read_test_pem(ptr noundef @.str.11, ptr noundef %10125, i64 noundef 12000)
  %10127 = icmp eq i32 %10126, -1
  br i1 %10127, label %10128, label %10181

10128:                                            ; preds = %10122
  br label %10129

10129:                                            ; preds = %10128
  br label %10130

10130:                                            ; preds = %10129
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  %10131 = call ptr @__errno_location() #12
  %10132 = load i32, ptr %10131, align 4, !tbaa !5
  store i32 %10132, ptr %283, align 4, !tbaa !5
  %10133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10134 = call i32 @s2n_print_stacktrace(ptr noundef %10133)
  %10135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10136 = trunc i8 %10135 to i1
  br i1 %10136, label %10137, label %10159

10137:                                            ; preds = %10130
  %10138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10139 = call i32 @fileno(ptr noundef %10138) #11
  %10140 = call i32 @isatty(i32 noundef %10139) #11
  %10141 = icmp ne i32 %10140, 0
  br i1 %10141, label %10142, label %10159

10142:                                            ; preds = %10137
  %10143 = load i32, ptr %283, align 4, !tbaa !5
  %10144 = call ptr @__errno_location() #12
  store i32 %10143, ptr %10144, align 4, !tbaa !5
  %10145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10146 = load i32, ptr @test_count, align 4, !tbaa !5
  %10147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10148 = load i32, ptr %10147, align 4, !tbaa !5
  %10149 = call ptr @s2n_strerror(i32 noundef %10148, ptr noundef @.str.4)
  %10150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10151 = load i32, ptr %10150, align 4, !tbaa !5
  %10152 = call ptr @s2n_strerror_debug(i32 noundef %10151, ptr noundef @.str.4)
  %10153 = call ptr @__errno_location() #12
  %10154 = load i32, ptr %10153, align 4, !tbaa !5
  %10155 = call ptr @strerror(i32 noundef %10154) #11
  %10156 = call ptr @__errno_location() #12
  %10157 = load i32, ptr %10156, align 4, !tbaa !5
  %10158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10145, ptr noundef @.str.2, i32 noundef %10146, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 650, ptr noundef %10149, ptr noundef %10152, ptr noundef %10155, i32 noundef %10157) #11
  br label %10176

10159:                                            ; preds = %10137, %10130
  %10160 = load i32, ptr %283, align 4, !tbaa !5
  %10161 = call ptr @__errno_location() #12
  store i32 %10160, ptr %10161, align 4, !tbaa !5
  %10162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10163 = load i32, ptr @test_count, align 4, !tbaa !5
  %10164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10165 = load i32, ptr %10164, align 4, !tbaa !5
  %10166 = call ptr @s2n_strerror(i32 noundef %10165, ptr noundef @.str.4)
  %10167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10168 = load i32, ptr %10167, align 4, !tbaa !5
  %10169 = call ptr @s2n_strerror_debug(i32 noundef %10168, ptr noundef @.str.4)
  %10170 = call ptr @__errno_location() #12
  %10171 = load i32, ptr %10170, align 4, !tbaa !5
  %10172 = call ptr @strerror(i32 noundef %10171) #11
  %10173 = call ptr @__errno_location() #12
  %10174 = load i32, ptr %10173, align 4, !tbaa !5
  %10175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10162, ptr noundef @.str.5, i32 noundef %10163, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 650, ptr noundef %10166, ptr noundef %10169, ptr noundef %10172, i32 noundef %10174) #11
  br label %10176

10176:                                            ; preds = %10159, %10142
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  br label %10177

10177:                                            ; preds = %10176
  br label %10178

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

10179:                                            ; No predecessors!
  br label %10180

10180:                                            ; preds = %10179
  br label %10181

10181:                                            ; preds = %10180, %10122
  br label %10182

10182:                                            ; preds = %10181
  br label %10183

10183:                                            ; preds = %10182
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  %10184 = load ptr, ptr %281, align 8, !tbaa !9
  %10185 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %280, ptr noundef %10184)
  store i32 %10185, ptr %284, align 4, !tbaa !5
  %10186 = load ptr, ptr %281, align 8, !tbaa !9
  call void @free(ptr noundef %10186) #11
  br label %10187

10187:                                            ; preds = %10183
  %10188 = load i32, ptr @test_count, align 4, !tbaa !5
  %10189 = add nsw i32 %10188, 1
  store i32 %10189, ptr @test_count, align 4, !tbaa !5
  %10190 = load i32, ptr %284, align 4, !tbaa !5
  %10191 = icmp eq i32 0, %10190
  br i1 %10191, label %10245, label %10192

10192:                                            ; preds = %10187
  br label %10193

10193:                                            ; preds = %10192
  br label %10194

10194:                                            ; preds = %10193
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %10195 = call ptr @__errno_location() #12
  %10196 = load i32, ptr %10195, align 4, !tbaa !5
  store i32 %10196, ptr %285, align 4, !tbaa !5
  %10197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10198 = call i32 @s2n_print_stacktrace(ptr noundef %10197)
  %10199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10200 = trunc i8 %10199 to i1
  br i1 %10200, label %10201, label %10223

10201:                                            ; preds = %10194
  %10202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10203 = call i32 @fileno(ptr noundef %10202) #11
  %10204 = call i32 @isatty(i32 noundef %10203) #11
  %10205 = icmp ne i32 %10204, 0
  br i1 %10205, label %10206, label %10223

10206:                                            ; preds = %10201
  %10207 = load i32, ptr %285, align 4, !tbaa !5
  %10208 = call ptr @__errno_location() #12
  store i32 %10207, ptr %10208, align 4, !tbaa !5
  %10209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10210 = load i32, ptr @test_count, align 4, !tbaa !5
  %10211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10212 = load i32, ptr %10211, align 4, !tbaa !5
  %10213 = call ptr @s2n_strerror(i32 noundef %10212, ptr noundef @.str.4)
  %10214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10215 = load i32, ptr %10214, align 4, !tbaa !5
  %10216 = call ptr @s2n_strerror_debug(i32 noundef %10215, ptr noundef @.str.4)
  %10217 = call ptr @__errno_location() #12
  %10218 = load i32, ptr %10217, align 4, !tbaa !5
  %10219 = call ptr @strerror(i32 noundef %10218) #11
  %10220 = call ptr @__errno_location() #12
  %10221 = load i32, ptr %10220, align 4, !tbaa !5
  %10222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10209, ptr noundef @.str.2, i32 noundef %10210, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 653, ptr noundef %10213, ptr noundef %10216, ptr noundef %10219, i32 noundef %10221) #11
  br label %10240

10223:                                            ; preds = %10201, %10194
  %10224 = load i32, ptr %285, align 4, !tbaa !5
  %10225 = call ptr @__errno_location() #12
  store i32 %10224, ptr %10225, align 4, !tbaa !5
  %10226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10227 = load i32, ptr @test_count, align 4, !tbaa !5
  %10228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  %10230 = call ptr @s2n_strerror(i32 noundef %10229, ptr noundef @.str.4)
  %10231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10232 = load i32, ptr %10231, align 4, !tbaa !5
  %10233 = call ptr @s2n_strerror_debug(i32 noundef %10232, ptr noundef @.str.4)
  %10234 = call ptr @__errno_location() #12
  %10235 = load i32, ptr %10234, align 4, !tbaa !5
  %10236 = call ptr @strerror(i32 noundef %10235) #11
  %10237 = call ptr @__errno_location() #12
  %10238 = load i32, ptr %10237, align 4, !tbaa !5
  %10239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10226, ptr noundef @.str.5, i32 noundef %10227, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 653, ptr noundef %10230, ptr noundef %10233, ptr noundef %10236, i32 noundef %10238) #11
  br label %10240

10240:                                            ; preds = %10223, %10206
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %10241

10241:                                            ; preds = %10240
  br label %10242

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

10243:                                            ; No predecessors!
  br label %10244

10244:                                            ; preds = %10243
  br label %10245

10245:                                            ; preds = %10244, %10187
  br label %10246

10246:                                            ; preds = %10245
  br label %10247

10247:                                            ; preds = %10246
  call void @llvm.lifetime.start.p0(i64 16, ptr %286) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %286, ptr align 8 @__const.main.verify_data.60, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %287) #11
  %10248 = call i32 @s2n_x509_validator_init(ptr noundef %287, ptr noundef %280, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %288) #11
  %10249 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10249, ptr %288, align 8, !tbaa !9
  br label %10250

10250:                                            ; preds = %10247
  %10251 = load i32, ptr @test_count, align 4, !tbaa !5
  %10252 = add nsw i32 %10251, 1
  store i32 %10252, ptr @test_count, align 4, !tbaa !5
  %10253 = load ptr, ptr %288, align 8, !tbaa !9
  %10254 = icmp eq ptr %10253, null
  br i1 %10254, label %10255, label %10308

10255:                                            ; preds = %10250
  br label %10256

10256:                                            ; preds = %10255
  br label %10257

10257:                                            ; preds = %10256
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #11
  %10258 = call ptr @__errno_location() #12
  %10259 = load i32, ptr %10258, align 4, !tbaa !5
  store i32 %10259, ptr %289, align 4, !tbaa !5
  %10260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10261 = call i32 @s2n_print_stacktrace(ptr noundef %10260)
  %10262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10263 = trunc i8 %10262 to i1
  br i1 %10263, label %10264, label %10286

10264:                                            ; preds = %10257
  %10265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10266 = call i32 @fileno(ptr noundef %10265) #11
  %10267 = call i32 @isatty(i32 noundef %10266) #11
  %10268 = icmp ne i32 %10267, 0
  br i1 %10268, label %10269, label %10286

10269:                                            ; preds = %10264
  %10270 = load i32, ptr %289, align 4, !tbaa !5
  %10271 = call ptr @__errno_location() #12
  store i32 %10270, ptr %10271, align 4, !tbaa !5
  %10272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10273 = load i32, ptr @test_count, align 4, !tbaa !5
  %10274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10275 = load i32, ptr %10274, align 4, !tbaa !5
  %10276 = call ptr @s2n_strerror(i32 noundef %10275, ptr noundef @.str.4)
  %10277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10278 = load i32, ptr %10277, align 4, !tbaa !5
  %10279 = call ptr @s2n_strerror_debug(i32 noundef %10278, ptr noundef @.str.4)
  %10280 = call ptr @__errno_location() #12
  %10281 = load i32, ptr %10280, align 4, !tbaa !5
  %10282 = call ptr @strerror(i32 noundef %10281) #11
  %10283 = call ptr @__errno_location() #12
  %10284 = load i32, ptr %10283, align 4, !tbaa !5
  %10285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10272, ptr noundef @.str.2, i32 noundef %10273, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 665, ptr noundef %10276, ptr noundef %10279, ptr noundef %10282, i32 noundef %10284) #11
  br label %10303

10286:                                            ; preds = %10264, %10257
  %10287 = load i32, ptr %289, align 4, !tbaa !5
  %10288 = call ptr @__errno_location() #12
  store i32 %10287, ptr %10288, align 4, !tbaa !5
  %10289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10290 = load i32, ptr @test_count, align 4, !tbaa !5
  %10291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10292 = load i32, ptr %10291, align 4, !tbaa !5
  %10293 = call ptr @s2n_strerror(i32 noundef %10292, ptr noundef @.str.4)
  %10294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10295 = load i32, ptr %10294, align 4, !tbaa !5
  %10296 = call ptr @s2n_strerror_debug(i32 noundef %10295, ptr noundef @.str.4)
  %10297 = call ptr @__errno_location() #12
  %10298 = load i32, ptr %10297, align 4, !tbaa !5
  %10299 = call ptr @strerror(i32 noundef %10298) #11
  %10300 = call ptr @__errno_location() #12
  %10301 = load i32, ptr %10300, align 4, !tbaa !5
  %10302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10289, ptr noundef @.str.5, i32 noundef %10290, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 665, ptr noundef %10293, ptr noundef %10296, ptr noundef %10299, i32 noundef %10301) #11
  br label %10303

10303:                                            ; preds = %10286, %10269
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #11
  br label %10304

10304:                                            ; preds = %10303
  br label %10305

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

10306:                                            ; No predecessors!
  br label %10307

10307:                                            ; preds = %10306
  br label %10308

10308:                                            ; preds = %10307, %10250
  br label %10309

10309:                                            ; preds = %10308
  br label %10310

10310:                                            ; preds = %10309
  br label %10311

10311:                                            ; preds = %10310
  %10312 = load i32, ptr @test_count, align 4, !tbaa !5
  %10313 = add nsw i32 %10312, 1
  store i32 %10313, ptr @test_count, align 4, !tbaa !5
  %10314 = load ptr, ptr %288, align 8, !tbaa !9
  %10315 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %10314, ptr noundef @verify_host_reject_everything, ptr noundef %286)
  %10316 = icmp eq i32 %10315, -1
  br i1 %10316, label %10317, label %10370

10317:                                            ; preds = %10311
  br label %10318

10318:                                            ; preds = %10317
  br label %10319

10319:                                            ; preds = %10318
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #11
  %10320 = call ptr @__errno_location() #12
  %10321 = load i32, ptr %10320, align 4, !tbaa !5
  store i32 %10321, ptr %290, align 4, !tbaa !5
  %10322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10323 = call i32 @s2n_print_stacktrace(ptr noundef %10322)
  %10324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10325 = trunc i8 %10324 to i1
  br i1 %10325, label %10326, label %10348

10326:                                            ; preds = %10319
  %10327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10328 = call i32 @fileno(ptr noundef %10327) #11
  %10329 = call i32 @isatty(i32 noundef %10328) #11
  %10330 = icmp ne i32 %10329, 0
  br i1 %10330, label %10331, label %10348

10331:                                            ; preds = %10326
  %10332 = load i32, ptr %290, align 4, !tbaa !5
  %10333 = call ptr @__errno_location() #12
  store i32 %10332, ptr %10333, align 4, !tbaa !5
  %10334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10335 = load i32, ptr @test_count, align 4, !tbaa !5
  %10336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10337 = load i32, ptr %10336, align 4, !tbaa !5
  %10338 = call ptr @s2n_strerror(i32 noundef %10337, ptr noundef @.str.4)
  %10339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10340 = load i32, ptr %10339, align 4, !tbaa !5
  %10341 = call ptr @s2n_strerror_debug(i32 noundef %10340, ptr noundef @.str.4)
  %10342 = call ptr @__errno_location() #12
  %10343 = load i32, ptr %10342, align 4, !tbaa !5
  %10344 = call ptr @strerror(i32 noundef %10343) #11
  %10345 = call ptr @__errno_location() #12
  %10346 = load i32, ptr %10345, align 4, !tbaa !5
  %10347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10334, ptr noundef @.str.2, i32 noundef %10335, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 666, ptr noundef %10338, ptr noundef %10341, ptr noundef %10344, i32 noundef %10346) #11
  br label %10365

10348:                                            ; preds = %10326, %10319
  %10349 = load i32, ptr %290, align 4, !tbaa !5
  %10350 = call ptr @__errno_location() #12
  store i32 %10349, ptr %10350, align 4, !tbaa !5
  %10351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10352 = load i32, ptr @test_count, align 4, !tbaa !5
  %10353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10354 = load i32, ptr %10353, align 4, !tbaa !5
  %10355 = call ptr @s2n_strerror(i32 noundef %10354, ptr noundef @.str.4)
  %10356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10357 = load i32, ptr %10356, align 4, !tbaa !5
  %10358 = call ptr @s2n_strerror_debug(i32 noundef %10357, ptr noundef @.str.4)
  %10359 = call ptr @__errno_location() #12
  %10360 = load i32, ptr %10359, align 4, !tbaa !5
  %10361 = call ptr @strerror(i32 noundef %10360) #11
  %10362 = call ptr @__errno_location() #12
  %10363 = load i32, ptr %10362, align 4, !tbaa !5
  %10364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10351, ptr noundef @.str.5, i32 noundef %10352, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 666, ptr noundef %10355, ptr noundef %10358, ptr noundef %10361, i32 noundef %10363) #11
  br label %10365

10365:                                            ; preds = %10348, %10331
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #11
  br label %10366

10366:                                            ; preds = %10365
  br label %10367

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

10368:                                            ; No predecessors!
  br label %10369

10369:                                            ; preds = %10368
  br label %10370

10370:                                            ; preds = %10369, %10311
  br label %10371

10371:                                            ; preds = %10370
  br label %10372

10372:                                            ; preds = %10371
  call void @llvm.lifetime.start.p0(i64 40, ptr %291) #11
  call void @llvm.memset.p0.i64(ptr align 8 %291, i8 0, i64 40, i1 false)
  br label %10373

10373:                                            ; preds = %10372
  %10374 = load i32, ptr @test_count, align 4, !tbaa !5
  %10375 = add nsw i32 %10374, 1
  store i32 %10375, ptr @test_count, align 4, !tbaa !5
  %10376 = load ptr, ptr %288, align 8, !tbaa !9
  %10377 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %10376, ptr noundef @.str.11, ptr noundef %291)
  %10378 = getelementptr inbounds %struct.s2n_result, ptr %292, i32 0, i32 0
  store i32 %10377, ptr %10378, align 4
  %10379 = getelementptr inbounds %struct.s2n_result, ptr %292, i32 0, i32 0
  %10380 = load i32, ptr %10379, align 4
  %10381 = call zeroext i1 @s2n_result_is_ok(i32 %10380)
  br i1 %10381, label %10435, label %10382

10382:                                            ; preds = %10373
  br label %10383

10383:                                            ; preds = %10382
  br label %10384

10384:                                            ; preds = %10383
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %10385 = call ptr @__errno_location() #12
  %10386 = load i32, ptr %10385, align 4, !tbaa !5
  store i32 %10386, ptr %293, align 4, !tbaa !5
  %10387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10388 = call i32 @s2n_print_stacktrace(ptr noundef %10387)
  %10389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10390 = trunc i8 %10389 to i1
  br i1 %10390, label %10391, label %10413

10391:                                            ; preds = %10384
  %10392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10393 = call i32 @fileno(ptr noundef %10392) #11
  %10394 = call i32 @isatty(i32 noundef %10393) #11
  %10395 = icmp ne i32 %10394, 0
  br i1 %10395, label %10396, label %10413

10396:                                            ; preds = %10391
  %10397 = load i32, ptr %293, align 4, !tbaa !5
  %10398 = call ptr @__errno_location() #12
  store i32 %10397, ptr %10398, align 4, !tbaa !5
  %10399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10400 = load i32, ptr @test_count, align 4, !tbaa !5
  %10401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10402 = load i32, ptr %10401, align 4, !tbaa !5
  %10403 = call ptr @s2n_strerror(i32 noundef %10402, ptr noundef @.str.4)
  %10404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10405 = load i32, ptr %10404, align 4, !tbaa !5
  %10406 = call ptr @s2n_strerror_debug(i32 noundef %10405, ptr noundef @.str.4)
  %10407 = call ptr @__errno_location() #12
  %10408 = load i32, ptr %10407, align 4, !tbaa !5
  %10409 = call ptr @strerror(i32 noundef %10408) #11
  %10410 = call ptr @__errno_location() #12
  %10411 = load i32, ptr %10410, align 4, !tbaa !5
  %10412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10399, ptr noundef @.str.2, i32 noundef %10400, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 669, ptr noundef %10403, ptr noundef %10406, ptr noundef %10409, i32 noundef %10411) #11
  br label %10430

10413:                                            ; preds = %10391, %10384
  %10414 = load i32, ptr %293, align 4, !tbaa !5
  %10415 = call ptr @__errno_location() #12
  store i32 %10414, ptr %10415, align 4, !tbaa !5
  %10416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10417 = load i32, ptr @test_count, align 4, !tbaa !5
  %10418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10419 = load i32, ptr %10418, align 4, !tbaa !5
  %10420 = call ptr @s2n_strerror(i32 noundef %10419, ptr noundef @.str.4)
  %10421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10422 = load i32, ptr %10421, align 4, !tbaa !5
  %10423 = call ptr @s2n_strerror_debug(i32 noundef %10422, ptr noundef @.str.4)
  %10424 = call ptr @__errno_location() #12
  %10425 = load i32, ptr %10424, align 4, !tbaa !5
  %10426 = call ptr @strerror(i32 noundef %10425) #11
  %10427 = call ptr @__errno_location() #12
  %10428 = load i32, ptr %10427, align 4, !tbaa !5
  %10429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10416, ptr noundef @.str.5, i32 noundef %10417, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 669, ptr noundef %10420, ptr noundef %10423, ptr noundef %10426, i32 noundef %10428) #11
  br label %10430

10430:                                            ; preds = %10413, %10396
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  br label %10431

10431:                                            ; preds = %10430
  br label %10432

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

10433:                                            ; No predecessors!
  br label %10434

10434:                                            ; preds = %10433
  br label %10435

10435:                                            ; preds = %10434, %10373
  br label %10436

10436:                                            ; preds = %10435
  br label %10437

10437:                                            ; preds = %10436
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %10438 = getelementptr inbounds %struct.s2n_stuffer, ptr %291, i32 0, i32 2
  %10439 = load i32, ptr %10438, align 4, !tbaa !15
  %10440 = getelementptr inbounds %struct.s2n_stuffer, ptr %291, i32 0, i32 1
  %10441 = load i32, ptr %10440, align 8, !tbaa !18
  %10442 = sub i32 %10439, %10441
  store i32 %10442, ptr %294, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #11
  %10443 = load i32, ptr %294, align 4, !tbaa !5
  %10444 = call ptr @s2n_stuffer_raw_read(ptr noundef %291, i32 noundef %10443)
  store ptr %10444, ptr %295, align 8, !tbaa !9
  br label %10445

10445:                                            ; preds = %10437
  %10446 = load i32, ptr @test_count, align 4, !tbaa !5
  %10447 = add nsw i32 %10446, 1
  store i32 %10447, ptr @test_count, align 4, !tbaa !5
  %10448 = load ptr, ptr %295, align 8, !tbaa !9
  %10449 = icmp eq ptr %10448, null
  br i1 %10449, label %10450, label %10503

10450:                                            ; preds = %10445
  br label %10451

10451:                                            ; preds = %10450
  br label %10452

10452:                                            ; preds = %10451
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %10453 = call ptr @__errno_location() #12
  %10454 = load i32, ptr %10453, align 4, !tbaa !5
  store i32 %10454, ptr %296, align 4, !tbaa !5
  %10455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10456 = call i32 @s2n_print_stacktrace(ptr noundef %10455)
  %10457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10458 = trunc i8 %10457 to i1
  br i1 %10458, label %10459, label %10481

10459:                                            ; preds = %10452
  %10460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10461 = call i32 @fileno(ptr noundef %10460) #11
  %10462 = call i32 @isatty(i32 noundef %10461) #11
  %10463 = icmp ne i32 %10462, 0
  br i1 %10463, label %10464, label %10481

10464:                                            ; preds = %10459
  %10465 = load i32, ptr %296, align 4, !tbaa !5
  %10466 = call ptr @__errno_location() #12
  store i32 %10465, ptr %10466, align 4, !tbaa !5
  %10467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10468 = load i32, ptr @test_count, align 4, !tbaa !5
  %10469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10470 = load i32, ptr %10469, align 4, !tbaa !5
  %10471 = call ptr @s2n_strerror(i32 noundef %10470, ptr noundef @.str.4)
  %10472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10473 = load i32, ptr %10472, align 4, !tbaa !5
  %10474 = call ptr @s2n_strerror_debug(i32 noundef %10473, ptr noundef @.str.4)
  %10475 = call ptr @__errno_location() #12
  %10476 = load i32, ptr %10475, align 4, !tbaa !5
  %10477 = call ptr @strerror(i32 noundef %10476) #11
  %10478 = call ptr @__errno_location() #12
  %10479 = load i32, ptr %10478, align 4, !tbaa !5
  %10480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10467, ptr noundef @.str.2, i32 noundef %10468, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 672, ptr noundef %10471, ptr noundef %10474, ptr noundef %10477, i32 noundef %10479) #11
  br label %10498

10481:                                            ; preds = %10459, %10452
  %10482 = load i32, ptr %296, align 4, !tbaa !5
  %10483 = call ptr @__errno_location() #12
  store i32 %10482, ptr %10483, align 4, !tbaa !5
  %10484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10485 = load i32, ptr @test_count, align 4, !tbaa !5
  %10486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10487 = load i32, ptr %10486, align 4, !tbaa !5
  %10488 = call ptr @s2n_strerror(i32 noundef %10487, ptr noundef @.str.4)
  %10489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10490 = load i32, ptr %10489, align 4, !tbaa !5
  %10491 = call ptr @s2n_strerror_debug(i32 noundef %10490, ptr noundef @.str.4)
  %10492 = call ptr @__errno_location() #12
  %10493 = load i32, ptr %10492, align 4, !tbaa !5
  %10494 = call ptr @strerror(i32 noundef %10493) #11
  %10495 = call ptr @__errno_location() #12
  %10496 = load i32, ptr %10495, align 4, !tbaa !5
  %10497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10484, ptr noundef @.str.5, i32 noundef %10485, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 672, ptr noundef %10488, ptr noundef %10491, ptr noundef %10494, i32 noundef %10496) #11
  br label %10498

10498:                                            ; preds = %10481, %10464
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %10499

10499:                                            ; preds = %10498
  br label %10500

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

10501:                                            ; No predecessors!
  br label %10502

10502:                                            ; preds = %10501
  br label %10503

10503:                                            ; preds = %10502, %10445
  br label %10504

10504:                                            ; preds = %10503
  br label %10505

10505:                                            ; preds = %10504
  br label %10506

10506:                                            ; preds = %10505
  %10507 = load i32, ptr @test_count, align 4, !tbaa !5
  %10508 = add nsw i32 %10507, 1
  store i32 %10508, ptr @test_count, align 4, !tbaa !5
  %10509 = load ptr, ptr %288, align 8, !tbaa !9
  %10510 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10509, ptr noundef @.str.23)
  %10511 = icmp eq i32 %10510, -1
  br i1 %10511, label %10512, label %10565

10512:                                            ; preds = %10506
  br label %10513

10513:                                            ; preds = %10512
  br label %10514

10514:                                            ; preds = %10513
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %10515 = call ptr @__errno_location() #12
  %10516 = load i32, ptr %10515, align 4, !tbaa !5
  store i32 %10516, ptr %297, align 4, !tbaa !5
  %10517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10518 = call i32 @s2n_print_stacktrace(ptr noundef %10517)
  %10519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10520 = trunc i8 %10519 to i1
  br i1 %10520, label %10521, label %10543

10521:                                            ; preds = %10514
  %10522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10523 = call i32 @fileno(ptr noundef %10522) #11
  %10524 = call i32 @isatty(i32 noundef %10523) #11
  %10525 = icmp ne i32 %10524, 0
  br i1 %10525, label %10526, label %10543

10526:                                            ; preds = %10521
  %10527 = load i32, ptr %297, align 4, !tbaa !5
  %10528 = call ptr @__errno_location() #12
  store i32 %10527, ptr %10528, align 4, !tbaa !5
  %10529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10530 = load i32, ptr @test_count, align 4, !tbaa !5
  %10531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10532 = load i32, ptr %10531, align 4, !tbaa !5
  %10533 = call ptr @s2n_strerror(i32 noundef %10532, ptr noundef @.str.4)
  %10534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10535 = load i32, ptr %10534, align 4, !tbaa !5
  %10536 = call ptr @s2n_strerror_debug(i32 noundef %10535, ptr noundef @.str.4)
  %10537 = call ptr @__errno_location() #12
  %10538 = load i32, ptr %10537, align 4, !tbaa !5
  %10539 = call ptr @strerror(i32 noundef %10538) #11
  %10540 = call ptr @__errno_location() #12
  %10541 = load i32, ptr %10540, align 4, !tbaa !5
  %10542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10529, ptr noundef @.str.2, i32 noundef %10530, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 674, ptr noundef %10533, ptr noundef %10536, ptr noundef %10539, i32 noundef %10541) #11
  br label %10560

10543:                                            ; preds = %10521, %10514
  %10544 = load i32, ptr %297, align 4, !tbaa !5
  %10545 = call ptr @__errno_location() #12
  store i32 %10544, ptr %10545, align 4, !tbaa !5
  %10546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10547 = load i32, ptr @test_count, align 4, !tbaa !5
  %10548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10549 = load i32, ptr %10548, align 4, !tbaa !5
  %10550 = call ptr @s2n_strerror(i32 noundef %10549, ptr noundef @.str.4)
  %10551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10552 = load i32, ptr %10551, align 4, !tbaa !5
  %10553 = call ptr @s2n_strerror_debug(i32 noundef %10552, ptr noundef @.str.4)
  %10554 = call ptr @__errno_location() #12
  %10555 = load i32, ptr %10554, align 4, !tbaa !5
  %10556 = call ptr @strerror(i32 noundef %10555) #11
  %10557 = call ptr @__errno_location() #12
  %10558 = load i32, ptr %10557, align 4, !tbaa !5
  %10559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10546, ptr noundef @.str.5, i32 noundef %10547, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 674, ptr noundef %10550, ptr noundef %10553, ptr noundef %10556, i32 noundef %10558) #11
  br label %10560

10560:                                            ; preds = %10543, %10526
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %10561

10561:                                            ; preds = %10560
  br label %10562

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

10563:                                            ; No predecessors!
  br label %10564

10564:                                            ; preds = %10563
  br label %10565

10565:                                            ; preds = %10564, %10506
  br label %10566

10566:                                            ; preds = %10565
  br label %10567

10567:                                            ; preds = %10566
  call void @llvm.lifetime.start.p0(i64 48, ptr %298) #11
  br label %10568

10568:                                            ; preds = %10567
  %10569 = load i32, ptr @test_count, align 4, !tbaa !5
  %10570 = add nsw i32 %10569, 1
  store i32 %10570, ptr @test_count, align 4, !tbaa !5
  %10571 = call i32 @s2n_pkey_zero_init(ptr noundef %298)
  %10572 = icmp eq i32 %10571, -1
  br i1 %10572, label %10573, label %10626

10573:                                            ; preds = %10568
  br label %10574

10574:                                            ; preds = %10573
  br label %10575

10575:                                            ; preds = %10574
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  %10576 = call ptr @__errno_location() #12
  %10577 = load i32, ptr %10576, align 4, !tbaa !5
  store i32 %10577, ptr %299, align 4, !tbaa !5
  %10578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10579 = call i32 @s2n_print_stacktrace(ptr noundef %10578)
  %10580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10581 = trunc i8 %10580 to i1
  br i1 %10581, label %10582, label %10604

10582:                                            ; preds = %10575
  %10583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10584 = call i32 @fileno(ptr noundef %10583) #11
  %10585 = call i32 @isatty(i32 noundef %10584) #11
  %10586 = icmp ne i32 %10585, 0
  br i1 %10586, label %10587, label %10604

10587:                                            ; preds = %10582
  %10588 = load i32, ptr %299, align 4, !tbaa !5
  %10589 = call ptr @__errno_location() #12
  store i32 %10588, ptr %10589, align 4, !tbaa !5
  %10590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10591 = load i32, ptr @test_count, align 4, !tbaa !5
  %10592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10593 = load i32, ptr %10592, align 4, !tbaa !5
  %10594 = call ptr @s2n_strerror(i32 noundef %10593, ptr noundef @.str.4)
  %10595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10596 = load i32, ptr %10595, align 4, !tbaa !5
  %10597 = call ptr @s2n_strerror_debug(i32 noundef %10596, ptr noundef @.str.4)
  %10598 = call ptr @__errno_location() #12
  %10599 = load i32, ptr %10598, align 4, !tbaa !5
  %10600 = call ptr @strerror(i32 noundef %10599) #11
  %10601 = call ptr @__errno_location() #12
  %10602 = load i32, ptr %10601, align 4, !tbaa !5
  %10603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10590, ptr noundef @.str.2, i32 noundef %10591, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 677, ptr noundef %10594, ptr noundef %10597, ptr noundef %10600, i32 noundef %10602) #11
  br label %10621

10604:                                            ; preds = %10582, %10575
  %10605 = load i32, ptr %299, align 4, !tbaa !5
  %10606 = call ptr @__errno_location() #12
  store i32 %10605, ptr %10606, align 4, !tbaa !5
  %10607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10608 = load i32, ptr @test_count, align 4, !tbaa !5
  %10609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10610 = load i32, ptr %10609, align 4, !tbaa !5
  %10611 = call ptr @s2n_strerror(i32 noundef %10610, ptr noundef @.str.4)
  %10612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10613 = load i32, ptr %10612, align 4, !tbaa !5
  %10614 = call ptr @s2n_strerror_debug(i32 noundef %10613, ptr noundef @.str.4)
  %10615 = call ptr @__errno_location() #12
  %10616 = load i32, ptr %10615, align 4, !tbaa !5
  %10617 = call ptr @strerror(i32 noundef %10616) #11
  %10618 = call ptr @__errno_location() #12
  %10619 = load i32, ptr %10618, align 4, !tbaa !5
  %10620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10607, ptr noundef @.str.5, i32 noundef %10608, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 677, ptr noundef %10611, ptr noundef %10614, ptr noundef %10617, i32 noundef %10619) #11
  br label %10621

10621:                                            ; preds = %10604, %10587
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  br label %10622

10622:                                            ; preds = %10621
  br label %10623

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

10624:                                            ; No predecessors!
  br label %10625

10625:                                            ; preds = %10624
  br label %10626

10626:                                            ; preds = %10625, %10568
  br label %10627

10627:                                            ; preds = %10626
  br label %10628

10628:                                            ; preds = %10627
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  store i32 -1, ptr %300, align 4, !tbaa !5
  br label %10629

10629:                                            ; preds = %10628
  br label %10630

10630:                                            ; preds = %10629
  br label %10631

10631:                                            ; preds = %10630
  %10632 = load i32, ptr @test_count, align 4, !tbaa !5
  %10633 = add nsw i32 %10632, 1
  store i32 %10633, ptr @test_count, align 4, !tbaa !5
  %10634 = load ptr, ptr %288, align 8, !tbaa !9
  %10635 = load ptr, ptr %295, align 8, !tbaa !9
  %10636 = load i32, ptr %294, align 4, !tbaa !5
  %10637 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %287, ptr noundef %10634, ptr noundef %10635, i32 noundef %10636, ptr noundef %300, ptr noundef %298)
  %10638 = getelementptr inbounds %struct.s2n_result, ptr %301, i32 0, i32 0
  store i32 %10637, ptr %10638, align 4
  %10639 = getelementptr inbounds %struct.s2n_result, ptr %301, i32 0, i32 0
  %10640 = load i32, ptr %10639, align 4
  %10641 = call zeroext i1 @s2n_result_is_error(i32 %10640)
  br i1 %10641, label %10695, label %10642

10642:                                            ; preds = %10631
  br label %10643

10643:                                            ; preds = %10642
  br label %10644

10644:                                            ; preds = %10643
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %10645 = call ptr @__errno_location() #12
  %10646 = load i32, ptr %10645, align 4, !tbaa !5
  store i32 %10646, ptr %302, align 4, !tbaa !5
  %10647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10648 = call i32 @s2n_print_stacktrace(ptr noundef %10647)
  %10649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10650 = trunc i8 %10649 to i1
  br i1 %10650, label %10651, label %10673

10651:                                            ; preds = %10644
  %10652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10653 = call i32 @fileno(ptr noundef %10652) #11
  %10654 = call i32 @isatty(i32 noundef %10653) #11
  %10655 = icmp ne i32 %10654, 0
  br i1 %10655, label %10656, label %10673

10656:                                            ; preds = %10651
  %10657 = load i32, ptr %302, align 4, !tbaa !5
  %10658 = call ptr @__errno_location() #12
  store i32 %10657, ptr %10658, align 4, !tbaa !5
  %10659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10660 = load i32, ptr @test_count, align 4, !tbaa !5
  %10661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10662 = load i32, ptr %10661, align 4, !tbaa !5
  %10663 = call ptr @s2n_strerror(i32 noundef %10662, ptr noundef @.str.4)
  %10664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10665 = load i32, ptr %10664, align 4, !tbaa !5
  %10666 = call ptr @s2n_strerror_debug(i32 noundef %10665, ptr noundef @.str.4)
  %10667 = call ptr @__errno_location() #12
  %10668 = load i32, ptr %10667, align 4, !tbaa !5
  %10669 = call ptr @strerror(i32 noundef %10668) #11
  %10670 = call ptr @__errno_location() #12
  %10671 = load i32, ptr %10670, align 4, !tbaa !5
  %10672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10659, ptr noundef @.str.2, i32 noundef %10660, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 681, ptr noundef %10663, ptr noundef %10666, ptr noundef %10669, i32 noundef %10671) #11
  br label %10690

10673:                                            ; preds = %10651, %10644
  %10674 = load i32, ptr %302, align 4, !tbaa !5
  %10675 = call ptr @__errno_location() #12
  store i32 %10674, ptr %10675, align 4, !tbaa !5
  %10676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10677 = load i32, ptr @test_count, align 4, !tbaa !5
  %10678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10679 = load i32, ptr %10678, align 4, !tbaa !5
  %10680 = call ptr @s2n_strerror(i32 noundef %10679, ptr noundef @.str.4)
  %10681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10682 = load i32, ptr %10681, align 4, !tbaa !5
  %10683 = call ptr @s2n_strerror_debug(i32 noundef %10682, ptr noundef @.str.4)
  %10684 = call ptr @__errno_location() #12
  %10685 = load i32, ptr %10684, align 4, !tbaa !5
  %10686 = call ptr @strerror(i32 noundef %10685) #11
  %10687 = call ptr @__errno_location() #12
  %10688 = load i32, ptr %10687, align 4, !tbaa !5
  %10689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10676, ptr noundef @.str.5, i32 noundef %10677, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 681, ptr noundef %10680, ptr noundef %10683, ptr noundef %10686, i32 noundef %10688) #11
  br label %10690

10690:                                            ; preds = %10673, %10656
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %10691

10691:                                            ; preds = %10690
  br label %10692

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

10693:                                            ; No predecessors!
  br label %10694

10694:                                            ; preds = %10693
  br label %10695

10695:                                            ; preds = %10694, %10631
  br label %10696

10696:                                            ; preds = %10695
  br label %10697

10697:                                            ; preds = %10696
  br label %10698

10698:                                            ; preds = %10697
  %10699 = load i32, ptr @test_count, align 4, !tbaa !5
  %10700 = add nsw i32 %10699, 1
  store i32 %10700, ptr @test_count, align 4, !tbaa !5
  %10701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10702 = load i32, ptr %10701, align 4, !tbaa !5
  %10703 = icmp eq i32 %10702, 335544366
  br i1 %10703, label %10757, label %10704

10704:                                            ; preds = %10698
  br label %10705

10705:                                            ; preds = %10704
  br label %10706

10706:                                            ; preds = %10705
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %10707 = call ptr @__errno_location() #12
  %10708 = load i32, ptr %10707, align 4, !tbaa !5
  store i32 %10708, ptr %303, align 4, !tbaa !5
  %10709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10710 = call i32 @s2n_print_stacktrace(ptr noundef %10709)
  %10711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10712 = trunc i8 %10711 to i1
  br i1 %10712, label %10713, label %10735

10713:                                            ; preds = %10706
  %10714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10715 = call i32 @fileno(ptr noundef %10714) #11
  %10716 = call i32 @isatty(i32 noundef %10715) #11
  %10717 = icmp ne i32 %10716, 0
  br i1 %10717, label %10718, label %10735

10718:                                            ; preds = %10713
  %10719 = load i32, ptr %303, align 4, !tbaa !5
  %10720 = call ptr @__errno_location() #12
  store i32 %10719, ptr %10720, align 4, !tbaa !5
  %10721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10722 = load i32, ptr @test_count, align 4, !tbaa !5
  %10723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10724 = load i32, ptr %10723, align 4, !tbaa !5
  %10725 = call ptr @s2n_strerror(i32 noundef %10724, ptr noundef @.str.4)
  %10726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10727 = load i32, ptr %10726, align 4, !tbaa !5
  %10728 = call ptr @s2n_strerror_debug(i32 noundef %10727, ptr noundef @.str.4)
  %10729 = call ptr @__errno_location() #12
  %10730 = load i32, ptr %10729, align 4, !tbaa !5
  %10731 = call ptr @strerror(i32 noundef %10730) #11
  %10732 = call ptr @__errno_location() #12
  %10733 = load i32, ptr %10732, align 4, !tbaa !5
  %10734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10721, ptr noundef @.str.2, i32 noundef %10722, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 681, ptr noundef %10725, ptr noundef %10728, ptr noundef %10731, i32 noundef %10733) #11
  br label %10752

10735:                                            ; preds = %10713, %10706
  %10736 = load i32, ptr %303, align 4, !tbaa !5
  %10737 = call ptr @__errno_location() #12
  store i32 %10736, ptr %10737, align 4, !tbaa !5
  %10738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10739 = load i32, ptr @test_count, align 4, !tbaa !5
  %10740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10741 = load i32, ptr %10740, align 4, !tbaa !5
  %10742 = call ptr @s2n_strerror(i32 noundef %10741, ptr noundef @.str.4)
  %10743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10744 = load i32, ptr %10743, align 4, !tbaa !5
  %10745 = call ptr @s2n_strerror_debug(i32 noundef %10744, ptr noundef @.str.4)
  %10746 = call ptr @__errno_location() #12
  %10747 = load i32, ptr %10746, align 4, !tbaa !5
  %10748 = call ptr @strerror(i32 noundef %10747) #11
  %10749 = call ptr @__errno_location() #12
  %10750 = load i32, ptr %10749, align 4, !tbaa !5
  %10751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10738, ptr noundef @.str.5, i32 noundef %10739, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 681, ptr noundef %10742, ptr noundef %10745, ptr noundef %10748, i32 noundef %10750) #11
  br label %10752

10752:                                            ; preds = %10735, %10718
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %10753

10753:                                            ; preds = %10752
  br label %10754

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

10755:                                            ; No predecessors!
  br label %10756

10756:                                            ; preds = %10755
  br label %10757

10757:                                            ; preds = %10756, %10698
  br label %10758

10758:                                            ; preds = %10757
  br label %10759

10759:                                            ; preds = %10758
  br label %10760

10760:                                            ; preds = %10759
  %10761 = load i32, ptr @test_count, align 4, !tbaa !5
  %10762 = add nsw i32 %10761, 1
  store i32 %10762, ptr @test_count, align 4, !tbaa !5
  %10763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10764 = load i32, ptr %10763, align 4, !tbaa !5
  %10765 = call ptr @s2n_strerror_debug(i32 noundef %10764, ptr noundef @.str.4)
  %10766 = icmp eq ptr %10765, null
  br i1 %10766, label %10767, label %10820

10767:                                            ; preds = %10760
  br label %10768

10768:                                            ; preds = %10767
  br label %10769

10769:                                            ; preds = %10768
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  %10770 = call ptr @__errno_location() #12
  %10771 = load i32, ptr %10770, align 4, !tbaa !5
  store i32 %10771, ptr %304, align 4, !tbaa !5
  %10772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10773 = call i32 @s2n_print_stacktrace(ptr noundef %10772)
  %10774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10775 = trunc i8 %10774 to i1
  br i1 %10775, label %10776, label %10798

10776:                                            ; preds = %10769
  %10777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10778 = call i32 @fileno(ptr noundef %10777) #11
  %10779 = call i32 @isatty(i32 noundef %10778) #11
  %10780 = icmp ne i32 %10779, 0
  br i1 %10780, label %10781, label %10798

10781:                                            ; preds = %10776
  %10782 = load i32, ptr %304, align 4, !tbaa !5
  %10783 = call ptr @__errno_location() #12
  store i32 %10782, ptr %10783, align 4, !tbaa !5
  %10784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10785 = load i32, ptr @test_count, align 4, !tbaa !5
  %10786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10787 = load i32, ptr %10786, align 4, !tbaa !5
  %10788 = call ptr @s2n_strerror(i32 noundef %10787, ptr noundef @.str.4)
  %10789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10790 = load i32, ptr %10789, align 4, !tbaa !5
  %10791 = call ptr @s2n_strerror_debug(i32 noundef %10790, ptr noundef @.str.4)
  %10792 = call ptr @__errno_location() #12
  %10793 = load i32, ptr %10792, align 4, !tbaa !5
  %10794 = call ptr @strerror(i32 noundef %10793) #11
  %10795 = call ptr @__errno_location() #12
  %10796 = load i32, ptr %10795, align 4, !tbaa !5
  %10797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10784, ptr noundef @.str.2, i32 noundef %10785, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 681, ptr noundef %10788, ptr noundef %10791, ptr noundef %10794, i32 noundef %10796) #11
  br label %10815

10798:                                            ; preds = %10776, %10769
  %10799 = load i32, ptr %304, align 4, !tbaa !5
  %10800 = call ptr @__errno_location() #12
  store i32 %10799, ptr %10800, align 4, !tbaa !5
  %10801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10802 = load i32, ptr @test_count, align 4, !tbaa !5
  %10803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10804 = load i32, ptr %10803, align 4, !tbaa !5
  %10805 = call ptr @s2n_strerror(i32 noundef %10804, ptr noundef @.str.4)
  %10806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10807 = load i32, ptr %10806, align 4, !tbaa !5
  %10808 = call ptr @s2n_strerror_debug(i32 noundef %10807, ptr noundef @.str.4)
  %10809 = call ptr @__errno_location() #12
  %10810 = load i32, ptr %10809, align 4, !tbaa !5
  %10811 = call ptr @strerror(i32 noundef %10810) #11
  %10812 = call ptr @__errno_location() #12
  %10813 = load i32, ptr %10812, align 4, !tbaa !5
  %10814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10801, ptr noundef @.str.5, i32 noundef %10802, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 681, ptr noundef %10805, ptr noundef %10808, ptr noundef %10811, i32 noundef %10813) #11
  br label %10815

10815:                                            ; preds = %10798, %10781
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  br label %10816

10816:                                            ; preds = %10815
  br label %10817

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

10818:                                            ; No predecessors!
  br label %10819

10819:                                            ; preds = %10818
  br label %10820

10820:                                            ; preds = %10819, %10760
  br label %10821

10821:                                            ; preds = %10820
  br label %10822

10822:                                            ; preds = %10821
  br label %10823

10823:                                            ; preds = %10822
  br label %10824

10824:                                            ; preds = %10823
  br label %10825

10825:                                            ; preds = %10824
  %10826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10826, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10827 = call ptr @__errno_location() #12
  store i32 0, ptr %10827, align 4, !tbaa !5
  br label %10828

10828:                                            ; preds = %10825
  br label %10829

10829:                                            ; preds = %10828
  br label %10830

10830:                                            ; preds = %10829
  br label %10831

10831:                                            ; preds = %10830
  br label %10832

10832:                                            ; preds = %10831
  %10833 = load i32, ptr @test_count, align 4, !tbaa !5
  %10834 = add nsw i32 %10833, 1
  store i32 %10834, ptr @test_count, align 4, !tbaa !5
  %10835 = getelementptr inbounds %struct.host_verify_data, ptr %286, i32 0, i32 2
  %10836 = load i8, ptr %10835, align 1, !tbaa !19
  %10837 = zext i8 %10836 to i32
  %10838 = icmp eq i32 1, %10837
  br i1 %10838, label %10892, label %10839

10839:                                            ; preds = %10832
  br label %10840

10840:                                            ; preds = %10839
  br label %10841

10841:                                            ; preds = %10840
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %10842 = call ptr @__errno_location() #12
  %10843 = load i32, ptr %10842, align 4, !tbaa !5
  store i32 %10843, ptr %305, align 4, !tbaa !5
  %10844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10845 = call i32 @s2n_print_stacktrace(ptr noundef %10844)
  %10846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10847 = trunc i8 %10846 to i1
  br i1 %10847, label %10848, label %10870

10848:                                            ; preds = %10841
  %10849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10850 = call i32 @fileno(ptr noundef %10849) #11
  %10851 = call i32 @isatty(i32 noundef %10850) #11
  %10852 = icmp ne i32 %10851, 0
  br i1 %10852, label %10853, label %10870

10853:                                            ; preds = %10848
  %10854 = load i32, ptr %305, align 4, !tbaa !5
  %10855 = call ptr @__errno_location() #12
  store i32 %10854, ptr %10855, align 4, !tbaa !5
  %10856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10857 = load i32, ptr @test_count, align 4, !tbaa !5
  %10858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10859 = load i32, ptr %10858, align 4, !tbaa !5
  %10860 = call ptr @s2n_strerror(i32 noundef %10859, ptr noundef @.str.4)
  %10861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10862 = load i32, ptr %10861, align 4, !tbaa !5
  %10863 = call ptr @s2n_strerror_debug(i32 noundef %10862, ptr noundef @.str.4)
  %10864 = call ptr @__errno_location() #12
  %10865 = load i32, ptr %10864, align 4, !tbaa !5
  %10866 = call ptr @strerror(i32 noundef %10865) #11
  %10867 = call ptr @__errno_location() #12
  %10868 = load i32, ptr %10867, align 4, !tbaa !5
  %10869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10856, ptr noundef @.str.2, i32 noundef %10857, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 682, ptr noundef %10860, ptr noundef %10863, ptr noundef %10866, i32 noundef %10868) #11
  br label %10887

10870:                                            ; preds = %10848, %10841
  %10871 = load i32, ptr %305, align 4, !tbaa !5
  %10872 = call ptr @__errno_location() #12
  store i32 %10871, ptr %10872, align 4, !tbaa !5
  %10873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10874 = load i32, ptr @test_count, align 4, !tbaa !5
  %10875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10876 = load i32, ptr %10875, align 4, !tbaa !5
  %10877 = call ptr @s2n_strerror(i32 noundef %10876, ptr noundef @.str.4)
  %10878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10879 = load i32, ptr %10878, align 4, !tbaa !5
  %10880 = call ptr @s2n_strerror_debug(i32 noundef %10879, ptr noundef @.str.4)
  %10881 = call ptr @__errno_location() #12
  %10882 = load i32, ptr %10881, align 4, !tbaa !5
  %10883 = call ptr @strerror(i32 noundef %10882) #11
  %10884 = call ptr @__errno_location() #12
  %10885 = load i32, ptr %10884, align 4, !tbaa !5
  %10886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10873, ptr noundef @.str.5, i32 noundef %10874, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 682, ptr noundef %10877, ptr noundef %10880, ptr noundef %10883, i32 noundef %10885) #11
  br label %10887

10887:                                            ; preds = %10870, %10853
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %10888

10888:                                            ; preds = %10887
  br label %10889

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

10890:                                            ; No predecessors!
  br label %10891

10891:                                            ; preds = %10890
  br label %10892

10892:                                            ; preds = %10891, %10832
  br label %10893

10893:                                            ; preds = %10892
  br label %10894

10894:                                            ; preds = %10893
  %10895 = load ptr, ptr %288, align 8, !tbaa !9
  %10896 = call i32 @s2n_connection_free(ptr noundef %10895)
  %10897 = call i32 @s2n_x509_validator_wipe(ptr noundef %287)
  call void @s2n_x509_trust_store_wipe(ptr noundef %280)
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %298) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  %10898 = call i32 @s2n_stuffer_free(ptr noundef %291)
  call void @llvm.lifetime.end.p0(i64 40, ptr %291) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %288) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %287) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %286) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %280) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %306) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %306)
  br label %10899

10899:                                            ; preds = %10894
  %10900 = load i32, ptr @test_count, align 4, !tbaa !5
  %10901 = add nsw i32 %10900, 1
  store i32 %10901, ptr @test_count, align 4, !tbaa !5
  %10902 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %306, ptr noundef @.str.11, ptr noundef null)
  %10903 = icmp eq i32 %10902, -1
  br i1 %10903, label %10904, label %10957

10904:                                            ; preds = %10899
  br label %10905

10905:                                            ; preds = %10904
  br label %10906

10906:                                            ; preds = %10905
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #11
  %10907 = call ptr @__errno_location() #12
  %10908 = load i32, ptr %10907, align 4, !tbaa !5
  store i32 %10908, ptr %307, align 4, !tbaa !5
  %10909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10910 = call i32 @s2n_print_stacktrace(ptr noundef %10909)
  %10911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10912 = trunc i8 %10911 to i1
  br i1 %10912, label %10913, label %10935

10913:                                            ; preds = %10906
  %10914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10915 = call i32 @fileno(ptr noundef %10914) #11
  %10916 = call i32 @isatty(i32 noundef %10915) #11
  %10917 = icmp ne i32 %10916, 0
  br i1 %10917, label %10918, label %10935

10918:                                            ; preds = %10913
  %10919 = load i32, ptr %307, align 4, !tbaa !5
  %10920 = call ptr @__errno_location() #12
  store i32 %10919, ptr %10920, align 4, !tbaa !5
  %10921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10922 = load i32, ptr @test_count, align 4, !tbaa !5
  %10923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10924 = load i32, ptr %10923, align 4, !tbaa !5
  %10925 = call ptr @s2n_strerror(i32 noundef %10924, ptr noundef @.str.4)
  %10926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10927 = load i32, ptr %10926, align 4, !tbaa !5
  %10928 = call ptr @s2n_strerror_debug(i32 noundef %10927, ptr noundef @.str.4)
  %10929 = call ptr @__errno_location() #12
  %10930 = load i32, ptr %10929, align 4, !tbaa !5
  %10931 = call ptr @strerror(i32 noundef %10930) #11
  %10932 = call ptr @__errno_location() #12
  %10933 = load i32, ptr %10932, align 4, !tbaa !5
  %10934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10921, ptr noundef @.str.2, i32 noundef %10922, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 692, ptr noundef %10925, ptr noundef %10928, ptr noundef %10931, i32 noundef %10933) #11
  br label %10952

10935:                                            ; preds = %10913, %10906
  %10936 = load i32, ptr %307, align 4, !tbaa !5
  %10937 = call ptr @__errno_location() #12
  store i32 %10936, ptr %10937, align 4, !tbaa !5
  %10938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10939 = load i32, ptr @test_count, align 4, !tbaa !5
  %10940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10941 = load i32, ptr %10940, align 4, !tbaa !5
  %10942 = call ptr @s2n_strerror(i32 noundef %10941, ptr noundef @.str.4)
  %10943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10944 = load i32, ptr %10943, align 4, !tbaa !5
  %10945 = call ptr @s2n_strerror_debug(i32 noundef %10944, ptr noundef @.str.4)
  %10946 = call ptr @__errno_location() #12
  %10947 = load i32, ptr %10946, align 4, !tbaa !5
  %10948 = call ptr @strerror(i32 noundef %10947) #11
  %10949 = call ptr @__errno_location() #12
  %10950 = load i32, ptr %10949, align 4, !tbaa !5
  %10951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10938, ptr noundef @.str.5, i32 noundef %10939, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 692, ptr noundef %10942, ptr noundef %10945, ptr noundef %10948, i32 noundef %10950) #11
  br label %10952

10952:                                            ; preds = %10935, %10918
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #11
  br label %10953

10953:                                            ; preds = %10952
  br label %10954

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

10955:                                            ; No predecessors!
  br label %10956

10956:                                            ; preds = %10955
  br label %10957

10957:                                            ; preds = %10956, %10899
  br label %10958

10958:                                            ; preds = %10957
  br label %10959

10959:                                            ; preds = %10958
  call void @llvm.lifetime.start.p0(i64 16, ptr %308) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %308, ptr align 8 @__const.main.verify_data.61, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %309) #11
  %10960 = call i32 @s2n_x509_validator_init(ptr noundef %309, ptr noundef %306, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %310) #11
  %10961 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10961, ptr %310, align 8, !tbaa !9
  br label %10962

10962:                                            ; preds = %10959
  %10963 = load i32, ptr @test_count, align 4, !tbaa !5
  %10964 = add nsw i32 %10963, 1
  store i32 %10964, ptr @test_count, align 4, !tbaa !5
  %10965 = load ptr, ptr %310, align 8, !tbaa !9
  %10966 = icmp eq ptr %10965, null
  br i1 %10966, label %10967, label %11020

10967:                                            ; preds = %10962
  br label %10968

10968:                                            ; preds = %10967
  br label %10969

10969:                                            ; preds = %10968
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %10970 = call ptr @__errno_location() #12
  %10971 = load i32, ptr %10970, align 4, !tbaa !5
  store i32 %10971, ptr %311, align 4, !tbaa !5
  %10972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10973 = call i32 @s2n_print_stacktrace(ptr noundef %10972)
  %10974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10975 = trunc i8 %10974 to i1
  br i1 %10975, label %10976, label %10998

10976:                                            ; preds = %10969
  %10977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10978 = call i32 @fileno(ptr noundef %10977) #11
  %10979 = call i32 @isatty(i32 noundef %10978) #11
  %10980 = icmp ne i32 %10979, 0
  br i1 %10980, label %10981, label %10998

10981:                                            ; preds = %10976
  %10982 = load i32, ptr %311, align 4, !tbaa !5
  %10983 = call ptr @__errno_location() #12
  store i32 %10982, ptr %10983, align 4, !tbaa !5
  %10984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10985 = load i32, ptr @test_count, align 4, !tbaa !5
  %10986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10987 = load i32, ptr %10986, align 4, !tbaa !5
  %10988 = call ptr @s2n_strerror(i32 noundef %10987, ptr noundef @.str.4)
  %10989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10990 = load i32, ptr %10989, align 4, !tbaa !5
  %10991 = call ptr @s2n_strerror_debug(i32 noundef %10990, ptr noundef @.str.4)
  %10992 = call ptr @__errno_location() #12
  %10993 = load i32, ptr %10992, align 4, !tbaa !5
  %10994 = call ptr @strerror(i32 noundef %10993) #11
  %10995 = call ptr @__errno_location() #12
  %10996 = load i32, ptr %10995, align 4, !tbaa !5
  %10997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10984, ptr noundef @.str.2, i32 noundef %10985, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 704, ptr noundef %10988, ptr noundef %10991, ptr noundef %10994, i32 noundef %10996) #11
  br label %11015

10998:                                            ; preds = %10976, %10969
  %10999 = load i32, ptr %311, align 4, !tbaa !5
  %11000 = call ptr @__errno_location() #12
  store i32 %10999, ptr %11000, align 4, !tbaa !5
  %11001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11002 = load i32, ptr @test_count, align 4, !tbaa !5
  %11003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11004 = load i32, ptr %11003, align 4, !tbaa !5
  %11005 = call ptr @s2n_strerror(i32 noundef %11004, ptr noundef @.str.4)
  %11006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11007 = load i32, ptr %11006, align 4, !tbaa !5
  %11008 = call ptr @s2n_strerror_debug(i32 noundef %11007, ptr noundef @.str.4)
  %11009 = call ptr @__errno_location() #12
  %11010 = load i32, ptr %11009, align 4, !tbaa !5
  %11011 = call ptr @strerror(i32 noundef %11010) #11
  %11012 = call ptr @__errno_location() #12
  %11013 = load i32, ptr %11012, align 4, !tbaa !5
  %11014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11001, ptr noundef @.str.5, i32 noundef %11002, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 704, ptr noundef %11005, ptr noundef %11008, ptr noundef %11011, i32 noundef %11013) #11
  br label %11015

11015:                                            ; preds = %10998, %10981
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %11016

11016:                                            ; preds = %11015
  br label %11017

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

11018:                                            ; No predecessors!
  br label %11019

11019:                                            ; preds = %11018
  br label %11020

11020:                                            ; preds = %11019, %10962
  br label %11021

11021:                                            ; preds = %11020
  br label %11022

11022:                                            ; preds = %11021
  br label %11023

11023:                                            ; preds = %11022
  %11024 = load i32, ptr @test_count, align 4, !tbaa !5
  %11025 = add nsw i32 %11024, 1
  store i32 %11025, ptr @test_count, align 4, !tbaa !5
  %11026 = load ptr, ptr %310, align 8, !tbaa !9
  %11027 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %11026, ptr noundef @verify_host_accept_everything, ptr noundef %308)
  %11028 = icmp eq i32 %11027, -1
  br i1 %11028, label %11029, label %11082

11029:                                            ; preds = %11023
  br label %11030

11030:                                            ; preds = %11029
  br label %11031

11031:                                            ; preds = %11030
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %11032 = call ptr @__errno_location() #12
  %11033 = load i32, ptr %11032, align 4, !tbaa !5
  store i32 %11033, ptr %312, align 4, !tbaa !5
  %11034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11035 = call i32 @s2n_print_stacktrace(ptr noundef %11034)
  %11036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11037 = trunc i8 %11036 to i1
  br i1 %11037, label %11038, label %11060

11038:                                            ; preds = %11031
  %11039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11040 = call i32 @fileno(ptr noundef %11039) #11
  %11041 = call i32 @isatty(i32 noundef %11040) #11
  %11042 = icmp ne i32 %11041, 0
  br i1 %11042, label %11043, label %11060

11043:                                            ; preds = %11038
  %11044 = load i32, ptr %312, align 4, !tbaa !5
  %11045 = call ptr @__errno_location() #12
  store i32 %11044, ptr %11045, align 4, !tbaa !5
  %11046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11047 = load i32, ptr @test_count, align 4, !tbaa !5
  %11048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11049 = load i32, ptr %11048, align 4, !tbaa !5
  %11050 = call ptr @s2n_strerror(i32 noundef %11049, ptr noundef @.str.4)
  %11051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11052 = load i32, ptr %11051, align 4, !tbaa !5
  %11053 = call ptr @s2n_strerror_debug(i32 noundef %11052, ptr noundef @.str.4)
  %11054 = call ptr @__errno_location() #12
  %11055 = load i32, ptr %11054, align 4, !tbaa !5
  %11056 = call ptr @strerror(i32 noundef %11055) #11
  %11057 = call ptr @__errno_location() #12
  %11058 = load i32, ptr %11057, align 4, !tbaa !5
  %11059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11046, ptr noundef @.str.2, i32 noundef %11047, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 705, ptr noundef %11050, ptr noundef %11053, ptr noundef %11056, i32 noundef %11058) #11
  br label %11077

11060:                                            ; preds = %11038, %11031
  %11061 = load i32, ptr %312, align 4, !tbaa !5
  %11062 = call ptr @__errno_location() #12
  store i32 %11061, ptr %11062, align 4, !tbaa !5
  %11063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11064 = load i32, ptr @test_count, align 4, !tbaa !5
  %11065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11066 = load i32, ptr %11065, align 4, !tbaa !5
  %11067 = call ptr @s2n_strerror(i32 noundef %11066, ptr noundef @.str.4)
  %11068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11069 = load i32, ptr %11068, align 4, !tbaa !5
  %11070 = call ptr @s2n_strerror_debug(i32 noundef %11069, ptr noundef @.str.4)
  %11071 = call ptr @__errno_location() #12
  %11072 = load i32, ptr %11071, align 4, !tbaa !5
  %11073 = call ptr @strerror(i32 noundef %11072) #11
  %11074 = call ptr @__errno_location() #12
  %11075 = load i32, ptr %11074, align 4, !tbaa !5
  %11076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11063, ptr noundef @.str.5, i32 noundef %11064, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 705, ptr noundef %11067, ptr noundef %11070, ptr noundef %11073, i32 noundef %11075) #11
  br label %11077

11077:                                            ; preds = %11060, %11043
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %11078

11078:                                            ; preds = %11077
  br label %11079

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

11080:                                            ; No predecessors!
  br label %11081

11081:                                            ; preds = %11080
  br label %11082

11082:                                            ; preds = %11081, %11023
  br label %11083

11083:                                            ; preds = %11082
  br label %11084

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

11085:                                            ; preds = %11084
  %11086 = load i32, ptr @test_count, align 4, !tbaa !5
  %11087 = add nsw i32 %11086, 1
  store i32 %11087, ptr @test_count, align 4, !tbaa !5
  %11088 = load ptr, ptr %310, align 8, !tbaa !9
  %11089 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %11088, ptr noundef @.str.11, ptr noundef %313)
  %11090 = getelementptr inbounds %struct.s2n_result, ptr %314, i32 0, i32 0
  store i32 %11089, ptr %11090, align 4
  %11091 = getelementptr inbounds %struct.s2n_result, ptr %314, i32 0, i32 0
  %11092 = load i32, ptr %11091, align 4
  %11093 = call zeroext i1 @s2n_result_is_ok(i32 %11092)
  br i1 %11093, label %11147, label %11094

11094:                                            ; preds = %11085
  br label %11095

11095:                                            ; preds = %11094
  br label %11096

11096:                                            ; preds = %11095
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %11097 = call ptr @__errno_location() #12
  %11098 = load i32, ptr %11097, align 4, !tbaa !5
  store i32 %11098, ptr %315, align 4, !tbaa !5
  %11099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11100 = call i32 @s2n_print_stacktrace(ptr noundef %11099)
  %11101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11102 = trunc i8 %11101 to i1
  br i1 %11102, label %11103, label %11125

11103:                                            ; preds = %11096
  %11104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11105 = call i32 @fileno(ptr noundef %11104) #11
  %11106 = call i32 @isatty(i32 noundef %11105) #11
  %11107 = icmp ne i32 %11106, 0
  br i1 %11107, label %11108, label %11125

11108:                                            ; preds = %11103
  %11109 = load i32, ptr %315, align 4, !tbaa !5
  %11110 = call ptr @__errno_location() #12
  store i32 %11109, ptr %11110, align 4, !tbaa !5
  %11111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11112 = load i32, ptr @test_count, align 4, !tbaa !5
  %11113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11114 = load i32, ptr %11113, align 4, !tbaa !5
  %11115 = call ptr @s2n_strerror(i32 noundef %11114, ptr noundef @.str.4)
  %11116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11117 = load i32, ptr %11116, align 4, !tbaa !5
  %11118 = call ptr @s2n_strerror_debug(i32 noundef %11117, ptr noundef @.str.4)
  %11119 = call ptr @__errno_location() #12
  %11120 = load i32, ptr %11119, align 4, !tbaa !5
  %11121 = call ptr @strerror(i32 noundef %11120) #11
  %11122 = call ptr @__errno_location() #12
  %11123 = load i32, ptr %11122, align 4, !tbaa !5
  %11124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11111, ptr noundef @.str.2, i32 noundef %11112, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 708, ptr noundef %11115, ptr noundef %11118, ptr noundef %11121, i32 noundef %11123) #11
  br label %11142

11125:                                            ; preds = %11103, %11096
  %11126 = load i32, ptr %315, align 4, !tbaa !5
  %11127 = call ptr @__errno_location() #12
  store i32 %11126, ptr %11127, align 4, !tbaa !5
  %11128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11129 = load i32, ptr @test_count, align 4, !tbaa !5
  %11130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11131 = load i32, ptr %11130, align 4, !tbaa !5
  %11132 = call ptr @s2n_strerror(i32 noundef %11131, ptr noundef @.str.4)
  %11133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11134 = load i32, ptr %11133, align 4, !tbaa !5
  %11135 = call ptr @s2n_strerror_debug(i32 noundef %11134, ptr noundef @.str.4)
  %11136 = call ptr @__errno_location() #12
  %11137 = load i32, ptr %11136, align 4, !tbaa !5
  %11138 = call ptr @strerror(i32 noundef %11137) #11
  %11139 = call ptr @__errno_location() #12
  %11140 = load i32, ptr %11139, align 4, !tbaa !5
  %11141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11128, ptr noundef @.str.5, i32 noundef %11129, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 708, ptr noundef %11132, ptr noundef %11135, ptr noundef %11138, i32 noundef %11140) #11
  br label %11142

11142:                                            ; preds = %11125, %11108
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %11143

11143:                                            ; preds = %11142
  br label %11144

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

11145:                                            ; No predecessors!
  br label %11146

11146:                                            ; preds = %11145
  br label %11147

11147:                                            ; preds = %11146, %11085
  br label %11148

11148:                                            ; preds = %11147
  br label %11149

11149:                                            ; preds = %11148
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #11
  %11150 = getelementptr inbounds %struct.s2n_stuffer, ptr %313, i32 0, i32 2
  %11151 = load i32, ptr %11150, align 4, !tbaa !15
  %11152 = getelementptr inbounds %struct.s2n_stuffer, ptr %313, i32 0, i32 1
  %11153 = load i32, ptr %11152, align 8, !tbaa !18
  %11154 = sub i32 %11151, %11153
  store i32 %11154, ptr %316, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %317) #11
  %11155 = load i32, ptr %316, align 4, !tbaa !5
  %11156 = call ptr @s2n_stuffer_raw_read(ptr noundef %313, i32 noundef %11155)
  store ptr %11156, ptr %317, align 8, !tbaa !9
  br label %11157

11157:                                            ; preds = %11149
  %11158 = load i32, ptr @test_count, align 4, !tbaa !5
  %11159 = add nsw i32 %11158, 1
  store i32 %11159, ptr @test_count, align 4, !tbaa !5
  %11160 = load ptr, ptr %317, align 8, !tbaa !9
  %11161 = icmp eq ptr %11160, null
  br i1 %11161, label %11162, label %11215

11162:                                            ; preds = %11157
  br label %11163

11163:                                            ; preds = %11162
  br label %11164

11164:                                            ; preds = %11163
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %11165 = call ptr @__errno_location() #12
  %11166 = load i32, ptr %11165, align 4, !tbaa !5
  store i32 %11166, ptr %318, align 4, !tbaa !5
  %11167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11168 = call i32 @s2n_print_stacktrace(ptr noundef %11167)
  %11169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11170 = trunc i8 %11169 to i1
  br i1 %11170, label %11171, label %11193

11171:                                            ; preds = %11164
  %11172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11173 = call i32 @fileno(ptr noundef %11172) #11
  %11174 = call i32 @isatty(i32 noundef %11173) #11
  %11175 = icmp ne i32 %11174, 0
  br i1 %11175, label %11176, label %11193

11176:                                            ; preds = %11171
  %11177 = load i32, ptr %318, align 4, !tbaa !5
  %11178 = call ptr @__errno_location() #12
  store i32 %11177, ptr %11178, align 4, !tbaa !5
  %11179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11180 = load i32, ptr @test_count, align 4, !tbaa !5
  %11181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11182 = load i32, ptr %11181, align 4, !tbaa !5
  %11183 = call ptr @s2n_strerror(i32 noundef %11182, ptr noundef @.str.4)
  %11184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11185 = load i32, ptr %11184, align 4, !tbaa !5
  %11186 = call ptr @s2n_strerror_debug(i32 noundef %11185, ptr noundef @.str.4)
  %11187 = call ptr @__errno_location() #12
  %11188 = load i32, ptr %11187, align 4, !tbaa !5
  %11189 = call ptr @strerror(i32 noundef %11188) #11
  %11190 = call ptr @__errno_location() #12
  %11191 = load i32, ptr %11190, align 4, !tbaa !5
  %11192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11179, ptr noundef @.str.2, i32 noundef %11180, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 711, ptr noundef %11183, ptr noundef %11186, ptr noundef %11189, i32 noundef %11191) #11
  br label %11210

11193:                                            ; preds = %11171, %11164
  %11194 = load i32, ptr %318, align 4, !tbaa !5
  %11195 = call ptr @__errno_location() #12
  store i32 %11194, ptr %11195, align 4, !tbaa !5
  %11196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11197 = load i32, ptr @test_count, align 4, !tbaa !5
  %11198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11199 = load i32, ptr %11198, align 4, !tbaa !5
  %11200 = call ptr @s2n_strerror(i32 noundef %11199, ptr noundef @.str.4)
  %11201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11202 = load i32, ptr %11201, align 4, !tbaa !5
  %11203 = call ptr @s2n_strerror_debug(i32 noundef %11202, ptr noundef @.str.4)
  %11204 = call ptr @__errno_location() #12
  %11205 = load i32, ptr %11204, align 4, !tbaa !5
  %11206 = call ptr @strerror(i32 noundef %11205) #11
  %11207 = call ptr @__errno_location() #12
  %11208 = load i32, ptr %11207, align 4, !tbaa !5
  %11209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11196, ptr noundef @.str.5, i32 noundef %11197, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 711, ptr noundef %11200, ptr noundef %11203, ptr noundef %11206, i32 noundef %11208) #11
  br label %11210

11210:                                            ; preds = %11193, %11176
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %11211

11211:                                            ; preds = %11210
  br label %11212

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

11213:                                            ; No predecessors!
  br label %11214

11214:                                            ; preds = %11213
  br label %11215

11215:                                            ; preds = %11214, %11157
  br label %11216

11216:                                            ; preds = %11215
  br label %11217

11217:                                            ; preds = %11216
  br label %11218

11218:                                            ; preds = %11217
  %11219 = load i32, ptr @test_count, align 4, !tbaa !5
  %11220 = add nsw i32 %11219, 1
  store i32 %11220, ptr @test_count, align 4, !tbaa !5
  %11221 = load ptr, ptr %310, align 8, !tbaa !9
  %11222 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11221, ptr noundef @.str.23)
  %11223 = icmp eq i32 %11222, -1
  br i1 %11223, label %11224, label %11277

11224:                                            ; preds = %11218
  br label %11225

11225:                                            ; preds = %11224
  br label %11226

11226:                                            ; preds = %11225
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %11227 = call ptr @__errno_location() #12
  %11228 = load i32, ptr %11227, align 4, !tbaa !5
  store i32 %11228, ptr %319, align 4, !tbaa !5
  %11229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11230 = call i32 @s2n_print_stacktrace(ptr noundef %11229)
  %11231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11232 = trunc i8 %11231 to i1
  br i1 %11232, label %11233, label %11255

11233:                                            ; preds = %11226
  %11234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11235 = call i32 @fileno(ptr noundef %11234) #11
  %11236 = call i32 @isatty(i32 noundef %11235) #11
  %11237 = icmp ne i32 %11236, 0
  br i1 %11237, label %11238, label %11255

11238:                                            ; preds = %11233
  %11239 = load i32, ptr %319, align 4, !tbaa !5
  %11240 = call ptr @__errno_location() #12
  store i32 %11239, ptr %11240, align 4, !tbaa !5
  %11241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11242 = load i32, ptr @test_count, align 4, !tbaa !5
  %11243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11244 = load i32, ptr %11243, align 4, !tbaa !5
  %11245 = call ptr @s2n_strerror(i32 noundef %11244, ptr noundef @.str.4)
  %11246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11247 = load i32, ptr %11246, align 4, !tbaa !5
  %11248 = call ptr @s2n_strerror_debug(i32 noundef %11247, ptr noundef @.str.4)
  %11249 = call ptr @__errno_location() #12
  %11250 = load i32, ptr %11249, align 4, !tbaa !5
  %11251 = call ptr @strerror(i32 noundef %11250) #11
  %11252 = call ptr @__errno_location() #12
  %11253 = load i32, ptr %11252, align 4, !tbaa !5
  %11254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11241, ptr noundef @.str.2, i32 noundef %11242, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 713, ptr noundef %11245, ptr noundef %11248, ptr noundef %11251, i32 noundef %11253) #11
  br label %11272

11255:                                            ; preds = %11233, %11226
  %11256 = load i32, ptr %319, align 4, !tbaa !5
  %11257 = call ptr @__errno_location() #12
  store i32 %11256, ptr %11257, align 4, !tbaa !5
  %11258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11259 = load i32, ptr @test_count, align 4, !tbaa !5
  %11260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11261 = load i32, ptr %11260, align 4, !tbaa !5
  %11262 = call ptr @s2n_strerror(i32 noundef %11261, ptr noundef @.str.4)
  %11263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11264 = load i32, ptr %11263, align 4, !tbaa !5
  %11265 = call ptr @s2n_strerror_debug(i32 noundef %11264, ptr noundef @.str.4)
  %11266 = call ptr @__errno_location() #12
  %11267 = load i32, ptr %11266, align 4, !tbaa !5
  %11268 = call ptr @strerror(i32 noundef %11267) #11
  %11269 = call ptr @__errno_location() #12
  %11270 = load i32, ptr %11269, align 4, !tbaa !5
  %11271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11258, ptr noundef @.str.5, i32 noundef %11259, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 713, ptr noundef %11262, ptr noundef %11265, ptr noundef %11268, i32 noundef %11270) #11
  br label %11272

11272:                                            ; preds = %11255, %11238
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %11273

11273:                                            ; preds = %11272
  br label %11274

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

11275:                                            ; No predecessors!
  br label %11276

11276:                                            ; preds = %11275
  br label %11277

11277:                                            ; preds = %11276, %11218
  br label %11278

11278:                                            ; preds = %11277
  br label %11279

11279:                                            ; preds = %11278
  call void @llvm.lifetime.start.p0(i64 48, ptr %320) #11
  br label %11280

11280:                                            ; preds = %11279
  %11281 = load i32, ptr @test_count, align 4, !tbaa !5
  %11282 = add nsw i32 %11281, 1
  store i32 %11282, ptr @test_count, align 4, !tbaa !5
  %11283 = call i32 @s2n_pkey_zero_init(ptr noundef %320)
  %11284 = icmp eq i32 %11283, -1
  br i1 %11284, label %11285, label %11338

11285:                                            ; preds = %11280
  br label %11286

11286:                                            ; preds = %11285
  br label %11287

11287:                                            ; preds = %11286
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %11288 = call ptr @__errno_location() #12
  %11289 = load i32, ptr %11288, align 4, !tbaa !5
  store i32 %11289, ptr %321, align 4, !tbaa !5
  %11290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11291 = call i32 @s2n_print_stacktrace(ptr noundef %11290)
  %11292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11293 = trunc i8 %11292 to i1
  br i1 %11293, label %11294, label %11316

11294:                                            ; preds = %11287
  %11295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11296 = call i32 @fileno(ptr noundef %11295) #11
  %11297 = call i32 @isatty(i32 noundef %11296) #11
  %11298 = icmp ne i32 %11297, 0
  br i1 %11298, label %11299, label %11316

11299:                                            ; preds = %11294
  %11300 = load i32, ptr %321, align 4, !tbaa !5
  %11301 = call ptr @__errno_location() #12
  store i32 %11300, ptr %11301, align 4, !tbaa !5
  %11302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11303 = load i32, ptr @test_count, align 4, !tbaa !5
  %11304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11305 = load i32, ptr %11304, align 4, !tbaa !5
  %11306 = call ptr @s2n_strerror(i32 noundef %11305, ptr noundef @.str.4)
  %11307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11308 = load i32, ptr %11307, align 4, !tbaa !5
  %11309 = call ptr @s2n_strerror_debug(i32 noundef %11308, ptr noundef @.str.4)
  %11310 = call ptr @__errno_location() #12
  %11311 = load i32, ptr %11310, align 4, !tbaa !5
  %11312 = call ptr @strerror(i32 noundef %11311) #11
  %11313 = call ptr @__errno_location() #12
  %11314 = load i32, ptr %11313, align 4, !tbaa !5
  %11315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11302, ptr noundef @.str.2, i32 noundef %11303, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 716, ptr noundef %11306, ptr noundef %11309, ptr noundef %11312, i32 noundef %11314) #11
  br label %11333

11316:                                            ; preds = %11294, %11287
  %11317 = load i32, ptr %321, align 4, !tbaa !5
  %11318 = call ptr @__errno_location() #12
  store i32 %11317, ptr %11318, align 4, !tbaa !5
  %11319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11320 = load i32, ptr @test_count, align 4, !tbaa !5
  %11321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11322 = load i32, ptr %11321, align 4, !tbaa !5
  %11323 = call ptr @s2n_strerror(i32 noundef %11322, ptr noundef @.str.4)
  %11324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11325 = load i32, ptr %11324, align 4, !tbaa !5
  %11326 = call ptr @s2n_strerror_debug(i32 noundef %11325, ptr noundef @.str.4)
  %11327 = call ptr @__errno_location() #12
  %11328 = load i32, ptr %11327, align 4, !tbaa !5
  %11329 = call ptr @strerror(i32 noundef %11328) #11
  %11330 = call ptr @__errno_location() #12
  %11331 = load i32, ptr %11330, align 4, !tbaa !5
  %11332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11319, ptr noundef @.str.5, i32 noundef %11320, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 716, ptr noundef %11323, ptr noundef %11326, ptr noundef %11329, i32 noundef %11331) #11
  br label %11333

11333:                                            ; preds = %11316, %11299
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %11334

11334:                                            ; preds = %11333
  br label %11335

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

11336:                                            ; No predecessors!
  br label %11337

11337:                                            ; preds = %11336
  br label %11338

11338:                                            ; preds = %11337, %11280
  br label %11339

11339:                                            ; preds = %11338
  br label %11340

11340:                                            ; preds = %11339
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  store i32 -1, ptr %322, align 4, !tbaa !5
  br label %11341

11341:                                            ; preds = %11340
  %11342 = load i32, ptr @test_count, align 4, !tbaa !5
  %11343 = add nsw i32 %11342, 1
  store i32 %11343, ptr @test_count, align 4, !tbaa !5
  %11344 = load ptr, ptr %310, align 8, !tbaa !9
  %11345 = load ptr, ptr %317, align 8, !tbaa !9
  %11346 = load i32, ptr %316, align 4, !tbaa !5
  %11347 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %309, ptr noundef %11344, ptr noundef %11345, i32 noundef %11346, ptr noundef %322, ptr noundef %320)
  %11348 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  store i32 %11347, ptr %11348, align 4
  %11349 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  %11350 = load i32, ptr %11349, align 4
  %11351 = call zeroext i1 @s2n_result_is_ok(i32 %11350)
  br i1 %11351, label %11405, label %11352

11352:                                            ; preds = %11341
  br label %11353

11353:                                            ; preds = %11352
  br label %11354

11354:                                            ; preds = %11353
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #11
  %11355 = call ptr @__errno_location() #12
  %11356 = load i32, ptr %11355, align 4, !tbaa !5
  store i32 %11356, ptr %324, align 4, !tbaa !5
  %11357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11358 = call i32 @s2n_print_stacktrace(ptr noundef %11357)
  %11359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11360 = trunc i8 %11359 to i1
  br i1 %11360, label %11361, label %11383

11361:                                            ; preds = %11354
  %11362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11363 = call i32 @fileno(ptr noundef %11362) #11
  %11364 = call i32 @isatty(i32 noundef %11363) #11
  %11365 = icmp ne i32 %11364, 0
  br i1 %11365, label %11366, label %11383

11366:                                            ; preds = %11361
  %11367 = load i32, ptr %324, align 4, !tbaa !5
  %11368 = call ptr @__errno_location() #12
  store i32 %11367, ptr %11368, align 4, !tbaa !5
  %11369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11370 = load i32, ptr @test_count, align 4, !tbaa !5
  %11371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11372 = load i32, ptr %11371, align 4, !tbaa !5
  %11373 = call ptr @s2n_strerror(i32 noundef %11372, ptr noundef @.str.4)
  %11374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11375 = load i32, ptr %11374, align 4, !tbaa !5
  %11376 = call ptr @s2n_strerror_debug(i32 noundef %11375, ptr noundef @.str.4)
  %11377 = call ptr @__errno_location() #12
  %11378 = load i32, ptr %11377, align 4, !tbaa !5
  %11379 = call ptr @strerror(i32 noundef %11378) #11
  %11380 = call ptr @__errno_location() #12
  %11381 = load i32, ptr %11380, align 4, !tbaa !5
  %11382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11369, ptr noundef @.str.2, i32 noundef %11370, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 718, ptr noundef %11373, ptr noundef %11376, ptr noundef %11379, i32 noundef %11381) #11
  br label %11400

11383:                                            ; preds = %11361, %11354
  %11384 = load i32, ptr %324, align 4, !tbaa !5
  %11385 = call ptr @__errno_location() #12
  store i32 %11384, ptr %11385, align 4, !tbaa !5
  %11386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11387 = load i32, ptr @test_count, align 4, !tbaa !5
  %11388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11389 = load i32, ptr %11388, align 4, !tbaa !5
  %11390 = call ptr @s2n_strerror(i32 noundef %11389, ptr noundef @.str.4)
  %11391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11392 = load i32, ptr %11391, align 4, !tbaa !5
  %11393 = call ptr @s2n_strerror_debug(i32 noundef %11392, ptr noundef @.str.4)
  %11394 = call ptr @__errno_location() #12
  %11395 = load i32, ptr %11394, align 4, !tbaa !5
  %11396 = call ptr @strerror(i32 noundef %11395) #11
  %11397 = call ptr @__errno_location() #12
  %11398 = load i32, ptr %11397, align 4, !tbaa !5
  %11399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11386, ptr noundef @.str.5, i32 noundef %11387, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 718, ptr noundef %11390, ptr noundef %11393, ptr noundef %11396, i32 noundef %11398) #11
  br label %11400

11400:                                            ; preds = %11383, %11366
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #11
  br label %11401

11401:                                            ; preds = %11400
  br label %11402

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

11403:                                            ; No predecessors!
  br label %11404

11404:                                            ; preds = %11403
  br label %11405

11405:                                            ; preds = %11404, %11341
  br label %11406

11406:                                            ; preds = %11405
  br label %11407

11407:                                            ; preds = %11406
  br label %11408

11408:                                            ; preds = %11407
  %11409 = load i32, ptr @test_count, align 4, !tbaa !5
  %11410 = add nsw i32 %11409, 1
  store i32 %11410, ptr @test_count, align 4, !tbaa !5
  %11411 = getelementptr inbounds %struct.host_verify_data, ptr %308, i32 0, i32 2
  %11412 = load i8, ptr %11411, align 1, !tbaa !19
  %11413 = zext i8 %11412 to i32
  %11414 = icmp eq i32 1, %11413
  br i1 %11414, label %11468, label %11415

11415:                                            ; preds = %11408
  br label %11416

11416:                                            ; preds = %11415
  br label %11417

11417:                                            ; preds = %11416
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #11
  %11418 = call ptr @__errno_location() #12
  %11419 = load i32, ptr %11418, align 4, !tbaa !5
  store i32 %11419, ptr %325, align 4, !tbaa !5
  %11420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11421 = call i32 @s2n_print_stacktrace(ptr noundef %11420)
  %11422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11423 = trunc i8 %11422 to i1
  br i1 %11423, label %11424, label %11446

11424:                                            ; preds = %11417
  %11425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11426 = call i32 @fileno(ptr noundef %11425) #11
  %11427 = call i32 @isatty(i32 noundef %11426) #11
  %11428 = icmp ne i32 %11427, 0
  br i1 %11428, label %11429, label %11446

11429:                                            ; preds = %11424
  %11430 = load i32, ptr %325, align 4, !tbaa !5
  %11431 = call ptr @__errno_location() #12
  store i32 %11430, ptr %11431, align 4, !tbaa !5
  %11432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11433 = load i32, ptr @test_count, align 4, !tbaa !5
  %11434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11435 = load i32, ptr %11434, align 4, !tbaa !5
  %11436 = call ptr @s2n_strerror(i32 noundef %11435, ptr noundef @.str.4)
  %11437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11438 = load i32, ptr %11437, align 4, !tbaa !5
  %11439 = call ptr @s2n_strerror_debug(i32 noundef %11438, ptr noundef @.str.4)
  %11440 = call ptr @__errno_location() #12
  %11441 = load i32, ptr %11440, align 4, !tbaa !5
  %11442 = call ptr @strerror(i32 noundef %11441) #11
  %11443 = call ptr @__errno_location() #12
  %11444 = load i32, ptr %11443, align 4, !tbaa !5
  %11445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11432, ptr noundef @.str.2, i32 noundef %11433, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 720, ptr noundef %11436, ptr noundef %11439, ptr noundef %11442, i32 noundef %11444) #11
  br label %11463

11446:                                            ; preds = %11424, %11417
  %11447 = load i32, ptr %325, align 4, !tbaa !5
  %11448 = call ptr @__errno_location() #12
  store i32 %11447, ptr %11448, align 4, !tbaa !5
  %11449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11450 = load i32, ptr @test_count, align 4, !tbaa !5
  %11451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11452 = load i32, ptr %11451, align 4, !tbaa !5
  %11453 = call ptr @s2n_strerror(i32 noundef %11452, ptr noundef @.str.4)
  %11454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11455 = load i32, ptr %11454, align 4, !tbaa !5
  %11456 = call ptr @s2n_strerror_debug(i32 noundef %11455, ptr noundef @.str.4)
  %11457 = call ptr @__errno_location() #12
  %11458 = load i32, ptr %11457, align 4, !tbaa !5
  %11459 = call ptr @strerror(i32 noundef %11458) #11
  %11460 = call ptr @__errno_location() #12
  %11461 = load i32, ptr %11460, align 4, !tbaa !5
  %11462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11449, ptr noundef @.str.5, i32 noundef %11450, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 720, ptr noundef %11453, ptr noundef %11456, ptr noundef %11459, i32 noundef %11461) #11
  br label %11463

11463:                                            ; preds = %11446, %11429
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #11
  br label %11464

11464:                                            ; preds = %11463
  br label %11465

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

11466:                                            ; No predecessors!
  br label %11467

11467:                                            ; preds = %11466
  br label %11468

11468:                                            ; preds = %11467, %11408
  br label %11469

11469:                                            ; preds = %11468
  br label %11470

11470:                                            ; preds = %11469
  br label %11471

11471:                                            ; preds = %11470
  %11472 = load i32, ptr @test_count, align 4, !tbaa !5
  %11473 = add nsw i32 %11472, 1
  store i32 %11473, ptr @test_count, align 4, !tbaa !5
  %11474 = load i32, ptr %322, align 4, !tbaa !5
  %11475 = icmp eq i32 0, %11474
  br i1 %11475, label %11529, label %11476

11476:                                            ; preds = %11471
  br label %11477

11477:                                            ; preds = %11476
  br label %11478

11478:                                            ; preds = %11477
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #11
  %11479 = call ptr @__errno_location() #12
  %11480 = load i32, ptr %11479, align 4, !tbaa !5
  store i32 %11480, ptr %326, align 4, !tbaa !5
  %11481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11482 = call i32 @s2n_print_stacktrace(ptr noundef %11481)
  %11483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11484 = trunc i8 %11483 to i1
  br i1 %11484, label %11485, label %11507

11485:                                            ; preds = %11478
  %11486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11487 = call i32 @fileno(ptr noundef %11486) #11
  %11488 = call i32 @isatty(i32 noundef %11487) #11
  %11489 = icmp ne i32 %11488, 0
  br i1 %11489, label %11490, label %11507

11490:                                            ; preds = %11485
  %11491 = load i32, ptr %326, align 4, !tbaa !5
  %11492 = call ptr @__errno_location() #12
  store i32 %11491, ptr %11492, align 4, !tbaa !5
  %11493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11494 = load i32, ptr @test_count, align 4, !tbaa !5
  %11495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11496 = load i32, ptr %11495, align 4, !tbaa !5
  %11497 = call ptr @s2n_strerror(i32 noundef %11496, ptr noundef @.str.4)
  %11498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11499 = load i32, ptr %11498, align 4, !tbaa !5
  %11500 = call ptr @s2n_strerror_debug(i32 noundef %11499, ptr noundef @.str.4)
  %11501 = call ptr @__errno_location() #12
  %11502 = load i32, ptr %11501, align 4, !tbaa !5
  %11503 = call ptr @strerror(i32 noundef %11502) #11
  %11504 = call ptr @__errno_location() #12
  %11505 = load i32, ptr %11504, align 4, !tbaa !5
  %11506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11493, ptr noundef @.str.2, i32 noundef %11494, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 721, ptr noundef %11497, ptr noundef %11500, ptr noundef %11503, i32 noundef %11505) #11
  br label %11524

11507:                                            ; preds = %11485, %11478
  %11508 = load i32, ptr %326, align 4, !tbaa !5
  %11509 = call ptr @__errno_location() #12
  store i32 %11508, ptr %11509, align 4, !tbaa !5
  %11510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11511 = load i32, ptr @test_count, align 4, !tbaa !5
  %11512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11513 = load i32, ptr %11512, align 4, !tbaa !5
  %11514 = call ptr @s2n_strerror(i32 noundef %11513, ptr noundef @.str.4)
  %11515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11516 = load i32, ptr %11515, align 4, !tbaa !5
  %11517 = call ptr @s2n_strerror_debug(i32 noundef %11516, ptr noundef @.str.4)
  %11518 = call ptr @__errno_location() #12
  %11519 = load i32, ptr %11518, align 4, !tbaa !5
  %11520 = call ptr @strerror(i32 noundef %11519) #11
  %11521 = call ptr @__errno_location() #12
  %11522 = load i32, ptr %11521, align 4, !tbaa !5
  %11523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11510, ptr noundef @.str.5, i32 noundef %11511, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 721, ptr noundef %11514, ptr noundef %11517, ptr noundef %11520, i32 noundef %11522) #11
  br label %11524

11524:                                            ; preds = %11507, %11490
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #11
  br label %11525

11525:                                            ; preds = %11524
  br label %11526

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

11527:                                            ; No predecessors!
  br label %11528

11528:                                            ; preds = %11527
  br label %11529

11529:                                            ; preds = %11528, %11471
  br label %11530

11530:                                            ; preds = %11529
  br label %11531

11531:                                            ; preds = %11530
  %11532 = load ptr, ptr %310, align 8, !tbaa !9
  %11533 = call i32 @s2n_connection_free(ptr noundef %11532)
  %11534 = call i32 @s2n_pkey_free(ptr noundef %320)
  %11535 = call i32 @s2n_x509_validator_wipe(ptr noundef %309)
  call void @s2n_x509_trust_store_wipe(ptr noundef %306)
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %320) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #11
  %11536 = call i32 @s2n_stuffer_free(ptr noundef %313)
  call void @llvm.lifetime.end.p0(i64 40, ptr %313) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %309) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %308) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %306) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %327) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %327)
  call void @llvm.lifetime.start.p0(i64 8, ptr %328) #11
  store ptr null, ptr %328, align 8, !tbaa !9
  br label %11537

11537:                                            ; preds = %11531
  %11538 = load i32, ptr @test_count, align 4, !tbaa !5
  %11539 = add nsw i32 %11538, 1
  store i32 %11539, ptr @test_count, align 4, !tbaa !5
  %11540 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %11540, ptr %328, align 8, !tbaa !9
  %11541 = icmp eq ptr %11540, null
  br i1 %11541, label %11542, label %11595

11542:                                            ; preds = %11537
  br label %11543

11543:                                            ; preds = %11542
  br label %11544

11544:                                            ; preds = %11543
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  %11545 = call ptr @__errno_location() #12
  %11546 = load i32, ptr %11545, align 4, !tbaa !5
  store i32 %11546, ptr %329, align 4, !tbaa !5
  %11547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11548 = call i32 @s2n_print_stacktrace(ptr noundef %11547)
  %11549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11550 = trunc i8 %11549 to i1
  br i1 %11550, label %11551, label %11573

11551:                                            ; preds = %11544
  %11552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11553 = call i32 @fileno(ptr noundef %11552) #11
  %11554 = call i32 @isatty(i32 noundef %11553) #11
  %11555 = icmp ne i32 %11554, 0
  br i1 %11555, label %11556, label %11573

11556:                                            ; preds = %11551
  %11557 = load i32, ptr %329, align 4, !tbaa !5
  %11558 = call ptr @__errno_location() #12
  store i32 %11557, ptr %11558, align 4, !tbaa !5
  %11559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11560 = load i32, ptr @test_count, align 4, !tbaa !5
  %11561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11562 = load i32, ptr %11561, align 4, !tbaa !5
  %11563 = call ptr @s2n_strerror(i32 noundef %11562, ptr noundef @.str.4)
  %11564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11565 = load i32, ptr %11564, align 4, !tbaa !5
  %11566 = call ptr @s2n_strerror_debug(i32 noundef %11565, ptr noundef @.str.4)
  %11567 = call ptr @__errno_location() #12
  %11568 = load i32, ptr %11567, align 4, !tbaa !5
  %11569 = call ptr @strerror(i32 noundef %11568) #11
  %11570 = call ptr @__errno_location() #12
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  %11572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11559, ptr noundef @.str.2, i32 noundef %11560, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 735, ptr noundef %11563, ptr noundef %11566, ptr noundef %11569, i32 noundef %11571) #11
  br label %11590

11573:                                            ; preds = %11551, %11544
  %11574 = load i32, ptr %329, align 4, !tbaa !5
  %11575 = call ptr @__errno_location() #12
  store i32 %11574, ptr %11575, align 4, !tbaa !5
  %11576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11577 = load i32, ptr @test_count, align 4, !tbaa !5
  %11578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11579 = load i32, ptr %11578, align 4, !tbaa !5
  %11580 = call ptr @s2n_strerror(i32 noundef %11579, ptr noundef @.str.4)
  %11581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11582 = load i32, ptr %11581, align 4, !tbaa !5
  %11583 = call ptr @s2n_strerror_debug(i32 noundef %11582, ptr noundef @.str.4)
  %11584 = call ptr @__errno_location() #12
  %11585 = load i32, ptr %11584, align 4, !tbaa !5
  %11586 = call ptr @strerror(i32 noundef %11585) #11
  %11587 = call ptr @__errno_location() #12
  %11588 = load i32, ptr %11587, align 4, !tbaa !5
  %11589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11576, ptr noundef @.str.5, i32 noundef %11577, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 735, ptr noundef %11580, ptr noundef %11583, ptr noundef %11586, i32 noundef %11588) #11
  br label %11590

11590:                                            ; preds = %11573, %11556
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %11591

11591:                                            ; preds = %11590
  br label %11592

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

11593:                                            ; No predecessors!
  br label %11594

11594:                                            ; preds = %11593
  br label %11595

11595:                                            ; preds = %11594, %11537
  br label %11596

11596:                                            ; preds = %11595
  br label %11597

11597:                                            ; preds = %11596
  br label %11598

11598:                                            ; preds = %11597
  %11599 = load i32, ptr @test_count, align 4, !tbaa !5
  %11600 = add nsw i32 %11599, 1
  store i32 %11600, ptr @test_count, align 4, !tbaa !5
  %11601 = load ptr, ptr %328, align 8, !tbaa !9
  %11602 = call i32 @s2n_read_test_pem(ptr noundef @.str.11, ptr noundef %11601, i64 noundef 12000)
  %11603 = icmp eq i32 %11602, -1
  br i1 %11603, label %11604, label %11657

11604:                                            ; preds = %11598
  br label %11605

11605:                                            ; preds = %11604
  br label %11606

11606:                                            ; preds = %11605
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #11
  %11607 = call ptr @__errno_location() #12
  %11608 = load i32, ptr %11607, align 4, !tbaa !5
  store i32 %11608, ptr %330, align 4, !tbaa !5
  %11609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11610 = call i32 @s2n_print_stacktrace(ptr noundef %11609)
  %11611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11612 = trunc i8 %11611 to i1
  br i1 %11612, label %11613, label %11635

11613:                                            ; preds = %11606
  %11614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11615 = call i32 @fileno(ptr noundef %11614) #11
  %11616 = call i32 @isatty(i32 noundef %11615) #11
  %11617 = icmp ne i32 %11616, 0
  br i1 %11617, label %11618, label %11635

11618:                                            ; preds = %11613
  %11619 = load i32, ptr %330, align 4, !tbaa !5
  %11620 = call ptr @__errno_location() #12
  store i32 %11619, ptr %11620, align 4, !tbaa !5
  %11621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11622 = load i32, ptr @test_count, align 4, !tbaa !5
  %11623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11624 = load i32, ptr %11623, align 4, !tbaa !5
  %11625 = call ptr @s2n_strerror(i32 noundef %11624, ptr noundef @.str.4)
  %11626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11627 = load i32, ptr %11626, align 4, !tbaa !5
  %11628 = call ptr @s2n_strerror_debug(i32 noundef %11627, ptr noundef @.str.4)
  %11629 = call ptr @__errno_location() #12
  %11630 = load i32, ptr %11629, align 4, !tbaa !5
  %11631 = call ptr @strerror(i32 noundef %11630) #11
  %11632 = call ptr @__errno_location() #12
  %11633 = load i32, ptr %11632, align 4, !tbaa !5
  %11634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11621, ptr noundef @.str.2, i32 noundef %11622, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 736, ptr noundef %11625, ptr noundef %11628, ptr noundef %11631, i32 noundef %11633) #11
  br label %11652

11635:                                            ; preds = %11613, %11606
  %11636 = load i32, ptr %330, align 4, !tbaa !5
  %11637 = call ptr @__errno_location() #12
  store i32 %11636, ptr %11637, align 4, !tbaa !5
  %11638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11639 = load i32, ptr @test_count, align 4, !tbaa !5
  %11640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11641 = load i32, ptr %11640, align 4, !tbaa !5
  %11642 = call ptr @s2n_strerror(i32 noundef %11641, ptr noundef @.str.4)
  %11643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11644 = load i32, ptr %11643, align 4, !tbaa !5
  %11645 = call ptr @s2n_strerror_debug(i32 noundef %11644, ptr noundef @.str.4)
  %11646 = call ptr @__errno_location() #12
  %11647 = load i32, ptr %11646, align 4, !tbaa !5
  %11648 = call ptr @strerror(i32 noundef %11647) #11
  %11649 = call ptr @__errno_location() #12
  %11650 = load i32, ptr %11649, align 4, !tbaa !5
  %11651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11638, ptr noundef @.str.5, i32 noundef %11639, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 736, ptr noundef %11642, ptr noundef %11645, ptr noundef %11648, i32 noundef %11650) #11
  br label %11652

11652:                                            ; preds = %11635, %11618
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #11
  br label %11653

11653:                                            ; preds = %11652
  br label %11654

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

11655:                                            ; No predecessors!
  br label %11656

11656:                                            ; preds = %11655
  br label %11657

11657:                                            ; preds = %11656, %11598
  br label %11658

11658:                                            ; preds = %11657
  br label %11659

11659:                                            ; preds = %11658
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #11
  %11660 = load ptr, ptr %328, align 8, !tbaa !9
  %11661 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %327, ptr noundef %11660)
  store i32 %11661, ptr %331, align 4, !tbaa !5
  %11662 = load ptr, ptr %328, align 8, !tbaa !9
  call void @free(ptr noundef %11662) #11
  br label %11663

11663:                                            ; preds = %11659
  %11664 = load i32, ptr @test_count, align 4, !tbaa !5
  %11665 = add nsw i32 %11664, 1
  store i32 %11665, ptr @test_count, align 4, !tbaa !5
  %11666 = load i32, ptr %331, align 4, !tbaa !5
  %11667 = icmp eq i32 0, %11666
  br i1 %11667, label %11721, label %11668

11668:                                            ; preds = %11663
  br label %11669

11669:                                            ; preds = %11668
  br label %11670

11670:                                            ; preds = %11669
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #11
  %11671 = call ptr @__errno_location() #12
  %11672 = load i32, ptr %11671, align 4, !tbaa !5
  store i32 %11672, ptr %332, align 4, !tbaa !5
  %11673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11674 = call i32 @s2n_print_stacktrace(ptr noundef %11673)
  %11675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11676 = trunc i8 %11675 to i1
  br i1 %11676, label %11677, label %11699

11677:                                            ; preds = %11670
  %11678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11679 = call i32 @fileno(ptr noundef %11678) #11
  %11680 = call i32 @isatty(i32 noundef %11679) #11
  %11681 = icmp ne i32 %11680, 0
  br i1 %11681, label %11682, label %11699

11682:                                            ; preds = %11677
  %11683 = load i32, ptr %332, align 4, !tbaa !5
  %11684 = call ptr @__errno_location() #12
  store i32 %11683, ptr %11684, align 4, !tbaa !5
  %11685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11686 = load i32, ptr @test_count, align 4, !tbaa !5
  %11687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11688 = load i32, ptr %11687, align 4, !tbaa !5
  %11689 = call ptr @s2n_strerror(i32 noundef %11688, ptr noundef @.str.4)
  %11690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11691 = load i32, ptr %11690, align 4, !tbaa !5
  %11692 = call ptr @s2n_strerror_debug(i32 noundef %11691, ptr noundef @.str.4)
  %11693 = call ptr @__errno_location() #12
  %11694 = load i32, ptr %11693, align 4, !tbaa !5
  %11695 = call ptr @strerror(i32 noundef %11694) #11
  %11696 = call ptr @__errno_location() #12
  %11697 = load i32, ptr %11696, align 4, !tbaa !5
  %11698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11685, ptr noundef @.str.2, i32 noundef %11686, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 739, ptr noundef %11689, ptr noundef %11692, ptr noundef %11695, i32 noundef %11697) #11
  br label %11716

11699:                                            ; preds = %11677, %11670
  %11700 = load i32, ptr %332, align 4, !tbaa !5
  %11701 = call ptr @__errno_location() #12
  store i32 %11700, ptr %11701, align 4, !tbaa !5
  %11702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11703 = load i32, ptr @test_count, align 4, !tbaa !5
  %11704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11705 = load i32, ptr %11704, align 4, !tbaa !5
  %11706 = call ptr @s2n_strerror(i32 noundef %11705, ptr noundef @.str.4)
  %11707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11708 = load i32, ptr %11707, align 4, !tbaa !5
  %11709 = call ptr @s2n_strerror_debug(i32 noundef %11708, ptr noundef @.str.4)
  %11710 = call ptr @__errno_location() #12
  %11711 = load i32, ptr %11710, align 4, !tbaa !5
  %11712 = call ptr @strerror(i32 noundef %11711) #11
  %11713 = call ptr @__errno_location() #12
  %11714 = load i32, ptr %11713, align 4, !tbaa !5
  %11715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11702, ptr noundef @.str.5, i32 noundef %11703, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 739, ptr noundef %11706, ptr noundef %11709, ptr noundef %11712, i32 noundef %11714) #11
  br label %11716

11716:                                            ; preds = %11699, %11682
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #11
  br label %11717

11717:                                            ; preds = %11716
  br label %11718

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

11719:                                            ; No predecessors!
  br label %11720

11720:                                            ; preds = %11719
  br label %11721

11721:                                            ; preds = %11720, %11663
  br label %11722

11722:                                            ; preds = %11721
  br label %11723

11723:                                            ; preds = %11722
  call void @llvm.lifetime.start.p0(i64 16, ptr %333) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %333, ptr align 8 @__const.main.verify_data.62, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %334) #11
  %11724 = call i32 @s2n_x509_validator_init(ptr noundef %334, ptr noundef %327, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %335) #11
  %11725 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11725, ptr %335, align 8, !tbaa !9
  br label %11726

11726:                                            ; preds = %11723
  %11727 = load i32, ptr @test_count, align 4, !tbaa !5
  %11728 = add nsw i32 %11727, 1
  store i32 %11728, ptr @test_count, align 4, !tbaa !5
  %11729 = load ptr, ptr %335, align 8, !tbaa !9
  %11730 = icmp eq ptr %11729, null
  br i1 %11730, label %11731, label %11784

11731:                                            ; preds = %11726
  br label %11732

11732:                                            ; preds = %11731
  br label %11733

11733:                                            ; preds = %11732
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #11
  %11734 = call ptr @__errno_location() #12
  %11735 = load i32, ptr %11734, align 4, !tbaa !5
  store i32 %11735, ptr %336, align 4, !tbaa !5
  %11736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11737 = call i32 @s2n_print_stacktrace(ptr noundef %11736)
  %11738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11739 = trunc i8 %11738 to i1
  br i1 %11739, label %11740, label %11762

11740:                                            ; preds = %11733
  %11741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11742 = call i32 @fileno(ptr noundef %11741) #11
  %11743 = call i32 @isatty(i32 noundef %11742) #11
  %11744 = icmp ne i32 %11743, 0
  br i1 %11744, label %11745, label %11762

11745:                                            ; preds = %11740
  %11746 = load i32, ptr %336, align 4, !tbaa !5
  %11747 = call ptr @__errno_location() #12
  store i32 %11746, ptr %11747, align 4, !tbaa !5
  %11748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11749 = load i32, ptr @test_count, align 4, !tbaa !5
  %11750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11751 = load i32, ptr %11750, align 4, !tbaa !5
  %11752 = call ptr @s2n_strerror(i32 noundef %11751, ptr noundef @.str.4)
  %11753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11754 = load i32, ptr %11753, align 4, !tbaa !5
  %11755 = call ptr @s2n_strerror_debug(i32 noundef %11754, ptr noundef @.str.4)
  %11756 = call ptr @__errno_location() #12
  %11757 = load i32, ptr %11756, align 4, !tbaa !5
  %11758 = call ptr @strerror(i32 noundef %11757) #11
  %11759 = call ptr @__errno_location() #12
  %11760 = load i32, ptr %11759, align 4, !tbaa !5
  %11761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11748, ptr noundef @.str.2, i32 noundef %11749, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 751, ptr noundef %11752, ptr noundef %11755, ptr noundef %11758, i32 noundef %11760) #11
  br label %11779

11762:                                            ; preds = %11740, %11733
  %11763 = load i32, ptr %336, align 4, !tbaa !5
  %11764 = call ptr @__errno_location() #12
  store i32 %11763, ptr %11764, align 4, !tbaa !5
  %11765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11766 = load i32, ptr @test_count, align 4, !tbaa !5
  %11767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11768 = load i32, ptr %11767, align 4, !tbaa !5
  %11769 = call ptr @s2n_strerror(i32 noundef %11768, ptr noundef @.str.4)
  %11770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11771 = load i32, ptr %11770, align 4, !tbaa !5
  %11772 = call ptr @s2n_strerror_debug(i32 noundef %11771, ptr noundef @.str.4)
  %11773 = call ptr @__errno_location() #12
  %11774 = load i32, ptr %11773, align 4, !tbaa !5
  %11775 = call ptr @strerror(i32 noundef %11774) #11
  %11776 = call ptr @__errno_location() #12
  %11777 = load i32, ptr %11776, align 4, !tbaa !5
  %11778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11765, ptr noundef @.str.5, i32 noundef %11766, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 751, ptr noundef %11769, ptr noundef %11772, ptr noundef %11775, i32 noundef %11777) #11
  br label %11779

11779:                                            ; preds = %11762, %11745
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #11
  br label %11780

11780:                                            ; preds = %11779
  br label %11781

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

11782:                                            ; No predecessors!
  br label %11783

11783:                                            ; preds = %11782
  br label %11784

11784:                                            ; preds = %11783, %11726
  br label %11785

11785:                                            ; preds = %11784
  br label %11786

11786:                                            ; preds = %11785
  br label %11787

11787:                                            ; preds = %11786
  %11788 = load i32, ptr @test_count, align 4, !tbaa !5
  %11789 = add nsw i32 %11788, 1
  store i32 %11789, ptr @test_count, align 4, !tbaa !5
  %11790 = load ptr, ptr %335, align 8, !tbaa !9
  %11791 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %11790, ptr noundef @verify_host_accept_everything, ptr noundef %333)
  %11792 = icmp eq i32 %11791, -1
  br i1 %11792, label %11793, label %11846

11793:                                            ; preds = %11787
  br label %11794

11794:                                            ; preds = %11793
  br label %11795

11795:                                            ; preds = %11794
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #11
  %11796 = call ptr @__errno_location() #12
  %11797 = load i32, ptr %11796, align 4, !tbaa !5
  store i32 %11797, ptr %337, align 4, !tbaa !5
  %11798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11799 = call i32 @s2n_print_stacktrace(ptr noundef %11798)
  %11800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11801 = trunc i8 %11800 to i1
  br i1 %11801, label %11802, label %11824

11802:                                            ; preds = %11795
  %11803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11804 = call i32 @fileno(ptr noundef %11803) #11
  %11805 = call i32 @isatty(i32 noundef %11804) #11
  %11806 = icmp ne i32 %11805, 0
  br i1 %11806, label %11807, label %11824

11807:                                            ; preds = %11802
  %11808 = load i32, ptr %337, align 4, !tbaa !5
  %11809 = call ptr @__errno_location() #12
  store i32 %11808, ptr %11809, align 4, !tbaa !5
  %11810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11811 = load i32, ptr @test_count, align 4, !tbaa !5
  %11812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11813 = load i32, ptr %11812, align 4, !tbaa !5
  %11814 = call ptr @s2n_strerror(i32 noundef %11813, ptr noundef @.str.4)
  %11815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11816 = load i32, ptr %11815, align 4, !tbaa !5
  %11817 = call ptr @s2n_strerror_debug(i32 noundef %11816, ptr noundef @.str.4)
  %11818 = call ptr @__errno_location() #12
  %11819 = load i32, ptr %11818, align 4, !tbaa !5
  %11820 = call ptr @strerror(i32 noundef %11819) #11
  %11821 = call ptr @__errno_location() #12
  %11822 = load i32, ptr %11821, align 4, !tbaa !5
  %11823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11810, ptr noundef @.str.2, i32 noundef %11811, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 752, ptr noundef %11814, ptr noundef %11817, ptr noundef %11820, i32 noundef %11822) #11
  br label %11841

11824:                                            ; preds = %11802, %11795
  %11825 = load i32, ptr %337, align 4, !tbaa !5
  %11826 = call ptr @__errno_location() #12
  store i32 %11825, ptr %11826, align 4, !tbaa !5
  %11827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11828 = load i32, ptr @test_count, align 4, !tbaa !5
  %11829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11830 = load i32, ptr %11829, align 4, !tbaa !5
  %11831 = call ptr @s2n_strerror(i32 noundef %11830, ptr noundef @.str.4)
  %11832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11833 = load i32, ptr %11832, align 4, !tbaa !5
  %11834 = call ptr @s2n_strerror_debug(i32 noundef %11833, ptr noundef @.str.4)
  %11835 = call ptr @__errno_location() #12
  %11836 = load i32, ptr %11835, align 4, !tbaa !5
  %11837 = call ptr @strerror(i32 noundef %11836) #11
  %11838 = call ptr @__errno_location() #12
  %11839 = load i32, ptr %11838, align 4, !tbaa !5
  %11840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11827, ptr noundef @.str.5, i32 noundef %11828, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 752, ptr noundef %11831, ptr noundef %11834, ptr noundef %11837, i32 noundef %11839) #11
  br label %11841

11841:                                            ; preds = %11824, %11807
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #11
  br label %11842

11842:                                            ; preds = %11841
  br label %11843

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

11844:                                            ; No predecessors!
  br label %11845

11845:                                            ; preds = %11844
  br label %11846

11846:                                            ; preds = %11845, %11787
  br label %11847

11847:                                            ; preds = %11846
  br label %11848

11848:                                            ; preds = %11847
  call void @llvm.lifetime.start.p0(i64 40, ptr %338) #11
  call void @llvm.memset.p0.i64(ptr align 8 %338, i8 0, i64 40, i1 false)
  br label %11849

11849:                                            ; preds = %11848
  %11850 = load i32, ptr @test_count, align 4, !tbaa !5
  %11851 = add nsw i32 %11850, 1
  store i32 %11851, ptr @test_count, align 4, !tbaa !5
  %11852 = load ptr, ptr %335, align 8, !tbaa !9
  %11853 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %11852, ptr noundef @.str.11, ptr noundef %338)
  %11854 = getelementptr inbounds %struct.s2n_result, ptr %339, i32 0, i32 0
  store i32 %11853, ptr %11854, align 4
  %11855 = getelementptr inbounds %struct.s2n_result, ptr %339, i32 0, i32 0
  %11856 = load i32, ptr %11855, align 4
  %11857 = call zeroext i1 @s2n_result_is_ok(i32 %11856)
  br i1 %11857, label %11911, label %11858

11858:                                            ; preds = %11849
  br label %11859

11859:                                            ; preds = %11858
  br label %11860

11860:                                            ; preds = %11859
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #11
  %11861 = call ptr @__errno_location() #12
  %11862 = load i32, ptr %11861, align 4, !tbaa !5
  store i32 %11862, ptr %340, align 4, !tbaa !5
  %11863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11864 = call i32 @s2n_print_stacktrace(ptr noundef %11863)
  %11865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11866 = trunc i8 %11865 to i1
  br i1 %11866, label %11867, label %11889

11867:                                            ; preds = %11860
  %11868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11869 = call i32 @fileno(ptr noundef %11868) #11
  %11870 = call i32 @isatty(i32 noundef %11869) #11
  %11871 = icmp ne i32 %11870, 0
  br i1 %11871, label %11872, label %11889

11872:                                            ; preds = %11867
  %11873 = load i32, ptr %340, align 4, !tbaa !5
  %11874 = call ptr @__errno_location() #12
  store i32 %11873, ptr %11874, align 4, !tbaa !5
  %11875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11876 = load i32, ptr @test_count, align 4, !tbaa !5
  %11877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11878 = load i32, ptr %11877, align 4, !tbaa !5
  %11879 = call ptr @s2n_strerror(i32 noundef %11878, ptr noundef @.str.4)
  %11880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11881 = load i32, ptr %11880, align 4, !tbaa !5
  %11882 = call ptr @s2n_strerror_debug(i32 noundef %11881, ptr noundef @.str.4)
  %11883 = call ptr @__errno_location() #12
  %11884 = load i32, ptr %11883, align 4, !tbaa !5
  %11885 = call ptr @strerror(i32 noundef %11884) #11
  %11886 = call ptr @__errno_location() #12
  %11887 = load i32, ptr %11886, align 4, !tbaa !5
  %11888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11875, ptr noundef @.str.2, i32 noundef %11876, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 755, ptr noundef %11879, ptr noundef %11882, ptr noundef %11885, i32 noundef %11887) #11
  br label %11906

11889:                                            ; preds = %11867, %11860
  %11890 = load i32, ptr %340, align 4, !tbaa !5
  %11891 = call ptr @__errno_location() #12
  store i32 %11890, ptr %11891, align 4, !tbaa !5
  %11892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11893 = load i32, ptr @test_count, align 4, !tbaa !5
  %11894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11895 = load i32, ptr %11894, align 4, !tbaa !5
  %11896 = call ptr @s2n_strerror(i32 noundef %11895, ptr noundef @.str.4)
  %11897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11898 = load i32, ptr %11897, align 4, !tbaa !5
  %11899 = call ptr @s2n_strerror_debug(i32 noundef %11898, ptr noundef @.str.4)
  %11900 = call ptr @__errno_location() #12
  %11901 = load i32, ptr %11900, align 4, !tbaa !5
  %11902 = call ptr @strerror(i32 noundef %11901) #11
  %11903 = call ptr @__errno_location() #12
  %11904 = load i32, ptr %11903, align 4, !tbaa !5
  %11905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11892, ptr noundef @.str.5, i32 noundef %11893, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 755, ptr noundef %11896, ptr noundef %11899, ptr noundef %11902, i32 noundef %11904) #11
  br label %11906

11906:                                            ; preds = %11889, %11872
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #11
  br label %11907

11907:                                            ; preds = %11906
  br label %11908

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

11909:                                            ; No predecessors!
  br label %11910

11910:                                            ; preds = %11909
  br label %11911

11911:                                            ; preds = %11910, %11849
  br label %11912

11912:                                            ; preds = %11911
  br label %11913

11913:                                            ; preds = %11912
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #11
  %11914 = getelementptr inbounds %struct.s2n_stuffer, ptr %338, i32 0, i32 2
  %11915 = load i32, ptr %11914, align 4, !tbaa !15
  %11916 = getelementptr inbounds %struct.s2n_stuffer, ptr %338, i32 0, i32 1
  %11917 = load i32, ptr %11916, align 8, !tbaa !18
  %11918 = sub i32 %11915, %11917
  store i32 %11918, ptr %341, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %342) #11
  %11919 = load i32, ptr %341, align 4, !tbaa !5
  %11920 = call ptr @s2n_stuffer_raw_read(ptr noundef %338, i32 noundef %11919)
  store ptr %11920, ptr %342, align 8, !tbaa !9
  br label %11921

11921:                                            ; preds = %11913
  %11922 = load i32, ptr @test_count, align 4, !tbaa !5
  %11923 = add nsw i32 %11922, 1
  store i32 %11923, ptr @test_count, align 4, !tbaa !5
  %11924 = load ptr, ptr %342, align 8, !tbaa !9
  %11925 = icmp eq ptr %11924, null
  br i1 %11925, label %11926, label %11979

11926:                                            ; preds = %11921
  br label %11927

11927:                                            ; preds = %11926
  br label %11928

11928:                                            ; preds = %11927
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #11
  %11929 = call ptr @__errno_location() #12
  %11930 = load i32, ptr %11929, align 4, !tbaa !5
  store i32 %11930, ptr %343, align 4, !tbaa !5
  %11931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11932 = call i32 @s2n_print_stacktrace(ptr noundef %11931)
  %11933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11934 = trunc i8 %11933 to i1
  br i1 %11934, label %11935, label %11957

11935:                                            ; preds = %11928
  %11936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11937 = call i32 @fileno(ptr noundef %11936) #11
  %11938 = call i32 @isatty(i32 noundef %11937) #11
  %11939 = icmp ne i32 %11938, 0
  br i1 %11939, label %11940, label %11957

11940:                                            ; preds = %11935
  %11941 = load i32, ptr %343, align 4, !tbaa !5
  %11942 = call ptr @__errno_location() #12
  store i32 %11941, ptr %11942, align 4, !tbaa !5
  %11943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11944 = load i32, ptr @test_count, align 4, !tbaa !5
  %11945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11946 = load i32, ptr %11945, align 4, !tbaa !5
  %11947 = call ptr @s2n_strerror(i32 noundef %11946, ptr noundef @.str.4)
  %11948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11949 = load i32, ptr %11948, align 4, !tbaa !5
  %11950 = call ptr @s2n_strerror_debug(i32 noundef %11949, ptr noundef @.str.4)
  %11951 = call ptr @__errno_location() #12
  %11952 = load i32, ptr %11951, align 4, !tbaa !5
  %11953 = call ptr @strerror(i32 noundef %11952) #11
  %11954 = call ptr @__errno_location() #12
  %11955 = load i32, ptr %11954, align 4, !tbaa !5
  %11956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11943, ptr noundef @.str.2, i32 noundef %11944, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 758, ptr noundef %11947, ptr noundef %11950, ptr noundef %11953, i32 noundef %11955) #11
  br label %11974

11957:                                            ; preds = %11935, %11928
  %11958 = load i32, ptr %343, align 4, !tbaa !5
  %11959 = call ptr @__errno_location() #12
  store i32 %11958, ptr %11959, align 4, !tbaa !5
  %11960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11961 = load i32, ptr @test_count, align 4, !tbaa !5
  %11962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11963 = load i32, ptr %11962, align 4, !tbaa !5
  %11964 = call ptr @s2n_strerror(i32 noundef %11963, ptr noundef @.str.4)
  %11965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11966 = load i32, ptr %11965, align 4, !tbaa !5
  %11967 = call ptr @s2n_strerror_debug(i32 noundef %11966, ptr noundef @.str.4)
  %11968 = call ptr @__errno_location() #12
  %11969 = load i32, ptr %11968, align 4, !tbaa !5
  %11970 = call ptr @strerror(i32 noundef %11969) #11
  %11971 = call ptr @__errno_location() #12
  %11972 = load i32, ptr %11971, align 4, !tbaa !5
  %11973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11960, ptr noundef @.str.5, i32 noundef %11961, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 758, ptr noundef %11964, ptr noundef %11967, ptr noundef %11970, i32 noundef %11972) #11
  br label %11974

11974:                                            ; preds = %11957, %11940
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #11
  br label %11975

11975:                                            ; preds = %11974
  br label %11976

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

11977:                                            ; No predecessors!
  br label %11978

11978:                                            ; preds = %11977
  br label %11979

11979:                                            ; preds = %11978, %11921
  br label %11980

11980:                                            ; preds = %11979
  br label %11981

11981:                                            ; preds = %11980
  br label %11982

11982:                                            ; preds = %11981
  %11983 = load i32, ptr @test_count, align 4, !tbaa !5
  %11984 = add nsw i32 %11983, 1
  store i32 %11984, ptr @test_count, align 4, !tbaa !5
  %11985 = load ptr, ptr %335, align 8, !tbaa !9
  %11986 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11985, ptr noundef @.str.23)
  %11987 = icmp eq i32 %11986, -1
  br i1 %11987, label %11988, label %12041

11988:                                            ; preds = %11982
  br label %11989

11989:                                            ; preds = %11988
  br label %11990

11990:                                            ; preds = %11989
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #11
  %11991 = call ptr @__errno_location() #12
  %11992 = load i32, ptr %11991, align 4, !tbaa !5
  store i32 %11992, ptr %344, align 4, !tbaa !5
  %11993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11994 = call i32 @s2n_print_stacktrace(ptr noundef %11993)
  %11995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11996 = trunc i8 %11995 to i1
  br i1 %11996, label %11997, label %12019

11997:                                            ; preds = %11990
  %11998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11999 = call i32 @fileno(ptr noundef %11998) #11
  %12000 = call i32 @isatty(i32 noundef %11999) #11
  %12001 = icmp ne i32 %12000, 0
  br i1 %12001, label %12002, label %12019

12002:                                            ; preds = %11997
  %12003 = load i32, ptr %344, align 4, !tbaa !5
  %12004 = call ptr @__errno_location() #12
  store i32 %12003, ptr %12004, align 4, !tbaa !5
  %12005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12006 = load i32, ptr @test_count, align 4, !tbaa !5
  %12007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12008 = load i32, ptr %12007, align 4, !tbaa !5
  %12009 = call ptr @s2n_strerror(i32 noundef %12008, ptr noundef @.str.4)
  %12010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12011 = load i32, ptr %12010, align 4, !tbaa !5
  %12012 = call ptr @s2n_strerror_debug(i32 noundef %12011, ptr noundef @.str.4)
  %12013 = call ptr @__errno_location() #12
  %12014 = load i32, ptr %12013, align 4, !tbaa !5
  %12015 = call ptr @strerror(i32 noundef %12014) #11
  %12016 = call ptr @__errno_location() #12
  %12017 = load i32, ptr %12016, align 4, !tbaa !5
  %12018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12005, ptr noundef @.str.2, i32 noundef %12006, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 760, ptr noundef %12009, ptr noundef %12012, ptr noundef %12015, i32 noundef %12017) #11
  br label %12036

12019:                                            ; preds = %11997, %11990
  %12020 = load i32, ptr %344, align 4, !tbaa !5
  %12021 = call ptr @__errno_location() #12
  store i32 %12020, ptr %12021, align 4, !tbaa !5
  %12022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12023 = load i32, ptr @test_count, align 4, !tbaa !5
  %12024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12025 = load i32, ptr %12024, align 4, !tbaa !5
  %12026 = call ptr @s2n_strerror(i32 noundef %12025, ptr noundef @.str.4)
  %12027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12028 = load i32, ptr %12027, align 4, !tbaa !5
  %12029 = call ptr @s2n_strerror_debug(i32 noundef %12028, ptr noundef @.str.4)
  %12030 = call ptr @__errno_location() #12
  %12031 = load i32, ptr %12030, align 4, !tbaa !5
  %12032 = call ptr @strerror(i32 noundef %12031) #11
  %12033 = call ptr @__errno_location() #12
  %12034 = load i32, ptr %12033, align 4, !tbaa !5
  %12035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12022, ptr noundef @.str.5, i32 noundef %12023, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 760, ptr noundef %12026, ptr noundef %12029, ptr noundef %12032, i32 noundef %12034) #11
  br label %12036

12036:                                            ; preds = %12019, %12002
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #11
  br label %12037

12037:                                            ; preds = %12036
  br label %12038

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

12039:                                            ; No predecessors!
  br label %12040

12040:                                            ; preds = %12039
  br label %12041

12041:                                            ; preds = %12040, %11982
  br label %12042

12042:                                            ; preds = %12041
  br label %12043

12043:                                            ; preds = %12042
  call void @llvm.lifetime.start.p0(i64 48, ptr %345) #11
  br label %12044

12044:                                            ; preds = %12043
  %12045 = load i32, ptr @test_count, align 4, !tbaa !5
  %12046 = add nsw i32 %12045, 1
  store i32 %12046, ptr @test_count, align 4, !tbaa !5
  %12047 = call i32 @s2n_pkey_zero_init(ptr noundef %345)
  %12048 = icmp eq i32 %12047, -1
  br i1 %12048, label %12049, label %12102

12049:                                            ; preds = %12044
  br label %12050

12050:                                            ; preds = %12049
  br label %12051

12051:                                            ; preds = %12050
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  %12052 = call ptr @__errno_location() #12
  %12053 = load i32, ptr %12052, align 4, !tbaa !5
  store i32 %12053, ptr %346, align 4, !tbaa !5
  %12054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12055 = call i32 @s2n_print_stacktrace(ptr noundef %12054)
  %12056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12057 = trunc i8 %12056 to i1
  br i1 %12057, label %12058, label %12080

12058:                                            ; preds = %12051
  %12059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12060 = call i32 @fileno(ptr noundef %12059) #11
  %12061 = call i32 @isatty(i32 noundef %12060) #11
  %12062 = icmp ne i32 %12061, 0
  br i1 %12062, label %12063, label %12080

12063:                                            ; preds = %12058
  %12064 = load i32, ptr %346, align 4, !tbaa !5
  %12065 = call ptr @__errno_location() #12
  store i32 %12064, ptr %12065, align 4, !tbaa !5
  %12066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12067 = load i32, ptr @test_count, align 4, !tbaa !5
  %12068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12069 = load i32, ptr %12068, align 4, !tbaa !5
  %12070 = call ptr @s2n_strerror(i32 noundef %12069, ptr noundef @.str.4)
  %12071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12072 = load i32, ptr %12071, align 4, !tbaa !5
  %12073 = call ptr @s2n_strerror_debug(i32 noundef %12072, ptr noundef @.str.4)
  %12074 = call ptr @__errno_location() #12
  %12075 = load i32, ptr %12074, align 4, !tbaa !5
  %12076 = call ptr @strerror(i32 noundef %12075) #11
  %12077 = call ptr @__errno_location() #12
  %12078 = load i32, ptr %12077, align 4, !tbaa !5
  %12079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12066, ptr noundef @.str.2, i32 noundef %12067, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 763, ptr noundef %12070, ptr noundef %12073, ptr noundef %12076, i32 noundef %12078) #11
  br label %12097

12080:                                            ; preds = %12058, %12051
  %12081 = load i32, ptr %346, align 4, !tbaa !5
  %12082 = call ptr @__errno_location() #12
  store i32 %12081, ptr %12082, align 4, !tbaa !5
  %12083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12084 = load i32, ptr @test_count, align 4, !tbaa !5
  %12085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12086 = load i32, ptr %12085, align 4, !tbaa !5
  %12087 = call ptr @s2n_strerror(i32 noundef %12086, ptr noundef @.str.4)
  %12088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12089 = load i32, ptr %12088, align 4, !tbaa !5
  %12090 = call ptr @s2n_strerror_debug(i32 noundef %12089, ptr noundef @.str.4)
  %12091 = call ptr @__errno_location() #12
  %12092 = load i32, ptr %12091, align 4, !tbaa !5
  %12093 = call ptr @strerror(i32 noundef %12092) #11
  %12094 = call ptr @__errno_location() #12
  %12095 = load i32, ptr %12094, align 4, !tbaa !5
  %12096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12083, ptr noundef @.str.5, i32 noundef %12084, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 763, ptr noundef %12087, ptr noundef %12090, ptr noundef %12093, i32 noundef %12095) #11
  br label %12097

12097:                                            ; preds = %12080, %12063
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  br label %12098

12098:                                            ; preds = %12097
  br label %12099

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

12100:                                            ; No predecessors!
  br label %12101

12101:                                            ; preds = %12100
  br label %12102

12102:                                            ; preds = %12101, %12044
  br label %12103

12103:                                            ; preds = %12102
  br label %12104

12104:                                            ; preds = %12103
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #11
  store i32 -1, ptr %347, align 4, !tbaa !5
  br label %12105

12105:                                            ; preds = %12104
  %12106 = load i32, ptr @test_count, align 4, !tbaa !5
  %12107 = add nsw i32 %12106, 1
  store i32 %12107, ptr @test_count, align 4, !tbaa !5
  %12108 = load ptr, ptr %335, align 8, !tbaa !9
  %12109 = load ptr, ptr %342, align 8, !tbaa !9
  %12110 = load i32, ptr %341, align 4, !tbaa !5
  %12111 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %334, ptr noundef %12108, ptr noundef %12109, i32 noundef %12110, ptr noundef %347, ptr noundef %345)
  %12112 = getelementptr inbounds %struct.s2n_result, ptr %348, i32 0, i32 0
  store i32 %12111, ptr %12112, align 4
  %12113 = getelementptr inbounds %struct.s2n_result, ptr %348, i32 0, i32 0
  %12114 = load i32, ptr %12113, align 4
  %12115 = call zeroext i1 @s2n_result_is_ok(i32 %12114)
  br i1 %12115, label %12169, label %12116

12116:                                            ; preds = %12105
  br label %12117

12117:                                            ; preds = %12116
  br label %12118

12118:                                            ; preds = %12117
  call void @llvm.lifetime.start.p0(i64 4, ptr %349) #11
  %12119 = call ptr @__errno_location() #12
  %12120 = load i32, ptr %12119, align 4, !tbaa !5
  store i32 %12120, ptr %349, align 4, !tbaa !5
  %12121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12122 = call i32 @s2n_print_stacktrace(ptr noundef %12121)
  %12123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12124 = trunc i8 %12123 to i1
  br i1 %12124, label %12125, label %12147

12125:                                            ; preds = %12118
  %12126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12127 = call i32 @fileno(ptr noundef %12126) #11
  %12128 = call i32 @isatty(i32 noundef %12127) #11
  %12129 = icmp ne i32 %12128, 0
  br i1 %12129, label %12130, label %12147

12130:                                            ; preds = %12125
  %12131 = load i32, ptr %349, align 4, !tbaa !5
  %12132 = call ptr @__errno_location() #12
  store i32 %12131, ptr %12132, align 4, !tbaa !5
  %12133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12134 = load i32, ptr @test_count, align 4, !tbaa !5
  %12135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12136 = load i32, ptr %12135, align 4, !tbaa !5
  %12137 = call ptr @s2n_strerror(i32 noundef %12136, ptr noundef @.str.4)
  %12138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12139 = load i32, ptr %12138, align 4, !tbaa !5
  %12140 = call ptr @s2n_strerror_debug(i32 noundef %12139, ptr noundef @.str.4)
  %12141 = call ptr @__errno_location() #12
  %12142 = load i32, ptr %12141, align 4, !tbaa !5
  %12143 = call ptr @strerror(i32 noundef %12142) #11
  %12144 = call ptr @__errno_location() #12
  %12145 = load i32, ptr %12144, align 4, !tbaa !5
  %12146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12133, ptr noundef @.str.2, i32 noundef %12134, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 765, ptr noundef %12137, ptr noundef %12140, ptr noundef %12143, i32 noundef %12145) #11
  br label %12164

12147:                                            ; preds = %12125, %12118
  %12148 = load i32, ptr %349, align 4, !tbaa !5
  %12149 = call ptr @__errno_location() #12
  store i32 %12148, ptr %12149, align 4, !tbaa !5
  %12150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12151 = load i32, ptr @test_count, align 4, !tbaa !5
  %12152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12153 = load i32, ptr %12152, align 4, !tbaa !5
  %12154 = call ptr @s2n_strerror(i32 noundef %12153, ptr noundef @.str.4)
  %12155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12156 = load i32, ptr %12155, align 4, !tbaa !5
  %12157 = call ptr @s2n_strerror_debug(i32 noundef %12156, ptr noundef @.str.4)
  %12158 = call ptr @__errno_location() #12
  %12159 = load i32, ptr %12158, align 4, !tbaa !5
  %12160 = call ptr @strerror(i32 noundef %12159) #11
  %12161 = call ptr @__errno_location() #12
  %12162 = load i32, ptr %12161, align 4, !tbaa !5
  %12163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12150, ptr noundef @.str.5, i32 noundef %12151, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 765, ptr noundef %12154, ptr noundef %12157, ptr noundef %12160, i32 noundef %12162) #11
  br label %12164

12164:                                            ; preds = %12147, %12130
  call void @llvm.lifetime.end.p0(i64 4, ptr %349) #11
  br label %12165

12165:                                            ; preds = %12164
  br label %12166

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

12167:                                            ; No predecessors!
  br label %12168

12168:                                            ; preds = %12167
  br label %12169

12169:                                            ; preds = %12168, %12105
  br label %12170

12170:                                            ; preds = %12169
  br label %12171

12171:                                            ; preds = %12170
  br label %12172

12172:                                            ; preds = %12171
  %12173 = load i32, ptr @test_count, align 4, !tbaa !5
  %12174 = add nsw i32 %12173, 1
  store i32 %12174, ptr @test_count, align 4, !tbaa !5
  %12175 = getelementptr inbounds %struct.host_verify_data, ptr %333, i32 0, i32 2
  %12176 = load i8, ptr %12175, align 1, !tbaa !19
  %12177 = zext i8 %12176 to i32
  %12178 = icmp eq i32 1, %12177
  br i1 %12178, label %12232, label %12179

12179:                                            ; preds = %12172
  br label %12180

12180:                                            ; preds = %12179
  br label %12181

12181:                                            ; preds = %12180
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #11
  %12182 = call ptr @__errno_location() #12
  %12183 = load i32, ptr %12182, align 4, !tbaa !5
  store i32 %12183, ptr %350, align 4, !tbaa !5
  %12184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12185 = call i32 @s2n_print_stacktrace(ptr noundef %12184)
  %12186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12187 = trunc i8 %12186 to i1
  br i1 %12187, label %12188, label %12210

12188:                                            ; preds = %12181
  %12189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12190 = call i32 @fileno(ptr noundef %12189) #11
  %12191 = call i32 @isatty(i32 noundef %12190) #11
  %12192 = icmp ne i32 %12191, 0
  br i1 %12192, label %12193, label %12210

12193:                                            ; preds = %12188
  %12194 = load i32, ptr %350, align 4, !tbaa !5
  %12195 = call ptr @__errno_location() #12
  store i32 %12194, ptr %12195, align 4, !tbaa !5
  %12196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12197 = load i32, ptr @test_count, align 4, !tbaa !5
  %12198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12199 = load i32, ptr %12198, align 4, !tbaa !5
  %12200 = call ptr @s2n_strerror(i32 noundef %12199, ptr noundef @.str.4)
  %12201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12202 = load i32, ptr %12201, align 4, !tbaa !5
  %12203 = call ptr @s2n_strerror_debug(i32 noundef %12202, ptr noundef @.str.4)
  %12204 = call ptr @__errno_location() #12
  %12205 = load i32, ptr %12204, align 4, !tbaa !5
  %12206 = call ptr @strerror(i32 noundef %12205) #11
  %12207 = call ptr @__errno_location() #12
  %12208 = load i32, ptr %12207, align 4, !tbaa !5
  %12209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12196, ptr noundef @.str.2, i32 noundef %12197, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 767, ptr noundef %12200, ptr noundef %12203, ptr noundef %12206, i32 noundef %12208) #11
  br label %12227

12210:                                            ; preds = %12188, %12181
  %12211 = load i32, ptr %350, align 4, !tbaa !5
  %12212 = call ptr @__errno_location() #12
  store i32 %12211, ptr %12212, align 4, !tbaa !5
  %12213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12214 = load i32, ptr @test_count, align 4, !tbaa !5
  %12215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12216 = load i32, ptr %12215, align 4, !tbaa !5
  %12217 = call ptr @s2n_strerror(i32 noundef %12216, ptr noundef @.str.4)
  %12218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12219 = load i32, ptr %12218, align 4, !tbaa !5
  %12220 = call ptr @s2n_strerror_debug(i32 noundef %12219, ptr noundef @.str.4)
  %12221 = call ptr @__errno_location() #12
  %12222 = load i32, ptr %12221, align 4, !tbaa !5
  %12223 = call ptr @strerror(i32 noundef %12222) #11
  %12224 = call ptr @__errno_location() #12
  %12225 = load i32, ptr %12224, align 4, !tbaa !5
  %12226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12213, ptr noundef @.str.5, i32 noundef %12214, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 767, ptr noundef %12217, ptr noundef %12220, ptr noundef %12223, i32 noundef %12225) #11
  br label %12227

12227:                                            ; preds = %12210, %12193
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #11
  br label %12228

12228:                                            ; preds = %12227
  br label %12229

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

12230:                                            ; No predecessors!
  br label %12231

12231:                                            ; preds = %12230
  br label %12232

12232:                                            ; preds = %12231, %12172
  br label %12233

12233:                                            ; preds = %12232
  br label %12234

12234:                                            ; preds = %12233
  br label %12235

12235:                                            ; preds = %12234
  %12236 = load i32, ptr @test_count, align 4, !tbaa !5
  %12237 = add nsw i32 %12236, 1
  store i32 %12237, ptr @test_count, align 4, !tbaa !5
  %12238 = load i32, ptr %347, align 4, !tbaa !5
  %12239 = icmp eq i32 0, %12238
  br i1 %12239, label %12293, label %12240

12240:                                            ; preds = %12235
  br label %12241

12241:                                            ; preds = %12240
  br label %12242

12242:                                            ; preds = %12241
  call void @llvm.lifetime.start.p0(i64 4, ptr %351) #11
  %12243 = call ptr @__errno_location() #12
  %12244 = load i32, ptr %12243, align 4, !tbaa !5
  store i32 %12244, ptr %351, align 4, !tbaa !5
  %12245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12246 = call i32 @s2n_print_stacktrace(ptr noundef %12245)
  %12247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12248 = trunc i8 %12247 to i1
  br i1 %12248, label %12249, label %12271

12249:                                            ; preds = %12242
  %12250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12251 = call i32 @fileno(ptr noundef %12250) #11
  %12252 = call i32 @isatty(i32 noundef %12251) #11
  %12253 = icmp ne i32 %12252, 0
  br i1 %12253, label %12254, label %12271

12254:                                            ; preds = %12249
  %12255 = load i32, ptr %351, align 4, !tbaa !5
  %12256 = call ptr @__errno_location() #12
  store i32 %12255, ptr %12256, align 4, !tbaa !5
  %12257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12258 = load i32, ptr @test_count, align 4, !tbaa !5
  %12259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12260 = load i32, ptr %12259, align 4, !tbaa !5
  %12261 = call ptr @s2n_strerror(i32 noundef %12260, ptr noundef @.str.4)
  %12262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12263 = load i32, ptr %12262, align 4, !tbaa !5
  %12264 = call ptr @s2n_strerror_debug(i32 noundef %12263, ptr noundef @.str.4)
  %12265 = call ptr @__errno_location() #12
  %12266 = load i32, ptr %12265, align 4, !tbaa !5
  %12267 = call ptr @strerror(i32 noundef %12266) #11
  %12268 = call ptr @__errno_location() #12
  %12269 = load i32, ptr %12268, align 4, !tbaa !5
  %12270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12257, ptr noundef @.str.2, i32 noundef %12258, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 768, ptr noundef %12261, ptr noundef %12264, ptr noundef %12267, i32 noundef %12269) #11
  br label %12288

12271:                                            ; preds = %12249, %12242
  %12272 = load i32, ptr %351, align 4, !tbaa !5
  %12273 = call ptr @__errno_location() #12
  store i32 %12272, ptr %12273, align 4, !tbaa !5
  %12274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12275 = load i32, ptr @test_count, align 4, !tbaa !5
  %12276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12277 = load i32, ptr %12276, align 4, !tbaa !5
  %12278 = call ptr @s2n_strerror(i32 noundef %12277, ptr noundef @.str.4)
  %12279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12280 = load i32, ptr %12279, align 4, !tbaa !5
  %12281 = call ptr @s2n_strerror_debug(i32 noundef %12280, ptr noundef @.str.4)
  %12282 = call ptr @__errno_location() #12
  %12283 = load i32, ptr %12282, align 4, !tbaa !5
  %12284 = call ptr @strerror(i32 noundef %12283) #11
  %12285 = call ptr @__errno_location() #12
  %12286 = load i32, ptr %12285, align 4, !tbaa !5
  %12287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12274, ptr noundef @.str.5, i32 noundef %12275, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 768, ptr noundef %12278, ptr noundef %12281, ptr noundef %12284, i32 noundef %12286) #11
  br label %12288

12288:                                            ; preds = %12271, %12254
  call void @llvm.lifetime.end.p0(i64 4, ptr %351) #11
  br label %12289

12289:                                            ; preds = %12288
  br label %12290

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

12291:                                            ; No predecessors!
  br label %12292

12292:                                            ; preds = %12291
  br label %12293

12293:                                            ; preds = %12292, %12235
  br label %12294

12294:                                            ; preds = %12293
  br label %12295

12295:                                            ; preds = %12294
  %12296 = call i32 @s2n_pkey_free(ptr noundef %345)
  %12297 = load ptr, ptr %335, align 8, !tbaa !9
  %12298 = call i32 @s2n_connection_free(ptr noundef %12297)
  %12299 = call i32 @s2n_x509_validator_wipe(ptr noundef %334)
  call void @s2n_x509_trust_store_wipe(ptr noundef %327)
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %345) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %342) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #11
  %12300 = call i32 @s2n_stuffer_free(ptr noundef %338)
  call void @llvm.lifetime.end.p0(i64 40, ptr %338) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %335) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %334) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %333) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %328) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %327) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %352) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %352)
  br label %12301

12301:                                            ; preds = %12295
  %12302 = load i32, ptr @test_count, align 4, !tbaa !5
  %12303 = add nsw i32 %12302, 1
  store i32 %12303, ptr @test_count, align 4, !tbaa !5
  %12304 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %352, ptr noundef @.str.11, ptr noundef null)
  %12305 = icmp eq i32 %12304, -1
  br i1 %12305, label %12306, label %12359

12306:                                            ; preds = %12301
  br label %12307

12307:                                            ; preds = %12306
  br label %12308

12308:                                            ; preds = %12307
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #11
  %12309 = call ptr @__errno_location() #12
  %12310 = load i32, ptr %12309, align 4, !tbaa !5
  store i32 %12310, ptr %353, align 4, !tbaa !5
  %12311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12312 = call i32 @s2n_print_stacktrace(ptr noundef %12311)
  %12313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12314 = trunc i8 %12313 to i1
  br i1 %12314, label %12315, label %12337

12315:                                            ; preds = %12308
  %12316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12317 = call i32 @fileno(ptr noundef %12316) #11
  %12318 = call i32 @isatty(i32 noundef %12317) #11
  %12319 = icmp ne i32 %12318, 0
  br i1 %12319, label %12320, label %12337

12320:                                            ; preds = %12315
  %12321 = load i32, ptr %353, align 4, !tbaa !5
  %12322 = call ptr @__errno_location() #12
  store i32 %12321, ptr %12322, align 4, !tbaa !5
  %12323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12324 = load i32, ptr @test_count, align 4, !tbaa !5
  %12325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12326 = load i32, ptr %12325, align 4, !tbaa !5
  %12327 = call ptr @s2n_strerror(i32 noundef %12326, ptr noundef @.str.4)
  %12328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12329 = load i32, ptr %12328, align 4, !tbaa !5
  %12330 = call ptr @s2n_strerror_debug(i32 noundef %12329, ptr noundef @.str.4)
  %12331 = call ptr @__errno_location() #12
  %12332 = load i32, ptr %12331, align 4, !tbaa !5
  %12333 = call ptr @strerror(i32 noundef %12332) #11
  %12334 = call ptr @__errno_location() #12
  %12335 = load i32, ptr %12334, align 4, !tbaa !5
  %12336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12323, ptr noundef @.str.2, i32 noundef %12324, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 782, ptr noundef %12327, ptr noundef %12330, ptr noundef %12333, i32 noundef %12335) #11
  br label %12354

12337:                                            ; preds = %12315, %12308
  %12338 = load i32, ptr %353, align 4, !tbaa !5
  %12339 = call ptr @__errno_location() #12
  store i32 %12338, ptr %12339, align 4, !tbaa !5
  %12340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12341 = load i32, ptr @test_count, align 4, !tbaa !5
  %12342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12343 = load i32, ptr %12342, align 4, !tbaa !5
  %12344 = call ptr @s2n_strerror(i32 noundef %12343, ptr noundef @.str.4)
  %12345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12346 = load i32, ptr %12345, align 4, !tbaa !5
  %12347 = call ptr @s2n_strerror_debug(i32 noundef %12346, ptr noundef @.str.4)
  %12348 = call ptr @__errno_location() #12
  %12349 = load i32, ptr %12348, align 4, !tbaa !5
  %12350 = call ptr @strerror(i32 noundef %12349) #11
  %12351 = call ptr @__errno_location() #12
  %12352 = load i32, ptr %12351, align 4, !tbaa !5
  %12353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12340, ptr noundef @.str.5, i32 noundef %12341, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 782, ptr noundef %12344, ptr noundef %12347, ptr noundef %12350, i32 noundef %12352) #11
  br label %12354

12354:                                            ; preds = %12337, %12320
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #11
  br label %12355

12355:                                            ; preds = %12354
  br label %12356

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

12357:                                            ; No predecessors!
  br label %12358

12358:                                            ; preds = %12357
  br label %12359

12359:                                            ; preds = %12358, %12301
  br label %12360

12360:                                            ; preds = %12359
  br label %12361

12361:                                            ; preds = %12360
  call void @llvm.lifetime.start.p0(i64 16, ptr %354) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %354, ptr align 8 @__const.main.verify_data.63, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %355) #11
  %12362 = call i32 @s2n_x509_validator_init(ptr noundef %355, ptr noundef %352, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %356) #11
  %12363 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %12363, ptr %356, align 8, !tbaa !9
  br label %12364

12364:                                            ; preds = %12361
  %12365 = load i32, ptr @test_count, align 4, !tbaa !5
  %12366 = add nsw i32 %12365, 1
  store i32 %12366, ptr @test_count, align 4, !tbaa !5
  %12367 = load ptr, ptr %356, align 8, !tbaa !9
  %12368 = icmp eq ptr %12367, null
  br i1 %12368, label %12369, label %12422

12369:                                            ; preds = %12364
  br label %12370

12370:                                            ; preds = %12369
  br label %12371

12371:                                            ; preds = %12370
  call void @llvm.lifetime.start.p0(i64 4, ptr %357) #11
  %12372 = call ptr @__errno_location() #12
  %12373 = load i32, ptr %12372, align 4, !tbaa !5
  store i32 %12373, ptr %357, align 4, !tbaa !5
  %12374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12375 = call i32 @s2n_print_stacktrace(ptr noundef %12374)
  %12376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12377 = trunc i8 %12376 to i1
  br i1 %12377, label %12378, label %12400

12378:                                            ; preds = %12371
  %12379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12380 = call i32 @fileno(ptr noundef %12379) #11
  %12381 = call i32 @isatty(i32 noundef %12380) #11
  %12382 = icmp ne i32 %12381, 0
  br i1 %12382, label %12383, label %12400

12383:                                            ; preds = %12378
  %12384 = load i32, ptr %357, align 4, !tbaa !5
  %12385 = call ptr @__errno_location() #12
  store i32 %12384, ptr %12385, align 4, !tbaa !5
  %12386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12387 = load i32, ptr @test_count, align 4, !tbaa !5
  %12388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12389 = load i32, ptr %12388, align 4, !tbaa !5
  %12390 = call ptr @s2n_strerror(i32 noundef %12389, ptr noundef @.str.4)
  %12391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12392 = load i32, ptr %12391, align 4, !tbaa !5
  %12393 = call ptr @s2n_strerror_debug(i32 noundef %12392, ptr noundef @.str.4)
  %12394 = call ptr @__errno_location() #12
  %12395 = load i32, ptr %12394, align 4, !tbaa !5
  %12396 = call ptr @strerror(i32 noundef %12395) #11
  %12397 = call ptr @__errno_location() #12
  %12398 = load i32, ptr %12397, align 4, !tbaa !5
  %12399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12386, ptr noundef @.str.2, i32 noundef %12387, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 793, ptr noundef %12390, ptr noundef %12393, ptr noundef %12396, i32 noundef %12398) #11
  br label %12417

12400:                                            ; preds = %12378, %12371
  %12401 = load i32, ptr %357, align 4, !tbaa !5
  %12402 = call ptr @__errno_location() #12
  store i32 %12401, ptr %12402, align 4, !tbaa !5
  %12403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12404 = load i32, ptr @test_count, align 4, !tbaa !5
  %12405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12406 = load i32, ptr %12405, align 4, !tbaa !5
  %12407 = call ptr @s2n_strerror(i32 noundef %12406, ptr noundef @.str.4)
  %12408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12409 = load i32, ptr %12408, align 4, !tbaa !5
  %12410 = call ptr @s2n_strerror_debug(i32 noundef %12409, ptr noundef @.str.4)
  %12411 = call ptr @__errno_location() #12
  %12412 = load i32, ptr %12411, align 4, !tbaa !5
  %12413 = call ptr @strerror(i32 noundef %12412) #11
  %12414 = call ptr @__errno_location() #12
  %12415 = load i32, ptr %12414, align 4, !tbaa !5
  %12416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12403, ptr noundef @.str.5, i32 noundef %12404, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 793, ptr noundef %12407, ptr noundef %12410, ptr noundef %12413, i32 noundef %12415) #11
  br label %12417

12417:                                            ; preds = %12400, %12383
  call void @llvm.lifetime.end.p0(i64 4, ptr %357) #11
  br label %12418

12418:                                            ; preds = %12417
  br label %12419

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

12420:                                            ; No predecessors!
  br label %12421

12421:                                            ; preds = %12420
  br label %12422

12422:                                            ; preds = %12421, %12364
  br label %12423

12423:                                            ; preds = %12422
  br label %12424

12424:                                            ; preds = %12423
  br label %12425

12425:                                            ; preds = %12424
  %12426 = load i32, ptr @test_count, align 4, !tbaa !5
  %12427 = add nsw i32 %12426, 1
  store i32 %12427, ptr @test_count, align 4, !tbaa !5
  %12428 = load ptr, ptr %356, align 8, !tbaa !9
  %12429 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %12428, ptr noundef @verify_host_verify_alt, ptr noundef %354)
  %12430 = icmp eq i32 %12429, -1
  br i1 %12430, label %12431, label %12484

12431:                                            ; preds = %12425
  br label %12432

12432:                                            ; preds = %12431
  br label %12433

12433:                                            ; preds = %12432
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #11
  %12434 = call ptr @__errno_location() #12
  %12435 = load i32, ptr %12434, align 4, !tbaa !5
  store i32 %12435, ptr %358, align 4, !tbaa !5
  %12436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12437 = call i32 @s2n_print_stacktrace(ptr noundef %12436)
  %12438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12439 = trunc i8 %12438 to i1
  br i1 %12439, label %12440, label %12462

12440:                                            ; preds = %12433
  %12441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12442 = call i32 @fileno(ptr noundef %12441) #11
  %12443 = call i32 @isatty(i32 noundef %12442) #11
  %12444 = icmp ne i32 %12443, 0
  br i1 %12444, label %12445, label %12462

12445:                                            ; preds = %12440
  %12446 = load i32, ptr %358, align 4, !tbaa !5
  %12447 = call ptr @__errno_location() #12
  store i32 %12446, ptr %12447, align 4, !tbaa !5
  %12448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12449 = load i32, ptr @test_count, align 4, !tbaa !5
  %12450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12451 = load i32, ptr %12450, align 4, !tbaa !5
  %12452 = call ptr @s2n_strerror(i32 noundef %12451, ptr noundef @.str.4)
  %12453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12454 = load i32, ptr %12453, align 4, !tbaa !5
  %12455 = call ptr @s2n_strerror_debug(i32 noundef %12454, ptr noundef @.str.4)
  %12456 = call ptr @__errno_location() #12
  %12457 = load i32, ptr %12456, align 4, !tbaa !5
  %12458 = call ptr @strerror(i32 noundef %12457) #11
  %12459 = call ptr @__errno_location() #12
  %12460 = load i32, ptr %12459, align 4, !tbaa !5
  %12461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12448, ptr noundef @.str.2, i32 noundef %12449, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 794, ptr noundef %12452, ptr noundef %12455, ptr noundef %12458, i32 noundef %12460) #11
  br label %12479

12462:                                            ; preds = %12440, %12433
  %12463 = load i32, ptr %358, align 4, !tbaa !5
  %12464 = call ptr @__errno_location() #12
  store i32 %12463, ptr %12464, align 4, !tbaa !5
  %12465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12466 = load i32, ptr @test_count, align 4, !tbaa !5
  %12467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12468 = load i32, ptr %12467, align 4, !tbaa !5
  %12469 = call ptr @s2n_strerror(i32 noundef %12468, ptr noundef @.str.4)
  %12470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12471 = load i32, ptr %12470, align 4, !tbaa !5
  %12472 = call ptr @s2n_strerror_debug(i32 noundef %12471, ptr noundef @.str.4)
  %12473 = call ptr @__errno_location() #12
  %12474 = load i32, ptr %12473, align 4, !tbaa !5
  %12475 = call ptr @strerror(i32 noundef %12474) #11
  %12476 = call ptr @__errno_location() #12
  %12477 = load i32, ptr %12476, align 4, !tbaa !5
  %12478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12465, ptr noundef @.str.5, i32 noundef %12466, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 794, ptr noundef %12469, ptr noundef %12472, ptr noundef %12475, i32 noundef %12477) #11
  br label %12479

12479:                                            ; preds = %12462, %12445
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #11
  br label %12480

12480:                                            ; preds = %12479
  br label %12481

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

12482:                                            ; No predecessors!
  br label %12483

12483:                                            ; preds = %12482
  br label %12484

12484:                                            ; preds = %12483, %12425
  br label %12485

12485:                                            ; preds = %12484
  br label %12486

12486:                                            ; preds = %12485
  call void @llvm.lifetime.start.p0(i64 40, ptr %359) #11
  call void @llvm.memset.p0.i64(ptr align 8 %359, i8 0, i64 40, i1 false)
  br label %12487

12487:                                            ; preds = %12486
  %12488 = load i32, ptr @test_count, align 4, !tbaa !5
  %12489 = add nsw i32 %12488, 1
  store i32 %12489, ptr @test_count, align 4, !tbaa !5
  %12490 = load ptr, ptr %356, align 8, !tbaa !9
  %12491 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %12490, ptr noundef @.str.64, ptr noundef %359)
  %12492 = getelementptr inbounds %struct.s2n_result, ptr %360, i32 0, i32 0
  store i32 %12491, ptr %12492, align 4
  %12493 = getelementptr inbounds %struct.s2n_result, ptr %360, i32 0, i32 0
  %12494 = load i32, ptr %12493, align 4
  %12495 = call zeroext i1 @s2n_result_is_ok(i32 %12494)
  br i1 %12495, label %12549, label %12496

12496:                                            ; preds = %12487
  br label %12497

12497:                                            ; preds = %12496
  br label %12498

12498:                                            ; preds = %12497
  call void @llvm.lifetime.start.p0(i64 4, ptr %361) #11
  %12499 = call ptr @__errno_location() #12
  %12500 = load i32, ptr %12499, align 4, !tbaa !5
  store i32 %12500, ptr %361, align 4, !tbaa !5
  %12501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12502 = call i32 @s2n_print_stacktrace(ptr noundef %12501)
  %12503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12504 = trunc i8 %12503 to i1
  br i1 %12504, label %12505, label %12527

12505:                                            ; preds = %12498
  %12506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12507 = call i32 @fileno(ptr noundef %12506) #11
  %12508 = call i32 @isatty(i32 noundef %12507) #11
  %12509 = icmp ne i32 %12508, 0
  br i1 %12509, label %12510, label %12527

12510:                                            ; preds = %12505
  %12511 = load i32, ptr %361, align 4, !tbaa !5
  %12512 = call ptr @__errno_location() #12
  store i32 %12511, ptr %12512, align 4, !tbaa !5
  %12513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12514 = load i32, ptr @test_count, align 4, !tbaa !5
  %12515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12516 = load i32, ptr %12515, align 4, !tbaa !5
  %12517 = call ptr @s2n_strerror(i32 noundef %12516, ptr noundef @.str.4)
  %12518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12519 = load i32, ptr %12518, align 4, !tbaa !5
  %12520 = call ptr @s2n_strerror_debug(i32 noundef %12519, ptr noundef @.str.4)
  %12521 = call ptr @__errno_location() #12
  %12522 = load i32, ptr %12521, align 4, !tbaa !5
  %12523 = call ptr @strerror(i32 noundef %12522) #11
  %12524 = call ptr @__errno_location() #12
  %12525 = load i32, ptr %12524, align 4, !tbaa !5
  %12526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12513, ptr noundef @.str.2, i32 noundef %12514, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 797, ptr noundef %12517, ptr noundef %12520, ptr noundef %12523, i32 noundef %12525) #11
  br label %12544

12527:                                            ; preds = %12505, %12498
  %12528 = load i32, ptr %361, align 4, !tbaa !5
  %12529 = call ptr @__errno_location() #12
  store i32 %12528, ptr %12529, align 4, !tbaa !5
  %12530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12531 = load i32, ptr @test_count, align 4, !tbaa !5
  %12532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12533 = load i32, ptr %12532, align 4, !tbaa !5
  %12534 = call ptr @s2n_strerror(i32 noundef %12533, ptr noundef @.str.4)
  %12535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12536 = load i32, ptr %12535, align 4, !tbaa !5
  %12537 = call ptr @s2n_strerror_debug(i32 noundef %12536, ptr noundef @.str.4)
  %12538 = call ptr @__errno_location() #12
  %12539 = load i32, ptr %12538, align 4, !tbaa !5
  %12540 = call ptr @strerror(i32 noundef %12539) #11
  %12541 = call ptr @__errno_location() #12
  %12542 = load i32, ptr %12541, align 4, !tbaa !5
  %12543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12530, ptr noundef @.str.5, i32 noundef %12531, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 797, ptr noundef %12534, ptr noundef %12537, ptr noundef %12540, i32 noundef %12542) #11
  br label %12544

12544:                                            ; preds = %12527, %12510
  call void @llvm.lifetime.end.p0(i64 4, ptr %361) #11
  br label %12545

12545:                                            ; preds = %12544
  br label %12546

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

12547:                                            ; No predecessors!
  br label %12548

12548:                                            ; preds = %12547
  br label %12549

12549:                                            ; preds = %12548, %12487
  br label %12550

12550:                                            ; preds = %12549
  br label %12551

12551:                                            ; preds = %12550
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #11
  %12552 = getelementptr inbounds %struct.s2n_stuffer, ptr %359, i32 0, i32 2
  %12553 = load i32, ptr %12552, align 4, !tbaa !15
  %12554 = getelementptr inbounds %struct.s2n_stuffer, ptr %359, i32 0, i32 1
  %12555 = load i32, ptr %12554, align 8, !tbaa !18
  %12556 = sub i32 %12553, %12555
  store i32 %12556, ptr %362, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #11
  %12557 = load i32, ptr %362, align 4, !tbaa !5
  %12558 = call ptr @s2n_stuffer_raw_read(ptr noundef %359, i32 noundef %12557)
  store ptr %12558, ptr %363, align 8, !tbaa !9
  br label %12559

12559:                                            ; preds = %12551
  %12560 = load i32, ptr @test_count, align 4, !tbaa !5
  %12561 = add nsw i32 %12560, 1
  store i32 %12561, ptr @test_count, align 4, !tbaa !5
  %12562 = load ptr, ptr %363, align 8, !tbaa !9
  %12563 = icmp eq ptr %12562, null
  br i1 %12563, label %12564, label %12617

12564:                                            ; preds = %12559
  br label %12565

12565:                                            ; preds = %12564
  br label %12566

12566:                                            ; preds = %12565
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #11
  %12567 = call ptr @__errno_location() #12
  %12568 = load i32, ptr %12567, align 4, !tbaa !5
  store i32 %12568, ptr %364, align 4, !tbaa !5
  %12569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12570 = call i32 @s2n_print_stacktrace(ptr noundef %12569)
  %12571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12572 = trunc i8 %12571 to i1
  br i1 %12572, label %12573, label %12595

12573:                                            ; preds = %12566
  %12574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12575 = call i32 @fileno(ptr noundef %12574) #11
  %12576 = call i32 @isatty(i32 noundef %12575) #11
  %12577 = icmp ne i32 %12576, 0
  br i1 %12577, label %12578, label %12595

12578:                                            ; preds = %12573
  %12579 = load i32, ptr %364, align 4, !tbaa !5
  %12580 = call ptr @__errno_location() #12
  store i32 %12579, ptr %12580, align 4, !tbaa !5
  %12581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12582 = load i32, ptr @test_count, align 4, !tbaa !5
  %12583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12584 = load i32, ptr %12583, align 4, !tbaa !5
  %12585 = call ptr @s2n_strerror(i32 noundef %12584, ptr noundef @.str.4)
  %12586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12587 = load i32, ptr %12586, align 4, !tbaa !5
  %12588 = call ptr @s2n_strerror_debug(i32 noundef %12587, ptr noundef @.str.4)
  %12589 = call ptr @__errno_location() #12
  %12590 = load i32, ptr %12589, align 4, !tbaa !5
  %12591 = call ptr @strerror(i32 noundef %12590) #11
  %12592 = call ptr @__errno_location() #12
  %12593 = load i32, ptr %12592, align 4, !tbaa !5
  %12594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12581, ptr noundef @.str.2, i32 noundef %12582, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 800, ptr noundef %12585, ptr noundef %12588, ptr noundef %12591, i32 noundef %12593) #11
  br label %12612

12595:                                            ; preds = %12573, %12566
  %12596 = load i32, ptr %364, align 4, !tbaa !5
  %12597 = call ptr @__errno_location() #12
  store i32 %12596, ptr %12597, align 4, !tbaa !5
  %12598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12599 = load i32, ptr @test_count, align 4, !tbaa !5
  %12600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12601 = load i32, ptr %12600, align 4, !tbaa !5
  %12602 = call ptr @s2n_strerror(i32 noundef %12601, ptr noundef @.str.4)
  %12603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12604 = load i32, ptr %12603, align 4, !tbaa !5
  %12605 = call ptr @s2n_strerror_debug(i32 noundef %12604, ptr noundef @.str.4)
  %12606 = call ptr @__errno_location() #12
  %12607 = load i32, ptr %12606, align 4, !tbaa !5
  %12608 = call ptr @strerror(i32 noundef %12607) #11
  %12609 = call ptr @__errno_location() #12
  %12610 = load i32, ptr %12609, align 4, !tbaa !5
  %12611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12598, ptr noundef @.str.5, i32 noundef %12599, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 800, ptr noundef %12602, ptr noundef %12605, ptr noundef %12608, i32 noundef %12610) #11
  br label %12612

12612:                                            ; preds = %12595, %12578
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #11
  br label %12613

12613:                                            ; preds = %12612
  br label %12614

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

12615:                                            ; No predecessors!
  br label %12616

12616:                                            ; preds = %12615
  br label %12617

12617:                                            ; preds = %12616, %12559
  br label %12618

12618:                                            ; preds = %12617
  br label %12619

12619:                                            ; preds = %12618
  call void @llvm.lifetime.start.p0(i64 48, ptr %365) #11
  br label %12620

12620:                                            ; preds = %12619
  %12621 = load i32, ptr @test_count, align 4, !tbaa !5
  %12622 = add nsw i32 %12621, 1
  store i32 %12622, ptr @test_count, align 4, !tbaa !5
  %12623 = call i32 @s2n_pkey_zero_init(ptr noundef %365)
  %12624 = icmp eq i32 %12623, -1
  br i1 %12624, label %12625, label %12678

12625:                                            ; preds = %12620
  br label %12626

12626:                                            ; preds = %12625
  br label %12627

12627:                                            ; preds = %12626
  call void @llvm.lifetime.start.p0(i64 4, ptr %366) #11
  %12628 = call ptr @__errno_location() #12
  %12629 = load i32, ptr %12628, align 4, !tbaa !5
  store i32 %12629, ptr %366, align 4, !tbaa !5
  %12630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12631 = call i32 @s2n_print_stacktrace(ptr noundef %12630)
  %12632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12633 = trunc i8 %12632 to i1
  br i1 %12633, label %12634, label %12656

12634:                                            ; preds = %12627
  %12635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12636 = call i32 @fileno(ptr noundef %12635) #11
  %12637 = call i32 @isatty(i32 noundef %12636) #11
  %12638 = icmp ne i32 %12637, 0
  br i1 %12638, label %12639, label %12656

12639:                                            ; preds = %12634
  %12640 = load i32, ptr %366, align 4, !tbaa !5
  %12641 = call ptr @__errno_location() #12
  store i32 %12640, ptr %12641, align 4, !tbaa !5
  %12642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12643 = load i32, ptr @test_count, align 4, !tbaa !5
  %12644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12645 = load i32, ptr %12644, align 4, !tbaa !5
  %12646 = call ptr @s2n_strerror(i32 noundef %12645, ptr noundef @.str.4)
  %12647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12648 = load i32, ptr %12647, align 4, !tbaa !5
  %12649 = call ptr @s2n_strerror_debug(i32 noundef %12648, ptr noundef @.str.4)
  %12650 = call ptr @__errno_location() #12
  %12651 = load i32, ptr %12650, align 4, !tbaa !5
  %12652 = call ptr @strerror(i32 noundef %12651) #11
  %12653 = call ptr @__errno_location() #12
  %12654 = load i32, ptr %12653, align 4, !tbaa !5
  %12655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12642, ptr noundef @.str.2, i32 noundef %12643, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 803, ptr noundef %12646, ptr noundef %12649, ptr noundef %12652, i32 noundef %12654) #11
  br label %12673

12656:                                            ; preds = %12634, %12627
  %12657 = load i32, ptr %366, align 4, !tbaa !5
  %12658 = call ptr @__errno_location() #12
  store i32 %12657, ptr %12658, align 4, !tbaa !5
  %12659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12660 = load i32, ptr @test_count, align 4, !tbaa !5
  %12661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12662 = load i32, ptr %12661, align 4, !tbaa !5
  %12663 = call ptr @s2n_strerror(i32 noundef %12662, ptr noundef @.str.4)
  %12664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12665 = load i32, ptr %12664, align 4, !tbaa !5
  %12666 = call ptr @s2n_strerror_debug(i32 noundef %12665, ptr noundef @.str.4)
  %12667 = call ptr @__errno_location() #12
  %12668 = load i32, ptr %12667, align 4, !tbaa !5
  %12669 = call ptr @strerror(i32 noundef %12668) #11
  %12670 = call ptr @__errno_location() #12
  %12671 = load i32, ptr %12670, align 4, !tbaa !5
  %12672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12659, ptr noundef @.str.5, i32 noundef %12660, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 803, ptr noundef %12663, ptr noundef %12666, ptr noundef %12669, i32 noundef %12671) #11
  br label %12673

12673:                                            ; preds = %12656, %12639
  call void @llvm.lifetime.end.p0(i64 4, ptr %366) #11
  br label %12674

12674:                                            ; preds = %12673
  br label %12675

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

12676:                                            ; No predecessors!
  br label %12677

12677:                                            ; preds = %12676
  br label %12678

12678:                                            ; preds = %12677, %12620
  br label %12679

12679:                                            ; preds = %12678
  br label %12680

12680:                                            ; preds = %12679
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #11
  store i32 -1, ptr %367, align 4, !tbaa !5
  br label %12681

12681:                                            ; preds = %12680
  br label %12682

12682:                                            ; preds = %12681
  br label %12683

12683:                                            ; preds = %12682
  %12684 = load i32, ptr @test_count, align 4, !tbaa !5
  %12685 = add nsw i32 %12684, 1
  store i32 %12685, ptr @test_count, align 4, !tbaa !5
  %12686 = load ptr, ptr %356, align 8, !tbaa !9
  %12687 = load ptr, ptr %363, align 8, !tbaa !9
  %12688 = load i32, ptr %362, align 4, !tbaa !5
  %12689 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %355, ptr noundef %12686, ptr noundef %12687, i32 noundef %12688, ptr noundef %367, ptr noundef %365)
  %12690 = getelementptr inbounds %struct.s2n_result, ptr %368, i32 0, i32 0
  store i32 %12689, ptr %12690, align 4
  %12691 = getelementptr inbounds %struct.s2n_result, ptr %368, i32 0, i32 0
  %12692 = load i32, ptr %12691, align 4
  %12693 = call zeroext i1 @s2n_result_is_error(i32 %12692)
  br i1 %12693, label %12747, label %12694

12694:                                            ; preds = %12683
  br label %12695

12695:                                            ; preds = %12694
  br label %12696

12696:                                            ; preds = %12695
  call void @llvm.lifetime.start.p0(i64 4, ptr %369) #11
  %12697 = call ptr @__errno_location() #12
  %12698 = load i32, ptr %12697, align 4, !tbaa !5
  store i32 %12698, ptr %369, align 4, !tbaa !5
  %12699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12700 = call i32 @s2n_print_stacktrace(ptr noundef %12699)
  %12701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12702 = trunc i8 %12701 to i1
  br i1 %12702, label %12703, label %12725

12703:                                            ; preds = %12696
  %12704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12705 = call i32 @fileno(ptr noundef %12704) #11
  %12706 = call i32 @isatty(i32 noundef %12705) #11
  %12707 = icmp ne i32 %12706, 0
  br i1 %12707, label %12708, label %12725

12708:                                            ; preds = %12703
  %12709 = load i32, ptr %369, align 4, !tbaa !5
  %12710 = call ptr @__errno_location() #12
  store i32 %12709, ptr %12710, align 4, !tbaa !5
  %12711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12712 = load i32, ptr @test_count, align 4, !tbaa !5
  %12713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12714 = load i32, ptr %12713, align 4, !tbaa !5
  %12715 = call ptr @s2n_strerror(i32 noundef %12714, ptr noundef @.str.4)
  %12716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12717 = load i32, ptr %12716, align 4, !tbaa !5
  %12718 = call ptr @s2n_strerror_debug(i32 noundef %12717, ptr noundef @.str.4)
  %12719 = call ptr @__errno_location() #12
  %12720 = load i32, ptr %12719, align 4, !tbaa !5
  %12721 = call ptr @strerror(i32 noundef %12720) #11
  %12722 = call ptr @__errno_location() #12
  %12723 = load i32, ptr %12722, align 4, !tbaa !5
  %12724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12711, ptr noundef @.str.2, i32 noundef %12712, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 807, ptr noundef %12715, ptr noundef %12718, ptr noundef %12721, i32 noundef %12723) #11
  br label %12742

12725:                                            ; preds = %12703, %12696
  %12726 = load i32, ptr %369, align 4, !tbaa !5
  %12727 = call ptr @__errno_location() #12
  store i32 %12726, ptr %12727, align 4, !tbaa !5
  %12728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12729 = load i32, ptr @test_count, align 4, !tbaa !5
  %12730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12731 = load i32, ptr %12730, align 4, !tbaa !5
  %12732 = call ptr @s2n_strerror(i32 noundef %12731, ptr noundef @.str.4)
  %12733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12734 = load i32, ptr %12733, align 4, !tbaa !5
  %12735 = call ptr @s2n_strerror_debug(i32 noundef %12734, ptr noundef @.str.4)
  %12736 = call ptr @__errno_location() #12
  %12737 = load i32, ptr %12736, align 4, !tbaa !5
  %12738 = call ptr @strerror(i32 noundef %12737) #11
  %12739 = call ptr @__errno_location() #12
  %12740 = load i32, ptr %12739, align 4, !tbaa !5
  %12741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12728, ptr noundef @.str.5, i32 noundef %12729, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 807, ptr noundef %12732, ptr noundef %12735, ptr noundef %12738, i32 noundef %12740) #11
  br label %12742

12742:                                            ; preds = %12725, %12708
  call void @llvm.lifetime.end.p0(i64 4, ptr %369) #11
  br label %12743

12743:                                            ; preds = %12742
  br label %12744

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

12745:                                            ; No predecessors!
  br label %12746

12746:                                            ; preds = %12745
  br label %12747

12747:                                            ; preds = %12746, %12683
  br label %12748

12748:                                            ; preds = %12747
  br label %12749

12749:                                            ; preds = %12748
  br label %12750

12750:                                            ; preds = %12749
  %12751 = load i32, ptr @test_count, align 4, !tbaa !5
  %12752 = add nsw i32 %12751, 1
  store i32 %12752, ptr @test_count, align 4, !tbaa !5
  %12753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12754 = load i32, ptr %12753, align 4, !tbaa !5
  %12755 = icmp eq i32 %12754, 335544366
  br i1 %12755, label %12809, label %12756

12756:                                            ; preds = %12750
  br label %12757

12757:                                            ; preds = %12756
  br label %12758

12758:                                            ; preds = %12757
  call void @llvm.lifetime.start.p0(i64 4, ptr %370) #11
  %12759 = call ptr @__errno_location() #12
  %12760 = load i32, ptr %12759, align 4, !tbaa !5
  store i32 %12760, ptr %370, align 4, !tbaa !5
  %12761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12762 = call i32 @s2n_print_stacktrace(ptr noundef %12761)
  %12763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12764 = trunc i8 %12763 to i1
  br i1 %12764, label %12765, label %12787

12765:                                            ; preds = %12758
  %12766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12767 = call i32 @fileno(ptr noundef %12766) #11
  %12768 = call i32 @isatty(i32 noundef %12767) #11
  %12769 = icmp ne i32 %12768, 0
  br i1 %12769, label %12770, label %12787

12770:                                            ; preds = %12765
  %12771 = load i32, ptr %370, align 4, !tbaa !5
  %12772 = call ptr @__errno_location() #12
  store i32 %12771, ptr %12772, align 4, !tbaa !5
  %12773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12774 = load i32, ptr @test_count, align 4, !tbaa !5
  %12775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12776 = load i32, ptr %12775, align 4, !tbaa !5
  %12777 = call ptr @s2n_strerror(i32 noundef %12776, ptr noundef @.str.4)
  %12778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12779 = load i32, ptr %12778, align 4, !tbaa !5
  %12780 = call ptr @s2n_strerror_debug(i32 noundef %12779, ptr noundef @.str.4)
  %12781 = call ptr @__errno_location() #12
  %12782 = load i32, ptr %12781, align 4, !tbaa !5
  %12783 = call ptr @strerror(i32 noundef %12782) #11
  %12784 = call ptr @__errno_location() #12
  %12785 = load i32, ptr %12784, align 4, !tbaa !5
  %12786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12773, ptr noundef @.str.2, i32 noundef %12774, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 807, ptr noundef %12777, ptr noundef %12780, ptr noundef %12783, i32 noundef %12785) #11
  br label %12804

12787:                                            ; preds = %12765, %12758
  %12788 = load i32, ptr %370, align 4, !tbaa !5
  %12789 = call ptr @__errno_location() #12
  store i32 %12788, ptr %12789, align 4, !tbaa !5
  %12790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12791 = load i32, ptr @test_count, align 4, !tbaa !5
  %12792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12793 = load i32, ptr %12792, align 4, !tbaa !5
  %12794 = call ptr @s2n_strerror(i32 noundef %12793, ptr noundef @.str.4)
  %12795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12796 = load i32, ptr %12795, align 4, !tbaa !5
  %12797 = call ptr @s2n_strerror_debug(i32 noundef %12796, ptr noundef @.str.4)
  %12798 = call ptr @__errno_location() #12
  %12799 = load i32, ptr %12798, align 4, !tbaa !5
  %12800 = call ptr @strerror(i32 noundef %12799) #11
  %12801 = call ptr @__errno_location() #12
  %12802 = load i32, ptr %12801, align 4, !tbaa !5
  %12803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12790, ptr noundef @.str.5, i32 noundef %12791, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 807, ptr noundef %12794, ptr noundef %12797, ptr noundef %12800, i32 noundef %12802) #11
  br label %12804

12804:                                            ; preds = %12787, %12770
  call void @llvm.lifetime.end.p0(i64 4, ptr %370) #11
  br label %12805

12805:                                            ; preds = %12804
  br label %12806

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

12807:                                            ; No predecessors!
  br label %12808

12808:                                            ; preds = %12807
  br label %12809

12809:                                            ; preds = %12808, %12750
  br label %12810

12810:                                            ; preds = %12809
  br label %12811

12811:                                            ; preds = %12810
  br label %12812

12812:                                            ; preds = %12811
  %12813 = load i32, ptr @test_count, align 4, !tbaa !5
  %12814 = add nsw i32 %12813, 1
  store i32 %12814, ptr @test_count, align 4, !tbaa !5
  %12815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12816 = load i32, ptr %12815, align 4, !tbaa !5
  %12817 = call ptr @s2n_strerror_debug(i32 noundef %12816, ptr noundef @.str.4)
  %12818 = icmp eq ptr %12817, null
  br i1 %12818, label %12819, label %12872

12819:                                            ; preds = %12812
  br label %12820

12820:                                            ; preds = %12819
  br label %12821

12821:                                            ; preds = %12820
  call void @llvm.lifetime.start.p0(i64 4, ptr %371) #11
  %12822 = call ptr @__errno_location() #12
  %12823 = load i32, ptr %12822, align 4, !tbaa !5
  store i32 %12823, ptr %371, align 4, !tbaa !5
  %12824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12825 = call i32 @s2n_print_stacktrace(ptr noundef %12824)
  %12826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12827 = trunc i8 %12826 to i1
  br i1 %12827, label %12828, label %12850

12828:                                            ; preds = %12821
  %12829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12830 = call i32 @fileno(ptr noundef %12829) #11
  %12831 = call i32 @isatty(i32 noundef %12830) #11
  %12832 = icmp ne i32 %12831, 0
  br i1 %12832, label %12833, label %12850

12833:                                            ; preds = %12828
  %12834 = load i32, ptr %371, align 4, !tbaa !5
  %12835 = call ptr @__errno_location() #12
  store i32 %12834, ptr %12835, align 4, !tbaa !5
  %12836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12837 = load i32, ptr @test_count, align 4, !tbaa !5
  %12838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12839 = load i32, ptr %12838, align 4, !tbaa !5
  %12840 = call ptr @s2n_strerror(i32 noundef %12839, ptr noundef @.str.4)
  %12841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12842 = load i32, ptr %12841, align 4, !tbaa !5
  %12843 = call ptr @s2n_strerror_debug(i32 noundef %12842, ptr noundef @.str.4)
  %12844 = call ptr @__errno_location() #12
  %12845 = load i32, ptr %12844, align 4, !tbaa !5
  %12846 = call ptr @strerror(i32 noundef %12845) #11
  %12847 = call ptr @__errno_location() #12
  %12848 = load i32, ptr %12847, align 4, !tbaa !5
  %12849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12836, ptr noundef @.str.2, i32 noundef %12837, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 807, ptr noundef %12840, ptr noundef %12843, ptr noundef %12846, i32 noundef %12848) #11
  br label %12867

12850:                                            ; preds = %12828, %12821
  %12851 = load i32, ptr %371, align 4, !tbaa !5
  %12852 = call ptr @__errno_location() #12
  store i32 %12851, ptr %12852, align 4, !tbaa !5
  %12853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12854 = load i32, ptr @test_count, align 4, !tbaa !5
  %12855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12856 = load i32, ptr %12855, align 4, !tbaa !5
  %12857 = call ptr @s2n_strerror(i32 noundef %12856, ptr noundef @.str.4)
  %12858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12859 = load i32, ptr %12858, align 4, !tbaa !5
  %12860 = call ptr @s2n_strerror_debug(i32 noundef %12859, ptr noundef @.str.4)
  %12861 = call ptr @__errno_location() #12
  %12862 = load i32, ptr %12861, align 4, !tbaa !5
  %12863 = call ptr @strerror(i32 noundef %12862) #11
  %12864 = call ptr @__errno_location() #12
  %12865 = load i32, ptr %12864, align 4, !tbaa !5
  %12866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12853, ptr noundef @.str.5, i32 noundef %12854, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 807, ptr noundef %12857, ptr noundef %12860, ptr noundef %12863, i32 noundef %12865) #11
  br label %12867

12867:                                            ; preds = %12850, %12833
  call void @llvm.lifetime.end.p0(i64 4, ptr %371) #11
  br label %12868

12868:                                            ; preds = %12867
  br label %12869

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

12870:                                            ; No predecessors!
  br label %12871

12871:                                            ; preds = %12870
  br label %12872

12872:                                            ; preds = %12871, %12812
  br label %12873

12873:                                            ; preds = %12872
  br label %12874

12874:                                            ; preds = %12873
  br label %12875

12875:                                            ; preds = %12874
  br label %12876

12876:                                            ; preds = %12875
  br label %12877

12877:                                            ; preds = %12876
  %12878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12878, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12879 = call ptr @__errno_location() #12
  store i32 0, ptr %12879, align 4, !tbaa !5
  br label %12880

12880:                                            ; preds = %12877
  br label %12881

12881:                                            ; preds = %12880
  br label %12882

12882:                                            ; preds = %12881
  br label %12883

12883:                                            ; preds = %12882
  br label %12884

12884:                                            ; preds = %12883
  %12885 = load i32, ptr @test_count, align 4, !tbaa !5
  %12886 = add nsw i32 %12885, 1
  store i32 %12886, ptr @test_count, align 4, !tbaa !5
  %12887 = getelementptr inbounds %struct.host_verify_data, ptr %354, i32 0, i32 1
  %12888 = load i8, ptr %12887, align 8, !tbaa !21
  %12889 = zext i8 %12888 to i32
  %12890 = icmp eq i32 1, %12889
  br i1 %12890, label %12944, label %12891

12891:                                            ; preds = %12884
  br label %12892

12892:                                            ; preds = %12891
  br label %12893

12893:                                            ; preds = %12892
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #11
  %12894 = call ptr @__errno_location() #12
  %12895 = load i32, ptr %12894, align 4, !tbaa !5
  store i32 %12895, ptr %372, align 4, !tbaa !5
  %12896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12897 = call i32 @s2n_print_stacktrace(ptr noundef %12896)
  %12898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12899 = trunc i8 %12898 to i1
  br i1 %12899, label %12900, label %12922

12900:                                            ; preds = %12893
  %12901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12902 = call i32 @fileno(ptr noundef %12901) #11
  %12903 = call i32 @isatty(i32 noundef %12902) #11
  %12904 = icmp ne i32 %12903, 0
  br i1 %12904, label %12905, label %12922

12905:                                            ; preds = %12900
  %12906 = load i32, ptr %372, align 4, !tbaa !5
  %12907 = call ptr @__errno_location() #12
  store i32 %12906, ptr %12907, align 4, !tbaa !5
  %12908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12909 = load i32, ptr @test_count, align 4, !tbaa !5
  %12910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12911 = load i32, ptr %12910, align 4, !tbaa !5
  %12912 = call ptr @s2n_strerror(i32 noundef %12911, ptr noundef @.str.4)
  %12913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12914 = load i32, ptr %12913, align 4, !tbaa !5
  %12915 = call ptr @s2n_strerror_debug(i32 noundef %12914, ptr noundef @.str.4)
  %12916 = call ptr @__errno_location() #12
  %12917 = load i32, ptr %12916, align 4, !tbaa !5
  %12918 = call ptr @strerror(i32 noundef %12917) #11
  %12919 = call ptr @__errno_location() #12
  %12920 = load i32, ptr %12919, align 4, !tbaa !5
  %12921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12908, ptr noundef @.str.2, i32 noundef %12909, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 809, ptr noundef %12912, ptr noundef %12915, ptr noundef %12918, i32 noundef %12920) #11
  br label %12939

12922:                                            ; preds = %12900, %12893
  %12923 = load i32, ptr %372, align 4, !tbaa !5
  %12924 = call ptr @__errno_location() #12
  store i32 %12923, ptr %12924, align 4, !tbaa !5
  %12925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12926 = load i32, ptr @test_count, align 4, !tbaa !5
  %12927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12928 = load i32, ptr %12927, align 4, !tbaa !5
  %12929 = call ptr @s2n_strerror(i32 noundef %12928, ptr noundef @.str.4)
  %12930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12931 = load i32, ptr %12930, align 4, !tbaa !5
  %12932 = call ptr @s2n_strerror_debug(i32 noundef %12931, ptr noundef @.str.4)
  %12933 = call ptr @__errno_location() #12
  %12934 = load i32, ptr %12933, align 4, !tbaa !5
  %12935 = call ptr @strerror(i32 noundef %12934) #11
  %12936 = call ptr @__errno_location() #12
  %12937 = load i32, ptr %12936, align 4, !tbaa !5
  %12938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12925, ptr noundef @.str.5, i32 noundef %12926, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 809, ptr noundef %12929, ptr noundef %12932, ptr noundef %12935, i32 noundef %12937) #11
  br label %12939

12939:                                            ; preds = %12922, %12905
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #11
  br label %12940

12940:                                            ; preds = %12939
  br label %12941

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

12942:                                            ; No predecessors!
  br label %12943

12943:                                            ; preds = %12942
  br label %12944

12944:                                            ; preds = %12943, %12884
  br label %12945

12945:                                            ; preds = %12944
  br label %12946

12946:                                            ; preds = %12945
  br label %12947

12947:                                            ; preds = %12946
  %12948 = load i32, ptr @test_count, align 4, !tbaa !5
  %12949 = add nsw i32 %12948, 1
  store i32 %12949, ptr @test_count, align 4, !tbaa !5
  %12950 = getelementptr inbounds %struct.host_verify_data, ptr %354, i32 0, i32 2
  %12951 = load i8, ptr %12950, align 1, !tbaa !19
  %12952 = zext i8 %12951 to i32
  %12953 = icmp eq i32 1, %12952
  br i1 %12953, label %13007, label %12954

12954:                                            ; preds = %12947
  br label %12955

12955:                                            ; preds = %12954
  br label %12956

12956:                                            ; preds = %12955
  call void @llvm.lifetime.start.p0(i64 4, ptr %373) #11
  %12957 = call ptr @__errno_location() #12
  %12958 = load i32, ptr %12957, align 4, !tbaa !5
  store i32 %12958, ptr %373, align 4, !tbaa !5
  %12959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12960 = call i32 @s2n_print_stacktrace(ptr noundef %12959)
  %12961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12962 = trunc i8 %12961 to i1
  br i1 %12962, label %12963, label %12985

12963:                                            ; preds = %12956
  %12964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12965 = call i32 @fileno(ptr noundef %12964) #11
  %12966 = call i32 @isatty(i32 noundef %12965) #11
  %12967 = icmp ne i32 %12966, 0
  br i1 %12967, label %12968, label %12985

12968:                                            ; preds = %12963
  %12969 = load i32, ptr %373, align 4, !tbaa !5
  %12970 = call ptr @__errno_location() #12
  store i32 %12969, ptr %12970, align 4, !tbaa !5
  %12971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12972 = load i32, ptr @test_count, align 4, !tbaa !5
  %12973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12974 = load i32, ptr %12973, align 4, !tbaa !5
  %12975 = call ptr @s2n_strerror(i32 noundef %12974, ptr noundef @.str.4)
  %12976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12977 = load i32, ptr %12976, align 4, !tbaa !5
  %12978 = call ptr @s2n_strerror_debug(i32 noundef %12977, ptr noundef @.str.4)
  %12979 = call ptr @__errno_location() #12
  %12980 = load i32, ptr %12979, align 4, !tbaa !5
  %12981 = call ptr @strerror(i32 noundef %12980) #11
  %12982 = call ptr @__errno_location() #12
  %12983 = load i32, ptr %12982, align 4, !tbaa !5
  %12984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12971, ptr noundef @.str.2, i32 noundef %12972, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 810, ptr noundef %12975, ptr noundef %12978, ptr noundef %12981, i32 noundef %12983) #11
  br label %13002

12985:                                            ; preds = %12963, %12956
  %12986 = load i32, ptr %373, align 4, !tbaa !5
  %12987 = call ptr @__errno_location() #12
  store i32 %12986, ptr %12987, align 4, !tbaa !5
  %12988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12989 = load i32, ptr @test_count, align 4, !tbaa !5
  %12990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12991 = load i32, ptr %12990, align 4, !tbaa !5
  %12992 = call ptr @s2n_strerror(i32 noundef %12991, ptr noundef @.str.4)
  %12993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12994 = load i32, ptr %12993, align 4, !tbaa !5
  %12995 = call ptr @s2n_strerror_debug(i32 noundef %12994, ptr noundef @.str.4)
  %12996 = call ptr @__errno_location() #12
  %12997 = load i32, ptr %12996, align 4, !tbaa !5
  %12998 = call ptr @strerror(i32 noundef %12997) #11
  %12999 = call ptr @__errno_location() #12
  %13000 = load i32, ptr %12999, align 4, !tbaa !5
  %13001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12988, ptr noundef @.str.5, i32 noundef %12989, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 810, ptr noundef %12992, ptr noundef %12995, ptr noundef %12998, i32 noundef %13000) #11
  br label %13002

13002:                                            ; preds = %12985, %12968
  call void @llvm.lifetime.end.p0(i64 4, ptr %373) #11
  br label %13003

13003:                                            ; preds = %13002
  br label %13004

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

13005:                                            ; No predecessors!
  br label %13006

13006:                                            ; preds = %13005
  br label %13007

13007:                                            ; preds = %13006, %12947
  br label %13008

13008:                                            ; preds = %13007
  br label %13009

13009:                                            ; preds = %13008
  br label %13010

13010:                                            ; preds = %13009
  %13011 = load i32, ptr @test_count, align 4, !tbaa !5
  %13012 = add nsw i32 %13011, 1
  store i32 %13012, ptr @test_count, align 4, !tbaa !5
  %13013 = load i32, ptr %367, align 4, !tbaa !5
  %13014 = icmp eq i32 -1, %13013
  br i1 %13014, label %13068, label %13015

13015:                                            ; preds = %13010
  br label %13016

13016:                                            ; preds = %13015
  br label %13017

13017:                                            ; preds = %13016
  call void @llvm.lifetime.start.p0(i64 4, ptr %374) #11
  %13018 = call ptr @__errno_location() #12
  %13019 = load i32, ptr %13018, align 4, !tbaa !5
  store i32 %13019, ptr %374, align 4, !tbaa !5
  %13020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13021 = call i32 @s2n_print_stacktrace(ptr noundef %13020)
  %13022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13023 = trunc i8 %13022 to i1
  br i1 %13023, label %13024, label %13046

13024:                                            ; preds = %13017
  %13025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13026 = call i32 @fileno(ptr noundef %13025) #11
  %13027 = call i32 @isatty(i32 noundef %13026) #11
  %13028 = icmp ne i32 %13027, 0
  br i1 %13028, label %13029, label %13046

13029:                                            ; preds = %13024
  %13030 = load i32, ptr %374, align 4, !tbaa !5
  %13031 = call ptr @__errno_location() #12
  store i32 %13030, ptr %13031, align 4, !tbaa !5
  %13032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13033 = load i32, ptr @test_count, align 4, !tbaa !5
  %13034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13035 = load i32, ptr %13034, align 4, !tbaa !5
  %13036 = call ptr @s2n_strerror(i32 noundef %13035, ptr noundef @.str.4)
  %13037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13038 = load i32, ptr %13037, align 4, !tbaa !5
  %13039 = call ptr @s2n_strerror_debug(i32 noundef %13038, ptr noundef @.str.4)
  %13040 = call ptr @__errno_location() #12
  %13041 = load i32, ptr %13040, align 4, !tbaa !5
  %13042 = call ptr @strerror(i32 noundef %13041) #11
  %13043 = call ptr @__errno_location() #12
  %13044 = load i32, ptr %13043, align 4, !tbaa !5
  %13045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13032, ptr noundef @.str.2, i32 noundef %13033, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 811, ptr noundef %13036, ptr noundef %13039, ptr noundef %13042, i32 noundef %13044) #11
  br label %13063

13046:                                            ; preds = %13024, %13017
  %13047 = load i32, ptr %374, align 4, !tbaa !5
  %13048 = call ptr @__errno_location() #12
  store i32 %13047, ptr %13048, align 4, !tbaa !5
  %13049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13050 = load i32, ptr @test_count, align 4, !tbaa !5
  %13051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13052 = load i32, ptr %13051, align 4, !tbaa !5
  %13053 = call ptr @s2n_strerror(i32 noundef %13052, ptr noundef @.str.4)
  %13054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13055 = load i32, ptr %13054, align 4, !tbaa !5
  %13056 = call ptr @s2n_strerror_debug(i32 noundef %13055, ptr noundef @.str.4)
  %13057 = call ptr @__errno_location() #12
  %13058 = load i32, ptr %13057, align 4, !tbaa !5
  %13059 = call ptr @strerror(i32 noundef %13058) #11
  %13060 = call ptr @__errno_location() #12
  %13061 = load i32, ptr %13060, align 4, !tbaa !5
  %13062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13049, ptr noundef @.str.5, i32 noundef %13050, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 811, ptr noundef %13053, ptr noundef %13056, ptr noundef %13059, i32 noundef %13061) #11
  br label %13063

13063:                                            ; preds = %13046, %13029
  call void @llvm.lifetime.end.p0(i64 4, ptr %374) #11
  br label %13064

13064:                                            ; preds = %13063
  br label %13065

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

13066:                                            ; No predecessors!
  br label %13067

13067:                                            ; preds = %13066
  br label %13068

13068:                                            ; preds = %13067, %13010
  br label %13069

13069:                                            ; preds = %13068
  br label %13070

13070:                                            ; preds = %13069
  %13071 = load ptr, ptr %356, align 8, !tbaa !9
  %13072 = call i32 @s2n_connection_free(ptr noundef %13071)
  %13073 = call i32 @s2n_pkey_free(ptr noundef %365)
  %13074 = call i32 @s2n_x509_validator_wipe(ptr noundef %355)
  call void @s2n_x509_trust_store_wipe(ptr noundef %352)
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %365) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #11
  %13075 = call i32 @s2n_stuffer_free(ptr noundef %359)
  call void @llvm.lifetime.end.p0(i64 40, ptr %359) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %356) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %355) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %354) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %352) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %375) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %375)
  br label %13076

13076:                                            ; preds = %13070
  %13077 = load i32, ptr @test_count, align 4, !tbaa !5
  %13078 = add nsw i32 %13077, 1
  store i32 %13078, ptr @test_count, align 4, !tbaa !5
  %13079 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %375, ptr noundef @.str.11, ptr noundef null)
  %13080 = icmp eq i32 %13079, -1
  br i1 %13080, label %13081, label %13134

13081:                                            ; preds = %13076
  br label %13082

13082:                                            ; preds = %13081
  br label %13083

13083:                                            ; preds = %13082
  call void @llvm.lifetime.start.p0(i64 4, ptr %376) #11
  %13084 = call ptr @__errno_location() #12
  %13085 = load i32, ptr %13084, align 4, !tbaa !5
  store i32 %13085, ptr %376, align 4, !tbaa !5
  %13086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13087 = call i32 @s2n_print_stacktrace(ptr noundef %13086)
  %13088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13089 = trunc i8 %13088 to i1
  br i1 %13089, label %13090, label %13112

13090:                                            ; preds = %13083
  %13091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13092 = call i32 @fileno(ptr noundef %13091) #11
  %13093 = call i32 @isatty(i32 noundef %13092) #11
  %13094 = icmp ne i32 %13093, 0
  br i1 %13094, label %13095, label %13112

13095:                                            ; preds = %13090
  %13096 = load i32, ptr %376, align 4, !tbaa !5
  %13097 = call ptr @__errno_location() #12
  store i32 %13096, ptr %13097, align 4, !tbaa !5
  %13098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13099 = load i32, ptr @test_count, align 4, !tbaa !5
  %13100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13101 = load i32, ptr %13100, align 4, !tbaa !5
  %13102 = call ptr @s2n_strerror(i32 noundef %13101, ptr noundef @.str.4)
  %13103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13104 = load i32, ptr %13103, align 4, !tbaa !5
  %13105 = call ptr @s2n_strerror_debug(i32 noundef %13104, ptr noundef @.str.4)
  %13106 = call ptr @__errno_location() #12
  %13107 = load i32, ptr %13106, align 4, !tbaa !5
  %13108 = call ptr @strerror(i32 noundef %13107) #11
  %13109 = call ptr @__errno_location() #12
  %13110 = load i32, ptr %13109, align 4, !tbaa !5
  %13111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13098, ptr noundef @.str.2, i32 noundef %13099, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 825, ptr noundef %13102, ptr noundef %13105, ptr noundef %13108, i32 noundef %13110) #11
  br label %13129

13112:                                            ; preds = %13090, %13083
  %13113 = load i32, ptr %376, align 4, !tbaa !5
  %13114 = call ptr @__errno_location() #12
  store i32 %13113, ptr %13114, align 4, !tbaa !5
  %13115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13116 = load i32, ptr @test_count, align 4, !tbaa !5
  %13117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13118 = load i32, ptr %13117, align 4, !tbaa !5
  %13119 = call ptr @s2n_strerror(i32 noundef %13118, ptr noundef @.str.4)
  %13120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13121 = load i32, ptr %13120, align 4, !tbaa !5
  %13122 = call ptr @s2n_strerror_debug(i32 noundef %13121, ptr noundef @.str.4)
  %13123 = call ptr @__errno_location() #12
  %13124 = load i32, ptr %13123, align 4, !tbaa !5
  %13125 = call ptr @strerror(i32 noundef %13124) #11
  %13126 = call ptr @__errno_location() #12
  %13127 = load i32, ptr %13126, align 4, !tbaa !5
  %13128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13115, ptr noundef @.str.5, i32 noundef %13116, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 825, ptr noundef %13119, ptr noundef %13122, ptr noundef %13125, i32 noundef %13127) #11
  br label %13129

13129:                                            ; preds = %13112, %13095
  call void @llvm.lifetime.end.p0(i64 4, ptr %376) #11
  br label %13130

13130:                                            ; preds = %13129
  br label %13131

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

13132:                                            ; No predecessors!
  br label %13133

13133:                                            ; preds = %13132
  br label %13134

13134:                                            ; preds = %13133, %13076
  br label %13135

13135:                                            ; preds = %13134
  br label %13136

13136:                                            ; preds = %13135
  call void @llvm.lifetime.start.p0(i64 16, ptr %377) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %377, ptr align 8 @__const.main.verify_data.67, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %378) #11
  %13137 = call i32 @s2n_x509_validator_init(ptr noundef %378, ptr noundef %375, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %379) #11
  %13138 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %13138, ptr %379, align 8, !tbaa !9
  br label %13139

13139:                                            ; preds = %13136
  %13140 = load i32, ptr @test_count, align 4, !tbaa !5
  %13141 = add nsw i32 %13140, 1
  store i32 %13141, ptr @test_count, align 4, !tbaa !5
  %13142 = load ptr, ptr %379, align 8, !tbaa !9
  %13143 = icmp eq ptr %13142, null
  br i1 %13143, label %13144, label %13197

13144:                                            ; preds = %13139
  br label %13145

13145:                                            ; preds = %13144
  br label %13146

13146:                                            ; preds = %13145
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #11
  %13147 = call ptr @__errno_location() #12
  %13148 = load i32, ptr %13147, align 4, !tbaa !5
  store i32 %13148, ptr %380, align 4, !tbaa !5
  %13149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13150 = call i32 @s2n_print_stacktrace(ptr noundef %13149)
  %13151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13152 = trunc i8 %13151 to i1
  br i1 %13152, label %13153, label %13175

13153:                                            ; preds = %13146
  %13154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13155 = call i32 @fileno(ptr noundef %13154) #11
  %13156 = call i32 @isatty(i32 noundef %13155) #11
  %13157 = icmp ne i32 %13156, 0
  br i1 %13157, label %13158, label %13175

13158:                                            ; preds = %13153
  %13159 = load i32, ptr %380, align 4, !tbaa !5
  %13160 = call ptr @__errno_location() #12
  store i32 %13159, ptr %13160, align 4, !tbaa !5
  %13161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13162 = load i32, ptr @test_count, align 4, !tbaa !5
  %13163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13164 = load i32, ptr %13163, align 4, !tbaa !5
  %13165 = call ptr @s2n_strerror(i32 noundef %13164, ptr noundef @.str.4)
  %13166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13167 = load i32, ptr %13166, align 4, !tbaa !5
  %13168 = call ptr @s2n_strerror_debug(i32 noundef %13167, ptr noundef @.str.4)
  %13169 = call ptr @__errno_location() #12
  %13170 = load i32, ptr %13169, align 4, !tbaa !5
  %13171 = call ptr @strerror(i32 noundef %13170) #11
  %13172 = call ptr @__errno_location() #12
  %13173 = load i32, ptr %13172, align 4, !tbaa !5
  %13174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13161, ptr noundef @.str.2, i32 noundef %13162, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 837, ptr noundef %13165, ptr noundef %13168, ptr noundef %13171, i32 noundef %13173) #11
  br label %13192

13175:                                            ; preds = %13153, %13146
  %13176 = load i32, ptr %380, align 4, !tbaa !5
  %13177 = call ptr @__errno_location() #12
  store i32 %13176, ptr %13177, align 4, !tbaa !5
  %13178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13179 = load i32, ptr @test_count, align 4, !tbaa !5
  %13180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13181 = load i32, ptr %13180, align 4, !tbaa !5
  %13182 = call ptr @s2n_strerror(i32 noundef %13181, ptr noundef @.str.4)
  %13183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13184 = load i32, ptr %13183, align 4, !tbaa !5
  %13185 = call ptr @s2n_strerror_debug(i32 noundef %13184, ptr noundef @.str.4)
  %13186 = call ptr @__errno_location() #12
  %13187 = load i32, ptr %13186, align 4, !tbaa !5
  %13188 = call ptr @strerror(i32 noundef %13187) #11
  %13189 = call ptr @__errno_location() #12
  %13190 = load i32, ptr %13189, align 4, !tbaa !5
  %13191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13178, ptr noundef @.str.5, i32 noundef %13179, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 837, ptr noundef %13182, ptr noundef %13185, ptr noundef %13188, i32 noundef %13190) #11
  br label %13192

13192:                                            ; preds = %13175, %13158
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #11
  br label %13193

13193:                                            ; preds = %13192
  br label %13194

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

13195:                                            ; No predecessors!
  br label %13196

13196:                                            ; preds = %13195
  br label %13197

13197:                                            ; preds = %13196, %13139
  br label %13198

13198:                                            ; preds = %13197
  br label %13199

13199:                                            ; preds = %13198
  br label %13200

13200:                                            ; preds = %13199
  %13201 = load i32, ptr @test_count, align 4, !tbaa !5
  %13202 = add nsw i32 %13201, 1
  store i32 %13202, ptr @test_count, align 4, !tbaa !5
  %13203 = load ptr, ptr %379, align 8, !tbaa !9
  %13204 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %13203, ptr noundef @verify_host_verify_alt, ptr noundef %377)
  %13205 = icmp eq i32 %13204, -1
  br i1 %13205, label %13206, label %13259

13206:                                            ; preds = %13200
  br label %13207

13207:                                            ; preds = %13206
  br label %13208

13208:                                            ; preds = %13207
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #11
  %13209 = call ptr @__errno_location() #12
  %13210 = load i32, ptr %13209, align 4, !tbaa !5
  store i32 %13210, ptr %381, align 4, !tbaa !5
  %13211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13212 = call i32 @s2n_print_stacktrace(ptr noundef %13211)
  %13213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13214 = trunc i8 %13213 to i1
  br i1 %13214, label %13215, label %13237

13215:                                            ; preds = %13208
  %13216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13217 = call i32 @fileno(ptr noundef %13216) #11
  %13218 = call i32 @isatty(i32 noundef %13217) #11
  %13219 = icmp ne i32 %13218, 0
  br i1 %13219, label %13220, label %13237

13220:                                            ; preds = %13215
  %13221 = load i32, ptr %381, align 4, !tbaa !5
  %13222 = call ptr @__errno_location() #12
  store i32 %13221, ptr %13222, align 4, !tbaa !5
  %13223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13224 = load i32, ptr @test_count, align 4, !tbaa !5
  %13225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13226 = load i32, ptr %13225, align 4, !tbaa !5
  %13227 = call ptr @s2n_strerror(i32 noundef %13226, ptr noundef @.str.4)
  %13228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13229 = load i32, ptr %13228, align 4, !tbaa !5
  %13230 = call ptr @s2n_strerror_debug(i32 noundef %13229, ptr noundef @.str.4)
  %13231 = call ptr @__errno_location() #12
  %13232 = load i32, ptr %13231, align 4, !tbaa !5
  %13233 = call ptr @strerror(i32 noundef %13232) #11
  %13234 = call ptr @__errno_location() #12
  %13235 = load i32, ptr %13234, align 4, !tbaa !5
  %13236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13223, ptr noundef @.str.2, i32 noundef %13224, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 838, ptr noundef %13227, ptr noundef %13230, ptr noundef %13233, i32 noundef %13235) #11
  br label %13254

13237:                                            ; preds = %13215, %13208
  %13238 = load i32, ptr %381, align 4, !tbaa !5
  %13239 = call ptr @__errno_location() #12
  store i32 %13238, ptr %13239, align 4, !tbaa !5
  %13240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13241 = load i32, ptr @test_count, align 4, !tbaa !5
  %13242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13243 = load i32, ptr %13242, align 4, !tbaa !5
  %13244 = call ptr @s2n_strerror(i32 noundef %13243, ptr noundef @.str.4)
  %13245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13246 = load i32, ptr %13245, align 4, !tbaa !5
  %13247 = call ptr @s2n_strerror_debug(i32 noundef %13246, ptr noundef @.str.4)
  %13248 = call ptr @__errno_location() #12
  %13249 = load i32, ptr %13248, align 4, !tbaa !5
  %13250 = call ptr @strerror(i32 noundef %13249) #11
  %13251 = call ptr @__errno_location() #12
  %13252 = load i32, ptr %13251, align 4, !tbaa !5
  %13253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13240, ptr noundef @.str.5, i32 noundef %13241, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 838, ptr noundef %13244, ptr noundef %13247, ptr noundef %13250, i32 noundef %13252) #11
  br label %13254

13254:                                            ; preds = %13237, %13220
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #11
  br label %13255

13255:                                            ; preds = %13254
  br label %13256

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

13257:                                            ; No predecessors!
  br label %13258

13258:                                            ; preds = %13257
  br label %13259

13259:                                            ; preds = %13258, %13200
  br label %13260

13260:                                            ; preds = %13259
  br label %13261

13261:                                            ; preds = %13260
  call void @llvm.lifetime.start.p0(i64 40, ptr %382) #11
  call void @llvm.memset.p0.i64(ptr align 8 %382, i8 0, i64 40, i1 false)
  br label %13262

13262:                                            ; preds = %13261
  %13263 = load i32, ptr @test_count, align 4, !tbaa !5
  %13264 = add nsw i32 %13263, 1
  store i32 %13264, ptr @test_count, align 4, !tbaa !5
  %13265 = load ptr, ptr %379, align 8, !tbaa !9
  %13266 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %13265, ptr noundef @.str.64, ptr noundef %382)
  %13267 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  store i32 %13266, ptr %13267, align 4
  %13268 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  %13269 = load i32, ptr %13268, align 4
  %13270 = call zeroext i1 @s2n_result_is_ok(i32 %13269)
  br i1 %13270, label %13324, label %13271

13271:                                            ; preds = %13262
  br label %13272

13272:                                            ; preds = %13271
  br label %13273

13273:                                            ; preds = %13272
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #11
  %13274 = call ptr @__errno_location() #12
  %13275 = load i32, ptr %13274, align 4, !tbaa !5
  store i32 %13275, ptr %384, align 4, !tbaa !5
  %13276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13277 = call i32 @s2n_print_stacktrace(ptr noundef %13276)
  %13278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13279 = trunc i8 %13278 to i1
  br i1 %13279, label %13280, label %13302

13280:                                            ; preds = %13273
  %13281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13282 = call i32 @fileno(ptr noundef %13281) #11
  %13283 = call i32 @isatty(i32 noundef %13282) #11
  %13284 = icmp ne i32 %13283, 0
  br i1 %13284, label %13285, label %13302

13285:                                            ; preds = %13280
  %13286 = load i32, ptr %384, align 4, !tbaa !5
  %13287 = call ptr @__errno_location() #12
  store i32 %13286, ptr %13287, align 4, !tbaa !5
  %13288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13289 = load i32, ptr @test_count, align 4, !tbaa !5
  %13290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13291 = load i32, ptr %13290, align 4, !tbaa !5
  %13292 = call ptr @s2n_strerror(i32 noundef %13291, ptr noundef @.str.4)
  %13293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13294 = load i32, ptr %13293, align 4, !tbaa !5
  %13295 = call ptr @s2n_strerror_debug(i32 noundef %13294, ptr noundef @.str.4)
  %13296 = call ptr @__errno_location() #12
  %13297 = load i32, ptr %13296, align 4, !tbaa !5
  %13298 = call ptr @strerror(i32 noundef %13297) #11
  %13299 = call ptr @__errno_location() #12
  %13300 = load i32, ptr %13299, align 4, !tbaa !5
  %13301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13288, ptr noundef @.str.2, i32 noundef %13289, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 841, ptr noundef %13292, ptr noundef %13295, ptr noundef %13298, i32 noundef %13300) #11
  br label %13319

13302:                                            ; preds = %13280, %13273
  %13303 = load i32, ptr %384, align 4, !tbaa !5
  %13304 = call ptr @__errno_location() #12
  store i32 %13303, ptr %13304, align 4, !tbaa !5
  %13305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13306 = load i32, ptr @test_count, align 4, !tbaa !5
  %13307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13308 = load i32, ptr %13307, align 4, !tbaa !5
  %13309 = call ptr @s2n_strerror(i32 noundef %13308, ptr noundef @.str.4)
  %13310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13311 = load i32, ptr %13310, align 4, !tbaa !5
  %13312 = call ptr @s2n_strerror_debug(i32 noundef %13311, ptr noundef @.str.4)
  %13313 = call ptr @__errno_location() #12
  %13314 = load i32, ptr %13313, align 4, !tbaa !5
  %13315 = call ptr @strerror(i32 noundef %13314) #11
  %13316 = call ptr @__errno_location() #12
  %13317 = load i32, ptr %13316, align 4, !tbaa !5
  %13318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13305, ptr noundef @.str.5, i32 noundef %13306, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 841, ptr noundef %13309, ptr noundef %13312, ptr noundef %13315, i32 noundef %13317) #11
  br label %13319

13319:                                            ; preds = %13302, %13285
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #11
  br label %13320

13320:                                            ; preds = %13319
  br label %13321

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

13322:                                            ; No predecessors!
  br label %13323

13323:                                            ; preds = %13322
  br label %13324

13324:                                            ; preds = %13323, %13262
  br label %13325

13325:                                            ; preds = %13324
  br label %13326

13326:                                            ; preds = %13325
  call void @llvm.lifetime.start.p0(i64 4, ptr %385) #11
  %13327 = getelementptr inbounds %struct.s2n_stuffer, ptr %382, i32 0, i32 2
  %13328 = load i32, ptr %13327, align 4, !tbaa !15
  %13329 = getelementptr inbounds %struct.s2n_stuffer, ptr %382, i32 0, i32 1
  %13330 = load i32, ptr %13329, align 8, !tbaa !18
  %13331 = sub i32 %13328, %13330
  store i32 %13331, ptr %385, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %386) #11
  %13332 = load i32, ptr %385, align 4, !tbaa !5
  %13333 = call ptr @s2n_stuffer_raw_read(ptr noundef %382, i32 noundef %13332)
  store ptr %13333, ptr %386, align 8, !tbaa !9
  br label %13334

13334:                                            ; preds = %13326
  %13335 = load i32, ptr @test_count, align 4, !tbaa !5
  %13336 = add nsw i32 %13335, 1
  store i32 %13336, ptr @test_count, align 4, !tbaa !5
  %13337 = load ptr, ptr %386, align 8, !tbaa !9
  %13338 = icmp eq ptr %13337, null
  br i1 %13338, label %13339, label %13392

13339:                                            ; preds = %13334
  br label %13340

13340:                                            ; preds = %13339
  br label %13341

13341:                                            ; preds = %13340
  call void @llvm.lifetime.start.p0(i64 4, ptr %387) #11
  %13342 = call ptr @__errno_location() #12
  %13343 = load i32, ptr %13342, align 4, !tbaa !5
  store i32 %13343, ptr %387, align 4, !tbaa !5
  %13344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13345 = call i32 @s2n_print_stacktrace(ptr noundef %13344)
  %13346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13347 = trunc i8 %13346 to i1
  br i1 %13347, label %13348, label %13370

13348:                                            ; preds = %13341
  %13349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13350 = call i32 @fileno(ptr noundef %13349) #11
  %13351 = call i32 @isatty(i32 noundef %13350) #11
  %13352 = icmp ne i32 %13351, 0
  br i1 %13352, label %13353, label %13370

13353:                                            ; preds = %13348
  %13354 = load i32, ptr %387, align 4, !tbaa !5
  %13355 = call ptr @__errno_location() #12
  store i32 %13354, ptr %13355, align 4, !tbaa !5
  %13356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13357 = load i32, ptr @test_count, align 4, !tbaa !5
  %13358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13359 = load i32, ptr %13358, align 4, !tbaa !5
  %13360 = call ptr @s2n_strerror(i32 noundef %13359, ptr noundef @.str.4)
  %13361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13362 = load i32, ptr %13361, align 4, !tbaa !5
  %13363 = call ptr @s2n_strerror_debug(i32 noundef %13362, ptr noundef @.str.4)
  %13364 = call ptr @__errno_location() #12
  %13365 = load i32, ptr %13364, align 4, !tbaa !5
  %13366 = call ptr @strerror(i32 noundef %13365) #11
  %13367 = call ptr @__errno_location() #12
  %13368 = load i32, ptr %13367, align 4, !tbaa !5
  %13369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13356, ptr noundef @.str.2, i32 noundef %13357, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 844, ptr noundef %13360, ptr noundef %13363, ptr noundef %13366, i32 noundef %13368) #11
  br label %13387

13370:                                            ; preds = %13348, %13341
  %13371 = load i32, ptr %387, align 4, !tbaa !5
  %13372 = call ptr @__errno_location() #12
  store i32 %13371, ptr %13372, align 4, !tbaa !5
  %13373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13374 = load i32, ptr @test_count, align 4, !tbaa !5
  %13375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13376 = load i32, ptr %13375, align 4, !tbaa !5
  %13377 = call ptr @s2n_strerror(i32 noundef %13376, ptr noundef @.str.4)
  %13378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13379 = load i32, ptr %13378, align 4, !tbaa !5
  %13380 = call ptr @s2n_strerror_debug(i32 noundef %13379, ptr noundef @.str.4)
  %13381 = call ptr @__errno_location() #12
  %13382 = load i32, ptr %13381, align 4, !tbaa !5
  %13383 = call ptr @strerror(i32 noundef %13382) #11
  %13384 = call ptr @__errno_location() #12
  %13385 = load i32, ptr %13384, align 4, !tbaa !5
  %13386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13373, ptr noundef @.str.5, i32 noundef %13374, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 844, ptr noundef %13377, ptr noundef %13380, ptr noundef %13383, i32 noundef %13385) #11
  br label %13387

13387:                                            ; preds = %13370, %13353
  call void @llvm.lifetime.end.p0(i64 4, ptr %387) #11
  br label %13388

13388:                                            ; preds = %13387
  br label %13389

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

13390:                                            ; No predecessors!
  br label %13391

13391:                                            ; preds = %13390
  br label %13392

13392:                                            ; preds = %13391, %13334
  br label %13393

13393:                                            ; preds = %13392
  br label %13394

13394:                                            ; preds = %13393
  call void @llvm.lifetime.start.p0(i64 48, ptr %388) #11
  br label %13395

13395:                                            ; preds = %13394
  %13396 = load i32, ptr @test_count, align 4, !tbaa !5
  %13397 = add nsw i32 %13396, 1
  store i32 %13397, ptr @test_count, align 4, !tbaa !5
  %13398 = call i32 @s2n_pkey_zero_init(ptr noundef %388)
  %13399 = icmp eq i32 %13398, -1
  br i1 %13399, label %13400, label %13453

13400:                                            ; preds = %13395
  br label %13401

13401:                                            ; preds = %13400
  br label %13402

13402:                                            ; preds = %13401
  call void @llvm.lifetime.start.p0(i64 4, ptr %389) #11
  %13403 = call ptr @__errno_location() #12
  %13404 = load i32, ptr %13403, align 4, !tbaa !5
  store i32 %13404, ptr %389, align 4, !tbaa !5
  %13405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13406 = call i32 @s2n_print_stacktrace(ptr noundef %13405)
  %13407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13408 = trunc i8 %13407 to i1
  br i1 %13408, label %13409, label %13431

13409:                                            ; preds = %13402
  %13410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13411 = call i32 @fileno(ptr noundef %13410) #11
  %13412 = call i32 @isatty(i32 noundef %13411) #11
  %13413 = icmp ne i32 %13412, 0
  br i1 %13413, label %13414, label %13431

13414:                                            ; preds = %13409
  %13415 = load i32, ptr %389, align 4, !tbaa !5
  %13416 = call ptr @__errno_location() #12
  store i32 %13415, ptr %13416, align 4, !tbaa !5
  %13417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13418 = load i32, ptr @test_count, align 4, !tbaa !5
  %13419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13420 = load i32, ptr %13419, align 4, !tbaa !5
  %13421 = call ptr @s2n_strerror(i32 noundef %13420, ptr noundef @.str.4)
  %13422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13423 = load i32, ptr %13422, align 4, !tbaa !5
  %13424 = call ptr @s2n_strerror_debug(i32 noundef %13423, ptr noundef @.str.4)
  %13425 = call ptr @__errno_location() #12
  %13426 = load i32, ptr %13425, align 4, !tbaa !5
  %13427 = call ptr @strerror(i32 noundef %13426) #11
  %13428 = call ptr @__errno_location() #12
  %13429 = load i32, ptr %13428, align 4, !tbaa !5
  %13430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13417, ptr noundef @.str.2, i32 noundef %13418, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 847, ptr noundef %13421, ptr noundef %13424, ptr noundef %13427, i32 noundef %13429) #11
  br label %13448

13431:                                            ; preds = %13409, %13402
  %13432 = load i32, ptr %389, align 4, !tbaa !5
  %13433 = call ptr @__errno_location() #12
  store i32 %13432, ptr %13433, align 4, !tbaa !5
  %13434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13435 = load i32, ptr @test_count, align 4, !tbaa !5
  %13436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13437 = load i32, ptr %13436, align 4, !tbaa !5
  %13438 = call ptr @s2n_strerror(i32 noundef %13437, ptr noundef @.str.4)
  %13439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13440 = load i32, ptr %13439, align 4, !tbaa !5
  %13441 = call ptr @s2n_strerror_debug(i32 noundef %13440, ptr noundef @.str.4)
  %13442 = call ptr @__errno_location() #12
  %13443 = load i32, ptr %13442, align 4, !tbaa !5
  %13444 = call ptr @strerror(i32 noundef %13443) #11
  %13445 = call ptr @__errno_location() #12
  %13446 = load i32, ptr %13445, align 4, !tbaa !5
  %13447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13434, ptr noundef @.str.5, i32 noundef %13435, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 847, ptr noundef %13438, ptr noundef %13441, ptr noundef %13444, i32 noundef %13446) #11
  br label %13448

13448:                                            ; preds = %13431, %13414
  call void @llvm.lifetime.end.p0(i64 4, ptr %389) #11
  br label %13449

13449:                                            ; preds = %13448
  br label %13450

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

13451:                                            ; No predecessors!
  br label %13452

13452:                                            ; preds = %13451
  br label %13453

13453:                                            ; preds = %13452, %13395
  br label %13454

13454:                                            ; preds = %13453
  br label %13455

13455:                                            ; preds = %13454
  call void @llvm.lifetime.start.p0(i64 4, ptr %390) #11
  store i32 -1, ptr %390, align 4, !tbaa !5
  br label %13456

13456:                                            ; preds = %13455
  br label %13457

13457:                                            ; preds = %13456
  br label %13458

13458:                                            ; preds = %13457
  %13459 = load i32, ptr @test_count, align 4, !tbaa !5
  %13460 = add nsw i32 %13459, 1
  store i32 %13460, ptr @test_count, align 4, !tbaa !5
  %13461 = load ptr, ptr %379, align 8, !tbaa !9
  %13462 = load ptr, ptr %386, align 8, !tbaa !9
  %13463 = load i32, ptr %385, align 4, !tbaa !5
  %13464 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %378, ptr noundef %13461, ptr noundef %13462, i32 noundef %13463, ptr noundef %390, ptr noundef %388)
  %13465 = getelementptr inbounds %struct.s2n_result, ptr %391, i32 0, i32 0
  store i32 %13464, ptr %13465, align 4
  %13466 = getelementptr inbounds %struct.s2n_result, ptr %391, i32 0, i32 0
  %13467 = load i32, ptr %13466, align 4
  %13468 = call zeroext i1 @s2n_result_is_error(i32 %13467)
  br i1 %13468, label %13522, label %13469

13469:                                            ; preds = %13458
  br label %13470

13470:                                            ; preds = %13469
  br label %13471

13471:                                            ; preds = %13470
  call void @llvm.lifetime.start.p0(i64 4, ptr %392) #11
  %13472 = call ptr @__errno_location() #12
  %13473 = load i32, ptr %13472, align 4, !tbaa !5
  store i32 %13473, ptr %392, align 4, !tbaa !5
  %13474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13475 = call i32 @s2n_print_stacktrace(ptr noundef %13474)
  %13476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13477 = trunc i8 %13476 to i1
  br i1 %13477, label %13478, label %13500

13478:                                            ; preds = %13471
  %13479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13480 = call i32 @fileno(ptr noundef %13479) #11
  %13481 = call i32 @isatty(i32 noundef %13480) #11
  %13482 = icmp ne i32 %13481, 0
  br i1 %13482, label %13483, label %13500

13483:                                            ; preds = %13478
  %13484 = load i32, ptr %392, align 4, !tbaa !5
  %13485 = call ptr @__errno_location() #12
  store i32 %13484, ptr %13485, align 4, !tbaa !5
  %13486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13487 = load i32, ptr @test_count, align 4, !tbaa !5
  %13488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13489 = load i32, ptr %13488, align 4, !tbaa !5
  %13490 = call ptr @s2n_strerror(i32 noundef %13489, ptr noundef @.str.4)
  %13491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13492 = load i32, ptr %13491, align 4, !tbaa !5
  %13493 = call ptr @s2n_strerror_debug(i32 noundef %13492, ptr noundef @.str.4)
  %13494 = call ptr @__errno_location() #12
  %13495 = load i32, ptr %13494, align 4, !tbaa !5
  %13496 = call ptr @strerror(i32 noundef %13495) #11
  %13497 = call ptr @__errno_location() #12
  %13498 = load i32, ptr %13497, align 4, !tbaa !5
  %13499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13486, ptr noundef @.str.2, i32 noundef %13487, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 851, ptr noundef %13490, ptr noundef %13493, ptr noundef %13496, i32 noundef %13498) #11
  br label %13517

13500:                                            ; preds = %13478, %13471
  %13501 = load i32, ptr %392, align 4, !tbaa !5
  %13502 = call ptr @__errno_location() #12
  store i32 %13501, ptr %13502, align 4, !tbaa !5
  %13503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13504 = load i32, ptr @test_count, align 4, !tbaa !5
  %13505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13506 = load i32, ptr %13505, align 4, !tbaa !5
  %13507 = call ptr @s2n_strerror(i32 noundef %13506, ptr noundef @.str.4)
  %13508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13509 = load i32, ptr %13508, align 4, !tbaa !5
  %13510 = call ptr @s2n_strerror_debug(i32 noundef %13509, ptr noundef @.str.4)
  %13511 = call ptr @__errno_location() #12
  %13512 = load i32, ptr %13511, align 4, !tbaa !5
  %13513 = call ptr @strerror(i32 noundef %13512) #11
  %13514 = call ptr @__errno_location() #12
  %13515 = load i32, ptr %13514, align 4, !tbaa !5
  %13516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13503, ptr noundef @.str.5, i32 noundef %13504, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 851, ptr noundef %13507, ptr noundef %13510, ptr noundef %13513, i32 noundef %13515) #11
  br label %13517

13517:                                            ; preds = %13500, %13483
  call void @llvm.lifetime.end.p0(i64 4, ptr %392) #11
  br label %13518

13518:                                            ; preds = %13517
  br label %13519

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

13520:                                            ; No predecessors!
  br label %13521

13521:                                            ; preds = %13520
  br label %13522

13522:                                            ; preds = %13521, %13458
  br label %13523

13523:                                            ; preds = %13522
  br label %13524

13524:                                            ; preds = %13523
  br label %13525

13525:                                            ; preds = %13524
  %13526 = load i32, ptr @test_count, align 4, !tbaa !5
  %13527 = add nsw i32 %13526, 1
  store i32 %13527, ptr @test_count, align 4, !tbaa !5
  %13528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13529 = load i32, ptr %13528, align 4, !tbaa !5
  %13530 = icmp eq i32 %13529, 335544366
  br i1 %13530, label %13584, label %13531

13531:                                            ; preds = %13525
  br label %13532

13532:                                            ; preds = %13531
  br label %13533

13533:                                            ; preds = %13532
  call void @llvm.lifetime.start.p0(i64 4, ptr %393) #11
  %13534 = call ptr @__errno_location() #12
  %13535 = load i32, ptr %13534, align 4, !tbaa !5
  store i32 %13535, ptr %393, align 4, !tbaa !5
  %13536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13537 = call i32 @s2n_print_stacktrace(ptr noundef %13536)
  %13538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13539 = trunc i8 %13538 to i1
  br i1 %13539, label %13540, label %13562

13540:                                            ; preds = %13533
  %13541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13542 = call i32 @fileno(ptr noundef %13541) #11
  %13543 = call i32 @isatty(i32 noundef %13542) #11
  %13544 = icmp ne i32 %13543, 0
  br i1 %13544, label %13545, label %13562

13545:                                            ; preds = %13540
  %13546 = load i32, ptr %393, align 4, !tbaa !5
  %13547 = call ptr @__errno_location() #12
  store i32 %13546, ptr %13547, align 4, !tbaa !5
  %13548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13549 = load i32, ptr @test_count, align 4, !tbaa !5
  %13550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13551 = load i32, ptr %13550, align 4, !tbaa !5
  %13552 = call ptr @s2n_strerror(i32 noundef %13551, ptr noundef @.str.4)
  %13553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13554 = load i32, ptr %13553, align 4, !tbaa !5
  %13555 = call ptr @s2n_strerror_debug(i32 noundef %13554, ptr noundef @.str.4)
  %13556 = call ptr @__errno_location() #12
  %13557 = load i32, ptr %13556, align 4, !tbaa !5
  %13558 = call ptr @strerror(i32 noundef %13557) #11
  %13559 = call ptr @__errno_location() #12
  %13560 = load i32, ptr %13559, align 4, !tbaa !5
  %13561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13548, ptr noundef @.str.2, i32 noundef %13549, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 851, ptr noundef %13552, ptr noundef %13555, ptr noundef %13558, i32 noundef %13560) #11
  br label %13579

13562:                                            ; preds = %13540, %13533
  %13563 = load i32, ptr %393, align 4, !tbaa !5
  %13564 = call ptr @__errno_location() #12
  store i32 %13563, ptr %13564, align 4, !tbaa !5
  %13565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13566 = load i32, ptr @test_count, align 4, !tbaa !5
  %13567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13568 = load i32, ptr %13567, align 4, !tbaa !5
  %13569 = call ptr @s2n_strerror(i32 noundef %13568, ptr noundef @.str.4)
  %13570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13571 = load i32, ptr %13570, align 4, !tbaa !5
  %13572 = call ptr @s2n_strerror_debug(i32 noundef %13571, ptr noundef @.str.4)
  %13573 = call ptr @__errno_location() #12
  %13574 = load i32, ptr %13573, align 4, !tbaa !5
  %13575 = call ptr @strerror(i32 noundef %13574) #11
  %13576 = call ptr @__errno_location() #12
  %13577 = load i32, ptr %13576, align 4, !tbaa !5
  %13578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13565, ptr noundef @.str.5, i32 noundef %13566, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 851, ptr noundef %13569, ptr noundef %13572, ptr noundef %13575, i32 noundef %13577) #11
  br label %13579

13579:                                            ; preds = %13562, %13545
  call void @llvm.lifetime.end.p0(i64 4, ptr %393) #11
  br label %13580

13580:                                            ; preds = %13579
  br label %13581

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

13582:                                            ; No predecessors!
  br label %13583

13583:                                            ; preds = %13582
  br label %13584

13584:                                            ; preds = %13583, %13525
  br label %13585

13585:                                            ; preds = %13584
  br label %13586

13586:                                            ; preds = %13585
  br label %13587

13587:                                            ; preds = %13586
  %13588 = load i32, ptr @test_count, align 4, !tbaa !5
  %13589 = add nsw i32 %13588, 1
  store i32 %13589, ptr @test_count, align 4, !tbaa !5
  %13590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13591 = load i32, ptr %13590, align 4, !tbaa !5
  %13592 = call ptr @s2n_strerror_debug(i32 noundef %13591, ptr noundef @.str.4)
  %13593 = icmp eq ptr %13592, null
  br i1 %13593, label %13594, label %13647

13594:                                            ; preds = %13587
  br label %13595

13595:                                            ; preds = %13594
  br label %13596

13596:                                            ; preds = %13595
  call void @llvm.lifetime.start.p0(i64 4, ptr %394) #11
  %13597 = call ptr @__errno_location() #12
  %13598 = load i32, ptr %13597, align 4, !tbaa !5
  store i32 %13598, ptr %394, align 4, !tbaa !5
  %13599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13600 = call i32 @s2n_print_stacktrace(ptr noundef %13599)
  %13601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13602 = trunc i8 %13601 to i1
  br i1 %13602, label %13603, label %13625

13603:                                            ; preds = %13596
  %13604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13605 = call i32 @fileno(ptr noundef %13604) #11
  %13606 = call i32 @isatty(i32 noundef %13605) #11
  %13607 = icmp ne i32 %13606, 0
  br i1 %13607, label %13608, label %13625

13608:                                            ; preds = %13603
  %13609 = load i32, ptr %394, align 4, !tbaa !5
  %13610 = call ptr @__errno_location() #12
  store i32 %13609, ptr %13610, align 4, !tbaa !5
  %13611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13612 = load i32, ptr @test_count, align 4, !tbaa !5
  %13613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13614 = load i32, ptr %13613, align 4, !tbaa !5
  %13615 = call ptr @s2n_strerror(i32 noundef %13614, ptr noundef @.str.4)
  %13616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13617 = load i32, ptr %13616, align 4, !tbaa !5
  %13618 = call ptr @s2n_strerror_debug(i32 noundef %13617, ptr noundef @.str.4)
  %13619 = call ptr @__errno_location() #12
  %13620 = load i32, ptr %13619, align 4, !tbaa !5
  %13621 = call ptr @strerror(i32 noundef %13620) #11
  %13622 = call ptr @__errno_location() #12
  %13623 = load i32, ptr %13622, align 4, !tbaa !5
  %13624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13611, ptr noundef @.str.2, i32 noundef %13612, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 851, ptr noundef %13615, ptr noundef %13618, ptr noundef %13621, i32 noundef %13623) #11
  br label %13642

13625:                                            ; preds = %13603, %13596
  %13626 = load i32, ptr %394, align 4, !tbaa !5
  %13627 = call ptr @__errno_location() #12
  store i32 %13626, ptr %13627, align 4, !tbaa !5
  %13628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13629 = load i32, ptr @test_count, align 4, !tbaa !5
  %13630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13631 = load i32, ptr %13630, align 4, !tbaa !5
  %13632 = call ptr @s2n_strerror(i32 noundef %13631, ptr noundef @.str.4)
  %13633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13634 = load i32, ptr %13633, align 4, !tbaa !5
  %13635 = call ptr @s2n_strerror_debug(i32 noundef %13634, ptr noundef @.str.4)
  %13636 = call ptr @__errno_location() #12
  %13637 = load i32, ptr %13636, align 4, !tbaa !5
  %13638 = call ptr @strerror(i32 noundef %13637) #11
  %13639 = call ptr @__errno_location() #12
  %13640 = load i32, ptr %13639, align 4, !tbaa !5
  %13641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13628, ptr noundef @.str.5, i32 noundef %13629, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 851, ptr noundef %13632, ptr noundef %13635, ptr noundef %13638, i32 noundef %13640) #11
  br label %13642

13642:                                            ; preds = %13625, %13608
  call void @llvm.lifetime.end.p0(i64 4, ptr %394) #11
  br label %13643

13643:                                            ; preds = %13642
  br label %13644

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

13645:                                            ; No predecessors!
  br label %13646

13646:                                            ; preds = %13645
  br label %13647

13647:                                            ; preds = %13646, %13587
  br label %13648

13648:                                            ; preds = %13647
  br label %13649

13649:                                            ; preds = %13648
  br label %13650

13650:                                            ; preds = %13649
  br label %13651

13651:                                            ; preds = %13650
  br label %13652

13652:                                            ; preds = %13651
  %13653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %13653, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %13654 = call ptr @__errno_location() #12
  store i32 0, ptr %13654, align 4, !tbaa !5
  br label %13655

13655:                                            ; preds = %13652
  br label %13656

13656:                                            ; preds = %13655
  br label %13657

13657:                                            ; preds = %13656
  br label %13658

13658:                                            ; preds = %13657
  br label %13659

13659:                                            ; preds = %13658
  %13660 = load i32, ptr @test_count, align 4, !tbaa !5
  %13661 = add nsw i32 %13660, 1
  store i32 %13661, ptr @test_count, align 4, !tbaa !5
  %13662 = getelementptr inbounds %struct.host_verify_data, ptr %377, i32 0, i32 1
  %13663 = load i8, ptr %13662, align 8, !tbaa !21
  %13664 = zext i8 %13663 to i32
  %13665 = icmp eq i32 0, %13664
  br i1 %13665, label %13719, label %13666

13666:                                            ; preds = %13659
  br label %13667

13667:                                            ; preds = %13666
  br label %13668

13668:                                            ; preds = %13667
  call void @llvm.lifetime.start.p0(i64 4, ptr %395) #11
  %13669 = call ptr @__errno_location() #12
  %13670 = load i32, ptr %13669, align 4, !tbaa !5
  store i32 %13670, ptr %395, align 4, !tbaa !5
  %13671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13672 = call i32 @s2n_print_stacktrace(ptr noundef %13671)
  %13673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13674 = trunc i8 %13673 to i1
  br i1 %13674, label %13675, label %13697

13675:                                            ; preds = %13668
  %13676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13677 = call i32 @fileno(ptr noundef %13676) #11
  %13678 = call i32 @isatty(i32 noundef %13677) #11
  %13679 = icmp ne i32 %13678, 0
  br i1 %13679, label %13680, label %13697

13680:                                            ; preds = %13675
  %13681 = load i32, ptr %395, align 4, !tbaa !5
  %13682 = call ptr @__errno_location() #12
  store i32 %13681, ptr %13682, align 4, !tbaa !5
  %13683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13684 = load i32, ptr @test_count, align 4, !tbaa !5
  %13685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13686 = load i32, ptr %13685, align 4, !tbaa !5
  %13687 = call ptr @s2n_strerror(i32 noundef %13686, ptr noundef @.str.4)
  %13688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13689 = load i32, ptr %13688, align 4, !tbaa !5
  %13690 = call ptr @s2n_strerror_debug(i32 noundef %13689, ptr noundef @.str.4)
  %13691 = call ptr @__errno_location() #12
  %13692 = load i32, ptr %13691, align 4, !tbaa !5
  %13693 = call ptr @strerror(i32 noundef %13692) #11
  %13694 = call ptr @__errno_location() #12
  %13695 = load i32, ptr %13694, align 4, !tbaa !5
  %13696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13683, ptr noundef @.str.2, i32 noundef %13684, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 853, ptr noundef %13687, ptr noundef %13690, ptr noundef %13693, i32 noundef %13695) #11
  br label %13714

13697:                                            ; preds = %13675, %13668
  %13698 = load i32, ptr %395, align 4, !tbaa !5
  %13699 = call ptr @__errno_location() #12
  store i32 %13698, ptr %13699, align 4, !tbaa !5
  %13700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13701 = load i32, ptr @test_count, align 4, !tbaa !5
  %13702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13703 = load i32, ptr %13702, align 4, !tbaa !5
  %13704 = call ptr @s2n_strerror(i32 noundef %13703, ptr noundef @.str.4)
  %13705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13706 = load i32, ptr %13705, align 4, !tbaa !5
  %13707 = call ptr @s2n_strerror_debug(i32 noundef %13706, ptr noundef @.str.4)
  %13708 = call ptr @__errno_location() #12
  %13709 = load i32, ptr %13708, align 4, !tbaa !5
  %13710 = call ptr @strerror(i32 noundef %13709) #11
  %13711 = call ptr @__errno_location() #12
  %13712 = load i32, ptr %13711, align 4, !tbaa !5
  %13713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13700, ptr noundef @.str.5, i32 noundef %13701, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 853, ptr noundef %13704, ptr noundef %13707, ptr noundef %13710, i32 noundef %13712) #11
  br label %13714

13714:                                            ; preds = %13697, %13680
  call void @llvm.lifetime.end.p0(i64 4, ptr %395) #11
  br label %13715

13715:                                            ; preds = %13714
  br label %13716

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

13717:                                            ; No predecessors!
  br label %13718

13718:                                            ; preds = %13717
  br label %13719

13719:                                            ; preds = %13718, %13659
  br label %13720

13720:                                            ; preds = %13719
  br label %13721

13721:                                            ; preds = %13720
  br label %13722

13722:                                            ; preds = %13721
  %13723 = load i32, ptr @test_count, align 4, !tbaa !5
  %13724 = add nsw i32 %13723, 1
  store i32 %13724, ptr @test_count, align 4, !tbaa !5
  %13725 = getelementptr inbounds %struct.host_verify_data, ptr %377, i32 0, i32 2
  %13726 = load i8, ptr %13725, align 1, !tbaa !19
  %13727 = zext i8 %13726 to i32
  %13728 = icmp eq i32 1, %13727
  br i1 %13728, label %13782, label %13729

13729:                                            ; preds = %13722
  br label %13730

13730:                                            ; preds = %13729
  br label %13731

13731:                                            ; preds = %13730
  call void @llvm.lifetime.start.p0(i64 4, ptr %396) #11
  %13732 = call ptr @__errno_location() #12
  %13733 = load i32, ptr %13732, align 4, !tbaa !5
  store i32 %13733, ptr %396, align 4, !tbaa !5
  %13734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13735 = call i32 @s2n_print_stacktrace(ptr noundef %13734)
  %13736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13737 = trunc i8 %13736 to i1
  br i1 %13737, label %13738, label %13760

13738:                                            ; preds = %13731
  %13739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13740 = call i32 @fileno(ptr noundef %13739) #11
  %13741 = call i32 @isatty(i32 noundef %13740) #11
  %13742 = icmp ne i32 %13741, 0
  br i1 %13742, label %13743, label %13760

13743:                                            ; preds = %13738
  %13744 = load i32, ptr %396, align 4, !tbaa !5
  %13745 = call ptr @__errno_location() #12
  store i32 %13744, ptr %13745, align 4, !tbaa !5
  %13746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13747 = load i32, ptr @test_count, align 4, !tbaa !5
  %13748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13749 = load i32, ptr %13748, align 4, !tbaa !5
  %13750 = call ptr @s2n_strerror(i32 noundef %13749, ptr noundef @.str.4)
  %13751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13752 = load i32, ptr %13751, align 4, !tbaa !5
  %13753 = call ptr @s2n_strerror_debug(i32 noundef %13752, ptr noundef @.str.4)
  %13754 = call ptr @__errno_location() #12
  %13755 = load i32, ptr %13754, align 4, !tbaa !5
  %13756 = call ptr @strerror(i32 noundef %13755) #11
  %13757 = call ptr @__errno_location() #12
  %13758 = load i32, ptr %13757, align 4, !tbaa !5
  %13759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13746, ptr noundef @.str.2, i32 noundef %13747, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 854, ptr noundef %13750, ptr noundef %13753, ptr noundef %13756, i32 noundef %13758) #11
  br label %13777

13760:                                            ; preds = %13738, %13731
  %13761 = load i32, ptr %396, align 4, !tbaa !5
  %13762 = call ptr @__errno_location() #12
  store i32 %13761, ptr %13762, align 4, !tbaa !5
  %13763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13764 = load i32, ptr @test_count, align 4, !tbaa !5
  %13765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13766 = load i32, ptr %13765, align 4, !tbaa !5
  %13767 = call ptr @s2n_strerror(i32 noundef %13766, ptr noundef @.str.4)
  %13768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13769 = load i32, ptr %13768, align 4, !tbaa !5
  %13770 = call ptr @s2n_strerror_debug(i32 noundef %13769, ptr noundef @.str.4)
  %13771 = call ptr @__errno_location() #12
  %13772 = load i32, ptr %13771, align 4, !tbaa !5
  %13773 = call ptr @strerror(i32 noundef %13772) #11
  %13774 = call ptr @__errno_location() #12
  %13775 = load i32, ptr %13774, align 4, !tbaa !5
  %13776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13763, ptr noundef @.str.5, i32 noundef %13764, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 854, ptr noundef %13767, ptr noundef %13770, ptr noundef %13773, i32 noundef %13775) #11
  br label %13777

13777:                                            ; preds = %13760, %13743
  call void @llvm.lifetime.end.p0(i64 4, ptr %396) #11
  br label %13778

13778:                                            ; preds = %13777
  br label %13779

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

13780:                                            ; No predecessors!
  br label %13781

13781:                                            ; preds = %13780
  br label %13782

13782:                                            ; preds = %13781, %13722
  br label %13783

13783:                                            ; preds = %13782
  br label %13784

13784:                                            ; preds = %13783
  br label %13785

13785:                                            ; preds = %13784
  %13786 = load i32, ptr @test_count, align 4, !tbaa !5
  %13787 = add nsw i32 %13786, 1
  store i32 %13787, ptr @test_count, align 4, !tbaa !5
  %13788 = load i32, ptr %390, align 4, !tbaa !5
  %13789 = icmp eq i32 -1, %13788
  br i1 %13789, label %13843, label %13790

13790:                                            ; preds = %13785
  br label %13791

13791:                                            ; preds = %13790
  br label %13792

13792:                                            ; preds = %13791
  call void @llvm.lifetime.start.p0(i64 4, ptr %397) #11
  %13793 = call ptr @__errno_location() #12
  %13794 = load i32, ptr %13793, align 4, !tbaa !5
  store i32 %13794, ptr %397, align 4, !tbaa !5
  %13795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13796 = call i32 @s2n_print_stacktrace(ptr noundef %13795)
  %13797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13798 = trunc i8 %13797 to i1
  br i1 %13798, label %13799, label %13821

13799:                                            ; preds = %13792
  %13800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13801 = call i32 @fileno(ptr noundef %13800) #11
  %13802 = call i32 @isatty(i32 noundef %13801) #11
  %13803 = icmp ne i32 %13802, 0
  br i1 %13803, label %13804, label %13821

13804:                                            ; preds = %13799
  %13805 = load i32, ptr %397, align 4, !tbaa !5
  %13806 = call ptr @__errno_location() #12
  store i32 %13805, ptr %13806, align 4, !tbaa !5
  %13807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13808 = load i32, ptr @test_count, align 4, !tbaa !5
  %13809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13810 = load i32, ptr %13809, align 4, !tbaa !5
  %13811 = call ptr @s2n_strerror(i32 noundef %13810, ptr noundef @.str.4)
  %13812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13813 = load i32, ptr %13812, align 4, !tbaa !5
  %13814 = call ptr @s2n_strerror_debug(i32 noundef %13813, ptr noundef @.str.4)
  %13815 = call ptr @__errno_location() #12
  %13816 = load i32, ptr %13815, align 4, !tbaa !5
  %13817 = call ptr @strerror(i32 noundef %13816) #11
  %13818 = call ptr @__errno_location() #12
  %13819 = load i32, ptr %13818, align 4, !tbaa !5
  %13820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13807, ptr noundef @.str.2, i32 noundef %13808, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 855, ptr noundef %13811, ptr noundef %13814, ptr noundef %13817, i32 noundef %13819) #11
  br label %13838

13821:                                            ; preds = %13799, %13792
  %13822 = load i32, ptr %397, align 4, !tbaa !5
  %13823 = call ptr @__errno_location() #12
  store i32 %13822, ptr %13823, align 4, !tbaa !5
  %13824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13825 = load i32, ptr @test_count, align 4, !tbaa !5
  %13826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13827 = load i32, ptr %13826, align 4, !tbaa !5
  %13828 = call ptr @s2n_strerror(i32 noundef %13827, ptr noundef @.str.4)
  %13829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13830 = load i32, ptr %13829, align 4, !tbaa !5
  %13831 = call ptr @s2n_strerror_debug(i32 noundef %13830, ptr noundef @.str.4)
  %13832 = call ptr @__errno_location() #12
  %13833 = load i32, ptr %13832, align 4, !tbaa !5
  %13834 = call ptr @strerror(i32 noundef %13833) #11
  %13835 = call ptr @__errno_location() #12
  %13836 = load i32, ptr %13835, align 4, !tbaa !5
  %13837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13824, ptr noundef @.str.5, i32 noundef %13825, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 855, ptr noundef %13828, ptr noundef %13831, ptr noundef %13834, i32 noundef %13836) #11
  br label %13838

13838:                                            ; preds = %13821, %13804
  call void @llvm.lifetime.end.p0(i64 4, ptr %397) #11
  br label %13839

13839:                                            ; preds = %13838
  br label %13840

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

13841:                                            ; No predecessors!
  br label %13842

13842:                                            ; preds = %13841
  br label %13843

13843:                                            ; preds = %13842, %13785
  br label %13844

13844:                                            ; preds = %13843
  br label %13845

13845:                                            ; preds = %13844
  %13846 = load ptr, ptr %379, align 8, !tbaa !9
  %13847 = call i32 @s2n_connection_free(ptr noundef %13846)
  %13848 = call i32 @s2n_pkey_free(ptr noundef %388)
  %13849 = call i32 @s2n_x509_validator_wipe(ptr noundef %378)
  call void @s2n_x509_trust_store_wipe(ptr noundef %375)
  call void @llvm.lifetime.end.p0(i64 4, ptr %390) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %388) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %386) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %385) #11
  %13850 = call i32 @s2n_stuffer_free(ptr noundef %382)
  call void @llvm.lifetime.end.p0(i64 40, ptr %382) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %379) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %378) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %377) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %375) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %398) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %398)
  br label %13851

13851:                                            ; preds = %13845
  %13852 = load i32, ptr @test_count, align 4, !tbaa !5
  %13853 = add nsw i32 %13852, 1
  store i32 %13853, ptr @test_count, align 4, !tbaa !5
  %13854 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %398, ptr noundef @.str.11, ptr noundef null)
  %13855 = icmp eq i32 %13854, -1
  br i1 %13855, label %13856, label %13909

13856:                                            ; preds = %13851
  br label %13857

13857:                                            ; preds = %13856
  br label %13858

13858:                                            ; preds = %13857
  call void @llvm.lifetime.start.p0(i64 4, ptr %399) #11
  %13859 = call ptr @__errno_location() #12
  %13860 = load i32, ptr %13859, align 4, !tbaa !5
  store i32 %13860, ptr %399, align 4, !tbaa !5
  %13861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13862 = call i32 @s2n_print_stacktrace(ptr noundef %13861)
  %13863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13864 = trunc i8 %13863 to i1
  br i1 %13864, label %13865, label %13887

13865:                                            ; preds = %13858
  %13866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13867 = call i32 @fileno(ptr noundef %13866) #11
  %13868 = call i32 @isatty(i32 noundef %13867) #11
  %13869 = icmp ne i32 %13868, 0
  br i1 %13869, label %13870, label %13887

13870:                                            ; preds = %13865
  %13871 = load i32, ptr %399, align 4, !tbaa !5
  %13872 = call ptr @__errno_location() #12
  store i32 %13871, ptr %13872, align 4, !tbaa !5
  %13873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13874 = load i32, ptr @test_count, align 4, !tbaa !5
  %13875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13876 = load i32, ptr %13875, align 4, !tbaa !5
  %13877 = call ptr @s2n_strerror(i32 noundef %13876, ptr noundef @.str.4)
  %13878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13879 = load i32, ptr %13878, align 4, !tbaa !5
  %13880 = call ptr @s2n_strerror_debug(i32 noundef %13879, ptr noundef @.str.4)
  %13881 = call ptr @__errno_location() #12
  %13882 = load i32, ptr %13881, align 4, !tbaa !5
  %13883 = call ptr @strerror(i32 noundef %13882) #11
  %13884 = call ptr @__errno_location() #12
  %13885 = load i32, ptr %13884, align 4, !tbaa !5
  %13886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13873, ptr noundef @.str.2, i32 noundef %13874, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 869, ptr noundef %13877, ptr noundef %13880, ptr noundef %13883, i32 noundef %13885) #11
  br label %13904

13887:                                            ; preds = %13865, %13858
  %13888 = load i32, ptr %399, align 4, !tbaa !5
  %13889 = call ptr @__errno_location() #12
  store i32 %13888, ptr %13889, align 4, !tbaa !5
  %13890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13891 = load i32, ptr @test_count, align 4, !tbaa !5
  %13892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13893 = load i32, ptr %13892, align 4, !tbaa !5
  %13894 = call ptr @s2n_strerror(i32 noundef %13893, ptr noundef @.str.4)
  %13895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13896 = load i32, ptr %13895, align 4, !tbaa !5
  %13897 = call ptr @s2n_strerror_debug(i32 noundef %13896, ptr noundef @.str.4)
  %13898 = call ptr @__errno_location() #12
  %13899 = load i32, ptr %13898, align 4, !tbaa !5
  %13900 = call ptr @strerror(i32 noundef %13899) #11
  %13901 = call ptr @__errno_location() #12
  %13902 = load i32, ptr %13901, align 4, !tbaa !5
  %13903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13890, ptr noundef @.str.5, i32 noundef %13891, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 869, ptr noundef %13894, ptr noundef %13897, ptr noundef %13900, i32 noundef %13902) #11
  br label %13904

13904:                                            ; preds = %13887, %13870
  call void @llvm.lifetime.end.p0(i64 4, ptr %399) #11
  br label %13905

13905:                                            ; preds = %13904
  br label %13906

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

13907:                                            ; No predecessors!
  br label %13908

13908:                                            ; preds = %13907
  br label %13909

13909:                                            ; preds = %13908, %13851
  br label %13910

13910:                                            ; preds = %13909
  br label %13911

13911:                                            ; preds = %13910
  call void @llvm.lifetime.start.p0(i64 16, ptr %400) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %400, ptr align 8 @__const.main.verify_data.69, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %401) #11
  %13912 = call i32 @s2n_x509_validator_init(ptr noundef %401, ptr noundef %398, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %402) #11
  %13913 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %13913, ptr %402, align 8, !tbaa !9
  br label %13914

13914:                                            ; preds = %13911
  %13915 = load i32, ptr @test_count, align 4, !tbaa !5
  %13916 = add nsw i32 %13915, 1
  store i32 %13916, ptr @test_count, align 4, !tbaa !5
  %13917 = load ptr, ptr %402, align 8, !tbaa !9
  %13918 = icmp eq ptr %13917, null
  br i1 %13918, label %13919, label %13972

13919:                                            ; preds = %13914
  br label %13920

13920:                                            ; preds = %13919
  br label %13921

13921:                                            ; preds = %13920
  call void @llvm.lifetime.start.p0(i64 4, ptr %403) #11
  %13922 = call ptr @__errno_location() #12
  %13923 = load i32, ptr %13922, align 4, !tbaa !5
  store i32 %13923, ptr %403, align 4, !tbaa !5
  %13924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13925 = call i32 @s2n_print_stacktrace(ptr noundef %13924)
  %13926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13927 = trunc i8 %13926 to i1
  br i1 %13927, label %13928, label %13950

13928:                                            ; preds = %13921
  %13929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13930 = call i32 @fileno(ptr noundef %13929) #11
  %13931 = call i32 @isatty(i32 noundef %13930) #11
  %13932 = icmp ne i32 %13931, 0
  br i1 %13932, label %13933, label %13950

13933:                                            ; preds = %13928
  %13934 = load i32, ptr %403, align 4, !tbaa !5
  %13935 = call ptr @__errno_location() #12
  store i32 %13934, ptr %13935, align 4, !tbaa !5
  %13936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13937 = load i32, ptr @test_count, align 4, !tbaa !5
  %13938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13939 = load i32, ptr %13938, align 4, !tbaa !5
  %13940 = call ptr @s2n_strerror(i32 noundef %13939, ptr noundef @.str.4)
  %13941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13942 = load i32, ptr %13941, align 4, !tbaa !5
  %13943 = call ptr @s2n_strerror_debug(i32 noundef %13942, ptr noundef @.str.4)
  %13944 = call ptr @__errno_location() #12
  %13945 = load i32, ptr %13944, align 4, !tbaa !5
  %13946 = call ptr @strerror(i32 noundef %13945) #11
  %13947 = call ptr @__errno_location() #12
  %13948 = load i32, ptr %13947, align 4, !tbaa !5
  %13949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13936, ptr noundef @.str.2, i32 noundef %13937, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 881, ptr noundef %13940, ptr noundef %13943, ptr noundef %13946, i32 noundef %13948) #11
  br label %13967

13950:                                            ; preds = %13928, %13921
  %13951 = load i32, ptr %403, align 4, !tbaa !5
  %13952 = call ptr @__errno_location() #12
  store i32 %13951, ptr %13952, align 4, !tbaa !5
  %13953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13954 = load i32, ptr @test_count, align 4, !tbaa !5
  %13955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13956 = load i32, ptr %13955, align 4, !tbaa !5
  %13957 = call ptr @s2n_strerror(i32 noundef %13956, ptr noundef @.str.4)
  %13958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13959 = load i32, ptr %13958, align 4, !tbaa !5
  %13960 = call ptr @s2n_strerror_debug(i32 noundef %13959, ptr noundef @.str.4)
  %13961 = call ptr @__errno_location() #12
  %13962 = load i32, ptr %13961, align 4, !tbaa !5
  %13963 = call ptr @strerror(i32 noundef %13962) #11
  %13964 = call ptr @__errno_location() #12
  %13965 = load i32, ptr %13964, align 4, !tbaa !5
  %13966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13953, ptr noundef @.str.5, i32 noundef %13954, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 881, ptr noundef %13957, ptr noundef %13960, ptr noundef %13963, i32 noundef %13965) #11
  br label %13967

13967:                                            ; preds = %13950, %13933
  call void @llvm.lifetime.end.p0(i64 4, ptr %403) #11
  br label %13968

13968:                                            ; preds = %13967
  br label %13969

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

13970:                                            ; No predecessors!
  br label %13971

13971:                                            ; preds = %13970
  br label %13972

13972:                                            ; preds = %13971, %13914
  br label %13973

13973:                                            ; preds = %13972
  br label %13974

13974:                                            ; preds = %13973
  br label %13975

13975:                                            ; preds = %13974
  %13976 = load i32, ptr @test_count, align 4, !tbaa !5
  %13977 = add nsw i32 %13976, 1
  store i32 %13977, ptr @test_count, align 4, !tbaa !5
  %13978 = load ptr, ptr %402, align 8, !tbaa !9
  %13979 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %13978, ptr noundef @verify_host_verify_alt, ptr noundef %400)
  %13980 = icmp eq i32 %13979, -1
  br i1 %13980, label %13981, label %14034

13981:                                            ; preds = %13975
  br label %13982

13982:                                            ; preds = %13981
  br label %13983

13983:                                            ; preds = %13982
  call void @llvm.lifetime.start.p0(i64 4, ptr %404) #11
  %13984 = call ptr @__errno_location() #12
  %13985 = load i32, ptr %13984, align 4, !tbaa !5
  store i32 %13985, ptr %404, align 4, !tbaa !5
  %13986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13987 = call i32 @s2n_print_stacktrace(ptr noundef %13986)
  %13988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13989 = trunc i8 %13988 to i1
  br i1 %13989, label %13990, label %14012

13990:                                            ; preds = %13983
  %13991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13992 = call i32 @fileno(ptr noundef %13991) #11
  %13993 = call i32 @isatty(i32 noundef %13992) #11
  %13994 = icmp ne i32 %13993, 0
  br i1 %13994, label %13995, label %14012

13995:                                            ; preds = %13990
  %13996 = load i32, ptr %404, align 4, !tbaa !5
  %13997 = call ptr @__errno_location() #12
  store i32 %13996, ptr %13997, align 4, !tbaa !5
  %13998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13999 = load i32, ptr @test_count, align 4, !tbaa !5
  %14000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14001 = load i32, ptr %14000, align 4, !tbaa !5
  %14002 = call ptr @s2n_strerror(i32 noundef %14001, ptr noundef @.str.4)
  %14003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14004 = load i32, ptr %14003, align 4, !tbaa !5
  %14005 = call ptr @s2n_strerror_debug(i32 noundef %14004, ptr noundef @.str.4)
  %14006 = call ptr @__errno_location() #12
  %14007 = load i32, ptr %14006, align 4, !tbaa !5
  %14008 = call ptr @strerror(i32 noundef %14007) #11
  %14009 = call ptr @__errno_location() #12
  %14010 = load i32, ptr %14009, align 4, !tbaa !5
  %14011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13998, ptr noundef @.str.2, i32 noundef %13999, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 882, ptr noundef %14002, ptr noundef %14005, ptr noundef %14008, i32 noundef %14010) #11
  br label %14029

14012:                                            ; preds = %13990, %13983
  %14013 = load i32, ptr %404, align 4, !tbaa !5
  %14014 = call ptr @__errno_location() #12
  store i32 %14013, ptr %14014, align 4, !tbaa !5
  %14015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14016 = load i32, ptr @test_count, align 4, !tbaa !5
  %14017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14018 = load i32, ptr %14017, align 4, !tbaa !5
  %14019 = call ptr @s2n_strerror(i32 noundef %14018, ptr noundef @.str.4)
  %14020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14021 = load i32, ptr %14020, align 4, !tbaa !5
  %14022 = call ptr @s2n_strerror_debug(i32 noundef %14021, ptr noundef @.str.4)
  %14023 = call ptr @__errno_location() #12
  %14024 = load i32, ptr %14023, align 4, !tbaa !5
  %14025 = call ptr @strerror(i32 noundef %14024) #11
  %14026 = call ptr @__errno_location() #12
  %14027 = load i32, ptr %14026, align 4, !tbaa !5
  %14028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14015, ptr noundef @.str.5, i32 noundef %14016, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 882, ptr noundef %14019, ptr noundef %14022, ptr noundef %14025, i32 noundef %14027) #11
  br label %14029

14029:                                            ; preds = %14012, %13995
  call void @llvm.lifetime.end.p0(i64 4, ptr %404) #11
  br label %14030

14030:                                            ; preds = %14029
  br label %14031

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

14032:                                            ; No predecessors!
  br label %14033

14033:                                            ; preds = %14032
  br label %14034

14034:                                            ; preds = %14033, %13975
  br label %14035

14035:                                            ; preds = %14034
  br label %14036

14036:                                            ; preds = %14035
  call void @llvm.lifetime.start.p0(i64 40, ptr %405) #11
  call void @llvm.memset.p0.i64(ptr align 8 %405, i8 0, i64 40, i1 false)
  br label %14037

14037:                                            ; preds = %14036
  %14038 = load i32, ptr @test_count, align 4, !tbaa !5
  %14039 = add nsw i32 %14038, 1
  store i32 %14039, ptr @test_count, align 4, !tbaa !5
  %14040 = load ptr, ptr %402, align 8, !tbaa !9
  %14041 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %14040, ptr noundef @.str.70, ptr noundef %405)
  %14042 = getelementptr inbounds %struct.s2n_result, ptr %406, i32 0, i32 0
  store i32 %14041, ptr %14042, align 4
  %14043 = getelementptr inbounds %struct.s2n_result, ptr %406, i32 0, i32 0
  %14044 = load i32, ptr %14043, align 4
  %14045 = call zeroext i1 @s2n_result_is_ok(i32 %14044)
  br i1 %14045, label %14099, label %14046

14046:                                            ; preds = %14037
  br label %14047

14047:                                            ; preds = %14046
  br label %14048

14048:                                            ; preds = %14047
  call void @llvm.lifetime.start.p0(i64 4, ptr %407) #11
  %14049 = call ptr @__errno_location() #12
  %14050 = load i32, ptr %14049, align 4, !tbaa !5
  store i32 %14050, ptr %407, align 4, !tbaa !5
  %14051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14052 = call i32 @s2n_print_stacktrace(ptr noundef %14051)
  %14053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14054 = trunc i8 %14053 to i1
  br i1 %14054, label %14055, label %14077

14055:                                            ; preds = %14048
  %14056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14057 = call i32 @fileno(ptr noundef %14056) #11
  %14058 = call i32 @isatty(i32 noundef %14057) #11
  %14059 = icmp ne i32 %14058, 0
  br i1 %14059, label %14060, label %14077

14060:                                            ; preds = %14055
  %14061 = load i32, ptr %407, align 4, !tbaa !5
  %14062 = call ptr @__errno_location() #12
  store i32 %14061, ptr %14062, align 4, !tbaa !5
  %14063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14064 = load i32, ptr @test_count, align 4, !tbaa !5
  %14065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14066 = load i32, ptr %14065, align 4, !tbaa !5
  %14067 = call ptr @s2n_strerror(i32 noundef %14066, ptr noundef @.str.4)
  %14068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14069 = load i32, ptr %14068, align 4, !tbaa !5
  %14070 = call ptr @s2n_strerror_debug(i32 noundef %14069, ptr noundef @.str.4)
  %14071 = call ptr @__errno_location() #12
  %14072 = load i32, ptr %14071, align 4, !tbaa !5
  %14073 = call ptr @strerror(i32 noundef %14072) #11
  %14074 = call ptr @__errno_location() #12
  %14075 = load i32, ptr %14074, align 4, !tbaa !5
  %14076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14063, ptr noundef @.str.2, i32 noundef %14064, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 886, ptr noundef %14067, ptr noundef %14070, ptr noundef %14073, i32 noundef %14075) #11
  br label %14094

14077:                                            ; preds = %14055, %14048
  %14078 = load i32, ptr %407, align 4, !tbaa !5
  %14079 = call ptr @__errno_location() #12
  store i32 %14078, ptr %14079, align 4, !tbaa !5
  %14080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14081 = load i32, ptr @test_count, align 4, !tbaa !5
  %14082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14083 = load i32, ptr %14082, align 4, !tbaa !5
  %14084 = call ptr @s2n_strerror(i32 noundef %14083, ptr noundef @.str.4)
  %14085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14086 = load i32, ptr %14085, align 4, !tbaa !5
  %14087 = call ptr @s2n_strerror_debug(i32 noundef %14086, ptr noundef @.str.4)
  %14088 = call ptr @__errno_location() #12
  %14089 = load i32, ptr %14088, align 4, !tbaa !5
  %14090 = call ptr @strerror(i32 noundef %14089) #11
  %14091 = call ptr @__errno_location() #12
  %14092 = load i32, ptr %14091, align 4, !tbaa !5
  %14093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14080, ptr noundef @.str.5, i32 noundef %14081, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 886, ptr noundef %14084, ptr noundef %14087, ptr noundef %14090, i32 noundef %14092) #11
  br label %14094

14094:                                            ; preds = %14077, %14060
  call void @llvm.lifetime.end.p0(i64 4, ptr %407) #11
  br label %14095

14095:                                            ; preds = %14094
  br label %14096

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

14097:                                            ; No predecessors!
  br label %14098

14098:                                            ; preds = %14097
  br label %14099

14099:                                            ; preds = %14098, %14037
  br label %14100

14100:                                            ; preds = %14099
  br label %14101

14101:                                            ; preds = %14100
  call void @llvm.lifetime.start.p0(i64 4, ptr %408) #11
  %14102 = getelementptr inbounds %struct.s2n_stuffer, ptr %405, i32 0, i32 2
  %14103 = load i32, ptr %14102, align 4, !tbaa !15
  %14104 = getelementptr inbounds %struct.s2n_stuffer, ptr %405, i32 0, i32 1
  %14105 = load i32, ptr %14104, align 8, !tbaa !18
  %14106 = sub i32 %14103, %14105
  store i32 %14106, ptr %408, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %409) #11
  %14107 = load i32, ptr %408, align 4, !tbaa !5
  %14108 = call ptr @s2n_stuffer_raw_read(ptr noundef %405, i32 noundef %14107)
  store ptr %14108, ptr %409, align 8, !tbaa !9
  br label %14109

14109:                                            ; preds = %14101
  %14110 = load i32, ptr @test_count, align 4, !tbaa !5
  %14111 = add nsw i32 %14110, 1
  store i32 %14111, ptr @test_count, align 4, !tbaa !5
  %14112 = load ptr, ptr %409, align 8, !tbaa !9
  %14113 = icmp eq ptr %14112, null
  br i1 %14113, label %14114, label %14167

14114:                                            ; preds = %14109
  br label %14115

14115:                                            ; preds = %14114
  br label %14116

14116:                                            ; preds = %14115
  call void @llvm.lifetime.start.p0(i64 4, ptr %410) #11
  %14117 = call ptr @__errno_location() #12
  %14118 = load i32, ptr %14117, align 4, !tbaa !5
  store i32 %14118, ptr %410, align 4, !tbaa !5
  %14119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14120 = call i32 @s2n_print_stacktrace(ptr noundef %14119)
  %14121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14122 = trunc i8 %14121 to i1
  br i1 %14122, label %14123, label %14145

14123:                                            ; preds = %14116
  %14124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14125 = call i32 @fileno(ptr noundef %14124) #11
  %14126 = call i32 @isatty(i32 noundef %14125) #11
  %14127 = icmp ne i32 %14126, 0
  br i1 %14127, label %14128, label %14145

14128:                                            ; preds = %14123
  %14129 = load i32, ptr %410, align 4, !tbaa !5
  %14130 = call ptr @__errno_location() #12
  store i32 %14129, ptr %14130, align 4, !tbaa !5
  %14131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14132 = load i32, ptr @test_count, align 4, !tbaa !5
  %14133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14134 = load i32, ptr %14133, align 4, !tbaa !5
  %14135 = call ptr @s2n_strerror(i32 noundef %14134, ptr noundef @.str.4)
  %14136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14137 = load i32, ptr %14136, align 4, !tbaa !5
  %14138 = call ptr @s2n_strerror_debug(i32 noundef %14137, ptr noundef @.str.4)
  %14139 = call ptr @__errno_location() #12
  %14140 = load i32, ptr %14139, align 4, !tbaa !5
  %14141 = call ptr @strerror(i32 noundef %14140) #11
  %14142 = call ptr @__errno_location() #12
  %14143 = load i32, ptr %14142, align 4, !tbaa !5
  %14144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14131, ptr noundef @.str.2, i32 noundef %14132, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 889, ptr noundef %14135, ptr noundef %14138, ptr noundef %14141, i32 noundef %14143) #11
  br label %14162

14145:                                            ; preds = %14123, %14116
  %14146 = load i32, ptr %410, align 4, !tbaa !5
  %14147 = call ptr @__errno_location() #12
  store i32 %14146, ptr %14147, align 4, !tbaa !5
  %14148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14149 = load i32, ptr @test_count, align 4, !tbaa !5
  %14150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14151 = load i32, ptr %14150, align 4, !tbaa !5
  %14152 = call ptr @s2n_strerror(i32 noundef %14151, ptr noundef @.str.4)
  %14153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14154 = load i32, ptr %14153, align 4, !tbaa !5
  %14155 = call ptr @s2n_strerror_debug(i32 noundef %14154, ptr noundef @.str.4)
  %14156 = call ptr @__errno_location() #12
  %14157 = load i32, ptr %14156, align 4, !tbaa !5
  %14158 = call ptr @strerror(i32 noundef %14157) #11
  %14159 = call ptr @__errno_location() #12
  %14160 = load i32, ptr %14159, align 4, !tbaa !5
  %14161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14148, ptr noundef @.str.5, i32 noundef %14149, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 889, ptr noundef %14152, ptr noundef %14155, ptr noundef %14158, i32 noundef %14160) #11
  br label %14162

14162:                                            ; preds = %14145, %14128
  call void @llvm.lifetime.end.p0(i64 4, ptr %410) #11
  br label %14163

14163:                                            ; preds = %14162
  br label %14164

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

14165:                                            ; No predecessors!
  br label %14166

14166:                                            ; preds = %14165
  br label %14167

14167:                                            ; preds = %14166, %14109
  br label %14168

14168:                                            ; preds = %14167
  br label %14169

14169:                                            ; preds = %14168
  call void @llvm.lifetime.start.p0(i64 48, ptr %411) #11
  br label %14170

14170:                                            ; preds = %14169
  %14171 = load i32, ptr @test_count, align 4, !tbaa !5
  %14172 = add nsw i32 %14171, 1
  store i32 %14172, ptr @test_count, align 4, !tbaa !5
  %14173 = call i32 @s2n_pkey_zero_init(ptr noundef %411)
  %14174 = icmp eq i32 %14173, -1
  br i1 %14174, label %14175, label %14228

14175:                                            ; preds = %14170
  br label %14176

14176:                                            ; preds = %14175
  br label %14177

14177:                                            ; preds = %14176
  call void @llvm.lifetime.start.p0(i64 4, ptr %412) #11
  %14178 = call ptr @__errno_location() #12
  %14179 = load i32, ptr %14178, align 4, !tbaa !5
  store i32 %14179, ptr %412, align 4, !tbaa !5
  %14180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14181 = call i32 @s2n_print_stacktrace(ptr noundef %14180)
  %14182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14183 = trunc i8 %14182 to i1
  br i1 %14183, label %14184, label %14206

14184:                                            ; preds = %14177
  %14185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14186 = call i32 @fileno(ptr noundef %14185) #11
  %14187 = call i32 @isatty(i32 noundef %14186) #11
  %14188 = icmp ne i32 %14187, 0
  br i1 %14188, label %14189, label %14206

14189:                                            ; preds = %14184
  %14190 = load i32, ptr %412, align 4, !tbaa !5
  %14191 = call ptr @__errno_location() #12
  store i32 %14190, ptr %14191, align 4, !tbaa !5
  %14192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14193 = load i32, ptr @test_count, align 4, !tbaa !5
  %14194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14195 = load i32, ptr %14194, align 4, !tbaa !5
  %14196 = call ptr @s2n_strerror(i32 noundef %14195, ptr noundef @.str.4)
  %14197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14198 = load i32, ptr %14197, align 4, !tbaa !5
  %14199 = call ptr @s2n_strerror_debug(i32 noundef %14198, ptr noundef @.str.4)
  %14200 = call ptr @__errno_location() #12
  %14201 = load i32, ptr %14200, align 4, !tbaa !5
  %14202 = call ptr @strerror(i32 noundef %14201) #11
  %14203 = call ptr @__errno_location() #12
  %14204 = load i32, ptr %14203, align 4, !tbaa !5
  %14205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14192, ptr noundef @.str.2, i32 noundef %14193, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 892, ptr noundef %14196, ptr noundef %14199, ptr noundef %14202, i32 noundef %14204) #11
  br label %14223

14206:                                            ; preds = %14184, %14177
  %14207 = load i32, ptr %412, align 4, !tbaa !5
  %14208 = call ptr @__errno_location() #12
  store i32 %14207, ptr %14208, align 4, !tbaa !5
  %14209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14210 = load i32, ptr @test_count, align 4, !tbaa !5
  %14211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14212 = load i32, ptr %14211, align 4, !tbaa !5
  %14213 = call ptr @s2n_strerror(i32 noundef %14212, ptr noundef @.str.4)
  %14214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14215 = load i32, ptr %14214, align 4, !tbaa !5
  %14216 = call ptr @s2n_strerror_debug(i32 noundef %14215, ptr noundef @.str.4)
  %14217 = call ptr @__errno_location() #12
  %14218 = load i32, ptr %14217, align 4, !tbaa !5
  %14219 = call ptr @strerror(i32 noundef %14218) #11
  %14220 = call ptr @__errno_location() #12
  %14221 = load i32, ptr %14220, align 4, !tbaa !5
  %14222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14209, ptr noundef @.str.5, i32 noundef %14210, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 892, ptr noundef %14213, ptr noundef %14216, ptr noundef %14219, i32 noundef %14221) #11
  br label %14223

14223:                                            ; preds = %14206, %14189
  call void @llvm.lifetime.end.p0(i64 4, ptr %412) #11
  br label %14224

14224:                                            ; preds = %14223
  br label %14225

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

14226:                                            ; No predecessors!
  br label %14227

14227:                                            ; preds = %14226
  br label %14228

14228:                                            ; preds = %14227, %14170
  br label %14229

14229:                                            ; preds = %14228
  br label %14230

14230:                                            ; preds = %14229
  call void @llvm.lifetime.start.p0(i64 4, ptr %413) #11
  store i32 -1, ptr %413, align 4, !tbaa !5
  br label %14231

14231:                                            ; preds = %14230
  br label %14232

14232:                                            ; preds = %14231
  br label %14233

14233:                                            ; preds = %14232
  %14234 = load i32, ptr @test_count, align 4, !tbaa !5
  %14235 = add nsw i32 %14234, 1
  store i32 %14235, ptr @test_count, align 4, !tbaa !5
  %14236 = load ptr, ptr %402, align 8, !tbaa !9
  %14237 = load ptr, ptr %409, align 8, !tbaa !9
  %14238 = load i32, ptr %408, align 4, !tbaa !5
  %14239 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %401, ptr noundef %14236, ptr noundef %14237, i32 noundef %14238, ptr noundef %413, ptr noundef %411)
  %14240 = getelementptr inbounds %struct.s2n_result, ptr %414, i32 0, i32 0
  store i32 %14239, ptr %14240, align 4
  %14241 = getelementptr inbounds %struct.s2n_result, ptr %414, i32 0, i32 0
  %14242 = load i32, ptr %14241, align 4
  %14243 = call zeroext i1 @s2n_result_is_error(i32 %14242)
  br i1 %14243, label %14297, label %14244

14244:                                            ; preds = %14233
  br label %14245

14245:                                            ; preds = %14244
  br label %14246

14246:                                            ; preds = %14245
  call void @llvm.lifetime.start.p0(i64 4, ptr %415) #11
  %14247 = call ptr @__errno_location() #12
  %14248 = load i32, ptr %14247, align 4, !tbaa !5
  store i32 %14248, ptr %415, align 4, !tbaa !5
  %14249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14250 = call i32 @s2n_print_stacktrace(ptr noundef %14249)
  %14251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14252 = trunc i8 %14251 to i1
  br i1 %14252, label %14253, label %14275

14253:                                            ; preds = %14246
  %14254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14255 = call i32 @fileno(ptr noundef %14254) #11
  %14256 = call i32 @isatty(i32 noundef %14255) #11
  %14257 = icmp ne i32 %14256, 0
  br i1 %14257, label %14258, label %14275

14258:                                            ; preds = %14253
  %14259 = load i32, ptr %415, align 4, !tbaa !5
  %14260 = call ptr @__errno_location() #12
  store i32 %14259, ptr %14260, align 4, !tbaa !5
  %14261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14262 = load i32, ptr @test_count, align 4, !tbaa !5
  %14263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14264 = load i32, ptr %14263, align 4, !tbaa !5
  %14265 = call ptr @s2n_strerror(i32 noundef %14264, ptr noundef @.str.4)
  %14266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14267 = load i32, ptr %14266, align 4, !tbaa !5
  %14268 = call ptr @s2n_strerror_debug(i32 noundef %14267, ptr noundef @.str.4)
  %14269 = call ptr @__errno_location() #12
  %14270 = load i32, ptr %14269, align 4, !tbaa !5
  %14271 = call ptr @strerror(i32 noundef %14270) #11
  %14272 = call ptr @__errno_location() #12
  %14273 = load i32, ptr %14272, align 4, !tbaa !5
  %14274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14261, ptr noundef @.str.2, i32 noundef %14262, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 896, ptr noundef %14265, ptr noundef %14268, ptr noundef %14271, i32 noundef %14273) #11
  br label %14292

14275:                                            ; preds = %14253, %14246
  %14276 = load i32, ptr %415, align 4, !tbaa !5
  %14277 = call ptr @__errno_location() #12
  store i32 %14276, ptr %14277, align 4, !tbaa !5
  %14278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14279 = load i32, ptr @test_count, align 4, !tbaa !5
  %14280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14281 = load i32, ptr %14280, align 4, !tbaa !5
  %14282 = call ptr @s2n_strerror(i32 noundef %14281, ptr noundef @.str.4)
  %14283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14284 = load i32, ptr %14283, align 4, !tbaa !5
  %14285 = call ptr @s2n_strerror_debug(i32 noundef %14284, ptr noundef @.str.4)
  %14286 = call ptr @__errno_location() #12
  %14287 = load i32, ptr %14286, align 4, !tbaa !5
  %14288 = call ptr @strerror(i32 noundef %14287) #11
  %14289 = call ptr @__errno_location() #12
  %14290 = load i32, ptr %14289, align 4, !tbaa !5
  %14291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14278, ptr noundef @.str.5, i32 noundef %14279, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 896, ptr noundef %14282, ptr noundef %14285, ptr noundef %14288, i32 noundef %14290) #11
  br label %14292

14292:                                            ; preds = %14275, %14258
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #11
  br label %14293

14293:                                            ; preds = %14292
  br label %14294

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

14295:                                            ; No predecessors!
  br label %14296

14296:                                            ; preds = %14295
  br label %14297

14297:                                            ; preds = %14296, %14233
  br label %14298

14298:                                            ; preds = %14297
  br label %14299

14299:                                            ; preds = %14298
  br label %14300

14300:                                            ; preds = %14299
  %14301 = load i32, ptr @test_count, align 4, !tbaa !5
  %14302 = add nsw i32 %14301, 1
  store i32 %14302, ptr @test_count, align 4, !tbaa !5
  %14303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14304 = load i32, ptr %14303, align 4, !tbaa !5
  %14305 = icmp eq i32 %14304, 335544366
  br i1 %14305, label %14359, label %14306

14306:                                            ; preds = %14300
  br label %14307

14307:                                            ; preds = %14306
  br label %14308

14308:                                            ; preds = %14307
  call void @llvm.lifetime.start.p0(i64 4, ptr %416) #11
  %14309 = call ptr @__errno_location() #12
  %14310 = load i32, ptr %14309, align 4, !tbaa !5
  store i32 %14310, ptr %416, align 4, !tbaa !5
  %14311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14312 = call i32 @s2n_print_stacktrace(ptr noundef %14311)
  %14313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14314 = trunc i8 %14313 to i1
  br i1 %14314, label %14315, label %14337

14315:                                            ; preds = %14308
  %14316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14317 = call i32 @fileno(ptr noundef %14316) #11
  %14318 = call i32 @isatty(i32 noundef %14317) #11
  %14319 = icmp ne i32 %14318, 0
  br i1 %14319, label %14320, label %14337

14320:                                            ; preds = %14315
  %14321 = load i32, ptr %416, align 4, !tbaa !5
  %14322 = call ptr @__errno_location() #12
  store i32 %14321, ptr %14322, align 4, !tbaa !5
  %14323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14324 = load i32, ptr @test_count, align 4, !tbaa !5
  %14325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14326 = load i32, ptr %14325, align 4, !tbaa !5
  %14327 = call ptr @s2n_strerror(i32 noundef %14326, ptr noundef @.str.4)
  %14328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14329 = load i32, ptr %14328, align 4, !tbaa !5
  %14330 = call ptr @s2n_strerror_debug(i32 noundef %14329, ptr noundef @.str.4)
  %14331 = call ptr @__errno_location() #12
  %14332 = load i32, ptr %14331, align 4, !tbaa !5
  %14333 = call ptr @strerror(i32 noundef %14332) #11
  %14334 = call ptr @__errno_location() #12
  %14335 = load i32, ptr %14334, align 4, !tbaa !5
  %14336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14323, ptr noundef @.str.2, i32 noundef %14324, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 896, ptr noundef %14327, ptr noundef %14330, ptr noundef %14333, i32 noundef %14335) #11
  br label %14354

14337:                                            ; preds = %14315, %14308
  %14338 = load i32, ptr %416, align 4, !tbaa !5
  %14339 = call ptr @__errno_location() #12
  store i32 %14338, ptr %14339, align 4, !tbaa !5
  %14340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14341 = load i32, ptr @test_count, align 4, !tbaa !5
  %14342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14343 = load i32, ptr %14342, align 4, !tbaa !5
  %14344 = call ptr @s2n_strerror(i32 noundef %14343, ptr noundef @.str.4)
  %14345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14346 = load i32, ptr %14345, align 4, !tbaa !5
  %14347 = call ptr @s2n_strerror_debug(i32 noundef %14346, ptr noundef @.str.4)
  %14348 = call ptr @__errno_location() #12
  %14349 = load i32, ptr %14348, align 4, !tbaa !5
  %14350 = call ptr @strerror(i32 noundef %14349) #11
  %14351 = call ptr @__errno_location() #12
  %14352 = load i32, ptr %14351, align 4, !tbaa !5
  %14353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14340, ptr noundef @.str.5, i32 noundef %14341, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 896, ptr noundef %14344, ptr noundef %14347, ptr noundef %14350, i32 noundef %14352) #11
  br label %14354

14354:                                            ; preds = %14337, %14320
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #11
  br label %14355

14355:                                            ; preds = %14354
  br label %14356

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

14357:                                            ; No predecessors!
  br label %14358

14358:                                            ; preds = %14357
  br label %14359

14359:                                            ; preds = %14358, %14300
  br label %14360

14360:                                            ; preds = %14359
  br label %14361

14361:                                            ; preds = %14360
  br label %14362

14362:                                            ; preds = %14361
  %14363 = load i32, ptr @test_count, align 4, !tbaa !5
  %14364 = add nsw i32 %14363, 1
  store i32 %14364, ptr @test_count, align 4, !tbaa !5
  %14365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14366 = load i32, ptr %14365, align 4, !tbaa !5
  %14367 = call ptr @s2n_strerror_debug(i32 noundef %14366, ptr noundef @.str.4)
  %14368 = icmp eq ptr %14367, null
  br i1 %14368, label %14369, label %14422

14369:                                            ; preds = %14362
  br label %14370

14370:                                            ; preds = %14369
  br label %14371

14371:                                            ; preds = %14370
  call void @llvm.lifetime.start.p0(i64 4, ptr %417) #11
  %14372 = call ptr @__errno_location() #12
  %14373 = load i32, ptr %14372, align 4, !tbaa !5
  store i32 %14373, ptr %417, align 4, !tbaa !5
  %14374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14375 = call i32 @s2n_print_stacktrace(ptr noundef %14374)
  %14376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14377 = trunc i8 %14376 to i1
  br i1 %14377, label %14378, label %14400

14378:                                            ; preds = %14371
  %14379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14380 = call i32 @fileno(ptr noundef %14379) #11
  %14381 = call i32 @isatty(i32 noundef %14380) #11
  %14382 = icmp ne i32 %14381, 0
  br i1 %14382, label %14383, label %14400

14383:                                            ; preds = %14378
  %14384 = load i32, ptr %417, align 4, !tbaa !5
  %14385 = call ptr @__errno_location() #12
  store i32 %14384, ptr %14385, align 4, !tbaa !5
  %14386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14387 = load i32, ptr @test_count, align 4, !tbaa !5
  %14388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14389 = load i32, ptr %14388, align 4, !tbaa !5
  %14390 = call ptr @s2n_strerror(i32 noundef %14389, ptr noundef @.str.4)
  %14391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14392 = load i32, ptr %14391, align 4, !tbaa !5
  %14393 = call ptr @s2n_strerror_debug(i32 noundef %14392, ptr noundef @.str.4)
  %14394 = call ptr @__errno_location() #12
  %14395 = load i32, ptr %14394, align 4, !tbaa !5
  %14396 = call ptr @strerror(i32 noundef %14395) #11
  %14397 = call ptr @__errno_location() #12
  %14398 = load i32, ptr %14397, align 4, !tbaa !5
  %14399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14386, ptr noundef @.str.2, i32 noundef %14387, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 896, ptr noundef %14390, ptr noundef %14393, ptr noundef %14396, i32 noundef %14398) #11
  br label %14417

14400:                                            ; preds = %14378, %14371
  %14401 = load i32, ptr %417, align 4, !tbaa !5
  %14402 = call ptr @__errno_location() #12
  store i32 %14401, ptr %14402, align 4, !tbaa !5
  %14403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14404 = load i32, ptr @test_count, align 4, !tbaa !5
  %14405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14406 = load i32, ptr %14405, align 4, !tbaa !5
  %14407 = call ptr @s2n_strerror(i32 noundef %14406, ptr noundef @.str.4)
  %14408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14409 = load i32, ptr %14408, align 4, !tbaa !5
  %14410 = call ptr @s2n_strerror_debug(i32 noundef %14409, ptr noundef @.str.4)
  %14411 = call ptr @__errno_location() #12
  %14412 = load i32, ptr %14411, align 4, !tbaa !5
  %14413 = call ptr @strerror(i32 noundef %14412) #11
  %14414 = call ptr @__errno_location() #12
  %14415 = load i32, ptr %14414, align 4, !tbaa !5
  %14416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14403, ptr noundef @.str.5, i32 noundef %14404, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 896, ptr noundef %14407, ptr noundef %14410, ptr noundef %14413, i32 noundef %14415) #11
  br label %14417

14417:                                            ; preds = %14400, %14383
  call void @llvm.lifetime.end.p0(i64 4, ptr %417) #11
  br label %14418

14418:                                            ; preds = %14417
  br label %14419

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

14420:                                            ; No predecessors!
  br label %14421

14421:                                            ; preds = %14420
  br label %14422

14422:                                            ; preds = %14421, %14362
  br label %14423

14423:                                            ; preds = %14422
  br label %14424

14424:                                            ; preds = %14423
  br label %14425

14425:                                            ; preds = %14424
  br label %14426

14426:                                            ; preds = %14425
  br label %14427

14427:                                            ; preds = %14426
  %14428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14428, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14429 = call ptr @__errno_location() #12
  store i32 0, ptr %14429, align 4, !tbaa !5
  br label %14430

14430:                                            ; preds = %14427
  br label %14431

14431:                                            ; preds = %14430
  br label %14432

14432:                                            ; preds = %14431
  br label %14433

14433:                                            ; preds = %14432
  br label %14434

14434:                                            ; preds = %14433
  %14435 = load i32, ptr @test_count, align 4, !tbaa !5
  %14436 = add nsw i32 %14435, 1
  store i32 %14436, ptr @test_count, align 4, !tbaa !5
  %14437 = getelementptr inbounds %struct.host_verify_data, ptr %400, i32 0, i32 1
  %14438 = load i8, ptr %14437, align 8, !tbaa !21
  %14439 = zext i8 %14438 to i32
  %14440 = icmp eq i32 1, %14439
  br i1 %14440, label %14494, label %14441

14441:                                            ; preds = %14434
  br label %14442

14442:                                            ; preds = %14441
  br label %14443

14443:                                            ; preds = %14442
  call void @llvm.lifetime.start.p0(i64 4, ptr %418) #11
  %14444 = call ptr @__errno_location() #12
  %14445 = load i32, ptr %14444, align 4, !tbaa !5
  store i32 %14445, ptr %418, align 4, !tbaa !5
  %14446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14447 = call i32 @s2n_print_stacktrace(ptr noundef %14446)
  %14448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14449 = trunc i8 %14448 to i1
  br i1 %14449, label %14450, label %14472

14450:                                            ; preds = %14443
  %14451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14452 = call i32 @fileno(ptr noundef %14451) #11
  %14453 = call i32 @isatty(i32 noundef %14452) #11
  %14454 = icmp ne i32 %14453, 0
  br i1 %14454, label %14455, label %14472

14455:                                            ; preds = %14450
  %14456 = load i32, ptr %418, align 4, !tbaa !5
  %14457 = call ptr @__errno_location() #12
  store i32 %14456, ptr %14457, align 4, !tbaa !5
  %14458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14459 = load i32, ptr @test_count, align 4, !tbaa !5
  %14460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14461 = load i32, ptr %14460, align 4, !tbaa !5
  %14462 = call ptr @s2n_strerror(i32 noundef %14461, ptr noundef @.str.4)
  %14463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14464 = load i32, ptr %14463, align 4, !tbaa !5
  %14465 = call ptr @s2n_strerror_debug(i32 noundef %14464, ptr noundef @.str.4)
  %14466 = call ptr @__errno_location() #12
  %14467 = load i32, ptr %14466, align 4, !tbaa !5
  %14468 = call ptr @strerror(i32 noundef %14467) #11
  %14469 = call ptr @__errno_location() #12
  %14470 = load i32, ptr %14469, align 4, !tbaa !5
  %14471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14458, ptr noundef @.str.2, i32 noundef %14459, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 898, ptr noundef %14462, ptr noundef %14465, ptr noundef %14468, i32 noundef %14470) #11
  br label %14489

14472:                                            ; preds = %14450, %14443
  %14473 = load i32, ptr %418, align 4, !tbaa !5
  %14474 = call ptr @__errno_location() #12
  store i32 %14473, ptr %14474, align 4, !tbaa !5
  %14475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14476 = load i32, ptr @test_count, align 4, !tbaa !5
  %14477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14478 = load i32, ptr %14477, align 4, !tbaa !5
  %14479 = call ptr @s2n_strerror(i32 noundef %14478, ptr noundef @.str.4)
  %14480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14481 = load i32, ptr %14480, align 4, !tbaa !5
  %14482 = call ptr @s2n_strerror_debug(i32 noundef %14481, ptr noundef @.str.4)
  %14483 = call ptr @__errno_location() #12
  %14484 = load i32, ptr %14483, align 4, !tbaa !5
  %14485 = call ptr @strerror(i32 noundef %14484) #11
  %14486 = call ptr @__errno_location() #12
  %14487 = load i32, ptr %14486, align 4, !tbaa !5
  %14488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14475, ptr noundef @.str.5, i32 noundef %14476, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 898, ptr noundef %14479, ptr noundef %14482, ptr noundef %14485, i32 noundef %14487) #11
  br label %14489

14489:                                            ; preds = %14472, %14455
  call void @llvm.lifetime.end.p0(i64 4, ptr %418) #11
  br label %14490

14490:                                            ; preds = %14489
  br label %14491

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

14492:                                            ; No predecessors!
  br label %14493

14493:                                            ; preds = %14492
  br label %14494

14494:                                            ; preds = %14493, %14434
  br label %14495

14495:                                            ; preds = %14494
  br label %14496

14496:                                            ; preds = %14495
  br label %14497

14497:                                            ; preds = %14496
  %14498 = load i32, ptr @test_count, align 4, !tbaa !5
  %14499 = add nsw i32 %14498, 1
  store i32 %14499, ptr @test_count, align 4, !tbaa !5
  %14500 = getelementptr inbounds %struct.host_verify_data, ptr %400, i32 0, i32 2
  %14501 = load i8, ptr %14500, align 1, !tbaa !19
  %14502 = zext i8 %14501 to i32
  %14503 = icmp eq i32 1, %14502
  br i1 %14503, label %14557, label %14504

14504:                                            ; preds = %14497
  br label %14505

14505:                                            ; preds = %14504
  br label %14506

14506:                                            ; preds = %14505
  call void @llvm.lifetime.start.p0(i64 4, ptr %419) #11
  %14507 = call ptr @__errno_location() #12
  %14508 = load i32, ptr %14507, align 4, !tbaa !5
  store i32 %14508, ptr %419, align 4, !tbaa !5
  %14509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14510 = call i32 @s2n_print_stacktrace(ptr noundef %14509)
  %14511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14512 = trunc i8 %14511 to i1
  br i1 %14512, label %14513, label %14535

14513:                                            ; preds = %14506
  %14514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14515 = call i32 @fileno(ptr noundef %14514) #11
  %14516 = call i32 @isatty(i32 noundef %14515) #11
  %14517 = icmp ne i32 %14516, 0
  br i1 %14517, label %14518, label %14535

14518:                                            ; preds = %14513
  %14519 = load i32, ptr %419, align 4, !tbaa !5
  %14520 = call ptr @__errno_location() #12
  store i32 %14519, ptr %14520, align 4, !tbaa !5
  %14521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14522 = load i32, ptr @test_count, align 4, !tbaa !5
  %14523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14524 = load i32, ptr %14523, align 4, !tbaa !5
  %14525 = call ptr @s2n_strerror(i32 noundef %14524, ptr noundef @.str.4)
  %14526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14527 = load i32, ptr %14526, align 4, !tbaa !5
  %14528 = call ptr @s2n_strerror_debug(i32 noundef %14527, ptr noundef @.str.4)
  %14529 = call ptr @__errno_location() #12
  %14530 = load i32, ptr %14529, align 4, !tbaa !5
  %14531 = call ptr @strerror(i32 noundef %14530) #11
  %14532 = call ptr @__errno_location() #12
  %14533 = load i32, ptr %14532, align 4, !tbaa !5
  %14534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14521, ptr noundef @.str.2, i32 noundef %14522, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 899, ptr noundef %14525, ptr noundef %14528, ptr noundef %14531, i32 noundef %14533) #11
  br label %14552

14535:                                            ; preds = %14513, %14506
  %14536 = load i32, ptr %419, align 4, !tbaa !5
  %14537 = call ptr @__errno_location() #12
  store i32 %14536, ptr %14537, align 4, !tbaa !5
  %14538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14539 = load i32, ptr @test_count, align 4, !tbaa !5
  %14540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14541 = load i32, ptr %14540, align 4, !tbaa !5
  %14542 = call ptr @s2n_strerror(i32 noundef %14541, ptr noundef @.str.4)
  %14543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14544 = load i32, ptr %14543, align 4, !tbaa !5
  %14545 = call ptr @s2n_strerror_debug(i32 noundef %14544, ptr noundef @.str.4)
  %14546 = call ptr @__errno_location() #12
  %14547 = load i32, ptr %14546, align 4, !tbaa !5
  %14548 = call ptr @strerror(i32 noundef %14547) #11
  %14549 = call ptr @__errno_location() #12
  %14550 = load i32, ptr %14549, align 4, !tbaa !5
  %14551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14538, ptr noundef @.str.5, i32 noundef %14539, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 899, ptr noundef %14542, ptr noundef %14545, ptr noundef %14548, i32 noundef %14550) #11
  br label %14552

14552:                                            ; preds = %14535, %14518
  call void @llvm.lifetime.end.p0(i64 4, ptr %419) #11
  br label %14553

14553:                                            ; preds = %14552
  br label %14554

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

14555:                                            ; No predecessors!
  br label %14556

14556:                                            ; preds = %14555
  br label %14557

14557:                                            ; preds = %14556, %14497
  br label %14558

14558:                                            ; preds = %14557
  br label %14559

14559:                                            ; preds = %14558
  br label %14560

14560:                                            ; preds = %14559
  %14561 = load i32, ptr @test_count, align 4, !tbaa !5
  %14562 = add nsw i32 %14561, 1
  store i32 %14562, ptr @test_count, align 4, !tbaa !5
  %14563 = load i32, ptr %413, align 4, !tbaa !5
  %14564 = icmp eq i32 -1, %14563
  br i1 %14564, label %14618, label %14565

14565:                                            ; preds = %14560
  br label %14566

14566:                                            ; preds = %14565
  br label %14567

14567:                                            ; preds = %14566
  call void @llvm.lifetime.start.p0(i64 4, ptr %420) #11
  %14568 = call ptr @__errno_location() #12
  %14569 = load i32, ptr %14568, align 4, !tbaa !5
  store i32 %14569, ptr %420, align 4, !tbaa !5
  %14570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14571 = call i32 @s2n_print_stacktrace(ptr noundef %14570)
  %14572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14573 = trunc i8 %14572 to i1
  br i1 %14573, label %14574, label %14596

14574:                                            ; preds = %14567
  %14575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14576 = call i32 @fileno(ptr noundef %14575) #11
  %14577 = call i32 @isatty(i32 noundef %14576) #11
  %14578 = icmp ne i32 %14577, 0
  br i1 %14578, label %14579, label %14596

14579:                                            ; preds = %14574
  %14580 = load i32, ptr %420, align 4, !tbaa !5
  %14581 = call ptr @__errno_location() #12
  store i32 %14580, ptr %14581, align 4, !tbaa !5
  %14582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14583 = load i32, ptr @test_count, align 4, !tbaa !5
  %14584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14585 = load i32, ptr %14584, align 4, !tbaa !5
  %14586 = call ptr @s2n_strerror(i32 noundef %14585, ptr noundef @.str.4)
  %14587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14588 = load i32, ptr %14587, align 4, !tbaa !5
  %14589 = call ptr @s2n_strerror_debug(i32 noundef %14588, ptr noundef @.str.4)
  %14590 = call ptr @__errno_location() #12
  %14591 = load i32, ptr %14590, align 4, !tbaa !5
  %14592 = call ptr @strerror(i32 noundef %14591) #11
  %14593 = call ptr @__errno_location() #12
  %14594 = load i32, ptr %14593, align 4, !tbaa !5
  %14595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14582, ptr noundef @.str.2, i32 noundef %14583, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 900, ptr noundef %14586, ptr noundef %14589, ptr noundef %14592, i32 noundef %14594) #11
  br label %14613

14596:                                            ; preds = %14574, %14567
  %14597 = load i32, ptr %420, align 4, !tbaa !5
  %14598 = call ptr @__errno_location() #12
  store i32 %14597, ptr %14598, align 4, !tbaa !5
  %14599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14600 = load i32, ptr @test_count, align 4, !tbaa !5
  %14601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14602 = load i32, ptr %14601, align 4, !tbaa !5
  %14603 = call ptr @s2n_strerror(i32 noundef %14602, ptr noundef @.str.4)
  %14604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14605 = load i32, ptr %14604, align 4, !tbaa !5
  %14606 = call ptr @s2n_strerror_debug(i32 noundef %14605, ptr noundef @.str.4)
  %14607 = call ptr @__errno_location() #12
  %14608 = load i32, ptr %14607, align 4, !tbaa !5
  %14609 = call ptr @strerror(i32 noundef %14608) #11
  %14610 = call ptr @__errno_location() #12
  %14611 = load i32, ptr %14610, align 4, !tbaa !5
  %14612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14599, ptr noundef @.str.5, i32 noundef %14600, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 900, ptr noundef %14603, ptr noundef %14606, ptr noundef %14609, i32 noundef %14611) #11
  br label %14613

14613:                                            ; preds = %14596, %14579
  call void @llvm.lifetime.end.p0(i64 4, ptr %420) #11
  br label %14614

14614:                                            ; preds = %14613
  br label %14615

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

14616:                                            ; No predecessors!
  br label %14617

14617:                                            ; preds = %14616
  br label %14618

14618:                                            ; preds = %14617, %14560
  br label %14619

14619:                                            ; preds = %14618
  br label %14620

14620:                                            ; preds = %14619
  %14621 = load ptr, ptr %402, align 8, !tbaa !9
  %14622 = call i32 @s2n_connection_free(ptr noundef %14621)
  %14623 = call i32 @s2n_pkey_free(ptr noundef %411)
  %14624 = call i32 @s2n_x509_validator_wipe(ptr noundef %401)
  call void @s2n_x509_trust_store_wipe(ptr noundef %398)
  call void @llvm.lifetime.end.p0(i64 4, ptr %413) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %411) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %409) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %408) #11
  %14625 = call i32 @s2n_stuffer_free(ptr noundef %405)
  call void @llvm.lifetime.end.p0(i64 40, ptr %405) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %401) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %400) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %398) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %421) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %421)
  br label %14626

14626:                                            ; preds = %14620
  %14627 = load i32, ptr @test_count, align 4, !tbaa !5
  %14628 = add nsw i32 %14627, 1
  store i32 %14628, ptr @test_count, align 4, !tbaa !5
  %14629 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %421, ptr noundef @.str.48, ptr noundef null)
  %14630 = icmp eq i32 %14629, -1
  br i1 %14630, label %14631, label %14684

14631:                                            ; preds = %14626
  br label %14632

14632:                                            ; preds = %14631
  br label %14633

14633:                                            ; preds = %14632
  call void @llvm.lifetime.start.p0(i64 4, ptr %422) #11
  %14634 = call ptr @__errno_location() #12
  %14635 = load i32, ptr %14634, align 4, !tbaa !5
  store i32 %14635, ptr %422, align 4, !tbaa !5
  %14636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14637 = call i32 @s2n_print_stacktrace(ptr noundef %14636)
  %14638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14639 = trunc i8 %14638 to i1
  br i1 %14639, label %14640, label %14662

14640:                                            ; preds = %14633
  %14641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14642 = call i32 @fileno(ptr noundef %14641) #11
  %14643 = call i32 @isatty(i32 noundef %14642) #11
  %14644 = icmp ne i32 %14643, 0
  br i1 %14644, label %14645, label %14662

14645:                                            ; preds = %14640
  %14646 = load i32, ptr %422, align 4, !tbaa !5
  %14647 = call ptr @__errno_location() #12
  store i32 %14646, ptr %14647, align 4, !tbaa !5
  %14648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14649 = load i32, ptr @test_count, align 4, !tbaa !5
  %14650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14651 = load i32, ptr %14650, align 4, !tbaa !5
  %14652 = call ptr @s2n_strerror(i32 noundef %14651, ptr noundef @.str.4)
  %14653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14654 = load i32, ptr %14653, align 4, !tbaa !5
  %14655 = call ptr @s2n_strerror_debug(i32 noundef %14654, ptr noundef @.str.4)
  %14656 = call ptr @__errno_location() #12
  %14657 = load i32, ptr %14656, align 4, !tbaa !5
  %14658 = call ptr @strerror(i32 noundef %14657) #11
  %14659 = call ptr @__errno_location() #12
  %14660 = load i32, ptr %14659, align 4, !tbaa !5
  %14661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14648, ptr noundef @.str.2, i32 noundef %14649, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 912, ptr noundef %14652, ptr noundef %14655, ptr noundef %14658, i32 noundef %14660) #11
  br label %14679

14662:                                            ; preds = %14640, %14633
  %14663 = load i32, ptr %422, align 4, !tbaa !5
  %14664 = call ptr @__errno_location() #12
  store i32 %14663, ptr %14664, align 4, !tbaa !5
  %14665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14666 = load i32, ptr @test_count, align 4, !tbaa !5
  %14667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14668 = load i32, ptr %14667, align 4, !tbaa !5
  %14669 = call ptr @s2n_strerror(i32 noundef %14668, ptr noundef @.str.4)
  %14670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14671 = load i32, ptr %14670, align 4, !tbaa !5
  %14672 = call ptr @s2n_strerror_debug(i32 noundef %14671, ptr noundef @.str.4)
  %14673 = call ptr @__errno_location() #12
  %14674 = load i32, ptr %14673, align 4, !tbaa !5
  %14675 = call ptr @strerror(i32 noundef %14674) #11
  %14676 = call ptr @__errno_location() #12
  %14677 = load i32, ptr %14676, align 4, !tbaa !5
  %14678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14665, ptr noundef @.str.5, i32 noundef %14666, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 912, ptr noundef %14669, ptr noundef %14672, ptr noundef %14675, i32 noundef %14677) #11
  br label %14679

14679:                                            ; preds = %14662, %14645
  call void @llvm.lifetime.end.p0(i64 4, ptr %422) #11
  br label %14680

14680:                                            ; preds = %14679
  br label %14681

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

14682:                                            ; No predecessors!
  br label %14683

14683:                                            ; preds = %14682
  br label %14684

14684:                                            ; preds = %14683, %14626
  br label %14685

14685:                                            ; preds = %14684
  br label %14686

14686:                                            ; preds = %14685
  call void @llvm.lifetime.start.p0(i64 56, ptr %423) #11
  %14687 = call i32 @s2n_x509_validator_init(ptr noundef %423, ptr noundef %421, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %424) #11
  %14688 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %14688, ptr %424, align 8, !tbaa !9
  br label %14689

14689:                                            ; preds = %14686
  %14690 = load i32, ptr @test_count, align 4, !tbaa !5
  %14691 = add nsw i32 %14690, 1
  store i32 %14691, ptr @test_count, align 4, !tbaa !5
  %14692 = load ptr, ptr %424, align 8, !tbaa !9
  %14693 = icmp eq ptr %14692, null
  br i1 %14693, label %14694, label %14747

14694:                                            ; preds = %14689
  br label %14695

14695:                                            ; preds = %14694
  br label %14696

14696:                                            ; preds = %14695
  call void @llvm.lifetime.start.p0(i64 4, ptr %425) #11
  %14697 = call ptr @__errno_location() #12
  %14698 = load i32, ptr %14697, align 4, !tbaa !5
  store i32 %14698, ptr %425, align 4, !tbaa !5
  %14699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14700 = call i32 @s2n_print_stacktrace(ptr noundef %14699)
  %14701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14702 = trunc i8 %14701 to i1
  br i1 %14702, label %14703, label %14725

14703:                                            ; preds = %14696
  %14704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14705 = call i32 @fileno(ptr noundef %14704) #11
  %14706 = call i32 @isatty(i32 noundef %14705) #11
  %14707 = icmp ne i32 %14706, 0
  br i1 %14707, label %14708, label %14725

14708:                                            ; preds = %14703
  %14709 = load i32, ptr %425, align 4, !tbaa !5
  %14710 = call ptr @__errno_location() #12
  store i32 %14709, ptr %14710, align 4, !tbaa !5
  %14711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14712 = load i32, ptr @test_count, align 4, !tbaa !5
  %14713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14714 = load i32, ptr %14713, align 4, !tbaa !5
  %14715 = call ptr @s2n_strerror(i32 noundef %14714, ptr noundef @.str.4)
  %14716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14717 = load i32, ptr %14716, align 4, !tbaa !5
  %14718 = call ptr @s2n_strerror_debug(i32 noundef %14717, ptr noundef @.str.4)
  %14719 = call ptr @__errno_location() #12
  %14720 = load i32, ptr %14719, align 4, !tbaa !5
  %14721 = call ptr @strerror(i32 noundef %14720) #11
  %14722 = call ptr @__errno_location() #12
  %14723 = load i32, ptr %14722, align 4, !tbaa !5
  %14724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14711, ptr noundef @.str.2, i32 noundef %14712, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 918, ptr noundef %14715, ptr noundef %14718, ptr noundef %14721, i32 noundef %14723) #11
  br label %14742

14725:                                            ; preds = %14703, %14696
  %14726 = load i32, ptr %425, align 4, !tbaa !5
  %14727 = call ptr @__errno_location() #12
  store i32 %14726, ptr %14727, align 4, !tbaa !5
  %14728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14729 = load i32, ptr @test_count, align 4, !tbaa !5
  %14730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14731 = load i32, ptr %14730, align 4, !tbaa !5
  %14732 = call ptr @s2n_strerror(i32 noundef %14731, ptr noundef @.str.4)
  %14733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14734 = load i32, ptr %14733, align 4, !tbaa !5
  %14735 = call ptr @s2n_strerror_debug(i32 noundef %14734, ptr noundef @.str.4)
  %14736 = call ptr @__errno_location() #12
  %14737 = load i32, ptr %14736, align 4, !tbaa !5
  %14738 = call ptr @strerror(i32 noundef %14737) #11
  %14739 = call ptr @__errno_location() #12
  %14740 = load i32, ptr %14739, align 4, !tbaa !5
  %14741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14728, ptr noundef @.str.5, i32 noundef %14729, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 918, ptr noundef %14732, ptr noundef %14735, ptr noundef %14738, i32 noundef %14740) #11
  br label %14742

14742:                                            ; preds = %14725, %14708
  call void @llvm.lifetime.end.p0(i64 4, ptr %425) #11
  br label %14743

14743:                                            ; preds = %14742
  br label %14744

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

14745:                                            ; No predecessors!
  br label %14746

14746:                                            ; preds = %14745
  br label %14747

14747:                                            ; preds = %14746, %14689
  br label %14748

14748:                                            ; preds = %14747
  br label %14749

14749:                                            ; preds = %14748
  call void @llvm.lifetime.start.p0(i64 16, ptr %426) #11
  call void @llvm.memset.p0.i64(ptr align 8 %426, i8 0, i64 16, i1 false)
  br label %14750

14750:                                            ; preds = %14749
  %14751 = load i32, ptr @test_count, align 4, !tbaa !5
  %14752 = add nsw i32 %14751, 1
  store i32 %14752, ptr @test_count, align 4, !tbaa !5
  %14753 = load ptr, ptr %424, align 8, !tbaa !9
  %14754 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %14753, ptr noundef @verify_host_accept_everything, ptr noundef %426)
  %14755 = icmp eq i32 %14754, -1
  br i1 %14755, label %14756, label %14809

14756:                                            ; preds = %14750
  br label %14757

14757:                                            ; preds = %14756
  br label %14758

14758:                                            ; preds = %14757
  call void @llvm.lifetime.start.p0(i64 4, ptr %427) #11
  %14759 = call ptr @__errno_location() #12
  %14760 = load i32, ptr %14759, align 4, !tbaa !5
  store i32 %14760, ptr %427, align 4, !tbaa !5
  %14761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14762 = call i32 @s2n_print_stacktrace(ptr noundef %14761)
  %14763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14764 = trunc i8 %14763 to i1
  br i1 %14764, label %14765, label %14787

14765:                                            ; preds = %14758
  %14766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14767 = call i32 @fileno(ptr noundef %14766) #11
  %14768 = call i32 @isatty(i32 noundef %14767) #11
  %14769 = icmp ne i32 %14768, 0
  br i1 %14769, label %14770, label %14787

14770:                                            ; preds = %14765
  %14771 = load i32, ptr %427, align 4, !tbaa !5
  %14772 = call ptr @__errno_location() #12
  store i32 %14771, ptr %14772, align 4, !tbaa !5
  %14773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14774 = load i32, ptr @test_count, align 4, !tbaa !5
  %14775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14776 = load i32, ptr %14775, align 4, !tbaa !5
  %14777 = call ptr @s2n_strerror(i32 noundef %14776, ptr noundef @.str.4)
  %14778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14779 = load i32, ptr %14778, align 4, !tbaa !5
  %14780 = call ptr @s2n_strerror_debug(i32 noundef %14779, ptr noundef @.str.4)
  %14781 = call ptr @__errno_location() #12
  %14782 = load i32, ptr %14781, align 4, !tbaa !5
  %14783 = call ptr @strerror(i32 noundef %14782) #11
  %14784 = call ptr @__errno_location() #12
  %14785 = load i32, ptr %14784, align 4, !tbaa !5
  %14786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14773, ptr noundef @.str.2, i32 noundef %14774, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 921, ptr noundef %14777, ptr noundef %14780, ptr noundef %14783, i32 noundef %14785) #11
  br label %14804

14787:                                            ; preds = %14765, %14758
  %14788 = load i32, ptr %427, align 4, !tbaa !5
  %14789 = call ptr @__errno_location() #12
  store i32 %14788, ptr %14789, align 4, !tbaa !5
  %14790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14791 = load i32, ptr @test_count, align 4, !tbaa !5
  %14792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14793 = load i32, ptr %14792, align 4, !tbaa !5
  %14794 = call ptr @s2n_strerror(i32 noundef %14793, ptr noundef @.str.4)
  %14795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14796 = load i32, ptr %14795, align 4, !tbaa !5
  %14797 = call ptr @s2n_strerror_debug(i32 noundef %14796, ptr noundef @.str.4)
  %14798 = call ptr @__errno_location() #12
  %14799 = load i32, ptr %14798, align 4, !tbaa !5
  %14800 = call ptr @strerror(i32 noundef %14799) #11
  %14801 = call ptr @__errno_location() #12
  %14802 = load i32, ptr %14801, align 4, !tbaa !5
  %14803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14790, ptr noundef @.str.5, i32 noundef %14791, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 921, ptr noundef %14794, ptr noundef %14797, ptr noundef %14800, i32 noundef %14802) #11
  br label %14804

14804:                                            ; preds = %14787, %14770
  call void @llvm.lifetime.end.p0(i64 4, ptr %427) #11
  br label %14805

14805:                                            ; preds = %14804
  br label %14806

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

14807:                                            ; No predecessors!
  br label %14808

14808:                                            ; preds = %14807
  br label %14809

14809:                                            ; preds = %14808, %14750
  br label %14810

14810:                                            ; preds = %14809
  br label %14811

14811:                                            ; preds = %14810
  call void @llvm.lifetime.start.p0(i64 40, ptr %428) #11
  call void @llvm.memset.p0.i64(ptr align 8 %428, i8 0, i64 40, i1 false)
  br label %14812

14812:                                            ; preds = %14811
  %14813 = load i32, ptr @test_count, align 4, !tbaa !5
  %14814 = add nsw i32 %14813, 1
  store i32 %14814, ptr @test_count, align 4, !tbaa !5
  %14815 = load ptr, ptr %424, align 8, !tbaa !9
  %14816 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %14815, ptr noundef @.str.72, ptr noundef %428)
  %14817 = getelementptr inbounds %struct.s2n_result, ptr %429, i32 0, i32 0
  store i32 %14816, ptr %14817, align 4
  %14818 = getelementptr inbounds %struct.s2n_result, ptr %429, i32 0, i32 0
  %14819 = load i32, ptr %14818, align 4
  %14820 = call zeroext i1 @s2n_result_is_ok(i32 %14819)
  br i1 %14820, label %14874, label %14821

14821:                                            ; preds = %14812
  br label %14822

14822:                                            ; preds = %14821
  br label %14823

14823:                                            ; preds = %14822
  call void @llvm.lifetime.start.p0(i64 4, ptr %430) #11
  %14824 = call ptr @__errno_location() #12
  %14825 = load i32, ptr %14824, align 4, !tbaa !5
  store i32 %14825, ptr %430, align 4, !tbaa !5
  %14826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14827 = call i32 @s2n_print_stacktrace(ptr noundef %14826)
  %14828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14829 = trunc i8 %14828 to i1
  br i1 %14829, label %14830, label %14852

14830:                                            ; preds = %14823
  %14831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14832 = call i32 @fileno(ptr noundef %14831) #11
  %14833 = call i32 @isatty(i32 noundef %14832) #11
  %14834 = icmp ne i32 %14833, 0
  br i1 %14834, label %14835, label %14852

14835:                                            ; preds = %14830
  %14836 = load i32, ptr %430, align 4, !tbaa !5
  %14837 = call ptr @__errno_location() #12
  store i32 %14836, ptr %14837, align 4, !tbaa !5
  %14838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14839 = load i32, ptr @test_count, align 4, !tbaa !5
  %14840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14841 = load i32, ptr %14840, align 4, !tbaa !5
  %14842 = call ptr @s2n_strerror(i32 noundef %14841, ptr noundef @.str.4)
  %14843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14844 = load i32, ptr %14843, align 4, !tbaa !5
  %14845 = call ptr @s2n_strerror_debug(i32 noundef %14844, ptr noundef @.str.4)
  %14846 = call ptr @__errno_location() #12
  %14847 = load i32, ptr %14846, align 4, !tbaa !5
  %14848 = call ptr @strerror(i32 noundef %14847) #11
  %14849 = call ptr @__errno_location() #12
  %14850 = load i32, ptr %14849, align 4, !tbaa !5
  %14851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14838, ptr noundef @.str.2, i32 noundef %14839, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 924, ptr noundef %14842, ptr noundef %14845, ptr noundef %14848, i32 noundef %14850) #11
  br label %14869

14852:                                            ; preds = %14830, %14823
  %14853 = load i32, ptr %430, align 4, !tbaa !5
  %14854 = call ptr @__errno_location() #12
  store i32 %14853, ptr %14854, align 4, !tbaa !5
  %14855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14856 = load i32, ptr @test_count, align 4, !tbaa !5
  %14857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14858 = load i32, ptr %14857, align 4, !tbaa !5
  %14859 = call ptr @s2n_strerror(i32 noundef %14858, ptr noundef @.str.4)
  %14860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14861 = load i32, ptr %14860, align 4, !tbaa !5
  %14862 = call ptr @s2n_strerror_debug(i32 noundef %14861, ptr noundef @.str.4)
  %14863 = call ptr @__errno_location() #12
  %14864 = load i32, ptr %14863, align 4, !tbaa !5
  %14865 = call ptr @strerror(i32 noundef %14864) #11
  %14866 = call ptr @__errno_location() #12
  %14867 = load i32, ptr %14866, align 4, !tbaa !5
  %14868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14855, ptr noundef @.str.5, i32 noundef %14856, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 924, ptr noundef %14859, ptr noundef %14862, ptr noundef %14865, i32 noundef %14867) #11
  br label %14869

14869:                                            ; preds = %14852, %14835
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #11
  br label %14870

14870:                                            ; preds = %14869
  br label %14871

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

14872:                                            ; No predecessors!
  br label %14873

14873:                                            ; preds = %14872
  br label %14874

14874:                                            ; preds = %14873, %14812
  br label %14875

14875:                                            ; preds = %14874
  br label %14876

14876:                                            ; preds = %14875
  call void @llvm.lifetime.start.p0(i64 4, ptr %431) #11
  %14877 = getelementptr inbounds %struct.s2n_stuffer, ptr %428, i32 0, i32 2
  %14878 = load i32, ptr %14877, align 4, !tbaa !15
  %14879 = getelementptr inbounds %struct.s2n_stuffer, ptr %428, i32 0, i32 1
  %14880 = load i32, ptr %14879, align 8, !tbaa !18
  %14881 = sub i32 %14878, %14880
  store i32 %14881, ptr %431, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #11
  %14882 = load i32, ptr %431, align 4, !tbaa !5
  %14883 = call ptr @s2n_stuffer_raw_read(ptr noundef %428, i32 noundef %14882)
  store ptr %14883, ptr %432, align 8, !tbaa !9
  br label %14884

14884:                                            ; preds = %14876
  %14885 = load i32, ptr @test_count, align 4, !tbaa !5
  %14886 = add nsw i32 %14885, 1
  store i32 %14886, ptr @test_count, align 4, !tbaa !5
  %14887 = load ptr, ptr %432, align 8, !tbaa !9
  %14888 = icmp eq ptr %14887, null
  br i1 %14888, label %14889, label %14942

14889:                                            ; preds = %14884
  br label %14890

14890:                                            ; preds = %14889
  br label %14891

14891:                                            ; preds = %14890
  call void @llvm.lifetime.start.p0(i64 4, ptr %433) #11
  %14892 = call ptr @__errno_location() #12
  %14893 = load i32, ptr %14892, align 4, !tbaa !5
  store i32 %14893, ptr %433, align 4, !tbaa !5
  %14894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14895 = call i32 @s2n_print_stacktrace(ptr noundef %14894)
  %14896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14897 = trunc i8 %14896 to i1
  br i1 %14897, label %14898, label %14920

14898:                                            ; preds = %14891
  %14899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14900 = call i32 @fileno(ptr noundef %14899) #11
  %14901 = call i32 @isatty(i32 noundef %14900) #11
  %14902 = icmp ne i32 %14901, 0
  br i1 %14902, label %14903, label %14920

14903:                                            ; preds = %14898
  %14904 = load i32, ptr %433, align 4, !tbaa !5
  %14905 = call ptr @__errno_location() #12
  store i32 %14904, ptr %14905, align 4, !tbaa !5
  %14906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14907 = load i32, ptr @test_count, align 4, !tbaa !5
  %14908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14909 = load i32, ptr %14908, align 4, !tbaa !5
  %14910 = call ptr @s2n_strerror(i32 noundef %14909, ptr noundef @.str.4)
  %14911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14912 = load i32, ptr %14911, align 4, !tbaa !5
  %14913 = call ptr @s2n_strerror_debug(i32 noundef %14912, ptr noundef @.str.4)
  %14914 = call ptr @__errno_location() #12
  %14915 = load i32, ptr %14914, align 4, !tbaa !5
  %14916 = call ptr @strerror(i32 noundef %14915) #11
  %14917 = call ptr @__errno_location() #12
  %14918 = load i32, ptr %14917, align 4, !tbaa !5
  %14919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14906, ptr noundef @.str.2, i32 noundef %14907, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 927, ptr noundef %14910, ptr noundef %14913, ptr noundef %14916, i32 noundef %14918) #11
  br label %14937

14920:                                            ; preds = %14898, %14891
  %14921 = load i32, ptr %433, align 4, !tbaa !5
  %14922 = call ptr @__errno_location() #12
  store i32 %14921, ptr %14922, align 4, !tbaa !5
  %14923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14924 = load i32, ptr @test_count, align 4, !tbaa !5
  %14925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14926 = load i32, ptr %14925, align 4, !tbaa !5
  %14927 = call ptr @s2n_strerror(i32 noundef %14926, ptr noundef @.str.4)
  %14928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14929 = load i32, ptr %14928, align 4, !tbaa !5
  %14930 = call ptr @s2n_strerror_debug(i32 noundef %14929, ptr noundef @.str.4)
  %14931 = call ptr @__errno_location() #12
  %14932 = load i32, ptr %14931, align 4, !tbaa !5
  %14933 = call ptr @strerror(i32 noundef %14932) #11
  %14934 = call ptr @__errno_location() #12
  %14935 = load i32, ptr %14934, align 4, !tbaa !5
  %14936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14923, ptr noundef @.str.5, i32 noundef %14924, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 927, ptr noundef %14927, ptr noundef %14930, ptr noundef %14933, i32 noundef %14935) #11
  br label %14937

14937:                                            ; preds = %14920, %14903
  call void @llvm.lifetime.end.p0(i64 4, ptr %433) #11
  br label %14938

14938:                                            ; preds = %14937
  br label %14939

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

14940:                                            ; No predecessors!
  br label %14941

14941:                                            ; preds = %14940
  br label %14942

14942:                                            ; preds = %14941, %14884
  br label %14943

14943:                                            ; preds = %14942
  br label %14944

14944:                                            ; preds = %14943
  call void @llvm.lifetime.start.p0(i64 48, ptr %434) #11
  br label %14945

14945:                                            ; preds = %14944
  %14946 = load i32, ptr @test_count, align 4, !tbaa !5
  %14947 = add nsw i32 %14946, 1
  store i32 %14947, ptr @test_count, align 4, !tbaa !5
  %14948 = call i32 @s2n_pkey_zero_init(ptr noundef %434)
  %14949 = icmp eq i32 %14948, -1
  br i1 %14949, label %14950, label %15003

14950:                                            ; preds = %14945
  br label %14951

14951:                                            ; preds = %14950
  br label %14952

14952:                                            ; preds = %14951
  call void @llvm.lifetime.start.p0(i64 4, ptr %435) #11
  %14953 = call ptr @__errno_location() #12
  %14954 = load i32, ptr %14953, align 4, !tbaa !5
  store i32 %14954, ptr %435, align 4, !tbaa !5
  %14955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14956 = call i32 @s2n_print_stacktrace(ptr noundef %14955)
  %14957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14958 = trunc i8 %14957 to i1
  br i1 %14958, label %14959, label %14981

14959:                                            ; preds = %14952
  %14960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14961 = call i32 @fileno(ptr noundef %14960) #11
  %14962 = call i32 @isatty(i32 noundef %14961) #11
  %14963 = icmp ne i32 %14962, 0
  br i1 %14963, label %14964, label %14981

14964:                                            ; preds = %14959
  %14965 = load i32, ptr %435, align 4, !tbaa !5
  %14966 = call ptr @__errno_location() #12
  store i32 %14965, ptr %14966, align 4, !tbaa !5
  %14967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14968 = load i32, ptr @test_count, align 4, !tbaa !5
  %14969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14970 = load i32, ptr %14969, align 4, !tbaa !5
  %14971 = call ptr @s2n_strerror(i32 noundef %14970, ptr noundef @.str.4)
  %14972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14973 = load i32, ptr %14972, align 4, !tbaa !5
  %14974 = call ptr @s2n_strerror_debug(i32 noundef %14973, ptr noundef @.str.4)
  %14975 = call ptr @__errno_location() #12
  %14976 = load i32, ptr %14975, align 4, !tbaa !5
  %14977 = call ptr @strerror(i32 noundef %14976) #11
  %14978 = call ptr @__errno_location() #12
  %14979 = load i32, ptr %14978, align 4, !tbaa !5
  %14980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14967, ptr noundef @.str.2, i32 noundef %14968, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 930, ptr noundef %14971, ptr noundef %14974, ptr noundef %14977, i32 noundef %14979) #11
  br label %14998

14981:                                            ; preds = %14959, %14952
  %14982 = load i32, ptr %435, align 4, !tbaa !5
  %14983 = call ptr @__errno_location() #12
  store i32 %14982, ptr %14983, align 4, !tbaa !5
  %14984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14985 = load i32, ptr @test_count, align 4, !tbaa !5
  %14986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14987 = load i32, ptr %14986, align 4, !tbaa !5
  %14988 = call ptr @s2n_strerror(i32 noundef %14987, ptr noundef @.str.4)
  %14989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14990 = load i32, ptr %14989, align 4, !tbaa !5
  %14991 = call ptr @s2n_strerror_debug(i32 noundef %14990, ptr noundef @.str.4)
  %14992 = call ptr @__errno_location() #12
  %14993 = load i32, ptr %14992, align 4, !tbaa !5
  %14994 = call ptr @strerror(i32 noundef %14993) #11
  %14995 = call ptr @__errno_location() #12
  %14996 = load i32, ptr %14995, align 4, !tbaa !5
  %14997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14984, ptr noundef @.str.5, i32 noundef %14985, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 930, ptr noundef %14988, ptr noundef %14991, ptr noundef %14994, i32 noundef %14996) #11
  br label %14998

14998:                                            ; preds = %14981, %14964
  call void @llvm.lifetime.end.p0(i64 4, ptr %435) #11
  br label %14999

14999:                                            ; preds = %14998
  br label %15000

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

15001:                                            ; No predecessors!
  br label %15002

15002:                                            ; preds = %15001
  br label %15003

15003:                                            ; preds = %15002, %14945
  br label %15004

15004:                                            ; preds = %15003
  br label %15005

15005:                                            ; preds = %15004
  call void @llvm.lifetime.start.p0(i64 4, ptr %436) #11
  store i32 -1, ptr %436, align 4, !tbaa !5
  br label %15006

15006:                                            ; preds = %15005
  %15007 = load i32, ptr @test_count, align 4, !tbaa !5
  %15008 = add nsw i32 %15007, 1
  store i32 %15008, ptr @test_count, align 4, !tbaa !5
  %15009 = load ptr, ptr %424, align 8, !tbaa !9
  %15010 = load ptr, ptr %432, align 8, !tbaa !9
  %15011 = load i32, ptr %431, align 4, !tbaa !5
  %15012 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %423, ptr noundef %15009, ptr noundef %15010, i32 noundef %15011, ptr noundef %436, ptr noundef %434)
  %15013 = getelementptr inbounds %struct.s2n_result, ptr %437, i32 0, i32 0
  store i32 %15012, ptr %15013, align 4
  %15014 = getelementptr inbounds %struct.s2n_result, ptr %437, i32 0, i32 0
  %15015 = load i32, ptr %15014, align 4
  %15016 = call zeroext i1 @s2n_result_is_ok(i32 %15015)
  br i1 %15016, label %15070, label %15017

15017:                                            ; preds = %15006
  br label %15018

15018:                                            ; preds = %15017
  br label %15019

15019:                                            ; preds = %15018
  call void @llvm.lifetime.start.p0(i64 4, ptr %438) #11
  %15020 = call ptr @__errno_location() #12
  %15021 = load i32, ptr %15020, align 4, !tbaa !5
  store i32 %15021, ptr %438, align 4, !tbaa !5
  %15022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15023 = call i32 @s2n_print_stacktrace(ptr noundef %15022)
  %15024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15025 = trunc i8 %15024 to i1
  br i1 %15025, label %15026, label %15048

15026:                                            ; preds = %15019
  %15027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15028 = call i32 @fileno(ptr noundef %15027) #11
  %15029 = call i32 @isatty(i32 noundef %15028) #11
  %15030 = icmp ne i32 %15029, 0
  br i1 %15030, label %15031, label %15048

15031:                                            ; preds = %15026
  %15032 = load i32, ptr %438, align 4, !tbaa !5
  %15033 = call ptr @__errno_location() #12
  store i32 %15032, ptr %15033, align 4, !tbaa !5
  %15034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15035 = load i32, ptr @test_count, align 4, !tbaa !5
  %15036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15037 = load i32, ptr %15036, align 4, !tbaa !5
  %15038 = call ptr @s2n_strerror(i32 noundef %15037, ptr noundef @.str.4)
  %15039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15040 = load i32, ptr %15039, align 4, !tbaa !5
  %15041 = call ptr @s2n_strerror_debug(i32 noundef %15040, ptr noundef @.str.4)
  %15042 = call ptr @__errno_location() #12
  %15043 = load i32, ptr %15042, align 4, !tbaa !5
  %15044 = call ptr @strerror(i32 noundef %15043) #11
  %15045 = call ptr @__errno_location() #12
  %15046 = load i32, ptr %15045, align 4, !tbaa !5
  %15047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15034, ptr noundef @.str.2, i32 noundef %15035, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 932, ptr noundef %15038, ptr noundef %15041, ptr noundef %15044, i32 noundef %15046) #11
  br label %15065

15048:                                            ; preds = %15026, %15019
  %15049 = load i32, ptr %438, align 4, !tbaa !5
  %15050 = call ptr @__errno_location() #12
  store i32 %15049, ptr %15050, align 4, !tbaa !5
  %15051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15052 = load i32, ptr @test_count, align 4, !tbaa !5
  %15053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15054 = load i32, ptr %15053, align 4, !tbaa !5
  %15055 = call ptr @s2n_strerror(i32 noundef %15054, ptr noundef @.str.4)
  %15056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15057 = load i32, ptr %15056, align 4, !tbaa !5
  %15058 = call ptr @s2n_strerror_debug(i32 noundef %15057, ptr noundef @.str.4)
  %15059 = call ptr @__errno_location() #12
  %15060 = load i32, ptr %15059, align 4, !tbaa !5
  %15061 = call ptr @strerror(i32 noundef %15060) #11
  %15062 = call ptr @__errno_location() #12
  %15063 = load i32, ptr %15062, align 4, !tbaa !5
  %15064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15051, ptr noundef @.str.5, i32 noundef %15052, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 932, ptr noundef %15055, ptr noundef %15058, ptr noundef %15061, i32 noundef %15063) #11
  br label %15065

15065:                                            ; preds = %15048, %15031
  call void @llvm.lifetime.end.p0(i64 4, ptr %438) #11
  br label %15066

15066:                                            ; preds = %15065
  br label %15067

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

15068:                                            ; No predecessors!
  br label %15069

15069:                                            ; preds = %15068
  br label %15070

15070:                                            ; preds = %15069, %15006
  br label %15071

15071:                                            ; preds = %15070
  br label %15072

15072:                                            ; preds = %15071
  br label %15073

15073:                                            ; preds = %15072
  %15074 = load i32, ptr @test_count, align 4, !tbaa !5
  %15075 = add nsw i32 %15074, 1
  store i32 %15075, ptr @test_count, align 4, !tbaa !5
  %15076 = getelementptr inbounds %struct.host_verify_data, ptr %426, i32 0, i32 2
  %15077 = load i8, ptr %15076, align 1, !tbaa !19
  %15078 = zext i8 %15077 to i32
  %15079 = icmp eq i32 1, %15078
  br i1 %15079, label %15133, label %15080

15080:                                            ; preds = %15073
  br label %15081

15081:                                            ; preds = %15080
  br label %15082

15082:                                            ; preds = %15081
  call void @llvm.lifetime.start.p0(i64 4, ptr %439) #11
  %15083 = call ptr @__errno_location() #12
  %15084 = load i32, ptr %15083, align 4, !tbaa !5
  store i32 %15084, ptr %439, align 4, !tbaa !5
  %15085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15086 = call i32 @s2n_print_stacktrace(ptr noundef %15085)
  %15087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15088 = trunc i8 %15087 to i1
  br i1 %15088, label %15089, label %15111

15089:                                            ; preds = %15082
  %15090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15091 = call i32 @fileno(ptr noundef %15090) #11
  %15092 = call i32 @isatty(i32 noundef %15091) #11
  %15093 = icmp ne i32 %15092, 0
  br i1 %15093, label %15094, label %15111

15094:                                            ; preds = %15089
  %15095 = load i32, ptr %439, align 4, !tbaa !5
  %15096 = call ptr @__errno_location() #12
  store i32 %15095, ptr %15096, align 4, !tbaa !5
  %15097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15098 = load i32, ptr @test_count, align 4, !tbaa !5
  %15099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15100 = load i32, ptr %15099, align 4, !tbaa !5
  %15101 = call ptr @s2n_strerror(i32 noundef %15100, ptr noundef @.str.4)
  %15102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15103 = load i32, ptr %15102, align 4, !tbaa !5
  %15104 = call ptr @s2n_strerror_debug(i32 noundef %15103, ptr noundef @.str.4)
  %15105 = call ptr @__errno_location() #12
  %15106 = load i32, ptr %15105, align 4, !tbaa !5
  %15107 = call ptr @strerror(i32 noundef %15106) #11
  %15108 = call ptr @__errno_location() #12
  %15109 = load i32, ptr %15108, align 4, !tbaa !5
  %15110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15097, ptr noundef @.str.2, i32 noundef %15098, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 934, ptr noundef %15101, ptr noundef %15104, ptr noundef %15107, i32 noundef %15109) #11
  br label %15128

15111:                                            ; preds = %15089, %15082
  %15112 = load i32, ptr %439, align 4, !tbaa !5
  %15113 = call ptr @__errno_location() #12
  store i32 %15112, ptr %15113, align 4, !tbaa !5
  %15114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15115 = load i32, ptr @test_count, align 4, !tbaa !5
  %15116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15117 = load i32, ptr %15116, align 4, !tbaa !5
  %15118 = call ptr @s2n_strerror(i32 noundef %15117, ptr noundef @.str.4)
  %15119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15120 = load i32, ptr %15119, align 4, !tbaa !5
  %15121 = call ptr @s2n_strerror_debug(i32 noundef %15120, ptr noundef @.str.4)
  %15122 = call ptr @__errno_location() #12
  %15123 = load i32, ptr %15122, align 4, !tbaa !5
  %15124 = call ptr @strerror(i32 noundef %15123) #11
  %15125 = call ptr @__errno_location() #12
  %15126 = load i32, ptr %15125, align 4, !tbaa !5
  %15127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15114, ptr noundef @.str.5, i32 noundef %15115, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 934, ptr noundef %15118, ptr noundef %15121, ptr noundef %15124, i32 noundef %15126) #11
  br label %15128

15128:                                            ; preds = %15111, %15094
  call void @llvm.lifetime.end.p0(i64 4, ptr %439) #11
  br label %15129

15129:                                            ; preds = %15128
  br label %15130

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

15131:                                            ; No predecessors!
  br label %15132

15132:                                            ; preds = %15131
  br label %15133

15133:                                            ; preds = %15132, %15073
  br label %15134

15134:                                            ; preds = %15133
  br label %15135

15135:                                            ; preds = %15134
  call void @llvm.lifetime.start.p0(i64 40, ptr %440) #11
  call void @llvm.memset.p0.i64(ptr align 8 %440, i8 0, i64 40, i1 false)
  br label %15136

15136:                                            ; preds = %15135
  %15137 = load i32, ptr @test_count, align 4, !tbaa !5
  %15138 = add nsw i32 %15137, 1
  store i32 %15138, ptr @test_count, align 4, !tbaa !5
  %15139 = call i32 @read_file(ptr noundef %440, ptr noundef @.str.74, i32 noundef 12000)
  %15140 = icmp eq i32 %15139, -1
  br i1 %15140, label %15141, label %15194

15141:                                            ; preds = %15136
  br label %15142

15142:                                            ; preds = %15141
  br label %15143

15143:                                            ; preds = %15142
  call void @llvm.lifetime.start.p0(i64 4, ptr %441) #11
  %15144 = call ptr @__errno_location() #12
  %15145 = load i32, ptr %15144, align 4, !tbaa !5
  store i32 %15145, ptr %441, align 4, !tbaa !5
  %15146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15147 = call i32 @s2n_print_stacktrace(ptr noundef %15146)
  %15148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15149 = trunc i8 %15148 to i1
  br i1 %15149, label %15150, label %15172

15150:                                            ; preds = %15143
  %15151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15152 = call i32 @fileno(ptr noundef %15151) #11
  %15153 = call i32 @isatty(i32 noundef %15152) #11
  %15154 = icmp ne i32 %15153, 0
  br i1 %15154, label %15155, label %15172

15155:                                            ; preds = %15150
  %15156 = load i32, ptr %441, align 4, !tbaa !5
  %15157 = call ptr @__errno_location() #12
  store i32 %15156, ptr %15157, align 4, !tbaa !5
  %15158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15159 = load i32, ptr @test_count, align 4, !tbaa !5
  %15160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15161 = load i32, ptr %15160, align 4, !tbaa !5
  %15162 = call ptr @s2n_strerror(i32 noundef %15161, ptr noundef @.str.4)
  %15163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15164 = load i32, ptr %15163, align 4, !tbaa !5
  %15165 = call ptr @s2n_strerror_debug(i32 noundef %15164, ptr noundef @.str.4)
  %15166 = call ptr @__errno_location() #12
  %15167 = load i32, ptr %15166, align 4, !tbaa !5
  %15168 = call ptr @strerror(i32 noundef %15167) #11
  %15169 = call ptr @__errno_location() #12
  %15170 = load i32, ptr %15169, align 4, !tbaa !5
  %15171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15158, ptr noundef @.str.2, i32 noundef %15159, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 936, ptr noundef %15162, ptr noundef %15165, ptr noundef %15168, i32 noundef %15170) #11
  br label %15189

15172:                                            ; preds = %15150, %15143
  %15173 = load i32, ptr %441, align 4, !tbaa !5
  %15174 = call ptr @__errno_location() #12
  store i32 %15173, ptr %15174, align 4, !tbaa !5
  %15175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15176 = load i32, ptr @test_count, align 4, !tbaa !5
  %15177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15178 = load i32, ptr %15177, align 4, !tbaa !5
  %15179 = call ptr @s2n_strerror(i32 noundef %15178, ptr noundef @.str.4)
  %15180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15181 = load i32, ptr %15180, align 4, !tbaa !5
  %15182 = call ptr @s2n_strerror_debug(i32 noundef %15181, ptr noundef @.str.4)
  %15183 = call ptr @__errno_location() #12
  %15184 = load i32, ptr %15183, align 4, !tbaa !5
  %15185 = call ptr @strerror(i32 noundef %15184) #11
  %15186 = call ptr @__errno_location() #12
  %15187 = load i32, ptr %15186, align 4, !tbaa !5
  %15188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15175, ptr noundef @.str.5, i32 noundef %15176, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 936, ptr noundef %15179, ptr noundef %15182, ptr noundef %15185, i32 noundef %15187) #11
  br label %15189

15189:                                            ; preds = %15172, %15155
  call void @llvm.lifetime.end.p0(i64 4, ptr %441) #11
  br label %15190

15190:                                            ; preds = %15189
  br label %15191

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

15192:                                            ; No predecessors!
  br label %15193

15193:                                            ; preds = %15192
  br label %15194

15194:                                            ; preds = %15193, %15136
  br label %15195

15195:                                            ; preds = %15194
  br label %15196

15196:                                            ; preds = %15195
  call void @llvm.lifetime.start.p0(i64 4, ptr %442) #11
  %15197 = getelementptr inbounds %struct.s2n_stuffer, ptr %440, i32 0, i32 2
  %15198 = load i32, ptr %15197, align 4, !tbaa !15
  %15199 = getelementptr inbounds %struct.s2n_stuffer, ptr %440, i32 0, i32 1
  %15200 = load i32, ptr %15199, align 8, !tbaa !18
  %15201 = sub i32 %15198, %15200
  store i32 %15201, ptr %442, align 4, !tbaa !5
  br label %15202

15202:                                            ; preds = %15196
  %15203 = load i32, ptr @test_count, align 4, !tbaa !5
  %15204 = add nsw i32 %15203, 1
  store i32 %15204, ptr @test_count, align 4, !tbaa !5
  %15205 = load i32, ptr %442, align 4, !tbaa !5
  %15206 = icmp ugt i32 %15205, 0
  br i1 %15206, label %15260, label %15207

15207:                                            ; preds = %15202
  br label %15208

15208:                                            ; preds = %15207
  br label %15209

15209:                                            ; preds = %15208
  call void @llvm.lifetime.start.p0(i64 4, ptr %443) #11
  %15210 = call ptr @__errno_location() #12
  %15211 = load i32, ptr %15210, align 4, !tbaa !5
  store i32 %15211, ptr %443, align 4, !tbaa !5
  %15212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15213 = call i32 @s2n_print_stacktrace(ptr noundef %15212)
  %15214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15215 = trunc i8 %15214 to i1
  br i1 %15215, label %15216, label %15238

15216:                                            ; preds = %15209
  %15217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15218 = call i32 @fileno(ptr noundef %15217) #11
  %15219 = call i32 @isatty(i32 noundef %15218) #11
  %15220 = icmp ne i32 %15219, 0
  br i1 %15220, label %15221, label %15238

15221:                                            ; preds = %15216
  %15222 = load i32, ptr %443, align 4, !tbaa !5
  %15223 = call ptr @__errno_location() #12
  store i32 %15222, ptr %15223, align 4, !tbaa !5
  %15224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15225 = load i32, ptr @test_count, align 4, !tbaa !5
  %15226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15227 = load i32, ptr %15226, align 4, !tbaa !5
  %15228 = call ptr @s2n_strerror(i32 noundef %15227, ptr noundef @.str.4)
  %15229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15230 = load i32, ptr %15229, align 4, !tbaa !5
  %15231 = call ptr @s2n_strerror_debug(i32 noundef %15230, ptr noundef @.str.4)
  %15232 = call ptr @__errno_location() #12
  %15233 = load i32, ptr %15232, align 4, !tbaa !5
  %15234 = call ptr @strerror(i32 noundef %15233) #11
  %15235 = call ptr @__errno_location() #12
  %15236 = load i32, ptr %15235, align 4, !tbaa !5
  %15237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15224, ptr noundef @.str.2, i32 noundef %15225, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 938, ptr noundef %15228, ptr noundef %15231, ptr noundef %15234, i32 noundef %15236) #11
  br label %15255

15238:                                            ; preds = %15216, %15209
  %15239 = load i32, ptr %443, align 4, !tbaa !5
  %15240 = call ptr @__errno_location() #12
  store i32 %15239, ptr %15240, align 4, !tbaa !5
  %15241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15242 = load i32, ptr @test_count, align 4, !tbaa !5
  %15243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15244 = load i32, ptr %15243, align 4, !tbaa !5
  %15245 = call ptr @s2n_strerror(i32 noundef %15244, ptr noundef @.str.4)
  %15246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15247 = load i32, ptr %15246, align 4, !tbaa !5
  %15248 = call ptr @s2n_strerror_debug(i32 noundef %15247, ptr noundef @.str.4)
  %15249 = call ptr @__errno_location() #12
  %15250 = load i32, ptr %15249, align 4, !tbaa !5
  %15251 = call ptr @strerror(i32 noundef %15250) #11
  %15252 = call ptr @__errno_location() #12
  %15253 = load i32, ptr %15252, align 4, !tbaa !5
  %15254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15241, ptr noundef @.str.5, i32 noundef %15242, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 938, ptr noundef %15245, ptr noundef %15248, ptr noundef %15251, i32 noundef %15253) #11
  br label %15255

15255:                                            ; preds = %15238, %15221
  call void @llvm.lifetime.end.p0(i64 4, ptr %443) #11
  br label %15256

15256:                                            ; preds = %15255
  br label %15257

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

15258:                                            ; No predecessors!
  br label %15259

15259:                                            ; preds = %15258
  br label %15260

15260:                                            ; preds = %15259, %15202
  br label %15261

15261:                                            ; preds = %15260
  br label %15262

15262:                                            ; preds = %15261
  br label %15263

15263:                                            ; preds = %15262
  %15264 = load i32, ptr @test_count, align 4, !tbaa !5
  %15265 = add nsw i32 %15264, 1
  store i32 %15265, ptr @test_count, align 4, !tbaa !5
  %15266 = load ptr, ptr %424, align 8, !tbaa !9
  %15267 = load i32, ptr %442, align 4, !tbaa !5
  %15268 = call ptr @s2n_stuffer_raw_read(ptr noundef %440, i32 noundef %15267)
  %15269 = load i32, ptr %442, align 4, !tbaa !5
  %15270 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %423, ptr noundef %15266, ptr noundef %15268, i32 noundef %15269)
  %15271 = getelementptr inbounds %struct.s2n_result, ptr %444, i32 0, i32 0
  store i32 %15270, ptr %15271, align 4
  %15272 = getelementptr inbounds %struct.s2n_result, ptr %444, i32 0, i32 0
  %15273 = load i32, ptr %15272, align 4
  %15274 = call zeroext i1 @s2n_result_is_ok(i32 %15273)
  br i1 %15274, label %15328, label %15275

15275:                                            ; preds = %15263
  br label %15276

15276:                                            ; preds = %15275
  br label %15277

15277:                                            ; preds = %15276
  call void @llvm.lifetime.start.p0(i64 4, ptr %445) #11
  %15278 = call ptr @__errno_location() #12
  %15279 = load i32, ptr %15278, align 4, !tbaa !5
  store i32 %15279, ptr %445, align 4, !tbaa !5
  %15280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15281 = call i32 @s2n_print_stacktrace(ptr noundef %15280)
  %15282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15283 = trunc i8 %15282 to i1
  br i1 %15283, label %15284, label %15306

15284:                                            ; preds = %15277
  %15285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15286 = call i32 @fileno(ptr noundef %15285) #11
  %15287 = call i32 @isatty(i32 noundef %15286) #11
  %15288 = icmp ne i32 %15287, 0
  br i1 %15288, label %15289, label %15306

15289:                                            ; preds = %15284
  %15290 = load i32, ptr %445, align 4, !tbaa !5
  %15291 = call ptr @__errno_location() #12
  store i32 %15290, ptr %15291, align 4, !tbaa !5
  %15292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15293 = load i32, ptr @test_count, align 4, !tbaa !5
  %15294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15295 = load i32, ptr %15294, align 4, !tbaa !5
  %15296 = call ptr @s2n_strerror(i32 noundef %15295, ptr noundef @.str.4)
  %15297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15298 = load i32, ptr %15297, align 4, !tbaa !5
  %15299 = call ptr @s2n_strerror_debug(i32 noundef %15298, ptr noundef @.str.4)
  %15300 = call ptr @__errno_location() #12
  %15301 = load i32, ptr %15300, align 4, !tbaa !5
  %15302 = call ptr @strerror(i32 noundef %15301) #11
  %15303 = call ptr @__errno_location() #12
  %15304 = load i32, ptr %15303, align 4, !tbaa !5
  %15305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15292, ptr noundef @.str.2, i32 noundef %15293, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 940, ptr noundef %15296, ptr noundef %15299, ptr noundef %15302, i32 noundef %15304) #11
  br label %15323

15306:                                            ; preds = %15284, %15277
  %15307 = load i32, ptr %445, align 4, !tbaa !5
  %15308 = call ptr @__errno_location() #12
  store i32 %15307, ptr %15308, align 4, !tbaa !5
  %15309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15310 = load i32, ptr @test_count, align 4, !tbaa !5
  %15311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15312 = load i32, ptr %15311, align 4, !tbaa !5
  %15313 = call ptr @s2n_strerror(i32 noundef %15312, ptr noundef @.str.4)
  %15314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15315 = load i32, ptr %15314, align 4, !tbaa !5
  %15316 = call ptr @s2n_strerror_debug(i32 noundef %15315, ptr noundef @.str.4)
  %15317 = call ptr @__errno_location() #12
  %15318 = load i32, ptr %15317, align 4, !tbaa !5
  %15319 = call ptr @strerror(i32 noundef %15318) #11
  %15320 = call ptr @__errno_location() #12
  %15321 = load i32, ptr %15320, align 4, !tbaa !5
  %15322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15309, ptr noundef @.str.5, i32 noundef %15310, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 940, ptr noundef %15313, ptr noundef %15316, ptr noundef %15319, i32 noundef %15321) #11
  br label %15323

15323:                                            ; preds = %15306, %15289
  call void @llvm.lifetime.end.p0(i64 4, ptr %445) #11
  br label %15324

15324:                                            ; preds = %15323
  br label %15325

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

15326:                                            ; No predecessors!
  br label %15327

15327:                                            ; preds = %15326
  br label %15328

15328:                                            ; preds = %15327, %15263
  br label %15329

15329:                                            ; preds = %15328
  br label %15330

15330:                                            ; preds = %15329
  %15331 = call i32 @s2n_stuffer_free(ptr noundef %440)
  %15332 = load ptr, ptr %424, align 8, !tbaa !9
  %15333 = call i32 @s2n_connection_free(ptr noundef %15332)
  %15334 = call i32 @s2n_pkey_free(ptr noundef %434)
  %15335 = call i32 @s2n_x509_validator_wipe(ptr noundef %423)
  call void @s2n_x509_trust_store_wipe(ptr noundef %421)
  call void @llvm.lifetime.end.p0(i64 4, ptr %442) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %440) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %436) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %434) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %431) #11
  %15336 = call i32 @s2n_stuffer_free(ptr noundef %428)
  call void @llvm.lifetime.end.p0(i64 40, ptr %428) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %426) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %423) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %421) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %446) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %446)
  br label %15337

15337:                                            ; preds = %15330
  %15338 = load i32, ptr @test_count, align 4, !tbaa !5
  %15339 = add nsw i32 %15338, 1
  store i32 %15339, ptr @test_count, align 4, !tbaa !5
  %15340 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %446, ptr noundef @.str.48, ptr noundef null)
  %15341 = icmp eq i32 %15340, -1
  br i1 %15341, label %15342, label %15395

15342:                                            ; preds = %15337
  br label %15343

15343:                                            ; preds = %15342
  br label %15344

15344:                                            ; preds = %15343
  call void @llvm.lifetime.start.p0(i64 4, ptr %447) #11
  %15345 = call ptr @__errno_location() #12
  %15346 = load i32, ptr %15345, align 4, !tbaa !5
  store i32 %15346, ptr %447, align 4, !tbaa !5
  %15347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15348 = call i32 @s2n_print_stacktrace(ptr noundef %15347)
  %15349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15350 = trunc i8 %15349 to i1
  br i1 %15350, label %15351, label %15373

15351:                                            ; preds = %15344
  %15352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15353 = call i32 @fileno(ptr noundef %15352) #11
  %15354 = call i32 @isatty(i32 noundef %15353) #11
  %15355 = icmp ne i32 %15354, 0
  br i1 %15355, label %15356, label %15373

15356:                                            ; preds = %15351
  %15357 = load i32, ptr %447, align 4, !tbaa !5
  %15358 = call ptr @__errno_location() #12
  store i32 %15357, ptr %15358, align 4, !tbaa !5
  %15359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15360 = load i32, ptr @test_count, align 4, !tbaa !5
  %15361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15362 = load i32, ptr %15361, align 4, !tbaa !5
  %15363 = call ptr @s2n_strerror(i32 noundef %15362, ptr noundef @.str.4)
  %15364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15365 = load i32, ptr %15364, align 4, !tbaa !5
  %15366 = call ptr @s2n_strerror_debug(i32 noundef %15365, ptr noundef @.str.4)
  %15367 = call ptr @__errno_location() #12
  %15368 = load i32, ptr %15367, align 4, !tbaa !5
  %15369 = call ptr @strerror(i32 noundef %15368) #11
  %15370 = call ptr @__errno_location() #12
  %15371 = load i32, ptr %15370, align 4, !tbaa !5
  %15372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15359, ptr noundef @.str.2, i32 noundef %15360, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 953, ptr noundef %15363, ptr noundef %15366, ptr noundef %15369, i32 noundef %15371) #11
  br label %15390

15373:                                            ; preds = %15351, %15344
  %15374 = load i32, ptr %447, align 4, !tbaa !5
  %15375 = call ptr @__errno_location() #12
  store i32 %15374, ptr %15375, align 4, !tbaa !5
  %15376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15377 = load i32, ptr @test_count, align 4, !tbaa !5
  %15378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15379 = load i32, ptr %15378, align 4, !tbaa !5
  %15380 = call ptr @s2n_strerror(i32 noundef %15379, ptr noundef @.str.4)
  %15381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15382 = load i32, ptr %15381, align 4, !tbaa !5
  %15383 = call ptr @s2n_strerror_debug(i32 noundef %15382, ptr noundef @.str.4)
  %15384 = call ptr @__errno_location() #12
  %15385 = load i32, ptr %15384, align 4, !tbaa !5
  %15386 = call ptr @strerror(i32 noundef %15385) #11
  %15387 = call ptr @__errno_location() #12
  %15388 = load i32, ptr %15387, align 4, !tbaa !5
  %15389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15376, ptr noundef @.str.5, i32 noundef %15377, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 953, ptr noundef %15380, ptr noundef %15383, ptr noundef %15386, i32 noundef %15388) #11
  br label %15390

15390:                                            ; preds = %15373, %15356
  call void @llvm.lifetime.end.p0(i64 4, ptr %447) #11
  br label %15391

15391:                                            ; preds = %15390
  br label %15392

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

15393:                                            ; No predecessors!
  br label %15394

15394:                                            ; preds = %15393
  br label %15395

15395:                                            ; preds = %15394, %15337
  br label %15396

15396:                                            ; preds = %15395
  br label %15397

15397:                                            ; preds = %15396
  call void @llvm.lifetime.start.p0(i64 56, ptr %448) #11
  %15398 = call i32 @s2n_x509_validator_init(ptr noundef %448, ptr noundef %446, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %449) #11
  %15399 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %15399, ptr %449, align 8, !tbaa !9
  br label %15400

15400:                                            ; preds = %15397
  %15401 = load i32, ptr @test_count, align 4, !tbaa !5
  %15402 = add nsw i32 %15401, 1
  store i32 %15402, ptr @test_count, align 4, !tbaa !5
  %15403 = load ptr, ptr %449, align 8, !tbaa !9
  %15404 = icmp eq ptr %15403, null
  br i1 %15404, label %15405, label %15458

15405:                                            ; preds = %15400
  br label %15406

15406:                                            ; preds = %15405
  br label %15407

15407:                                            ; preds = %15406
  call void @llvm.lifetime.start.p0(i64 4, ptr %450) #11
  %15408 = call ptr @__errno_location() #12
  %15409 = load i32, ptr %15408, align 4, !tbaa !5
  store i32 %15409, ptr %450, align 4, !tbaa !5
  %15410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15411 = call i32 @s2n_print_stacktrace(ptr noundef %15410)
  %15412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15413 = trunc i8 %15412 to i1
  br i1 %15413, label %15414, label %15436

15414:                                            ; preds = %15407
  %15415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15416 = call i32 @fileno(ptr noundef %15415) #11
  %15417 = call i32 @isatty(i32 noundef %15416) #11
  %15418 = icmp ne i32 %15417, 0
  br i1 %15418, label %15419, label %15436

15419:                                            ; preds = %15414
  %15420 = load i32, ptr %450, align 4, !tbaa !5
  %15421 = call ptr @__errno_location() #12
  store i32 %15420, ptr %15421, align 4, !tbaa !5
  %15422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15423 = load i32, ptr @test_count, align 4, !tbaa !5
  %15424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15425 = load i32, ptr %15424, align 4, !tbaa !5
  %15426 = call ptr @s2n_strerror(i32 noundef %15425, ptr noundef @.str.4)
  %15427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15428 = load i32, ptr %15427, align 4, !tbaa !5
  %15429 = call ptr @s2n_strerror_debug(i32 noundef %15428, ptr noundef @.str.4)
  %15430 = call ptr @__errno_location() #12
  %15431 = load i32, ptr %15430, align 4, !tbaa !5
  %15432 = call ptr @strerror(i32 noundef %15431) #11
  %15433 = call ptr @__errno_location() #12
  %15434 = load i32, ptr %15433, align 4, !tbaa !5
  %15435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15422, ptr noundef @.str.2, i32 noundef %15423, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 959, ptr noundef %15426, ptr noundef %15429, ptr noundef %15432, i32 noundef %15434) #11
  br label %15453

15436:                                            ; preds = %15414, %15407
  %15437 = load i32, ptr %450, align 4, !tbaa !5
  %15438 = call ptr @__errno_location() #12
  store i32 %15437, ptr %15438, align 4, !tbaa !5
  %15439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15440 = load i32, ptr @test_count, align 4, !tbaa !5
  %15441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15442 = load i32, ptr %15441, align 4, !tbaa !5
  %15443 = call ptr @s2n_strerror(i32 noundef %15442, ptr noundef @.str.4)
  %15444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15445 = load i32, ptr %15444, align 4, !tbaa !5
  %15446 = call ptr @s2n_strerror_debug(i32 noundef %15445, ptr noundef @.str.4)
  %15447 = call ptr @__errno_location() #12
  %15448 = load i32, ptr %15447, align 4, !tbaa !5
  %15449 = call ptr @strerror(i32 noundef %15448) #11
  %15450 = call ptr @__errno_location() #12
  %15451 = load i32, ptr %15450, align 4, !tbaa !5
  %15452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15439, ptr noundef @.str.5, i32 noundef %15440, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 959, ptr noundef %15443, ptr noundef %15446, ptr noundef %15449, i32 noundef %15451) #11
  br label %15453

15453:                                            ; preds = %15436, %15419
  call void @llvm.lifetime.end.p0(i64 4, ptr %450) #11
  br label %15454

15454:                                            ; preds = %15453
  br label %15455

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

15456:                                            ; No predecessors!
  br label %15457

15457:                                            ; preds = %15456
  br label %15458

15458:                                            ; preds = %15457, %15400
  br label %15459

15459:                                            ; preds = %15458
  br label %15460

15460:                                            ; preds = %15459
  call void @llvm.lifetime.start.p0(i64 16, ptr %451) #11
  call void @llvm.memset.p0.i64(ptr align 8 %451, i8 0, i64 16, i1 false)
  br label %15461

15461:                                            ; preds = %15460
  %15462 = load i32, ptr @test_count, align 4, !tbaa !5
  %15463 = add nsw i32 %15462, 1
  store i32 %15463, ptr @test_count, align 4, !tbaa !5
  %15464 = load ptr, ptr %449, align 8, !tbaa !9
  %15465 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %15464, ptr noundef @verify_host_accept_everything, ptr noundef %451)
  %15466 = icmp eq i32 %15465, -1
  br i1 %15466, label %15467, label %15520

15467:                                            ; preds = %15461
  br label %15468

15468:                                            ; preds = %15467
  br label %15469

15469:                                            ; preds = %15468
  call void @llvm.lifetime.start.p0(i64 4, ptr %452) #11
  %15470 = call ptr @__errno_location() #12
  %15471 = load i32, ptr %15470, align 4, !tbaa !5
  store i32 %15471, ptr %452, align 4, !tbaa !5
  %15472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15473 = call i32 @s2n_print_stacktrace(ptr noundef %15472)
  %15474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15475 = trunc i8 %15474 to i1
  br i1 %15475, label %15476, label %15498

15476:                                            ; preds = %15469
  %15477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15478 = call i32 @fileno(ptr noundef %15477) #11
  %15479 = call i32 @isatty(i32 noundef %15478) #11
  %15480 = icmp ne i32 %15479, 0
  br i1 %15480, label %15481, label %15498

15481:                                            ; preds = %15476
  %15482 = load i32, ptr %452, align 4, !tbaa !5
  %15483 = call ptr @__errno_location() #12
  store i32 %15482, ptr %15483, align 4, !tbaa !5
  %15484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15485 = load i32, ptr @test_count, align 4, !tbaa !5
  %15486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15487 = load i32, ptr %15486, align 4, !tbaa !5
  %15488 = call ptr @s2n_strerror(i32 noundef %15487, ptr noundef @.str.4)
  %15489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15490 = load i32, ptr %15489, align 4, !tbaa !5
  %15491 = call ptr @s2n_strerror_debug(i32 noundef %15490, ptr noundef @.str.4)
  %15492 = call ptr @__errno_location() #12
  %15493 = load i32, ptr %15492, align 4, !tbaa !5
  %15494 = call ptr @strerror(i32 noundef %15493) #11
  %15495 = call ptr @__errno_location() #12
  %15496 = load i32, ptr %15495, align 4, !tbaa !5
  %15497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15484, ptr noundef @.str.2, i32 noundef %15485, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 962, ptr noundef %15488, ptr noundef %15491, ptr noundef %15494, i32 noundef %15496) #11
  br label %15515

15498:                                            ; preds = %15476, %15469
  %15499 = load i32, ptr %452, align 4, !tbaa !5
  %15500 = call ptr @__errno_location() #12
  store i32 %15499, ptr %15500, align 4, !tbaa !5
  %15501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15502 = load i32, ptr @test_count, align 4, !tbaa !5
  %15503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15504 = load i32, ptr %15503, align 4, !tbaa !5
  %15505 = call ptr @s2n_strerror(i32 noundef %15504, ptr noundef @.str.4)
  %15506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15507 = load i32, ptr %15506, align 4, !tbaa !5
  %15508 = call ptr @s2n_strerror_debug(i32 noundef %15507, ptr noundef @.str.4)
  %15509 = call ptr @__errno_location() #12
  %15510 = load i32, ptr %15509, align 4, !tbaa !5
  %15511 = call ptr @strerror(i32 noundef %15510) #11
  %15512 = call ptr @__errno_location() #12
  %15513 = load i32, ptr %15512, align 4, !tbaa !5
  %15514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15501, ptr noundef @.str.5, i32 noundef %15502, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 962, ptr noundef %15505, ptr noundef %15508, ptr noundef %15511, i32 noundef %15513) #11
  br label %15515

15515:                                            ; preds = %15498, %15481
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #11
  br label %15516

15516:                                            ; preds = %15515
  br label %15517

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

15518:                                            ; No predecessors!
  br label %15519

15519:                                            ; preds = %15518
  br label %15520

15520:                                            ; preds = %15519, %15461
  br label %15521

15521:                                            ; preds = %15520
  br label %15522

15522:                                            ; preds = %15521
  call void @llvm.lifetime.start.p0(i64 40, ptr %453) #11
  call void @llvm.memset.p0.i64(ptr align 8 %453, i8 0, i64 40, i1 false)
  br label %15523

15523:                                            ; preds = %15522
  %15524 = load i32, ptr @test_count, align 4, !tbaa !5
  %15525 = add nsw i32 %15524, 1
  store i32 %15525, ptr @test_count, align 4, !tbaa !5
  %15526 = load ptr, ptr %449, align 8, !tbaa !9
  %15527 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %15526, ptr noundef @.str.72, ptr noundef %453)
  %15528 = getelementptr inbounds %struct.s2n_result, ptr %454, i32 0, i32 0
  store i32 %15527, ptr %15528, align 4
  %15529 = getelementptr inbounds %struct.s2n_result, ptr %454, i32 0, i32 0
  %15530 = load i32, ptr %15529, align 4
  %15531 = call zeroext i1 @s2n_result_is_ok(i32 %15530)
  br i1 %15531, label %15585, label %15532

15532:                                            ; preds = %15523
  br label %15533

15533:                                            ; preds = %15532
  br label %15534

15534:                                            ; preds = %15533
  call void @llvm.lifetime.start.p0(i64 4, ptr %455) #11
  %15535 = call ptr @__errno_location() #12
  %15536 = load i32, ptr %15535, align 4, !tbaa !5
  store i32 %15536, ptr %455, align 4, !tbaa !5
  %15537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15538 = call i32 @s2n_print_stacktrace(ptr noundef %15537)
  %15539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15540 = trunc i8 %15539 to i1
  br i1 %15540, label %15541, label %15563

15541:                                            ; preds = %15534
  %15542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15543 = call i32 @fileno(ptr noundef %15542) #11
  %15544 = call i32 @isatty(i32 noundef %15543) #11
  %15545 = icmp ne i32 %15544, 0
  br i1 %15545, label %15546, label %15563

15546:                                            ; preds = %15541
  %15547 = load i32, ptr %455, align 4, !tbaa !5
  %15548 = call ptr @__errno_location() #12
  store i32 %15547, ptr %15548, align 4, !tbaa !5
  %15549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15550 = load i32, ptr @test_count, align 4, !tbaa !5
  %15551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15552 = load i32, ptr %15551, align 4, !tbaa !5
  %15553 = call ptr @s2n_strerror(i32 noundef %15552, ptr noundef @.str.4)
  %15554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15555 = load i32, ptr %15554, align 4, !tbaa !5
  %15556 = call ptr @s2n_strerror_debug(i32 noundef %15555, ptr noundef @.str.4)
  %15557 = call ptr @__errno_location() #12
  %15558 = load i32, ptr %15557, align 4, !tbaa !5
  %15559 = call ptr @strerror(i32 noundef %15558) #11
  %15560 = call ptr @__errno_location() #12
  %15561 = load i32, ptr %15560, align 4, !tbaa !5
  %15562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15549, ptr noundef @.str.2, i32 noundef %15550, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 965, ptr noundef %15553, ptr noundef %15556, ptr noundef %15559, i32 noundef %15561) #11
  br label %15580

15563:                                            ; preds = %15541, %15534
  %15564 = load i32, ptr %455, align 4, !tbaa !5
  %15565 = call ptr @__errno_location() #12
  store i32 %15564, ptr %15565, align 4, !tbaa !5
  %15566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15567 = load i32, ptr @test_count, align 4, !tbaa !5
  %15568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15569 = load i32, ptr %15568, align 4, !tbaa !5
  %15570 = call ptr @s2n_strerror(i32 noundef %15569, ptr noundef @.str.4)
  %15571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15572 = load i32, ptr %15571, align 4, !tbaa !5
  %15573 = call ptr @s2n_strerror_debug(i32 noundef %15572, ptr noundef @.str.4)
  %15574 = call ptr @__errno_location() #12
  %15575 = load i32, ptr %15574, align 4, !tbaa !5
  %15576 = call ptr @strerror(i32 noundef %15575) #11
  %15577 = call ptr @__errno_location() #12
  %15578 = load i32, ptr %15577, align 4, !tbaa !5
  %15579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15566, ptr noundef @.str.5, i32 noundef %15567, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 965, ptr noundef %15570, ptr noundef %15573, ptr noundef %15576, i32 noundef %15578) #11
  br label %15580

15580:                                            ; preds = %15563, %15546
  call void @llvm.lifetime.end.p0(i64 4, ptr %455) #11
  br label %15581

15581:                                            ; preds = %15580
  br label %15582

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

15583:                                            ; No predecessors!
  br label %15584

15584:                                            ; preds = %15583
  br label %15585

15585:                                            ; preds = %15584, %15523
  br label %15586

15586:                                            ; preds = %15585
  br label %15587

15587:                                            ; preds = %15586
  call void @llvm.lifetime.start.p0(i64 4, ptr %456) #11
  %15588 = getelementptr inbounds %struct.s2n_stuffer, ptr %453, i32 0, i32 2
  %15589 = load i32, ptr %15588, align 4, !tbaa !15
  %15590 = getelementptr inbounds %struct.s2n_stuffer, ptr %453, i32 0, i32 1
  %15591 = load i32, ptr %15590, align 8, !tbaa !18
  %15592 = sub i32 %15589, %15591
  store i32 %15592, ptr %456, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %457) #11
  %15593 = load i32, ptr %456, align 4, !tbaa !5
  %15594 = call ptr @s2n_stuffer_raw_read(ptr noundef %453, i32 noundef %15593)
  store ptr %15594, ptr %457, align 8, !tbaa !9
  br label %15595

15595:                                            ; preds = %15587
  %15596 = load i32, ptr @test_count, align 4, !tbaa !5
  %15597 = add nsw i32 %15596, 1
  store i32 %15597, ptr @test_count, align 4, !tbaa !5
  %15598 = load ptr, ptr %457, align 8, !tbaa !9
  %15599 = icmp eq ptr %15598, null
  br i1 %15599, label %15600, label %15653

15600:                                            ; preds = %15595
  br label %15601

15601:                                            ; preds = %15600
  br label %15602

15602:                                            ; preds = %15601
  call void @llvm.lifetime.start.p0(i64 4, ptr %458) #11
  %15603 = call ptr @__errno_location() #12
  %15604 = load i32, ptr %15603, align 4, !tbaa !5
  store i32 %15604, ptr %458, align 4, !tbaa !5
  %15605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15606 = call i32 @s2n_print_stacktrace(ptr noundef %15605)
  %15607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15608 = trunc i8 %15607 to i1
  br i1 %15608, label %15609, label %15631

15609:                                            ; preds = %15602
  %15610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15611 = call i32 @fileno(ptr noundef %15610) #11
  %15612 = call i32 @isatty(i32 noundef %15611) #11
  %15613 = icmp ne i32 %15612, 0
  br i1 %15613, label %15614, label %15631

15614:                                            ; preds = %15609
  %15615 = load i32, ptr %458, align 4, !tbaa !5
  %15616 = call ptr @__errno_location() #12
  store i32 %15615, ptr %15616, align 4, !tbaa !5
  %15617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15618 = load i32, ptr @test_count, align 4, !tbaa !5
  %15619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15620 = load i32, ptr %15619, align 4, !tbaa !5
  %15621 = call ptr @s2n_strerror(i32 noundef %15620, ptr noundef @.str.4)
  %15622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15623 = load i32, ptr %15622, align 4, !tbaa !5
  %15624 = call ptr @s2n_strerror_debug(i32 noundef %15623, ptr noundef @.str.4)
  %15625 = call ptr @__errno_location() #12
  %15626 = load i32, ptr %15625, align 4, !tbaa !5
  %15627 = call ptr @strerror(i32 noundef %15626) #11
  %15628 = call ptr @__errno_location() #12
  %15629 = load i32, ptr %15628, align 4, !tbaa !5
  %15630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15617, ptr noundef @.str.2, i32 noundef %15618, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 968, ptr noundef %15621, ptr noundef %15624, ptr noundef %15627, i32 noundef %15629) #11
  br label %15648

15631:                                            ; preds = %15609, %15602
  %15632 = load i32, ptr %458, align 4, !tbaa !5
  %15633 = call ptr @__errno_location() #12
  store i32 %15632, ptr %15633, align 4, !tbaa !5
  %15634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15635 = load i32, ptr @test_count, align 4, !tbaa !5
  %15636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15637 = load i32, ptr %15636, align 4, !tbaa !5
  %15638 = call ptr @s2n_strerror(i32 noundef %15637, ptr noundef @.str.4)
  %15639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15640 = load i32, ptr %15639, align 4, !tbaa !5
  %15641 = call ptr @s2n_strerror_debug(i32 noundef %15640, ptr noundef @.str.4)
  %15642 = call ptr @__errno_location() #12
  %15643 = load i32, ptr %15642, align 4, !tbaa !5
  %15644 = call ptr @strerror(i32 noundef %15643) #11
  %15645 = call ptr @__errno_location() #12
  %15646 = load i32, ptr %15645, align 4, !tbaa !5
  %15647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15634, ptr noundef @.str.5, i32 noundef %15635, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 968, ptr noundef %15638, ptr noundef %15641, ptr noundef %15644, i32 noundef %15646) #11
  br label %15648

15648:                                            ; preds = %15631, %15614
  call void @llvm.lifetime.end.p0(i64 4, ptr %458) #11
  br label %15649

15649:                                            ; preds = %15648
  br label %15650

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

15651:                                            ; No predecessors!
  br label %15652

15652:                                            ; preds = %15651
  br label %15653

15653:                                            ; preds = %15652, %15595
  br label %15654

15654:                                            ; preds = %15653
  br label %15655

15655:                                            ; preds = %15654
  call void @llvm.lifetime.start.p0(i64 48, ptr %459) #11
  br label %15656

15656:                                            ; preds = %15655
  %15657 = load i32, ptr @test_count, align 4, !tbaa !5
  %15658 = add nsw i32 %15657, 1
  store i32 %15658, ptr @test_count, align 4, !tbaa !5
  %15659 = call i32 @s2n_pkey_zero_init(ptr noundef %459)
  %15660 = icmp eq i32 %15659, -1
  br i1 %15660, label %15661, label %15714

15661:                                            ; preds = %15656
  br label %15662

15662:                                            ; preds = %15661
  br label %15663

15663:                                            ; preds = %15662
  call void @llvm.lifetime.start.p0(i64 4, ptr %460) #11
  %15664 = call ptr @__errno_location() #12
  %15665 = load i32, ptr %15664, align 4, !tbaa !5
  store i32 %15665, ptr %460, align 4, !tbaa !5
  %15666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15667 = call i32 @s2n_print_stacktrace(ptr noundef %15666)
  %15668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15669 = trunc i8 %15668 to i1
  br i1 %15669, label %15670, label %15692

15670:                                            ; preds = %15663
  %15671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15672 = call i32 @fileno(ptr noundef %15671) #11
  %15673 = call i32 @isatty(i32 noundef %15672) #11
  %15674 = icmp ne i32 %15673, 0
  br i1 %15674, label %15675, label %15692

15675:                                            ; preds = %15670
  %15676 = load i32, ptr %460, align 4, !tbaa !5
  %15677 = call ptr @__errno_location() #12
  store i32 %15676, ptr %15677, align 4, !tbaa !5
  %15678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15679 = load i32, ptr @test_count, align 4, !tbaa !5
  %15680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15681 = load i32, ptr %15680, align 4, !tbaa !5
  %15682 = call ptr @s2n_strerror(i32 noundef %15681, ptr noundef @.str.4)
  %15683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15684 = load i32, ptr %15683, align 4, !tbaa !5
  %15685 = call ptr @s2n_strerror_debug(i32 noundef %15684, ptr noundef @.str.4)
  %15686 = call ptr @__errno_location() #12
  %15687 = load i32, ptr %15686, align 4, !tbaa !5
  %15688 = call ptr @strerror(i32 noundef %15687) #11
  %15689 = call ptr @__errno_location() #12
  %15690 = load i32, ptr %15689, align 4, !tbaa !5
  %15691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15678, ptr noundef @.str.2, i32 noundef %15679, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 971, ptr noundef %15682, ptr noundef %15685, ptr noundef %15688, i32 noundef %15690) #11
  br label %15709

15692:                                            ; preds = %15670, %15663
  %15693 = load i32, ptr %460, align 4, !tbaa !5
  %15694 = call ptr @__errno_location() #12
  store i32 %15693, ptr %15694, align 4, !tbaa !5
  %15695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15696 = load i32, ptr @test_count, align 4, !tbaa !5
  %15697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15698 = load i32, ptr %15697, align 4, !tbaa !5
  %15699 = call ptr @s2n_strerror(i32 noundef %15698, ptr noundef @.str.4)
  %15700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15701 = load i32, ptr %15700, align 4, !tbaa !5
  %15702 = call ptr @s2n_strerror_debug(i32 noundef %15701, ptr noundef @.str.4)
  %15703 = call ptr @__errno_location() #12
  %15704 = load i32, ptr %15703, align 4, !tbaa !5
  %15705 = call ptr @strerror(i32 noundef %15704) #11
  %15706 = call ptr @__errno_location() #12
  %15707 = load i32, ptr %15706, align 4, !tbaa !5
  %15708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15695, ptr noundef @.str.5, i32 noundef %15696, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 971, ptr noundef %15699, ptr noundef %15702, ptr noundef %15705, i32 noundef %15707) #11
  br label %15709

15709:                                            ; preds = %15692, %15675
  call void @llvm.lifetime.end.p0(i64 4, ptr %460) #11
  br label %15710

15710:                                            ; preds = %15709
  br label %15711

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

15712:                                            ; No predecessors!
  br label %15713

15713:                                            ; preds = %15712
  br label %15714

15714:                                            ; preds = %15713, %15656
  br label %15715

15715:                                            ; preds = %15714
  br label %15716

15716:                                            ; preds = %15715
  call void @llvm.lifetime.start.p0(i64 4, ptr %461) #11
  store i32 -1, ptr %461, align 4, !tbaa !5
  br label %15717

15717:                                            ; preds = %15716
  %15718 = load i32, ptr @test_count, align 4, !tbaa !5
  %15719 = add nsw i32 %15718, 1
  store i32 %15719, ptr @test_count, align 4, !tbaa !5
  %15720 = load ptr, ptr %449, align 8, !tbaa !9
  %15721 = load ptr, ptr %457, align 8, !tbaa !9
  %15722 = load i32, ptr %456, align 4, !tbaa !5
  %15723 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %448, ptr noundef %15720, ptr noundef %15721, i32 noundef %15722, ptr noundef %461, ptr noundef %459)
  %15724 = getelementptr inbounds %struct.s2n_result, ptr %462, i32 0, i32 0
  store i32 %15723, ptr %15724, align 4
  %15725 = getelementptr inbounds %struct.s2n_result, ptr %462, i32 0, i32 0
  %15726 = load i32, ptr %15725, align 4
  %15727 = call zeroext i1 @s2n_result_is_ok(i32 %15726)
  br i1 %15727, label %15781, label %15728

15728:                                            ; preds = %15717
  br label %15729

15729:                                            ; preds = %15728
  br label %15730

15730:                                            ; preds = %15729
  call void @llvm.lifetime.start.p0(i64 4, ptr %463) #11
  %15731 = call ptr @__errno_location() #12
  %15732 = load i32, ptr %15731, align 4, !tbaa !5
  store i32 %15732, ptr %463, align 4, !tbaa !5
  %15733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15734 = call i32 @s2n_print_stacktrace(ptr noundef %15733)
  %15735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15736 = trunc i8 %15735 to i1
  br i1 %15736, label %15737, label %15759

15737:                                            ; preds = %15730
  %15738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15739 = call i32 @fileno(ptr noundef %15738) #11
  %15740 = call i32 @isatty(i32 noundef %15739) #11
  %15741 = icmp ne i32 %15740, 0
  br i1 %15741, label %15742, label %15759

15742:                                            ; preds = %15737
  %15743 = load i32, ptr %463, align 4, !tbaa !5
  %15744 = call ptr @__errno_location() #12
  store i32 %15743, ptr %15744, align 4, !tbaa !5
  %15745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15746 = load i32, ptr @test_count, align 4, !tbaa !5
  %15747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15748 = load i32, ptr %15747, align 4, !tbaa !5
  %15749 = call ptr @s2n_strerror(i32 noundef %15748, ptr noundef @.str.4)
  %15750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15751 = load i32, ptr %15750, align 4, !tbaa !5
  %15752 = call ptr @s2n_strerror_debug(i32 noundef %15751, ptr noundef @.str.4)
  %15753 = call ptr @__errno_location() #12
  %15754 = load i32, ptr %15753, align 4, !tbaa !5
  %15755 = call ptr @strerror(i32 noundef %15754) #11
  %15756 = call ptr @__errno_location() #12
  %15757 = load i32, ptr %15756, align 4, !tbaa !5
  %15758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15745, ptr noundef @.str.2, i32 noundef %15746, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 973, ptr noundef %15749, ptr noundef %15752, ptr noundef %15755, i32 noundef %15757) #11
  br label %15776

15759:                                            ; preds = %15737, %15730
  %15760 = load i32, ptr %463, align 4, !tbaa !5
  %15761 = call ptr @__errno_location() #12
  store i32 %15760, ptr %15761, align 4, !tbaa !5
  %15762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15763 = load i32, ptr @test_count, align 4, !tbaa !5
  %15764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15765 = load i32, ptr %15764, align 4, !tbaa !5
  %15766 = call ptr @s2n_strerror(i32 noundef %15765, ptr noundef @.str.4)
  %15767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15768 = load i32, ptr %15767, align 4, !tbaa !5
  %15769 = call ptr @s2n_strerror_debug(i32 noundef %15768, ptr noundef @.str.4)
  %15770 = call ptr @__errno_location() #12
  %15771 = load i32, ptr %15770, align 4, !tbaa !5
  %15772 = call ptr @strerror(i32 noundef %15771) #11
  %15773 = call ptr @__errno_location() #12
  %15774 = load i32, ptr %15773, align 4, !tbaa !5
  %15775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15762, ptr noundef @.str.5, i32 noundef %15763, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 973, ptr noundef %15766, ptr noundef %15769, ptr noundef %15772, i32 noundef %15774) #11
  br label %15776

15776:                                            ; preds = %15759, %15742
  call void @llvm.lifetime.end.p0(i64 4, ptr %463) #11
  br label %15777

15777:                                            ; preds = %15776
  br label %15778

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

15779:                                            ; No predecessors!
  br label %15780

15780:                                            ; preds = %15779
  br label %15781

15781:                                            ; preds = %15780, %15717
  br label %15782

15782:                                            ; preds = %15781
  br label %15783

15783:                                            ; preds = %15782
  call void @llvm.lifetime.start.p0(i64 40, ptr %464) #11
  call void @llvm.memset.p0.i64(ptr align 8 %464, i8 0, i64 40, i1 false)
  br label %15784

15784:                                            ; preds = %15783
  %15785 = load i32, ptr @test_count, align 4, !tbaa !5
  %15786 = add nsw i32 %15785, 1
  store i32 %15786, ptr @test_count, align 4, !tbaa !5
  %15787 = call i32 @read_file(ptr noundef %464, ptr noundef @.str.78, i32 noundef 12000)
  %15788 = icmp eq i32 %15787, -1
  br i1 %15788, label %15789, label %15842

15789:                                            ; preds = %15784
  br label %15790

15790:                                            ; preds = %15789
  br label %15791

15791:                                            ; preds = %15790
  call void @llvm.lifetime.start.p0(i64 4, ptr %465) #11
  %15792 = call ptr @__errno_location() #12
  %15793 = load i32, ptr %15792, align 4, !tbaa !5
  store i32 %15793, ptr %465, align 4, !tbaa !5
  %15794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15795 = call i32 @s2n_print_stacktrace(ptr noundef %15794)
  %15796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15797 = trunc i8 %15796 to i1
  br i1 %15797, label %15798, label %15820

15798:                                            ; preds = %15791
  %15799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15800 = call i32 @fileno(ptr noundef %15799) #11
  %15801 = call i32 @isatty(i32 noundef %15800) #11
  %15802 = icmp ne i32 %15801, 0
  br i1 %15802, label %15803, label %15820

15803:                                            ; preds = %15798
  %15804 = load i32, ptr %465, align 4, !tbaa !5
  %15805 = call ptr @__errno_location() #12
  store i32 %15804, ptr %15805, align 4, !tbaa !5
  %15806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15807 = load i32, ptr @test_count, align 4, !tbaa !5
  %15808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15809 = load i32, ptr %15808, align 4, !tbaa !5
  %15810 = call ptr @s2n_strerror(i32 noundef %15809, ptr noundef @.str.4)
  %15811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15812 = load i32, ptr %15811, align 4, !tbaa !5
  %15813 = call ptr @s2n_strerror_debug(i32 noundef %15812, ptr noundef @.str.4)
  %15814 = call ptr @__errno_location() #12
  %15815 = load i32, ptr %15814, align 4, !tbaa !5
  %15816 = call ptr @strerror(i32 noundef %15815) #11
  %15817 = call ptr @__errno_location() #12
  %15818 = load i32, ptr %15817, align 4, !tbaa !5
  %15819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15806, ptr noundef @.str.2, i32 noundef %15807, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 976, ptr noundef %15810, ptr noundef %15813, ptr noundef %15816, i32 noundef %15818) #11
  br label %15837

15820:                                            ; preds = %15798, %15791
  %15821 = load i32, ptr %465, align 4, !tbaa !5
  %15822 = call ptr @__errno_location() #12
  store i32 %15821, ptr %15822, align 4, !tbaa !5
  %15823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15824 = load i32, ptr @test_count, align 4, !tbaa !5
  %15825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15826 = load i32, ptr %15825, align 4, !tbaa !5
  %15827 = call ptr @s2n_strerror(i32 noundef %15826, ptr noundef @.str.4)
  %15828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15829 = load i32, ptr %15828, align 4, !tbaa !5
  %15830 = call ptr @s2n_strerror_debug(i32 noundef %15829, ptr noundef @.str.4)
  %15831 = call ptr @__errno_location() #12
  %15832 = load i32, ptr %15831, align 4, !tbaa !5
  %15833 = call ptr @strerror(i32 noundef %15832) #11
  %15834 = call ptr @__errno_location() #12
  %15835 = load i32, ptr %15834, align 4, !tbaa !5
  %15836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15823, ptr noundef @.str.5, i32 noundef %15824, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 976, ptr noundef %15827, ptr noundef %15830, ptr noundef %15833, i32 noundef %15835) #11
  br label %15837

15837:                                            ; preds = %15820, %15803
  call void @llvm.lifetime.end.p0(i64 4, ptr %465) #11
  br label %15838

15838:                                            ; preds = %15837
  br label %15839

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

15840:                                            ; No predecessors!
  br label %15841

15841:                                            ; preds = %15840
  br label %15842

15842:                                            ; preds = %15841, %15784
  br label %15843

15843:                                            ; preds = %15842
  br label %15844

15844:                                            ; preds = %15843
  call void @llvm.lifetime.start.p0(i64 4, ptr %466) #11
  %15845 = getelementptr inbounds %struct.s2n_stuffer, ptr %464, i32 0, i32 2
  %15846 = load i32, ptr %15845, align 4, !tbaa !15
  %15847 = getelementptr inbounds %struct.s2n_stuffer, ptr %464, i32 0, i32 1
  %15848 = load i32, ptr %15847, align 8, !tbaa !18
  %15849 = sub i32 %15846, %15848
  store i32 %15849, ptr %466, align 4, !tbaa !5
  br label %15850

15850:                                            ; preds = %15844
  %15851 = load i32, ptr @test_count, align 4, !tbaa !5
  %15852 = add nsw i32 %15851, 1
  store i32 %15852, ptr @test_count, align 4, !tbaa !5
  %15853 = load i32, ptr %466, align 4, !tbaa !5
  %15854 = icmp ugt i32 %15853, 0
  br i1 %15854, label %15908, label %15855

15855:                                            ; preds = %15850
  br label %15856

15856:                                            ; preds = %15855
  br label %15857

15857:                                            ; preds = %15856
  call void @llvm.lifetime.start.p0(i64 4, ptr %467) #11
  %15858 = call ptr @__errno_location() #12
  %15859 = load i32, ptr %15858, align 4, !tbaa !5
  store i32 %15859, ptr %467, align 4, !tbaa !5
  %15860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15861 = call i32 @s2n_print_stacktrace(ptr noundef %15860)
  %15862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15863 = trunc i8 %15862 to i1
  br i1 %15863, label %15864, label %15886

15864:                                            ; preds = %15857
  %15865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15866 = call i32 @fileno(ptr noundef %15865) #11
  %15867 = call i32 @isatty(i32 noundef %15866) #11
  %15868 = icmp ne i32 %15867, 0
  br i1 %15868, label %15869, label %15886

15869:                                            ; preds = %15864
  %15870 = load i32, ptr %467, align 4, !tbaa !5
  %15871 = call ptr @__errno_location() #12
  store i32 %15870, ptr %15871, align 4, !tbaa !5
  %15872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15873 = load i32, ptr @test_count, align 4, !tbaa !5
  %15874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15875 = load i32, ptr %15874, align 4, !tbaa !5
  %15876 = call ptr @s2n_strerror(i32 noundef %15875, ptr noundef @.str.4)
  %15877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15878 = load i32, ptr %15877, align 4, !tbaa !5
  %15879 = call ptr @s2n_strerror_debug(i32 noundef %15878, ptr noundef @.str.4)
  %15880 = call ptr @__errno_location() #12
  %15881 = load i32, ptr %15880, align 4, !tbaa !5
  %15882 = call ptr @strerror(i32 noundef %15881) #11
  %15883 = call ptr @__errno_location() #12
  %15884 = load i32, ptr %15883, align 4, !tbaa !5
  %15885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15872, ptr noundef @.str.2, i32 noundef %15873, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 978, ptr noundef %15876, ptr noundef %15879, ptr noundef %15882, i32 noundef %15884) #11
  br label %15903

15886:                                            ; preds = %15864, %15857
  %15887 = load i32, ptr %467, align 4, !tbaa !5
  %15888 = call ptr @__errno_location() #12
  store i32 %15887, ptr %15888, align 4, !tbaa !5
  %15889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15890 = load i32, ptr @test_count, align 4, !tbaa !5
  %15891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15892 = load i32, ptr %15891, align 4, !tbaa !5
  %15893 = call ptr @s2n_strerror(i32 noundef %15892, ptr noundef @.str.4)
  %15894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15895 = load i32, ptr %15894, align 4, !tbaa !5
  %15896 = call ptr @s2n_strerror_debug(i32 noundef %15895, ptr noundef @.str.4)
  %15897 = call ptr @__errno_location() #12
  %15898 = load i32, ptr %15897, align 4, !tbaa !5
  %15899 = call ptr @strerror(i32 noundef %15898) #11
  %15900 = call ptr @__errno_location() #12
  %15901 = load i32, ptr %15900, align 4, !tbaa !5
  %15902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15889, ptr noundef @.str.5, i32 noundef %15890, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 978, ptr noundef %15893, ptr noundef %15896, ptr noundef %15899, i32 noundef %15901) #11
  br label %15903

15903:                                            ; preds = %15886, %15869
  call void @llvm.lifetime.end.p0(i64 4, ptr %467) #11
  br label %15904

15904:                                            ; preds = %15903
  br label %15905

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

15906:                                            ; No predecessors!
  br label %15907

15907:                                            ; preds = %15906
  br label %15908

15908:                                            ; preds = %15907, %15850
  br label %15909

15909:                                            ; preds = %15908
  br label %15910

15910:                                            ; preds = %15909
  call void @llvm.lifetime.start.p0(i64 8, ptr %468) #11
  %15911 = load ptr, ptr %449, align 8, !tbaa !9
  %15912 = getelementptr inbounds %struct.s2n_connection, ptr %15911, i32 0, i32 1
  %15913 = load ptr, ptr %15912, align 8, !tbaa !22
  %15914 = getelementptr inbounds %struct.s2n_config, ptr %15913, i32 0, i32 5
  %15915 = load ptr, ptr %15914, align 8, !tbaa !47
  store ptr %15915, ptr %468, align 8, !tbaa !9
  %15916 = load ptr, ptr %449, align 8, !tbaa !9
  %15917 = getelementptr inbounds %struct.s2n_connection, ptr %15916, i32 0, i32 1
  %15918 = load ptr, ptr %15917, align 8, !tbaa !22
  %15919 = call i32 @s2n_config_set_wall_clock(ptr noundef %15918, ptr noundef @fetch_not_expired_ocsp_timestamp, ptr noundef null)
  br label %15920

15920:                                            ; preds = %15910
  %15921 = load i32, ptr @test_count, align 4, !tbaa !5
  %15922 = add nsw i32 %15921, 1
  store i32 %15922, ptr @test_count, align 4, !tbaa !5
  %15923 = load ptr, ptr %449, align 8, !tbaa !9
  %15924 = load i32, ptr %466, align 4, !tbaa !5
  %15925 = call ptr @s2n_stuffer_raw_read(ptr noundef %464, i32 noundef %15924)
  %15926 = load i32, ptr %466, align 4, !tbaa !5
  %15927 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %448, ptr noundef %15923, ptr noundef %15925, i32 noundef %15926)
  %15928 = getelementptr inbounds %struct.s2n_result, ptr %469, i32 0, i32 0
  store i32 %15927, ptr %15928, align 4
  %15929 = getelementptr inbounds %struct.s2n_result, ptr %469, i32 0, i32 0
  %15930 = load i32, ptr %15929, align 4
  %15931 = call zeroext i1 @s2n_result_is_ok(i32 %15930)
  br i1 %15931, label %15985, label %15932

15932:                                            ; preds = %15920
  br label %15933

15933:                                            ; preds = %15932
  br label %15934

15934:                                            ; preds = %15933
  call void @llvm.lifetime.start.p0(i64 4, ptr %470) #11
  %15935 = call ptr @__errno_location() #12
  %15936 = load i32, ptr %15935, align 4, !tbaa !5
  store i32 %15936, ptr %470, align 4, !tbaa !5
  %15937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15938 = call i32 @s2n_print_stacktrace(ptr noundef %15937)
  %15939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15940 = trunc i8 %15939 to i1
  br i1 %15940, label %15941, label %15963

15941:                                            ; preds = %15934
  %15942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15943 = call i32 @fileno(ptr noundef %15942) #11
  %15944 = call i32 @isatty(i32 noundef %15943) #11
  %15945 = icmp ne i32 %15944, 0
  br i1 %15945, label %15946, label %15963

15946:                                            ; preds = %15941
  %15947 = load i32, ptr %470, align 4, !tbaa !5
  %15948 = call ptr @__errno_location() #12
  store i32 %15947, ptr %15948, align 4, !tbaa !5
  %15949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15950 = load i32, ptr @test_count, align 4, !tbaa !5
  %15951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15952 = load i32, ptr %15951, align 4, !tbaa !5
  %15953 = call ptr @s2n_strerror(i32 noundef %15952, ptr noundef @.str.4)
  %15954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15955 = load i32, ptr %15954, align 4, !tbaa !5
  %15956 = call ptr @s2n_strerror_debug(i32 noundef %15955, ptr noundef @.str.4)
  %15957 = call ptr @__errno_location() #12
  %15958 = load i32, ptr %15957, align 4, !tbaa !5
  %15959 = call ptr @strerror(i32 noundef %15958) #11
  %15960 = call ptr @__errno_location() #12
  %15961 = load i32, ptr %15960, align 4, !tbaa !5
  %15962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15949, ptr noundef @.str.2, i32 noundef %15950, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 984, ptr noundef %15953, ptr noundef %15956, ptr noundef %15959, i32 noundef %15961) #11
  br label %15980

15963:                                            ; preds = %15941, %15934
  %15964 = load i32, ptr %470, align 4, !tbaa !5
  %15965 = call ptr @__errno_location() #12
  store i32 %15964, ptr %15965, align 4, !tbaa !5
  %15966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15967 = load i32, ptr @test_count, align 4, !tbaa !5
  %15968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15969 = load i32, ptr %15968, align 4, !tbaa !5
  %15970 = call ptr @s2n_strerror(i32 noundef %15969, ptr noundef @.str.4)
  %15971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15972 = load i32, ptr %15971, align 4, !tbaa !5
  %15973 = call ptr @s2n_strerror_debug(i32 noundef %15972, ptr noundef @.str.4)
  %15974 = call ptr @__errno_location() #12
  %15975 = load i32, ptr %15974, align 4, !tbaa !5
  %15976 = call ptr @strerror(i32 noundef %15975) #11
  %15977 = call ptr @__errno_location() #12
  %15978 = load i32, ptr %15977, align 4, !tbaa !5
  %15979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15966, ptr noundef @.str.5, i32 noundef %15967, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 984, ptr noundef %15970, ptr noundef %15973, ptr noundef %15976, i32 noundef %15978) #11
  br label %15980

15980:                                            ; preds = %15963, %15946
  call void @llvm.lifetime.end.p0(i64 4, ptr %470) #11
  br label %15981

15981:                                            ; preds = %15980
  br label %15982

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

15983:                                            ; No predecessors!
  br label %15984

15984:                                            ; preds = %15983
  br label %15985

15985:                                            ; preds = %15984, %15920
  br label %15986

15986:                                            ; preds = %15985
  br label %15987

15987:                                            ; preds = %15986
  br label %15988

15988:                                            ; preds = %15987
  %15989 = load i32, ptr @test_count, align 4, !tbaa !5
  %15990 = add nsw i32 %15989, 1
  store i32 %15990, ptr @test_count, align 4, !tbaa !5
  %15991 = getelementptr inbounds %struct.host_verify_data, ptr %451, i32 0, i32 2
  %15992 = load i8, ptr %15991, align 1, !tbaa !19
  %15993 = zext i8 %15992 to i32
  %15994 = icmp eq i32 1, %15993
  br i1 %15994, label %16048, label %15995

15995:                                            ; preds = %15988
  br label %15996

15996:                                            ; preds = %15995
  br label %15997

15997:                                            ; preds = %15996
  call void @llvm.lifetime.start.p0(i64 4, ptr %471) #11
  %15998 = call ptr @__errno_location() #12
  %15999 = load i32, ptr %15998, align 4, !tbaa !5
  store i32 %15999, ptr %471, align 4, !tbaa !5
  %16000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16001 = call i32 @s2n_print_stacktrace(ptr noundef %16000)
  %16002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16003 = trunc i8 %16002 to i1
  br i1 %16003, label %16004, label %16026

16004:                                            ; preds = %15997
  %16005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16006 = call i32 @fileno(ptr noundef %16005) #11
  %16007 = call i32 @isatty(i32 noundef %16006) #11
  %16008 = icmp ne i32 %16007, 0
  br i1 %16008, label %16009, label %16026

16009:                                            ; preds = %16004
  %16010 = load i32, ptr %471, align 4, !tbaa !5
  %16011 = call ptr @__errno_location() #12
  store i32 %16010, ptr %16011, align 4, !tbaa !5
  %16012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16013 = load i32, ptr @test_count, align 4, !tbaa !5
  %16014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16015 = load i32, ptr %16014, align 4, !tbaa !5
  %16016 = call ptr @s2n_strerror(i32 noundef %16015, ptr noundef @.str.4)
  %16017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16018 = load i32, ptr %16017, align 4, !tbaa !5
  %16019 = call ptr @s2n_strerror_debug(i32 noundef %16018, ptr noundef @.str.4)
  %16020 = call ptr @__errno_location() #12
  %16021 = load i32, ptr %16020, align 4, !tbaa !5
  %16022 = call ptr @strerror(i32 noundef %16021) #11
  %16023 = call ptr @__errno_location() #12
  %16024 = load i32, ptr %16023, align 4, !tbaa !5
  %16025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16012, ptr noundef @.str.2, i32 noundef %16013, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 985, ptr noundef %16016, ptr noundef %16019, ptr noundef %16022, i32 noundef %16024) #11
  br label %16043

16026:                                            ; preds = %16004, %15997
  %16027 = load i32, ptr %471, align 4, !tbaa !5
  %16028 = call ptr @__errno_location() #12
  store i32 %16027, ptr %16028, align 4, !tbaa !5
  %16029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16030 = load i32, ptr @test_count, align 4, !tbaa !5
  %16031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16032 = load i32, ptr %16031, align 4, !tbaa !5
  %16033 = call ptr @s2n_strerror(i32 noundef %16032, ptr noundef @.str.4)
  %16034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16035 = load i32, ptr %16034, align 4, !tbaa !5
  %16036 = call ptr @s2n_strerror_debug(i32 noundef %16035, ptr noundef @.str.4)
  %16037 = call ptr @__errno_location() #12
  %16038 = load i32, ptr %16037, align 4, !tbaa !5
  %16039 = call ptr @strerror(i32 noundef %16038) #11
  %16040 = call ptr @__errno_location() #12
  %16041 = load i32, ptr %16040, align 4, !tbaa !5
  %16042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16029, ptr noundef @.str.5, i32 noundef %16030, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 985, ptr noundef %16033, ptr noundef %16036, ptr noundef %16039, i32 noundef %16041) #11
  br label %16043

16043:                                            ; preds = %16026, %16009
  call void @llvm.lifetime.end.p0(i64 4, ptr %471) #11
  br label %16044

16044:                                            ; preds = %16043
  br label %16045

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

16046:                                            ; No predecessors!
  br label %16047

16047:                                            ; preds = %16046
  br label %16048

16048:                                            ; preds = %16047, %15988
  br label %16049

16049:                                            ; preds = %16048
  br label %16050

16050:                                            ; preds = %16049
  %16051 = load ptr, ptr %449, align 8, !tbaa !9
  %16052 = getelementptr inbounds %struct.s2n_connection, ptr %16051, i32 0, i32 1
  %16053 = load ptr, ptr %16052, align 8, !tbaa !22
  %16054 = load ptr, ptr %468, align 8, !tbaa !9
  %16055 = call i32 @s2n_config_set_wall_clock(ptr noundef %16053, ptr noundef %16054, ptr noundef null)
  %16056 = call i32 @s2n_stuffer_free(ptr noundef %464)
  %16057 = load ptr, ptr %449, align 8, !tbaa !9
  %16058 = call i32 @s2n_connection_free(ptr noundef %16057)
  %16059 = call i32 @s2n_pkey_free(ptr noundef %459)
  %16060 = call i32 @s2n_x509_validator_wipe(ptr noundef %448)
  call void @s2n_x509_trust_store_wipe(ptr noundef %446)
  call void @llvm.lifetime.end.p0(i64 8, ptr %468) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %464) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %461) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %459) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %456) #11
  %16061 = call i32 @s2n_stuffer_free(ptr noundef %453)
  call void @llvm.lifetime.end.p0(i64 40, ptr %453) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %451) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %448) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %446) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %472) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %472)
  call void @llvm.lifetime.start.p0(i64 8, ptr %473) #11
  store ptr null, ptr %473, align 8, !tbaa !9
  br label %16062

16062:                                            ; preds = %16050
  %16063 = load i32, ptr @test_count, align 4, !tbaa !5
  %16064 = add nsw i32 %16063, 1
  store i32 %16064, ptr @test_count, align 4, !tbaa !5
  %16065 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %16065, ptr %473, align 8, !tbaa !9
  %16066 = icmp eq ptr %16065, null
  br i1 %16066, label %16067, label %16120

16067:                                            ; preds = %16062
  br label %16068

16068:                                            ; preds = %16067
  br label %16069

16069:                                            ; preds = %16068
  call void @llvm.lifetime.start.p0(i64 4, ptr %474) #11
  %16070 = call ptr @__errno_location() #12
  %16071 = load i32, ptr %16070, align 4, !tbaa !5
  store i32 %16071, ptr %474, align 4, !tbaa !5
  %16072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16073 = call i32 @s2n_print_stacktrace(ptr noundef %16072)
  %16074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16075 = trunc i8 %16074 to i1
  br i1 %16075, label %16076, label %16098

16076:                                            ; preds = %16069
  %16077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16078 = call i32 @fileno(ptr noundef %16077) #11
  %16079 = call i32 @isatty(i32 noundef %16078) #11
  %16080 = icmp ne i32 %16079, 0
  br i1 %16080, label %16081, label %16098

16081:                                            ; preds = %16076
  %16082 = load i32, ptr %474, align 4, !tbaa !5
  %16083 = call ptr @__errno_location() #12
  store i32 %16082, ptr %16083, align 4, !tbaa !5
  %16084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16085 = load i32, ptr @test_count, align 4, !tbaa !5
  %16086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16087 = load i32, ptr %16086, align 4, !tbaa !5
  %16088 = call ptr @s2n_strerror(i32 noundef %16087, ptr noundef @.str.4)
  %16089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16090 = load i32, ptr %16089, align 4, !tbaa !5
  %16091 = call ptr @s2n_strerror_debug(i32 noundef %16090, ptr noundef @.str.4)
  %16092 = call ptr @__errno_location() #12
  %16093 = load i32, ptr %16092, align 4, !tbaa !5
  %16094 = call ptr @strerror(i32 noundef %16093) #11
  %16095 = call ptr @__errno_location() #12
  %16096 = load i32, ptr %16095, align 4, !tbaa !5
  %16097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16084, ptr noundef @.str.2, i32 noundef %16085, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %16088, ptr noundef %16091, ptr noundef %16094, i32 noundef %16096) #11
  br label %16115

16098:                                            ; preds = %16076, %16069
  %16099 = load i32, ptr %474, align 4, !tbaa !5
  %16100 = call ptr @__errno_location() #12
  store i32 %16099, ptr %16100, align 4, !tbaa !5
  %16101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16102 = load i32, ptr @test_count, align 4, !tbaa !5
  %16103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16104 = load i32, ptr %16103, align 4, !tbaa !5
  %16105 = call ptr @s2n_strerror(i32 noundef %16104, ptr noundef @.str.4)
  %16106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16107 = load i32, ptr %16106, align 4, !tbaa !5
  %16108 = call ptr @s2n_strerror_debug(i32 noundef %16107, ptr noundef @.str.4)
  %16109 = call ptr @__errno_location() #12
  %16110 = load i32, ptr %16109, align 4, !tbaa !5
  %16111 = call ptr @strerror(i32 noundef %16110) #11
  %16112 = call ptr @__errno_location() #12
  %16113 = load i32, ptr %16112, align 4, !tbaa !5
  %16114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16101, ptr noundef @.str.5, i32 noundef %16102, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %16105, ptr noundef %16108, ptr noundef %16111, i32 noundef %16113) #11
  br label %16115

16115:                                            ; preds = %16098, %16081
  call void @llvm.lifetime.end.p0(i64 4, ptr %474) #11
  br label %16116

16116:                                            ; preds = %16115
  br label %16117

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

16118:                                            ; No predecessors!
  br label %16119

16119:                                            ; preds = %16118
  br label %16120

16120:                                            ; preds = %16119, %16062
  br label %16121

16121:                                            ; preds = %16120
  br label %16122

16122:                                            ; preds = %16121
  br label %16123

16123:                                            ; preds = %16122
  %16124 = load i32, ptr @test_count, align 4, !tbaa !5
  %16125 = add nsw i32 %16124, 1
  store i32 %16125, ptr @test_count, align 4, !tbaa !5
  %16126 = load ptr, ptr %473, align 8, !tbaa !9
  %16127 = call i32 @s2n_read_test_pem(ptr noundef @.str.48, ptr noundef %16126, i64 noundef 12000)
  %16128 = icmp eq i32 %16127, -1
  br i1 %16128, label %16129, label %16182

16129:                                            ; preds = %16123
  br label %16130

16130:                                            ; preds = %16129
  br label %16131

16131:                                            ; preds = %16130
  call void @llvm.lifetime.start.p0(i64 4, ptr %475) #11
  %16132 = call ptr @__errno_location() #12
  %16133 = load i32, ptr %16132, align 4, !tbaa !5
  store i32 %16133, ptr %475, align 4, !tbaa !5
  %16134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16135 = call i32 @s2n_print_stacktrace(ptr noundef %16134)
  %16136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16137 = trunc i8 %16136 to i1
  br i1 %16137, label %16138, label %16160

16138:                                            ; preds = %16131
  %16139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16140 = call i32 @fileno(ptr noundef %16139) #11
  %16141 = call i32 @isatty(i32 noundef %16140) #11
  %16142 = icmp ne i32 %16141, 0
  br i1 %16142, label %16143, label %16160

16143:                                            ; preds = %16138
  %16144 = load i32, ptr %475, align 4, !tbaa !5
  %16145 = call ptr @__errno_location() #12
  store i32 %16144, ptr %16145, align 4, !tbaa !5
  %16146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16147 = load i32, ptr @test_count, align 4, !tbaa !5
  %16148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16149 = load i32, ptr %16148, align 4, !tbaa !5
  %16150 = call ptr @s2n_strerror(i32 noundef %16149, ptr noundef @.str.4)
  %16151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16152 = load i32, ptr %16151, align 4, !tbaa !5
  %16153 = call ptr @s2n_strerror_debug(i32 noundef %16152, ptr noundef @.str.4)
  %16154 = call ptr @__errno_location() #12
  %16155 = load i32, ptr %16154, align 4, !tbaa !5
  %16156 = call ptr @strerror(i32 noundef %16155) #11
  %16157 = call ptr @__errno_location() #12
  %16158 = load i32, ptr %16157, align 4, !tbaa !5
  %16159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16146, ptr noundef @.str.2, i32 noundef %16147, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 1002, ptr noundef %16150, ptr noundef %16153, ptr noundef %16156, i32 noundef %16158) #11
  br label %16177

16160:                                            ; preds = %16138, %16131
  %16161 = load i32, ptr %475, align 4, !tbaa !5
  %16162 = call ptr @__errno_location() #12
  store i32 %16161, ptr %16162, align 4, !tbaa !5
  %16163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16164 = load i32, ptr @test_count, align 4, !tbaa !5
  %16165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16166 = load i32, ptr %16165, align 4, !tbaa !5
  %16167 = call ptr @s2n_strerror(i32 noundef %16166, ptr noundef @.str.4)
  %16168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16169 = load i32, ptr %16168, align 4, !tbaa !5
  %16170 = call ptr @s2n_strerror_debug(i32 noundef %16169, ptr noundef @.str.4)
  %16171 = call ptr @__errno_location() #12
  %16172 = load i32, ptr %16171, align 4, !tbaa !5
  %16173 = call ptr @strerror(i32 noundef %16172) #11
  %16174 = call ptr @__errno_location() #12
  %16175 = load i32, ptr %16174, align 4, !tbaa !5
  %16176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16163, ptr noundef @.str.5, i32 noundef %16164, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 1002, ptr noundef %16167, ptr noundef %16170, ptr noundef %16173, i32 noundef %16175) #11
  br label %16177

16177:                                            ; preds = %16160, %16143
  call void @llvm.lifetime.end.p0(i64 4, ptr %475) #11
  br label %16178

16178:                                            ; preds = %16177
  br label %16179

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

16180:                                            ; No predecessors!
  br label %16181

16181:                                            ; preds = %16180
  br label %16182

16182:                                            ; preds = %16181, %16123
  br label %16183

16183:                                            ; preds = %16182
  br label %16184

16184:                                            ; preds = %16183
  call void @llvm.lifetime.start.p0(i64 4, ptr %476) #11
  %16185 = load ptr, ptr %473, align 8, !tbaa !9
  %16186 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %472, ptr noundef %16185)
  store i32 %16186, ptr %476, align 4, !tbaa !5
  %16187 = load ptr, ptr %473, align 8, !tbaa !9
  call void @free(ptr noundef %16187) #11
  br label %16188

16188:                                            ; preds = %16184
  %16189 = load i32, ptr @test_count, align 4, !tbaa !5
  %16190 = add nsw i32 %16189, 1
  store i32 %16190, ptr @test_count, align 4, !tbaa !5
  %16191 = load i32, ptr %476, align 4, !tbaa !5
  %16192 = icmp eq i32 0, %16191
  br i1 %16192, label %16246, label %16193

16193:                                            ; preds = %16188
  br label %16194

16194:                                            ; preds = %16193
  br label %16195

16195:                                            ; preds = %16194
  call void @llvm.lifetime.start.p0(i64 4, ptr %477) #11
  %16196 = call ptr @__errno_location() #12
  %16197 = load i32, ptr %16196, align 4, !tbaa !5
  store i32 %16197, ptr %477, align 4, !tbaa !5
  %16198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16199 = call i32 @s2n_print_stacktrace(ptr noundef %16198)
  %16200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16201 = trunc i8 %16200 to i1
  br i1 %16201, label %16202, label %16224

16202:                                            ; preds = %16195
  %16203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16204 = call i32 @fileno(ptr noundef %16203) #11
  %16205 = call i32 @isatty(i32 noundef %16204) #11
  %16206 = icmp ne i32 %16205, 0
  br i1 %16206, label %16207, label %16224

16207:                                            ; preds = %16202
  %16208 = load i32, ptr %477, align 4, !tbaa !5
  %16209 = call ptr @__errno_location() #12
  store i32 %16208, ptr %16209, align 4, !tbaa !5
  %16210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16211 = load i32, ptr @test_count, align 4, !tbaa !5
  %16212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16213 = load i32, ptr %16212, align 4, !tbaa !5
  %16214 = call ptr @s2n_strerror(i32 noundef %16213, ptr noundef @.str.4)
  %16215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16216 = load i32, ptr %16215, align 4, !tbaa !5
  %16217 = call ptr @s2n_strerror_debug(i32 noundef %16216, ptr noundef @.str.4)
  %16218 = call ptr @__errno_location() #12
  %16219 = load i32, ptr %16218, align 4, !tbaa !5
  %16220 = call ptr @strerror(i32 noundef %16219) #11
  %16221 = call ptr @__errno_location() #12
  %16222 = load i32, ptr %16221, align 4, !tbaa !5
  %16223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16210, ptr noundef @.str.2, i32 noundef %16211, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 1005, ptr noundef %16214, ptr noundef %16217, ptr noundef %16220, i32 noundef %16222) #11
  br label %16241

16224:                                            ; preds = %16202, %16195
  %16225 = load i32, ptr %477, align 4, !tbaa !5
  %16226 = call ptr @__errno_location() #12
  store i32 %16225, ptr %16226, align 4, !tbaa !5
  %16227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16228 = load i32, ptr @test_count, align 4, !tbaa !5
  %16229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16230 = load i32, ptr %16229, align 4, !tbaa !5
  %16231 = call ptr @s2n_strerror(i32 noundef %16230, ptr noundef @.str.4)
  %16232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16233 = load i32, ptr %16232, align 4, !tbaa !5
  %16234 = call ptr @s2n_strerror_debug(i32 noundef %16233, ptr noundef @.str.4)
  %16235 = call ptr @__errno_location() #12
  %16236 = load i32, ptr %16235, align 4, !tbaa !5
  %16237 = call ptr @strerror(i32 noundef %16236) #11
  %16238 = call ptr @__errno_location() #12
  %16239 = load i32, ptr %16238, align 4, !tbaa !5
  %16240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16227, ptr noundef @.str.5, i32 noundef %16228, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 1005, ptr noundef %16231, ptr noundef %16234, ptr noundef %16237, i32 noundef %16239) #11
  br label %16241

16241:                                            ; preds = %16224, %16207
  call void @llvm.lifetime.end.p0(i64 4, ptr %477) #11
  br label %16242

16242:                                            ; preds = %16241
  br label %16243

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

16244:                                            ; No predecessors!
  br label %16245

16245:                                            ; preds = %16244
  br label %16246

16246:                                            ; preds = %16245, %16188
  br label %16247

16247:                                            ; preds = %16246
  br label %16248

16248:                                            ; preds = %16247
  call void @llvm.lifetime.start.p0(i64 56, ptr %478) #11
  %16249 = call i32 @s2n_x509_validator_init(ptr noundef %478, ptr noundef %472, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %479) #11
  %16250 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %16250, ptr %479, align 8, !tbaa !9
  br label %16251

16251:                                            ; preds = %16248
  %16252 = load i32, ptr @test_count, align 4, !tbaa !5
  %16253 = add nsw i32 %16252, 1
  store i32 %16253, ptr @test_count, align 4, !tbaa !5
  %16254 = load ptr, ptr %479, align 8, !tbaa !9
  %16255 = icmp eq ptr %16254, null
  br i1 %16255, label %16256, label %16309

16256:                                            ; preds = %16251
  br label %16257

16257:                                            ; preds = %16256
  br label %16258

16258:                                            ; preds = %16257
  call void @llvm.lifetime.start.p0(i64 4, ptr %480) #11
  %16259 = call ptr @__errno_location() #12
  %16260 = load i32, ptr %16259, align 4, !tbaa !5
  store i32 %16260, ptr %480, align 4, !tbaa !5
  %16261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16262 = call i32 @s2n_print_stacktrace(ptr noundef %16261)
  %16263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16264 = trunc i8 %16263 to i1
  br i1 %16264, label %16265, label %16287

16265:                                            ; preds = %16258
  %16266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16267 = call i32 @fileno(ptr noundef %16266) #11
  %16268 = call i32 @isatty(i32 noundef %16267) #11
  %16269 = icmp ne i32 %16268, 0
  br i1 %16269, label %16270, label %16287

16270:                                            ; preds = %16265
  %16271 = load i32, ptr %480, align 4, !tbaa !5
  %16272 = call ptr @__errno_location() #12
  store i32 %16271, ptr %16272, align 4, !tbaa !5
  %16273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16274 = load i32, ptr @test_count, align 4, !tbaa !5
  %16275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16276 = load i32, ptr %16275, align 4, !tbaa !5
  %16277 = call ptr @s2n_strerror(i32 noundef %16276, ptr noundef @.str.4)
  %16278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16279 = load i32, ptr %16278, align 4, !tbaa !5
  %16280 = call ptr @s2n_strerror_debug(i32 noundef %16279, ptr noundef @.str.4)
  %16281 = call ptr @__errno_location() #12
  %16282 = load i32, ptr %16281, align 4, !tbaa !5
  %16283 = call ptr @strerror(i32 noundef %16282) #11
  %16284 = call ptr @__errno_location() #12
  %16285 = load i32, ptr %16284, align 4, !tbaa !5
  %16286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16273, ptr noundef @.str.2, i32 noundef %16274, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1011, ptr noundef %16277, ptr noundef %16280, ptr noundef %16283, i32 noundef %16285) #11
  br label %16304

16287:                                            ; preds = %16265, %16258
  %16288 = load i32, ptr %480, align 4, !tbaa !5
  %16289 = call ptr @__errno_location() #12
  store i32 %16288, ptr %16289, align 4, !tbaa !5
  %16290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16291 = load i32, ptr @test_count, align 4, !tbaa !5
  %16292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16293 = load i32, ptr %16292, align 4, !tbaa !5
  %16294 = call ptr @s2n_strerror(i32 noundef %16293, ptr noundef @.str.4)
  %16295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16296 = load i32, ptr %16295, align 4, !tbaa !5
  %16297 = call ptr @s2n_strerror_debug(i32 noundef %16296, ptr noundef @.str.4)
  %16298 = call ptr @__errno_location() #12
  %16299 = load i32, ptr %16298, align 4, !tbaa !5
  %16300 = call ptr @strerror(i32 noundef %16299) #11
  %16301 = call ptr @__errno_location() #12
  %16302 = load i32, ptr %16301, align 4, !tbaa !5
  %16303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16290, ptr noundef @.str.5, i32 noundef %16291, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1011, ptr noundef %16294, ptr noundef %16297, ptr noundef %16300, i32 noundef %16302) #11
  br label %16304

16304:                                            ; preds = %16287, %16270
  call void @llvm.lifetime.end.p0(i64 4, ptr %480) #11
  br label %16305

16305:                                            ; preds = %16304
  br label %16306

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

16307:                                            ; No predecessors!
  br label %16308

16308:                                            ; preds = %16307
  br label %16309

16309:                                            ; preds = %16308, %16251
  br label %16310

16310:                                            ; preds = %16309
  br label %16311

16311:                                            ; preds = %16310
  call void @llvm.lifetime.start.p0(i64 16, ptr %481) #11
  call void @llvm.memset.p0.i64(ptr align 8 %481, i8 0, i64 16, i1 false)
  br label %16312

16312:                                            ; preds = %16311
  %16313 = load i32, ptr @test_count, align 4, !tbaa !5
  %16314 = add nsw i32 %16313, 1
  store i32 %16314, ptr @test_count, align 4, !tbaa !5
  %16315 = load ptr, ptr %479, align 8, !tbaa !9
  %16316 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %16315, ptr noundef @verify_host_accept_everything, ptr noundef %481)
  %16317 = icmp eq i32 %16316, -1
  br i1 %16317, label %16318, label %16371

16318:                                            ; preds = %16312
  br label %16319

16319:                                            ; preds = %16318
  br label %16320

16320:                                            ; preds = %16319
  call void @llvm.lifetime.start.p0(i64 4, ptr %482) #11
  %16321 = call ptr @__errno_location() #12
  %16322 = load i32, ptr %16321, align 4, !tbaa !5
  store i32 %16322, ptr %482, align 4, !tbaa !5
  %16323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16324 = call i32 @s2n_print_stacktrace(ptr noundef %16323)
  %16325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16326 = trunc i8 %16325 to i1
  br i1 %16326, label %16327, label %16349

16327:                                            ; preds = %16320
  %16328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16329 = call i32 @fileno(ptr noundef %16328) #11
  %16330 = call i32 @isatty(i32 noundef %16329) #11
  %16331 = icmp ne i32 %16330, 0
  br i1 %16331, label %16332, label %16349

16332:                                            ; preds = %16327
  %16333 = load i32, ptr %482, align 4, !tbaa !5
  %16334 = call ptr @__errno_location() #12
  store i32 %16333, ptr %16334, align 4, !tbaa !5
  %16335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16336 = load i32, ptr @test_count, align 4, !tbaa !5
  %16337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16338 = load i32, ptr %16337, align 4, !tbaa !5
  %16339 = call ptr @s2n_strerror(i32 noundef %16338, ptr noundef @.str.4)
  %16340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16341 = load i32, ptr %16340, align 4, !tbaa !5
  %16342 = call ptr @s2n_strerror_debug(i32 noundef %16341, ptr noundef @.str.4)
  %16343 = call ptr @__errno_location() #12
  %16344 = load i32, ptr %16343, align 4, !tbaa !5
  %16345 = call ptr @strerror(i32 noundef %16344) #11
  %16346 = call ptr @__errno_location() #12
  %16347 = load i32, ptr %16346, align 4, !tbaa !5
  %16348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16335, ptr noundef @.str.2, i32 noundef %16336, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1014, ptr noundef %16339, ptr noundef %16342, ptr noundef %16345, i32 noundef %16347) #11
  br label %16366

16349:                                            ; preds = %16327, %16320
  %16350 = load i32, ptr %482, align 4, !tbaa !5
  %16351 = call ptr @__errno_location() #12
  store i32 %16350, ptr %16351, align 4, !tbaa !5
  %16352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16353 = load i32, ptr @test_count, align 4, !tbaa !5
  %16354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16355 = load i32, ptr %16354, align 4, !tbaa !5
  %16356 = call ptr @s2n_strerror(i32 noundef %16355, ptr noundef @.str.4)
  %16357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16358 = load i32, ptr %16357, align 4, !tbaa !5
  %16359 = call ptr @s2n_strerror_debug(i32 noundef %16358, ptr noundef @.str.4)
  %16360 = call ptr @__errno_location() #12
  %16361 = load i32, ptr %16360, align 4, !tbaa !5
  %16362 = call ptr @strerror(i32 noundef %16361) #11
  %16363 = call ptr @__errno_location() #12
  %16364 = load i32, ptr %16363, align 4, !tbaa !5
  %16365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16352, ptr noundef @.str.5, i32 noundef %16353, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1014, ptr noundef %16356, ptr noundef %16359, ptr noundef %16362, i32 noundef %16364) #11
  br label %16366

16366:                                            ; preds = %16349, %16332
  call void @llvm.lifetime.end.p0(i64 4, ptr %482) #11
  br label %16367

16367:                                            ; preds = %16366
  br label %16368

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

16369:                                            ; No predecessors!
  br label %16370

16370:                                            ; preds = %16369
  br label %16371

16371:                                            ; preds = %16370, %16312
  br label %16372

16372:                                            ; preds = %16371
  br label %16373

16373:                                            ; preds = %16372
  call void @llvm.lifetime.start.p0(i64 40, ptr %483) #11
  call void @llvm.memset.p0.i64(ptr align 8 %483, i8 0, i64 40, i1 false)
  br label %16374

16374:                                            ; preds = %16373
  %16375 = load i32, ptr @test_count, align 4, !tbaa !5
  %16376 = add nsw i32 %16375, 1
  store i32 %16376, ptr @test_count, align 4, !tbaa !5
  %16377 = load ptr, ptr %479, align 8, !tbaa !9
  %16378 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %16377, ptr noundef @.str.72, ptr noundef %483)
  %16379 = getelementptr inbounds %struct.s2n_result, ptr %484, i32 0, i32 0
  store i32 %16378, ptr %16379, align 4
  %16380 = getelementptr inbounds %struct.s2n_result, ptr %484, i32 0, i32 0
  %16381 = load i32, ptr %16380, align 4
  %16382 = call zeroext i1 @s2n_result_is_ok(i32 %16381)
  br i1 %16382, label %16436, label %16383

16383:                                            ; preds = %16374
  br label %16384

16384:                                            ; preds = %16383
  br label %16385

16385:                                            ; preds = %16384
  call void @llvm.lifetime.start.p0(i64 4, ptr %485) #11
  %16386 = call ptr @__errno_location() #12
  %16387 = load i32, ptr %16386, align 4, !tbaa !5
  store i32 %16387, ptr %485, align 4, !tbaa !5
  %16388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16389 = call i32 @s2n_print_stacktrace(ptr noundef %16388)
  %16390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16391 = trunc i8 %16390 to i1
  br i1 %16391, label %16392, label %16414

16392:                                            ; preds = %16385
  %16393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16394 = call i32 @fileno(ptr noundef %16393) #11
  %16395 = call i32 @isatty(i32 noundef %16394) #11
  %16396 = icmp ne i32 %16395, 0
  br i1 %16396, label %16397, label %16414

16397:                                            ; preds = %16392
  %16398 = load i32, ptr %485, align 4, !tbaa !5
  %16399 = call ptr @__errno_location() #12
  store i32 %16398, ptr %16399, align 4, !tbaa !5
  %16400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16401 = load i32, ptr @test_count, align 4, !tbaa !5
  %16402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16403 = load i32, ptr %16402, align 4, !tbaa !5
  %16404 = call ptr @s2n_strerror(i32 noundef %16403, ptr noundef @.str.4)
  %16405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16406 = load i32, ptr %16405, align 4, !tbaa !5
  %16407 = call ptr @s2n_strerror_debug(i32 noundef %16406, ptr noundef @.str.4)
  %16408 = call ptr @__errno_location() #12
  %16409 = load i32, ptr %16408, align 4, !tbaa !5
  %16410 = call ptr @strerror(i32 noundef %16409) #11
  %16411 = call ptr @__errno_location() #12
  %16412 = load i32, ptr %16411, align 4, !tbaa !5
  %16413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16400, ptr noundef @.str.2, i32 noundef %16401, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1017, ptr noundef %16404, ptr noundef %16407, ptr noundef %16410, i32 noundef %16412) #11
  br label %16431

16414:                                            ; preds = %16392, %16385
  %16415 = load i32, ptr %485, align 4, !tbaa !5
  %16416 = call ptr @__errno_location() #12
  store i32 %16415, ptr %16416, align 4, !tbaa !5
  %16417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16418 = load i32, ptr @test_count, align 4, !tbaa !5
  %16419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16420 = load i32, ptr %16419, align 4, !tbaa !5
  %16421 = call ptr @s2n_strerror(i32 noundef %16420, ptr noundef @.str.4)
  %16422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16423 = load i32, ptr %16422, align 4, !tbaa !5
  %16424 = call ptr @s2n_strerror_debug(i32 noundef %16423, ptr noundef @.str.4)
  %16425 = call ptr @__errno_location() #12
  %16426 = load i32, ptr %16425, align 4, !tbaa !5
  %16427 = call ptr @strerror(i32 noundef %16426) #11
  %16428 = call ptr @__errno_location() #12
  %16429 = load i32, ptr %16428, align 4, !tbaa !5
  %16430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16417, ptr noundef @.str.5, i32 noundef %16418, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1017, ptr noundef %16421, ptr noundef %16424, ptr noundef %16427, i32 noundef %16429) #11
  br label %16431

16431:                                            ; preds = %16414, %16397
  call void @llvm.lifetime.end.p0(i64 4, ptr %485) #11
  br label %16432

16432:                                            ; preds = %16431
  br label %16433

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

16434:                                            ; No predecessors!
  br label %16435

16435:                                            ; preds = %16434
  br label %16436

16436:                                            ; preds = %16435, %16374
  br label %16437

16437:                                            ; preds = %16436
  br label %16438

16438:                                            ; preds = %16437
  call void @llvm.lifetime.start.p0(i64 4, ptr %486) #11
  %16439 = getelementptr inbounds %struct.s2n_stuffer, ptr %483, i32 0, i32 2
  %16440 = load i32, ptr %16439, align 4, !tbaa !15
  %16441 = getelementptr inbounds %struct.s2n_stuffer, ptr %483, i32 0, i32 1
  %16442 = load i32, ptr %16441, align 8, !tbaa !18
  %16443 = sub i32 %16440, %16442
  store i32 %16443, ptr %486, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %487) #11
  %16444 = load i32, ptr %486, align 4, !tbaa !5
  %16445 = call ptr @s2n_stuffer_raw_read(ptr noundef %483, i32 noundef %16444)
  store ptr %16445, ptr %487, align 8, !tbaa !9
  br label %16446

16446:                                            ; preds = %16438
  %16447 = load i32, ptr @test_count, align 4, !tbaa !5
  %16448 = add nsw i32 %16447, 1
  store i32 %16448, ptr @test_count, align 4, !tbaa !5
  %16449 = load ptr, ptr %487, align 8, !tbaa !9
  %16450 = icmp eq ptr %16449, null
  br i1 %16450, label %16451, label %16504

16451:                                            ; preds = %16446
  br label %16452

16452:                                            ; preds = %16451
  br label %16453

16453:                                            ; preds = %16452
  call void @llvm.lifetime.start.p0(i64 4, ptr %488) #11
  %16454 = call ptr @__errno_location() #12
  %16455 = load i32, ptr %16454, align 4, !tbaa !5
  store i32 %16455, ptr %488, align 4, !tbaa !5
  %16456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16457 = call i32 @s2n_print_stacktrace(ptr noundef %16456)
  %16458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16459 = trunc i8 %16458 to i1
  br i1 %16459, label %16460, label %16482

16460:                                            ; preds = %16453
  %16461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16462 = call i32 @fileno(ptr noundef %16461) #11
  %16463 = call i32 @isatty(i32 noundef %16462) #11
  %16464 = icmp ne i32 %16463, 0
  br i1 %16464, label %16465, label %16482

16465:                                            ; preds = %16460
  %16466 = load i32, ptr %488, align 4, !tbaa !5
  %16467 = call ptr @__errno_location() #12
  store i32 %16466, ptr %16467, align 4, !tbaa !5
  %16468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16469 = load i32, ptr @test_count, align 4, !tbaa !5
  %16470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16471 = load i32, ptr %16470, align 4, !tbaa !5
  %16472 = call ptr @s2n_strerror(i32 noundef %16471, ptr noundef @.str.4)
  %16473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16474 = load i32, ptr %16473, align 4, !tbaa !5
  %16475 = call ptr @s2n_strerror_debug(i32 noundef %16474, ptr noundef @.str.4)
  %16476 = call ptr @__errno_location() #12
  %16477 = load i32, ptr %16476, align 4, !tbaa !5
  %16478 = call ptr @strerror(i32 noundef %16477) #11
  %16479 = call ptr @__errno_location() #12
  %16480 = load i32, ptr %16479, align 4, !tbaa !5
  %16481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16468, ptr noundef @.str.2, i32 noundef %16469, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1020, ptr noundef %16472, ptr noundef %16475, ptr noundef %16478, i32 noundef %16480) #11
  br label %16499

16482:                                            ; preds = %16460, %16453
  %16483 = load i32, ptr %488, align 4, !tbaa !5
  %16484 = call ptr @__errno_location() #12
  store i32 %16483, ptr %16484, align 4, !tbaa !5
  %16485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16486 = load i32, ptr @test_count, align 4, !tbaa !5
  %16487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16488 = load i32, ptr %16487, align 4, !tbaa !5
  %16489 = call ptr @s2n_strerror(i32 noundef %16488, ptr noundef @.str.4)
  %16490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16491 = load i32, ptr %16490, align 4, !tbaa !5
  %16492 = call ptr @s2n_strerror_debug(i32 noundef %16491, ptr noundef @.str.4)
  %16493 = call ptr @__errno_location() #12
  %16494 = load i32, ptr %16493, align 4, !tbaa !5
  %16495 = call ptr @strerror(i32 noundef %16494) #11
  %16496 = call ptr @__errno_location() #12
  %16497 = load i32, ptr %16496, align 4, !tbaa !5
  %16498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16485, ptr noundef @.str.5, i32 noundef %16486, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1020, ptr noundef %16489, ptr noundef %16492, ptr noundef %16495, i32 noundef %16497) #11
  br label %16499

16499:                                            ; preds = %16482, %16465
  call void @llvm.lifetime.end.p0(i64 4, ptr %488) #11
  br label %16500

16500:                                            ; preds = %16499
  br label %16501

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

16502:                                            ; No predecessors!
  br label %16503

16503:                                            ; preds = %16502
  br label %16504

16504:                                            ; preds = %16503, %16446
  br label %16505

16505:                                            ; preds = %16504
  br label %16506

16506:                                            ; preds = %16505
  call void @llvm.lifetime.start.p0(i64 48, ptr %489) #11
  br label %16507

16507:                                            ; preds = %16506
  %16508 = load i32, ptr @test_count, align 4, !tbaa !5
  %16509 = add nsw i32 %16508, 1
  store i32 %16509, ptr @test_count, align 4, !tbaa !5
  %16510 = call i32 @s2n_pkey_zero_init(ptr noundef %489)
  %16511 = icmp eq i32 %16510, -1
  br i1 %16511, label %16512, label %16565

16512:                                            ; preds = %16507
  br label %16513

16513:                                            ; preds = %16512
  br label %16514

16514:                                            ; preds = %16513
  call void @llvm.lifetime.start.p0(i64 4, ptr %490) #11
  %16515 = call ptr @__errno_location() #12
  %16516 = load i32, ptr %16515, align 4, !tbaa !5
  store i32 %16516, ptr %490, align 4, !tbaa !5
  %16517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16518 = call i32 @s2n_print_stacktrace(ptr noundef %16517)
  %16519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16520 = trunc i8 %16519 to i1
  br i1 %16520, label %16521, label %16543

16521:                                            ; preds = %16514
  %16522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16523 = call i32 @fileno(ptr noundef %16522) #11
  %16524 = call i32 @isatty(i32 noundef %16523) #11
  %16525 = icmp ne i32 %16524, 0
  br i1 %16525, label %16526, label %16543

16526:                                            ; preds = %16521
  %16527 = load i32, ptr %490, align 4, !tbaa !5
  %16528 = call ptr @__errno_location() #12
  store i32 %16527, ptr %16528, align 4, !tbaa !5
  %16529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16530 = load i32, ptr @test_count, align 4, !tbaa !5
  %16531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16532 = load i32, ptr %16531, align 4, !tbaa !5
  %16533 = call ptr @s2n_strerror(i32 noundef %16532, ptr noundef @.str.4)
  %16534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16535 = load i32, ptr %16534, align 4, !tbaa !5
  %16536 = call ptr @s2n_strerror_debug(i32 noundef %16535, ptr noundef @.str.4)
  %16537 = call ptr @__errno_location() #12
  %16538 = load i32, ptr %16537, align 4, !tbaa !5
  %16539 = call ptr @strerror(i32 noundef %16538) #11
  %16540 = call ptr @__errno_location() #12
  %16541 = load i32, ptr %16540, align 4, !tbaa !5
  %16542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16529, ptr noundef @.str.2, i32 noundef %16530, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1023, ptr noundef %16533, ptr noundef %16536, ptr noundef %16539, i32 noundef %16541) #11
  br label %16560

16543:                                            ; preds = %16521, %16514
  %16544 = load i32, ptr %490, align 4, !tbaa !5
  %16545 = call ptr @__errno_location() #12
  store i32 %16544, ptr %16545, align 4, !tbaa !5
  %16546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16547 = load i32, ptr @test_count, align 4, !tbaa !5
  %16548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16549 = load i32, ptr %16548, align 4, !tbaa !5
  %16550 = call ptr @s2n_strerror(i32 noundef %16549, ptr noundef @.str.4)
  %16551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16552 = load i32, ptr %16551, align 4, !tbaa !5
  %16553 = call ptr @s2n_strerror_debug(i32 noundef %16552, ptr noundef @.str.4)
  %16554 = call ptr @__errno_location() #12
  %16555 = load i32, ptr %16554, align 4, !tbaa !5
  %16556 = call ptr @strerror(i32 noundef %16555) #11
  %16557 = call ptr @__errno_location() #12
  %16558 = load i32, ptr %16557, align 4, !tbaa !5
  %16559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16546, ptr noundef @.str.5, i32 noundef %16547, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1023, ptr noundef %16550, ptr noundef %16553, ptr noundef %16556, i32 noundef %16558) #11
  br label %16560

16560:                                            ; preds = %16543, %16526
  call void @llvm.lifetime.end.p0(i64 4, ptr %490) #11
  br label %16561

16561:                                            ; preds = %16560
  br label %16562

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

16563:                                            ; No predecessors!
  br label %16564

16564:                                            ; preds = %16563
  br label %16565

16565:                                            ; preds = %16564, %16507
  br label %16566

16566:                                            ; preds = %16565
  br label %16567

16567:                                            ; preds = %16566
  call void @llvm.lifetime.start.p0(i64 4, ptr %491) #11
  store i32 -1, ptr %491, align 4, !tbaa !5
  br label %16568

16568:                                            ; preds = %16567
  %16569 = load i32, ptr @test_count, align 4, !tbaa !5
  %16570 = add nsw i32 %16569, 1
  store i32 %16570, ptr @test_count, align 4, !tbaa !5
  %16571 = load ptr, ptr %479, align 8, !tbaa !9
  %16572 = load ptr, ptr %487, align 8, !tbaa !9
  %16573 = load i32, ptr %486, align 4, !tbaa !5
  %16574 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %478, ptr noundef %16571, ptr noundef %16572, i32 noundef %16573, ptr noundef %491, ptr noundef %489)
  %16575 = getelementptr inbounds %struct.s2n_result, ptr %492, i32 0, i32 0
  store i32 %16574, ptr %16575, align 4
  %16576 = getelementptr inbounds %struct.s2n_result, ptr %492, i32 0, i32 0
  %16577 = load i32, ptr %16576, align 4
  %16578 = call zeroext i1 @s2n_result_is_ok(i32 %16577)
  br i1 %16578, label %16632, label %16579

16579:                                            ; preds = %16568
  br label %16580

16580:                                            ; preds = %16579
  br label %16581

16581:                                            ; preds = %16580
  call void @llvm.lifetime.start.p0(i64 4, ptr %493) #11
  %16582 = call ptr @__errno_location() #12
  %16583 = load i32, ptr %16582, align 4, !tbaa !5
  store i32 %16583, ptr %493, align 4, !tbaa !5
  %16584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16585 = call i32 @s2n_print_stacktrace(ptr noundef %16584)
  %16586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16587 = trunc i8 %16586 to i1
  br i1 %16587, label %16588, label %16610

16588:                                            ; preds = %16581
  %16589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16590 = call i32 @fileno(ptr noundef %16589) #11
  %16591 = call i32 @isatty(i32 noundef %16590) #11
  %16592 = icmp ne i32 %16591, 0
  br i1 %16592, label %16593, label %16610

16593:                                            ; preds = %16588
  %16594 = load i32, ptr %493, align 4, !tbaa !5
  %16595 = call ptr @__errno_location() #12
  store i32 %16594, ptr %16595, align 4, !tbaa !5
  %16596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16597 = load i32, ptr @test_count, align 4, !tbaa !5
  %16598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16599 = load i32, ptr %16598, align 4, !tbaa !5
  %16600 = call ptr @s2n_strerror(i32 noundef %16599, ptr noundef @.str.4)
  %16601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16602 = load i32, ptr %16601, align 4, !tbaa !5
  %16603 = call ptr @s2n_strerror_debug(i32 noundef %16602, ptr noundef @.str.4)
  %16604 = call ptr @__errno_location() #12
  %16605 = load i32, ptr %16604, align 4, !tbaa !5
  %16606 = call ptr @strerror(i32 noundef %16605) #11
  %16607 = call ptr @__errno_location() #12
  %16608 = load i32, ptr %16607, align 4, !tbaa !5
  %16609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16596, ptr noundef @.str.2, i32 noundef %16597, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1025, ptr noundef %16600, ptr noundef %16603, ptr noundef %16606, i32 noundef %16608) #11
  br label %16627

16610:                                            ; preds = %16588, %16581
  %16611 = load i32, ptr %493, align 4, !tbaa !5
  %16612 = call ptr @__errno_location() #12
  store i32 %16611, ptr %16612, align 4, !tbaa !5
  %16613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16614 = load i32, ptr @test_count, align 4, !tbaa !5
  %16615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16616 = load i32, ptr %16615, align 4, !tbaa !5
  %16617 = call ptr @s2n_strerror(i32 noundef %16616, ptr noundef @.str.4)
  %16618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16619 = load i32, ptr %16618, align 4, !tbaa !5
  %16620 = call ptr @s2n_strerror_debug(i32 noundef %16619, ptr noundef @.str.4)
  %16621 = call ptr @__errno_location() #12
  %16622 = load i32, ptr %16621, align 4, !tbaa !5
  %16623 = call ptr @strerror(i32 noundef %16622) #11
  %16624 = call ptr @__errno_location() #12
  %16625 = load i32, ptr %16624, align 4, !tbaa !5
  %16626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16613, ptr noundef @.str.5, i32 noundef %16614, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1025, ptr noundef %16617, ptr noundef %16620, ptr noundef %16623, i32 noundef %16625) #11
  br label %16627

16627:                                            ; preds = %16610, %16593
  call void @llvm.lifetime.end.p0(i64 4, ptr %493) #11
  br label %16628

16628:                                            ; preds = %16627
  br label %16629

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

16630:                                            ; No predecessors!
  br label %16631

16631:                                            ; preds = %16630
  br label %16632

16632:                                            ; preds = %16631, %16568
  br label %16633

16633:                                            ; preds = %16632
  br label %16634

16634:                                            ; preds = %16633
  %16635 = call i32 @s2n_pkey_free(ptr noundef %489)
  br label %16636

16636:                                            ; preds = %16634
  %16637 = load i32, ptr @test_count, align 4, !tbaa !5
  %16638 = add nsw i32 %16637, 1
  store i32 %16638, ptr @test_count, align 4, !tbaa !5
  %16639 = getelementptr inbounds %struct.host_verify_data, ptr %481, i32 0, i32 2
  %16640 = load i8, ptr %16639, align 1, !tbaa !19
  %16641 = zext i8 %16640 to i32
  %16642 = icmp eq i32 1, %16641
  br i1 %16642, label %16696, label %16643

16643:                                            ; preds = %16636
  br label %16644

16644:                                            ; preds = %16643
  br label %16645

16645:                                            ; preds = %16644
  call void @llvm.lifetime.start.p0(i64 4, ptr %494) #11
  %16646 = call ptr @__errno_location() #12
  %16647 = load i32, ptr %16646, align 4, !tbaa !5
  store i32 %16647, ptr %494, align 4, !tbaa !5
  %16648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16649 = call i32 @s2n_print_stacktrace(ptr noundef %16648)
  %16650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16651 = trunc i8 %16650 to i1
  br i1 %16651, label %16652, label %16674

16652:                                            ; preds = %16645
  %16653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16654 = call i32 @fileno(ptr noundef %16653) #11
  %16655 = call i32 @isatty(i32 noundef %16654) #11
  %16656 = icmp ne i32 %16655, 0
  br i1 %16656, label %16657, label %16674

16657:                                            ; preds = %16652
  %16658 = load i32, ptr %494, align 4, !tbaa !5
  %16659 = call ptr @__errno_location() #12
  store i32 %16658, ptr %16659, align 4, !tbaa !5
  %16660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16661 = load i32, ptr @test_count, align 4, !tbaa !5
  %16662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16663 = load i32, ptr %16662, align 4, !tbaa !5
  %16664 = call ptr @s2n_strerror(i32 noundef %16663, ptr noundef @.str.4)
  %16665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16666 = load i32, ptr %16665, align 4, !tbaa !5
  %16667 = call ptr @s2n_strerror_debug(i32 noundef %16666, ptr noundef @.str.4)
  %16668 = call ptr @__errno_location() #12
  %16669 = load i32, ptr %16668, align 4, !tbaa !5
  %16670 = call ptr @strerror(i32 noundef %16669) #11
  %16671 = call ptr @__errno_location() #12
  %16672 = load i32, ptr %16671, align 4, !tbaa !5
  %16673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16660, ptr noundef @.str.2, i32 noundef %16661, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1029, ptr noundef %16664, ptr noundef %16667, ptr noundef %16670, i32 noundef %16672) #11
  br label %16691

16674:                                            ; preds = %16652, %16645
  %16675 = load i32, ptr %494, align 4, !tbaa !5
  %16676 = call ptr @__errno_location() #12
  store i32 %16675, ptr %16676, align 4, !tbaa !5
  %16677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16678 = load i32, ptr @test_count, align 4, !tbaa !5
  %16679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16680 = load i32, ptr %16679, align 4, !tbaa !5
  %16681 = call ptr @s2n_strerror(i32 noundef %16680, ptr noundef @.str.4)
  %16682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16683 = load i32, ptr %16682, align 4, !tbaa !5
  %16684 = call ptr @s2n_strerror_debug(i32 noundef %16683, ptr noundef @.str.4)
  %16685 = call ptr @__errno_location() #12
  %16686 = load i32, ptr %16685, align 4, !tbaa !5
  %16687 = call ptr @strerror(i32 noundef %16686) #11
  %16688 = call ptr @__errno_location() #12
  %16689 = load i32, ptr %16688, align 4, !tbaa !5
  %16690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16677, ptr noundef @.str.5, i32 noundef %16678, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1029, ptr noundef %16681, ptr noundef %16684, ptr noundef %16687, i32 noundef %16689) #11
  br label %16691

16691:                                            ; preds = %16674, %16657
  call void @llvm.lifetime.end.p0(i64 4, ptr %494) #11
  br label %16692

16692:                                            ; preds = %16691
  br label %16693

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

16694:                                            ; No predecessors!
  br label %16695

16695:                                            ; preds = %16694
  br label %16696

16696:                                            ; preds = %16695, %16636
  br label %16697

16697:                                            ; preds = %16696
  br label %16698

16698:                                            ; preds = %16697
  call void @llvm.lifetime.start.p0(i64 40, ptr %495) #11
  call void @llvm.memset.p0.i64(ptr align 8 %495, i8 0, i64 40, i1 false)
  br label %16699

16699:                                            ; preds = %16698
  %16700 = load i32, ptr @test_count, align 4, !tbaa !5
  %16701 = add nsw i32 %16700, 1
  store i32 %16701, ptr @test_count, align 4, !tbaa !5
  %16702 = call i32 @read_file(ptr noundef %495, ptr noundef @.str.74, i32 noundef 12000)
  %16703 = icmp eq i32 %16702, -1
  br i1 %16703, label %16704, label %16757

16704:                                            ; preds = %16699
  br label %16705

16705:                                            ; preds = %16704
  br label %16706

16706:                                            ; preds = %16705
  call void @llvm.lifetime.start.p0(i64 4, ptr %496) #11
  %16707 = call ptr @__errno_location() #12
  %16708 = load i32, ptr %16707, align 4, !tbaa !5
  store i32 %16708, ptr %496, align 4, !tbaa !5
  %16709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16710 = call i32 @s2n_print_stacktrace(ptr noundef %16709)
  %16711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16712 = trunc i8 %16711 to i1
  br i1 %16712, label %16713, label %16735

16713:                                            ; preds = %16706
  %16714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16715 = call i32 @fileno(ptr noundef %16714) #11
  %16716 = call i32 @isatty(i32 noundef %16715) #11
  %16717 = icmp ne i32 %16716, 0
  br i1 %16717, label %16718, label %16735

16718:                                            ; preds = %16713
  %16719 = load i32, ptr %496, align 4, !tbaa !5
  %16720 = call ptr @__errno_location() #12
  store i32 %16719, ptr %16720, align 4, !tbaa !5
  %16721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16722 = load i32, ptr @test_count, align 4, !tbaa !5
  %16723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16724 = load i32, ptr %16723, align 4, !tbaa !5
  %16725 = call ptr @s2n_strerror(i32 noundef %16724, ptr noundef @.str.4)
  %16726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16727 = load i32, ptr %16726, align 4, !tbaa !5
  %16728 = call ptr @s2n_strerror_debug(i32 noundef %16727, ptr noundef @.str.4)
  %16729 = call ptr @__errno_location() #12
  %16730 = load i32, ptr %16729, align 4, !tbaa !5
  %16731 = call ptr @strerror(i32 noundef %16730) #11
  %16732 = call ptr @__errno_location() #12
  %16733 = load i32, ptr %16732, align 4, !tbaa !5
  %16734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16721, ptr noundef @.str.2, i32 noundef %16722, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1031, ptr noundef %16725, ptr noundef %16728, ptr noundef %16731, i32 noundef %16733) #11
  br label %16752

16735:                                            ; preds = %16713, %16706
  %16736 = load i32, ptr %496, align 4, !tbaa !5
  %16737 = call ptr @__errno_location() #12
  store i32 %16736, ptr %16737, align 4, !tbaa !5
  %16738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16739 = load i32, ptr @test_count, align 4, !tbaa !5
  %16740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16741 = load i32, ptr %16740, align 4, !tbaa !5
  %16742 = call ptr @s2n_strerror(i32 noundef %16741, ptr noundef @.str.4)
  %16743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16744 = load i32, ptr %16743, align 4, !tbaa !5
  %16745 = call ptr @s2n_strerror_debug(i32 noundef %16744, ptr noundef @.str.4)
  %16746 = call ptr @__errno_location() #12
  %16747 = load i32, ptr %16746, align 4, !tbaa !5
  %16748 = call ptr @strerror(i32 noundef %16747) #11
  %16749 = call ptr @__errno_location() #12
  %16750 = load i32, ptr %16749, align 4, !tbaa !5
  %16751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16738, ptr noundef @.str.5, i32 noundef %16739, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1031, ptr noundef %16742, ptr noundef %16745, ptr noundef %16748, i32 noundef %16750) #11
  br label %16752

16752:                                            ; preds = %16735, %16718
  call void @llvm.lifetime.end.p0(i64 4, ptr %496) #11
  br label %16753

16753:                                            ; preds = %16752
  br label %16754

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

16755:                                            ; No predecessors!
  br label %16756

16756:                                            ; preds = %16755
  br label %16757

16757:                                            ; preds = %16756, %16699
  br label %16758

16758:                                            ; preds = %16757
  br label %16759

16759:                                            ; preds = %16758
  call void @llvm.lifetime.start.p0(i64 4, ptr %497) #11
  %16760 = getelementptr inbounds %struct.s2n_stuffer, ptr %495, i32 0, i32 2
  %16761 = load i32, ptr %16760, align 4, !tbaa !15
  %16762 = getelementptr inbounds %struct.s2n_stuffer, ptr %495, i32 0, i32 1
  %16763 = load i32, ptr %16762, align 8, !tbaa !18
  %16764 = sub i32 %16761, %16763
  store i32 %16764, ptr %497, align 4, !tbaa !5
  br label %16765

16765:                                            ; preds = %16759
  %16766 = load i32, ptr @test_count, align 4, !tbaa !5
  %16767 = add nsw i32 %16766, 1
  store i32 %16767, ptr @test_count, align 4, !tbaa !5
  %16768 = load i32, ptr %497, align 4, !tbaa !5
  %16769 = icmp ugt i32 %16768, 0
  br i1 %16769, label %16823, label %16770

16770:                                            ; preds = %16765
  br label %16771

16771:                                            ; preds = %16770
  br label %16772

16772:                                            ; preds = %16771
  call void @llvm.lifetime.start.p0(i64 4, ptr %498) #11
  %16773 = call ptr @__errno_location() #12
  %16774 = load i32, ptr %16773, align 4, !tbaa !5
  store i32 %16774, ptr %498, align 4, !tbaa !5
  %16775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16776 = call i32 @s2n_print_stacktrace(ptr noundef %16775)
  %16777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16778 = trunc i8 %16777 to i1
  br i1 %16778, label %16779, label %16801

16779:                                            ; preds = %16772
  %16780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16781 = call i32 @fileno(ptr noundef %16780) #11
  %16782 = call i32 @isatty(i32 noundef %16781) #11
  %16783 = icmp ne i32 %16782, 0
  br i1 %16783, label %16784, label %16801

16784:                                            ; preds = %16779
  %16785 = load i32, ptr %498, align 4, !tbaa !5
  %16786 = call ptr @__errno_location() #12
  store i32 %16785, ptr %16786, align 4, !tbaa !5
  %16787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16788 = load i32, ptr @test_count, align 4, !tbaa !5
  %16789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16790 = load i32, ptr %16789, align 4, !tbaa !5
  %16791 = call ptr @s2n_strerror(i32 noundef %16790, ptr noundef @.str.4)
  %16792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16793 = load i32, ptr %16792, align 4, !tbaa !5
  %16794 = call ptr @s2n_strerror_debug(i32 noundef %16793, ptr noundef @.str.4)
  %16795 = call ptr @__errno_location() #12
  %16796 = load i32, ptr %16795, align 4, !tbaa !5
  %16797 = call ptr @strerror(i32 noundef %16796) #11
  %16798 = call ptr @__errno_location() #12
  %16799 = load i32, ptr %16798, align 4, !tbaa !5
  %16800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16787, ptr noundef @.str.2, i32 noundef %16788, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1033, ptr noundef %16791, ptr noundef %16794, ptr noundef %16797, i32 noundef %16799) #11
  br label %16818

16801:                                            ; preds = %16779, %16772
  %16802 = load i32, ptr %498, align 4, !tbaa !5
  %16803 = call ptr @__errno_location() #12
  store i32 %16802, ptr %16803, align 4, !tbaa !5
  %16804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16805 = load i32, ptr @test_count, align 4, !tbaa !5
  %16806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16807 = load i32, ptr %16806, align 4, !tbaa !5
  %16808 = call ptr @s2n_strerror(i32 noundef %16807, ptr noundef @.str.4)
  %16809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16810 = load i32, ptr %16809, align 4, !tbaa !5
  %16811 = call ptr @s2n_strerror_debug(i32 noundef %16810, ptr noundef @.str.4)
  %16812 = call ptr @__errno_location() #12
  %16813 = load i32, ptr %16812, align 4, !tbaa !5
  %16814 = call ptr @strerror(i32 noundef %16813) #11
  %16815 = call ptr @__errno_location() #12
  %16816 = load i32, ptr %16815, align 4, !tbaa !5
  %16817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16804, ptr noundef @.str.5, i32 noundef %16805, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1033, ptr noundef %16808, ptr noundef %16811, ptr noundef %16814, i32 noundef %16816) #11
  br label %16818

16818:                                            ; preds = %16801, %16784
  call void @llvm.lifetime.end.p0(i64 4, ptr %498) #11
  br label %16819

16819:                                            ; preds = %16818
  br label %16820

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

16821:                                            ; No predecessors!
  br label %16822

16822:                                            ; preds = %16821
  br label %16823

16823:                                            ; preds = %16822, %16765
  br label %16824

16824:                                            ; preds = %16823
  br label %16825

16825:                                            ; preds = %16824
  br label %16826

16826:                                            ; preds = %16825
  %16827 = load i32, ptr @test_count, align 4, !tbaa !5
  %16828 = add nsw i32 %16827, 1
  store i32 %16828, ptr @test_count, align 4, !tbaa !5
  %16829 = load ptr, ptr %479, align 8, !tbaa !9
  %16830 = load i32, ptr %497, align 4, !tbaa !5
  %16831 = call ptr @s2n_stuffer_raw_read(ptr noundef %495, i32 noundef %16830)
  %16832 = load i32, ptr %497, align 4, !tbaa !5
  %16833 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %478, ptr noundef %16829, ptr noundef %16831, i32 noundef %16832)
  %16834 = getelementptr inbounds %struct.s2n_result, ptr %499, i32 0, i32 0
  store i32 %16833, ptr %16834, align 4
  %16835 = getelementptr inbounds %struct.s2n_result, ptr %499, i32 0, i32 0
  %16836 = load i32, ptr %16835, align 4
  %16837 = call zeroext i1 @s2n_result_is_ok(i32 %16836)
  br i1 %16837, label %16891, label %16838

16838:                                            ; preds = %16826
  br label %16839

16839:                                            ; preds = %16838
  br label %16840

16840:                                            ; preds = %16839
  call void @llvm.lifetime.start.p0(i64 4, ptr %500) #11
  %16841 = call ptr @__errno_location() #12
  %16842 = load i32, ptr %16841, align 4, !tbaa !5
  store i32 %16842, ptr %500, align 4, !tbaa !5
  %16843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16844 = call i32 @s2n_print_stacktrace(ptr noundef %16843)
  %16845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16846 = trunc i8 %16845 to i1
  br i1 %16846, label %16847, label %16869

16847:                                            ; preds = %16840
  %16848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16849 = call i32 @fileno(ptr noundef %16848) #11
  %16850 = call i32 @isatty(i32 noundef %16849) #11
  %16851 = icmp ne i32 %16850, 0
  br i1 %16851, label %16852, label %16869

16852:                                            ; preds = %16847
  %16853 = load i32, ptr %500, align 4, !tbaa !5
  %16854 = call ptr @__errno_location() #12
  store i32 %16853, ptr %16854, align 4, !tbaa !5
  %16855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16856 = load i32, ptr @test_count, align 4, !tbaa !5
  %16857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16858 = load i32, ptr %16857, align 4, !tbaa !5
  %16859 = call ptr @s2n_strerror(i32 noundef %16858, ptr noundef @.str.4)
  %16860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16861 = load i32, ptr %16860, align 4, !tbaa !5
  %16862 = call ptr @s2n_strerror_debug(i32 noundef %16861, ptr noundef @.str.4)
  %16863 = call ptr @__errno_location() #12
  %16864 = load i32, ptr %16863, align 4, !tbaa !5
  %16865 = call ptr @strerror(i32 noundef %16864) #11
  %16866 = call ptr @__errno_location() #12
  %16867 = load i32, ptr %16866, align 4, !tbaa !5
  %16868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16855, ptr noundef @.str.2, i32 noundef %16856, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 1035, ptr noundef %16859, ptr noundef %16862, ptr noundef %16865, i32 noundef %16867) #11
  br label %16886

16869:                                            ; preds = %16847, %16840
  %16870 = load i32, ptr %500, align 4, !tbaa !5
  %16871 = call ptr @__errno_location() #12
  store i32 %16870, ptr %16871, align 4, !tbaa !5
  %16872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16873 = load i32, ptr @test_count, align 4, !tbaa !5
  %16874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16875 = load i32, ptr %16874, align 4, !tbaa !5
  %16876 = call ptr @s2n_strerror(i32 noundef %16875, ptr noundef @.str.4)
  %16877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16878 = load i32, ptr %16877, align 4, !tbaa !5
  %16879 = call ptr @s2n_strerror_debug(i32 noundef %16878, ptr noundef @.str.4)
  %16880 = call ptr @__errno_location() #12
  %16881 = load i32, ptr %16880, align 4, !tbaa !5
  %16882 = call ptr @strerror(i32 noundef %16881) #11
  %16883 = call ptr @__errno_location() #12
  %16884 = load i32, ptr %16883, align 4, !tbaa !5
  %16885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16872, ptr noundef @.str.5, i32 noundef %16873, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 1035, ptr noundef %16876, ptr noundef %16879, ptr noundef %16882, i32 noundef %16884) #11
  br label %16886

16886:                                            ; preds = %16869, %16852
  call void @llvm.lifetime.end.p0(i64 4, ptr %500) #11
  br label %16887

16887:                                            ; preds = %16886
  br label %16888

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

16889:                                            ; No predecessors!
  br label %16890

16890:                                            ; preds = %16889
  br label %16891

16891:                                            ; preds = %16890, %16826
  br label %16892

16892:                                            ; preds = %16891
  br label %16893

16893:                                            ; preds = %16892
  %16894 = call i32 @s2n_stuffer_free(ptr noundef %495)
  %16895 = load ptr, ptr %479, align 8, !tbaa !9
  %16896 = call i32 @s2n_connection_free(ptr noundef %16895)
  %16897 = call i32 @s2n_x509_validator_wipe(ptr noundef %478)
  call void @s2n_x509_trust_store_wipe(ptr noundef %472)
  call void @llvm.lifetime.end.p0(i64 4, ptr %497) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %495) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %491) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %489) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %487) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %486) #11
  %16898 = call i32 @s2n_stuffer_free(ptr noundef %483)
  call void @llvm.lifetime.end.p0(i64 40, ptr %483) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %481) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %479) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %478) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %476) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %473) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %472) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %501) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %501)
  br label %16899

16899:                                            ; preds = %16893
  %16900 = load i32, ptr @test_count, align 4, !tbaa !5
  %16901 = add nsw i32 %16900, 1
  store i32 %16901, ptr @test_count, align 4, !tbaa !5
  %16902 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %501, ptr noundef @.str.48, ptr noundef null)
  %16903 = icmp eq i32 %16902, -1
  br i1 %16903, label %16904, label %16957

16904:                                            ; preds = %16899
  br label %16905

16905:                                            ; preds = %16904
  br label %16906

16906:                                            ; preds = %16905
  call void @llvm.lifetime.start.p0(i64 4, ptr %502) #11
  %16907 = call ptr @__errno_location() #12
  %16908 = load i32, ptr %16907, align 4, !tbaa !5
  store i32 %16908, ptr %502, align 4, !tbaa !5
  %16909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16910 = call i32 @s2n_print_stacktrace(ptr noundef %16909)
  %16911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16912 = trunc i8 %16911 to i1
  br i1 %16912, label %16913, label %16935

16913:                                            ; preds = %16906
  %16914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16915 = call i32 @fileno(ptr noundef %16914) #11
  %16916 = call i32 @isatty(i32 noundef %16915) #11
  %16917 = icmp ne i32 %16916, 0
  br i1 %16917, label %16918, label %16935

16918:                                            ; preds = %16913
  %16919 = load i32, ptr %502, align 4, !tbaa !5
  %16920 = call ptr @__errno_location() #12
  store i32 %16919, ptr %16920, align 4, !tbaa !5
  %16921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16922 = load i32, ptr @test_count, align 4, !tbaa !5
  %16923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16924 = load i32, ptr %16923, align 4, !tbaa !5
  %16925 = call ptr @s2n_strerror(i32 noundef %16924, ptr noundef @.str.4)
  %16926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16927 = load i32, ptr %16926, align 4, !tbaa !5
  %16928 = call ptr @s2n_strerror_debug(i32 noundef %16927, ptr noundef @.str.4)
  %16929 = call ptr @__errno_location() #12
  %16930 = load i32, ptr %16929, align 4, !tbaa !5
  %16931 = call ptr @strerror(i32 noundef %16930) #11
  %16932 = call ptr @__errno_location() #12
  %16933 = load i32, ptr %16932, align 4, !tbaa !5
  %16934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16921, ptr noundef @.str.2, i32 noundef %16922, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1052, ptr noundef %16925, ptr noundef %16928, ptr noundef %16931, i32 noundef %16933) #11
  br label %16952

16935:                                            ; preds = %16913, %16906
  %16936 = load i32, ptr %502, align 4, !tbaa !5
  %16937 = call ptr @__errno_location() #12
  store i32 %16936, ptr %16937, align 4, !tbaa !5
  %16938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16939 = load i32, ptr @test_count, align 4, !tbaa !5
  %16940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16941 = load i32, ptr %16940, align 4, !tbaa !5
  %16942 = call ptr @s2n_strerror(i32 noundef %16941, ptr noundef @.str.4)
  %16943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16944 = load i32, ptr %16943, align 4, !tbaa !5
  %16945 = call ptr @s2n_strerror_debug(i32 noundef %16944, ptr noundef @.str.4)
  %16946 = call ptr @__errno_location() #12
  %16947 = load i32, ptr %16946, align 4, !tbaa !5
  %16948 = call ptr @strerror(i32 noundef %16947) #11
  %16949 = call ptr @__errno_location() #12
  %16950 = load i32, ptr %16949, align 4, !tbaa !5
  %16951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16938, ptr noundef @.str.5, i32 noundef %16939, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1052, ptr noundef %16942, ptr noundef %16945, ptr noundef %16948, i32 noundef %16950) #11
  br label %16952

16952:                                            ; preds = %16935, %16918
  call void @llvm.lifetime.end.p0(i64 4, ptr %502) #11
  br label %16953

16953:                                            ; preds = %16952
  br label %16954

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

16955:                                            ; No predecessors!
  br label %16956

16956:                                            ; preds = %16955
  br label %16957

16957:                                            ; preds = %16956, %16899
  br label %16958

16958:                                            ; preds = %16957
  br label %16959

16959:                                            ; preds = %16958
  call void @llvm.lifetime.start.p0(i64 56, ptr %503) #11
  %16960 = call i32 @s2n_x509_validator_init(ptr noundef %503, ptr noundef %501, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %504) #11
  %16961 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %16961, ptr %504, align 8, !tbaa !9
  br label %16962

16962:                                            ; preds = %16959
  %16963 = load i32, ptr @test_count, align 4, !tbaa !5
  %16964 = add nsw i32 %16963, 1
  store i32 %16964, ptr @test_count, align 4, !tbaa !5
  %16965 = load ptr, ptr %504, align 8, !tbaa !9
  %16966 = icmp eq ptr %16965, null
  br i1 %16966, label %16967, label %17020

16967:                                            ; preds = %16962
  br label %16968

16968:                                            ; preds = %16967
  br label %16969

16969:                                            ; preds = %16968
  call void @llvm.lifetime.start.p0(i64 4, ptr %505) #11
  %16970 = call ptr @__errno_location() #12
  %16971 = load i32, ptr %16970, align 4, !tbaa !5
  store i32 %16971, ptr %505, align 4, !tbaa !5
  %16972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16973 = call i32 @s2n_print_stacktrace(ptr noundef %16972)
  %16974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16975 = trunc i8 %16974 to i1
  br i1 %16975, label %16976, label %16998

16976:                                            ; preds = %16969
  %16977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16978 = call i32 @fileno(ptr noundef %16977) #11
  %16979 = call i32 @isatty(i32 noundef %16978) #11
  %16980 = icmp ne i32 %16979, 0
  br i1 %16980, label %16981, label %16998

16981:                                            ; preds = %16976
  %16982 = load i32, ptr %505, align 4, !tbaa !5
  %16983 = call ptr @__errno_location() #12
  store i32 %16982, ptr %16983, align 4, !tbaa !5
  %16984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16985 = load i32, ptr @test_count, align 4, !tbaa !5
  %16986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16987 = load i32, ptr %16986, align 4, !tbaa !5
  %16988 = call ptr @s2n_strerror(i32 noundef %16987, ptr noundef @.str.4)
  %16989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16990 = load i32, ptr %16989, align 4, !tbaa !5
  %16991 = call ptr @s2n_strerror_debug(i32 noundef %16990, ptr noundef @.str.4)
  %16992 = call ptr @__errno_location() #12
  %16993 = load i32, ptr %16992, align 4, !tbaa !5
  %16994 = call ptr @strerror(i32 noundef %16993) #11
  %16995 = call ptr @__errno_location() #12
  %16996 = load i32, ptr %16995, align 4, !tbaa !5
  %16997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16984, ptr noundef @.str.2, i32 noundef %16985, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1058, ptr noundef %16988, ptr noundef %16991, ptr noundef %16994, i32 noundef %16996) #11
  br label %17015

16998:                                            ; preds = %16976, %16969
  %16999 = load i32, ptr %505, align 4, !tbaa !5
  %17000 = call ptr @__errno_location() #12
  store i32 %16999, ptr %17000, align 4, !tbaa !5
  %17001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17002 = load i32, ptr @test_count, align 4, !tbaa !5
  %17003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17004 = load i32, ptr %17003, align 4, !tbaa !5
  %17005 = call ptr @s2n_strerror(i32 noundef %17004, ptr noundef @.str.4)
  %17006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17007 = load i32, ptr %17006, align 4, !tbaa !5
  %17008 = call ptr @s2n_strerror_debug(i32 noundef %17007, ptr noundef @.str.4)
  %17009 = call ptr @__errno_location() #12
  %17010 = load i32, ptr %17009, align 4, !tbaa !5
  %17011 = call ptr @strerror(i32 noundef %17010) #11
  %17012 = call ptr @__errno_location() #12
  %17013 = load i32, ptr %17012, align 4, !tbaa !5
  %17014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17001, ptr noundef @.str.5, i32 noundef %17002, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1058, ptr noundef %17005, ptr noundef %17008, ptr noundef %17011, i32 noundef %17013) #11
  br label %17015

17015:                                            ; preds = %16998, %16981
  call void @llvm.lifetime.end.p0(i64 4, ptr %505) #11
  br label %17016

17016:                                            ; preds = %17015
  br label %17017

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

17018:                                            ; No predecessors!
  br label %17019

17019:                                            ; preds = %17018
  br label %17020

17020:                                            ; preds = %17019, %16962
  br label %17021

17021:                                            ; preds = %17020
  br label %17022

17022:                                            ; preds = %17021
  call void @llvm.lifetime.start.p0(i64 16, ptr %506) #11
  call void @llvm.memset.p0.i64(ptr align 8 %506, i8 0, i64 16, i1 false)
  br label %17023

17023:                                            ; preds = %17022
  %17024 = load i32, ptr @test_count, align 4, !tbaa !5
  %17025 = add nsw i32 %17024, 1
  store i32 %17025, ptr @test_count, align 4, !tbaa !5
  %17026 = load ptr, ptr %504, align 8, !tbaa !9
  %17027 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %17026, ptr noundef @verify_host_accept_everything, ptr noundef %506)
  %17028 = icmp eq i32 %17027, -1
  br i1 %17028, label %17029, label %17082

17029:                                            ; preds = %17023
  br label %17030

17030:                                            ; preds = %17029
  br label %17031

17031:                                            ; preds = %17030
  call void @llvm.lifetime.start.p0(i64 4, ptr %507) #11
  %17032 = call ptr @__errno_location() #12
  %17033 = load i32, ptr %17032, align 4, !tbaa !5
  store i32 %17033, ptr %507, align 4, !tbaa !5
  %17034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17035 = call i32 @s2n_print_stacktrace(ptr noundef %17034)
  %17036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17037 = trunc i8 %17036 to i1
  br i1 %17037, label %17038, label %17060

17038:                                            ; preds = %17031
  %17039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17040 = call i32 @fileno(ptr noundef %17039) #11
  %17041 = call i32 @isatty(i32 noundef %17040) #11
  %17042 = icmp ne i32 %17041, 0
  br i1 %17042, label %17043, label %17060

17043:                                            ; preds = %17038
  %17044 = load i32, ptr %507, align 4, !tbaa !5
  %17045 = call ptr @__errno_location() #12
  store i32 %17044, ptr %17045, align 4, !tbaa !5
  %17046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17047 = load i32, ptr @test_count, align 4, !tbaa !5
  %17048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17049 = load i32, ptr %17048, align 4, !tbaa !5
  %17050 = call ptr @s2n_strerror(i32 noundef %17049, ptr noundef @.str.4)
  %17051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17052 = load i32, ptr %17051, align 4, !tbaa !5
  %17053 = call ptr @s2n_strerror_debug(i32 noundef %17052, ptr noundef @.str.4)
  %17054 = call ptr @__errno_location() #12
  %17055 = load i32, ptr %17054, align 4, !tbaa !5
  %17056 = call ptr @strerror(i32 noundef %17055) #11
  %17057 = call ptr @__errno_location() #12
  %17058 = load i32, ptr %17057, align 4, !tbaa !5
  %17059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17046, ptr noundef @.str.2, i32 noundef %17047, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1061, ptr noundef %17050, ptr noundef %17053, ptr noundef %17056, i32 noundef %17058) #11
  br label %17077

17060:                                            ; preds = %17038, %17031
  %17061 = load i32, ptr %507, align 4, !tbaa !5
  %17062 = call ptr @__errno_location() #12
  store i32 %17061, ptr %17062, align 4, !tbaa !5
  %17063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17064 = load i32, ptr @test_count, align 4, !tbaa !5
  %17065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17066 = load i32, ptr %17065, align 4, !tbaa !5
  %17067 = call ptr @s2n_strerror(i32 noundef %17066, ptr noundef @.str.4)
  %17068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17069 = load i32, ptr %17068, align 4, !tbaa !5
  %17070 = call ptr @s2n_strerror_debug(i32 noundef %17069, ptr noundef @.str.4)
  %17071 = call ptr @__errno_location() #12
  %17072 = load i32, ptr %17071, align 4, !tbaa !5
  %17073 = call ptr @strerror(i32 noundef %17072) #11
  %17074 = call ptr @__errno_location() #12
  %17075 = load i32, ptr %17074, align 4, !tbaa !5
  %17076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17063, ptr noundef @.str.5, i32 noundef %17064, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1061, ptr noundef %17067, ptr noundef %17070, ptr noundef %17073, i32 noundef %17075) #11
  br label %17077

17077:                                            ; preds = %17060, %17043
  call void @llvm.lifetime.end.p0(i64 4, ptr %507) #11
  br label %17078

17078:                                            ; preds = %17077
  br label %17079

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

17080:                                            ; No predecessors!
  br label %17081

17081:                                            ; preds = %17080
  br label %17082

17082:                                            ; preds = %17081, %17023
  br label %17083

17083:                                            ; preds = %17082
  br label %17084

17084:                                            ; preds = %17083
  call void @llvm.lifetime.start.p0(i64 40, ptr %508) #11
  call void @llvm.memset.p0.i64(ptr align 8 %508, i8 0, i64 40, i1 false)
  br label %17085

17085:                                            ; preds = %17084
  %17086 = load i32, ptr @test_count, align 4, !tbaa !5
  %17087 = add nsw i32 %17086, 1
  store i32 %17087, ptr @test_count, align 4, !tbaa !5
  %17088 = load ptr, ptr %504, align 8, !tbaa !9
  %17089 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %17088, ptr noundef @.str.72, ptr noundef %508)
  %17090 = getelementptr inbounds %struct.s2n_result, ptr %509, i32 0, i32 0
  store i32 %17089, ptr %17090, align 4
  %17091 = getelementptr inbounds %struct.s2n_result, ptr %509, i32 0, i32 0
  %17092 = load i32, ptr %17091, align 4
  %17093 = call zeroext i1 @s2n_result_is_ok(i32 %17092)
  br i1 %17093, label %17147, label %17094

17094:                                            ; preds = %17085
  br label %17095

17095:                                            ; preds = %17094
  br label %17096

17096:                                            ; preds = %17095
  call void @llvm.lifetime.start.p0(i64 4, ptr %510) #11
  %17097 = call ptr @__errno_location() #12
  %17098 = load i32, ptr %17097, align 4, !tbaa !5
  store i32 %17098, ptr %510, align 4, !tbaa !5
  %17099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17100 = call i32 @s2n_print_stacktrace(ptr noundef %17099)
  %17101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17102 = trunc i8 %17101 to i1
  br i1 %17102, label %17103, label %17125

17103:                                            ; preds = %17096
  %17104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17105 = call i32 @fileno(ptr noundef %17104) #11
  %17106 = call i32 @isatty(i32 noundef %17105) #11
  %17107 = icmp ne i32 %17106, 0
  br i1 %17107, label %17108, label %17125

17108:                                            ; preds = %17103
  %17109 = load i32, ptr %510, align 4, !tbaa !5
  %17110 = call ptr @__errno_location() #12
  store i32 %17109, ptr %17110, align 4, !tbaa !5
  %17111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17112 = load i32, ptr @test_count, align 4, !tbaa !5
  %17113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17114 = load i32, ptr %17113, align 4, !tbaa !5
  %17115 = call ptr @s2n_strerror(i32 noundef %17114, ptr noundef @.str.4)
  %17116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17117 = load i32, ptr %17116, align 4, !tbaa !5
  %17118 = call ptr @s2n_strerror_debug(i32 noundef %17117, ptr noundef @.str.4)
  %17119 = call ptr @__errno_location() #12
  %17120 = load i32, ptr %17119, align 4, !tbaa !5
  %17121 = call ptr @strerror(i32 noundef %17120) #11
  %17122 = call ptr @__errno_location() #12
  %17123 = load i32, ptr %17122, align 4, !tbaa !5
  %17124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17111, ptr noundef @.str.2, i32 noundef %17112, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1064, ptr noundef %17115, ptr noundef %17118, ptr noundef %17121, i32 noundef %17123) #11
  br label %17142

17125:                                            ; preds = %17103, %17096
  %17126 = load i32, ptr %510, align 4, !tbaa !5
  %17127 = call ptr @__errno_location() #12
  store i32 %17126, ptr %17127, align 4, !tbaa !5
  %17128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17129 = load i32, ptr @test_count, align 4, !tbaa !5
  %17130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17131 = load i32, ptr %17130, align 4, !tbaa !5
  %17132 = call ptr @s2n_strerror(i32 noundef %17131, ptr noundef @.str.4)
  %17133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17134 = load i32, ptr %17133, align 4, !tbaa !5
  %17135 = call ptr @s2n_strerror_debug(i32 noundef %17134, ptr noundef @.str.4)
  %17136 = call ptr @__errno_location() #12
  %17137 = load i32, ptr %17136, align 4, !tbaa !5
  %17138 = call ptr @strerror(i32 noundef %17137) #11
  %17139 = call ptr @__errno_location() #12
  %17140 = load i32, ptr %17139, align 4, !tbaa !5
  %17141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17128, ptr noundef @.str.5, i32 noundef %17129, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1064, ptr noundef %17132, ptr noundef %17135, ptr noundef %17138, i32 noundef %17140) #11
  br label %17142

17142:                                            ; preds = %17125, %17108
  call void @llvm.lifetime.end.p0(i64 4, ptr %510) #11
  br label %17143

17143:                                            ; preds = %17142
  br label %17144

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

17145:                                            ; No predecessors!
  br label %17146

17146:                                            ; preds = %17145
  br label %17147

17147:                                            ; preds = %17146, %17085
  br label %17148

17148:                                            ; preds = %17147
  br label %17149

17149:                                            ; preds = %17148
  call void @llvm.lifetime.start.p0(i64 4, ptr %511) #11
  %17150 = getelementptr inbounds %struct.s2n_stuffer, ptr %508, i32 0, i32 2
  %17151 = load i32, ptr %17150, align 4, !tbaa !15
  %17152 = getelementptr inbounds %struct.s2n_stuffer, ptr %508, i32 0, i32 1
  %17153 = load i32, ptr %17152, align 8, !tbaa !18
  %17154 = sub i32 %17151, %17153
  store i32 %17154, ptr %511, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %512) #11
  %17155 = load i32, ptr %511, align 4, !tbaa !5
  %17156 = call ptr @s2n_stuffer_raw_read(ptr noundef %508, i32 noundef %17155)
  store ptr %17156, ptr %512, align 8, !tbaa !9
  br label %17157

17157:                                            ; preds = %17149
  %17158 = load i32, ptr @test_count, align 4, !tbaa !5
  %17159 = add nsw i32 %17158, 1
  store i32 %17159, ptr @test_count, align 4, !tbaa !5
  %17160 = load ptr, ptr %512, align 8, !tbaa !9
  %17161 = icmp eq ptr %17160, null
  br i1 %17161, label %17162, label %17215

17162:                                            ; preds = %17157
  br label %17163

17163:                                            ; preds = %17162
  br label %17164

17164:                                            ; preds = %17163
  call void @llvm.lifetime.start.p0(i64 4, ptr %513) #11
  %17165 = call ptr @__errno_location() #12
  %17166 = load i32, ptr %17165, align 4, !tbaa !5
  store i32 %17166, ptr %513, align 4, !tbaa !5
  %17167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17168 = call i32 @s2n_print_stacktrace(ptr noundef %17167)
  %17169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17170 = trunc i8 %17169 to i1
  br i1 %17170, label %17171, label %17193

17171:                                            ; preds = %17164
  %17172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17173 = call i32 @fileno(ptr noundef %17172) #11
  %17174 = call i32 @isatty(i32 noundef %17173) #11
  %17175 = icmp ne i32 %17174, 0
  br i1 %17175, label %17176, label %17193

17176:                                            ; preds = %17171
  %17177 = load i32, ptr %513, align 4, !tbaa !5
  %17178 = call ptr @__errno_location() #12
  store i32 %17177, ptr %17178, align 4, !tbaa !5
  %17179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17180 = load i32, ptr @test_count, align 4, !tbaa !5
  %17181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17182 = load i32, ptr %17181, align 4, !tbaa !5
  %17183 = call ptr @s2n_strerror(i32 noundef %17182, ptr noundef @.str.4)
  %17184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17185 = load i32, ptr %17184, align 4, !tbaa !5
  %17186 = call ptr @s2n_strerror_debug(i32 noundef %17185, ptr noundef @.str.4)
  %17187 = call ptr @__errno_location() #12
  %17188 = load i32, ptr %17187, align 4, !tbaa !5
  %17189 = call ptr @strerror(i32 noundef %17188) #11
  %17190 = call ptr @__errno_location() #12
  %17191 = load i32, ptr %17190, align 4, !tbaa !5
  %17192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17179, ptr noundef @.str.2, i32 noundef %17180, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1067, ptr noundef %17183, ptr noundef %17186, ptr noundef %17189, i32 noundef %17191) #11
  br label %17210

17193:                                            ; preds = %17171, %17164
  %17194 = load i32, ptr %513, align 4, !tbaa !5
  %17195 = call ptr @__errno_location() #12
  store i32 %17194, ptr %17195, align 4, !tbaa !5
  %17196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17197 = load i32, ptr @test_count, align 4, !tbaa !5
  %17198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17199 = load i32, ptr %17198, align 4, !tbaa !5
  %17200 = call ptr @s2n_strerror(i32 noundef %17199, ptr noundef @.str.4)
  %17201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17202 = load i32, ptr %17201, align 4, !tbaa !5
  %17203 = call ptr @s2n_strerror_debug(i32 noundef %17202, ptr noundef @.str.4)
  %17204 = call ptr @__errno_location() #12
  %17205 = load i32, ptr %17204, align 4, !tbaa !5
  %17206 = call ptr @strerror(i32 noundef %17205) #11
  %17207 = call ptr @__errno_location() #12
  %17208 = load i32, ptr %17207, align 4, !tbaa !5
  %17209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17196, ptr noundef @.str.5, i32 noundef %17197, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1067, ptr noundef %17200, ptr noundef %17203, ptr noundef %17206, i32 noundef %17208) #11
  br label %17210

17210:                                            ; preds = %17193, %17176
  call void @llvm.lifetime.end.p0(i64 4, ptr %513) #11
  br label %17211

17211:                                            ; preds = %17210
  br label %17212

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

17213:                                            ; No predecessors!
  br label %17214

17214:                                            ; preds = %17213
  br label %17215

17215:                                            ; preds = %17214, %17157
  br label %17216

17216:                                            ; preds = %17215
  br label %17217

17217:                                            ; preds = %17216
  call void @llvm.lifetime.start.p0(i64 48, ptr %514) #11
  br label %17218

17218:                                            ; preds = %17217
  %17219 = load i32, ptr @test_count, align 4, !tbaa !5
  %17220 = add nsw i32 %17219, 1
  store i32 %17220, ptr @test_count, align 4, !tbaa !5
  %17221 = call i32 @s2n_pkey_zero_init(ptr noundef %514)
  %17222 = icmp eq i32 %17221, -1
  br i1 %17222, label %17223, label %17276

17223:                                            ; preds = %17218
  br label %17224

17224:                                            ; preds = %17223
  br label %17225

17225:                                            ; preds = %17224
  call void @llvm.lifetime.start.p0(i64 4, ptr %515) #11
  %17226 = call ptr @__errno_location() #12
  %17227 = load i32, ptr %17226, align 4, !tbaa !5
  store i32 %17227, ptr %515, align 4, !tbaa !5
  %17228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17229 = call i32 @s2n_print_stacktrace(ptr noundef %17228)
  %17230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17231 = trunc i8 %17230 to i1
  br i1 %17231, label %17232, label %17254

17232:                                            ; preds = %17225
  %17233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17234 = call i32 @fileno(ptr noundef %17233) #11
  %17235 = call i32 @isatty(i32 noundef %17234) #11
  %17236 = icmp ne i32 %17235, 0
  br i1 %17236, label %17237, label %17254

17237:                                            ; preds = %17232
  %17238 = load i32, ptr %515, align 4, !tbaa !5
  %17239 = call ptr @__errno_location() #12
  store i32 %17238, ptr %17239, align 4, !tbaa !5
  %17240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17241 = load i32, ptr @test_count, align 4, !tbaa !5
  %17242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17243 = load i32, ptr %17242, align 4, !tbaa !5
  %17244 = call ptr @s2n_strerror(i32 noundef %17243, ptr noundef @.str.4)
  %17245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17246 = load i32, ptr %17245, align 4, !tbaa !5
  %17247 = call ptr @s2n_strerror_debug(i32 noundef %17246, ptr noundef @.str.4)
  %17248 = call ptr @__errno_location() #12
  %17249 = load i32, ptr %17248, align 4, !tbaa !5
  %17250 = call ptr @strerror(i32 noundef %17249) #11
  %17251 = call ptr @__errno_location() #12
  %17252 = load i32, ptr %17251, align 4, !tbaa !5
  %17253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17240, ptr noundef @.str.2, i32 noundef %17241, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1070, ptr noundef %17244, ptr noundef %17247, ptr noundef %17250, i32 noundef %17252) #11
  br label %17271

17254:                                            ; preds = %17232, %17225
  %17255 = load i32, ptr %515, align 4, !tbaa !5
  %17256 = call ptr @__errno_location() #12
  store i32 %17255, ptr %17256, align 4, !tbaa !5
  %17257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17258 = load i32, ptr @test_count, align 4, !tbaa !5
  %17259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17260 = load i32, ptr %17259, align 4, !tbaa !5
  %17261 = call ptr @s2n_strerror(i32 noundef %17260, ptr noundef @.str.4)
  %17262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17263 = load i32, ptr %17262, align 4, !tbaa !5
  %17264 = call ptr @s2n_strerror_debug(i32 noundef %17263, ptr noundef @.str.4)
  %17265 = call ptr @__errno_location() #12
  %17266 = load i32, ptr %17265, align 4, !tbaa !5
  %17267 = call ptr @strerror(i32 noundef %17266) #11
  %17268 = call ptr @__errno_location() #12
  %17269 = load i32, ptr %17268, align 4, !tbaa !5
  %17270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17257, ptr noundef @.str.5, i32 noundef %17258, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1070, ptr noundef %17261, ptr noundef %17264, ptr noundef %17267, i32 noundef %17269) #11
  br label %17271

17271:                                            ; preds = %17254, %17237
  call void @llvm.lifetime.end.p0(i64 4, ptr %515) #11
  br label %17272

17272:                                            ; preds = %17271
  br label %17273

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

17274:                                            ; No predecessors!
  br label %17275

17275:                                            ; preds = %17274
  br label %17276

17276:                                            ; preds = %17275, %17218
  br label %17277

17277:                                            ; preds = %17276
  br label %17278

17278:                                            ; preds = %17277
  call void @llvm.lifetime.start.p0(i64 4, ptr %516) #11
  store i32 -1, ptr %516, align 4, !tbaa !5
  br label %17279

17279:                                            ; preds = %17278
  %17280 = load i32, ptr @test_count, align 4, !tbaa !5
  %17281 = add nsw i32 %17280, 1
  store i32 %17281, ptr @test_count, align 4, !tbaa !5
  %17282 = load ptr, ptr %504, align 8, !tbaa !9
  %17283 = load ptr, ptr %512, align 8, !tbaa !9
  %17284 = load i32, ptr %511, align 4, !tbaa !5
  %17285 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %503, ptr noundef %17282, ptr noundef %17283, i32 noundef %17284, ptr noundef %516, ptr noundef %514)
  %17286 = getelementptr inbounds %struct.s2n_result, ptr %517, i32 0, i32 0
  store i32 %17285, ptr %17286, align 4
  %17287 = getelementptr inbounds %struct.s2n_result, ptr %517, i32 0, i32 0
  %17288 = load i32, ptr %17287, align 4
  %17289 = call zeroext i1 @s2n_result_is_ok(i32 %17288)
  br i1 %17289, label %17343, label %17290

17290:                                            ; preds = %17279
  br label %17291

17291:                                            ; preds = %17290
  br label %17292

17292:                                            ; preds = %17291
  call void @llvm.lifetime.start.p0(i64 4, ptr %518) #11
  %17293 = call ptr @__errno_location() #12
  %17294 = load i32, ptr %17293, align 4, !tbaa !5
  store i32 %17294, ptr %518, align 4, !tbaa !5
  %17295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17296 = call i32 @s2n_print_stacktrace(ptr noundef %17295)
  %17297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17298 = trunc i8 %17297 to i1
  br i1 %17298, label %17299, label %17321

17299:                                            ; preds = %17292
  %17300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17301 = call i32 @fileno(ptr noundef %17300) #11
  %17302 = call i32 @isatty(i32 noundef %17301) #11
  %17303 = icmp ne i32 %17302, 0
  br i1 %17303, label %17304, label %17321

17304:                                            ; preds = %17299
  %17305 = load i32, ptr %518, align 4, !tbaa !5
  %17306 = call ptr @__errno_location() #12
  store i32 %17305, ptr %17306, align 4, !tbaa !5
  %17307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17308 = load i32, ptr @test_count, align 4, !tbaa !5
  %17309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17310 = load i32, ptr %17309, align 4, !tbaa !5
  %17311 = call ptr @s2n_strerror(i32 noundef %17310, ptr noundef @.str.4)
  %17312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17313 = load i32, ptr %17312, align 4, !tbaa !5
  %17314 = call ptr @s2n_strerror_debug(i32 noundef %17313, ptr noundef @.str.4)
  %17315 = call ptr @__errno_location() #12
  %17316 = load i32, ptr %17315, align 4, !tbaa !5
  %17317 = call ptr @strerror(i32 noundef %17316) #11
  %17318 = call ptr @__errno_location() #12
  %17319 = load i32, ptr %17318, align 4, !tbaa !5
  %17320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17307, ptr noundef @.str.2, i32 noundef %17308, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1072, ptr noundef %17311, ptr noundef %17314, ptr noundef %17317, i32 noundef %17319) #11
  br label %17338

17321:                                            ; preds = %17299, %17292
  %17322 = load i32, ptr %518, align 4, !tbaa !5
  %17323 = call ptr @__errno_location() #12
  store i32 %17322, ptr %17323, align 4, !tbaa !5
  %17324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17325 = load i32, ptr @test_count, align 4, !tbaa !5
  %17326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17327 = load i32, ptr %17326, align 4, !tbaa !5
  %17328 = call ptr @s2n_strerror(i32 noundef %17327, ptr noundef @.str.4)
  %17329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17330 = load i32, ptr %17329, align 4, !tbaa !5
  %17331 = call ptr @s2n_strerror_debug(i32 noundef %17330, ptr noundef @.str.4)
  %17332 = call ptr @__errno_location() #12
  %17333 = load i32, ptr %17332, align 4, !tbaa !5
  %17334 = call ptr @strerror(i32 noundef %17333) #11
  %17335 = call ptr @__errno_location() #12
  %17336 = load i32, ptr %17335, align 4, !tbaa !5
  %17337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17324, ptr noundef @.str.5, i32 noundef %17325, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1072, ptr noundef %17328, ptr noundef %17331, ptr noundef %17334, i32 noundef %17336) #11
  br label %17338

17338:                                            ; preds = %17321, %17304
  call void @llvm.lifetime.end.p0(i64 4, ptr %518) #11
  br label %17339

17339:                                            ; preds = %17338
  br label %17340

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

17341:                                            ; No predecessors!
  br label %17342

17342:                                            ; preds = %17341
  br label %17343

17343:                                            ; preds = %17342, %17279
  br label %17344

17344:                                            ; preds = %17343
  br label %17345

17345:                                            ; preds = %17344
  br label %17346

17346:                                            ; preds = %17345
  %17347 = load i32, ptr @test_count, align 4, !tbaa !5
  %17348 = add nsw i32 %17347, 1
  store i32 %17348, ptr @test_count, align 4, !tbaa !5
  %17349 = getelementptr inbounds %struct.host_verify_data, ptr %506, i32 0, i32 2
  %17350 = load i8, ptr %17349, align 1, !tbaa !19
  %17351 = zext i8 %17350 to i32
  %17352 = icmp eq i32 1, %17351
  br i1 %17352, label %17406, label %17353

17353:                                            ; preds = %17346
  br label %17354

17354:                                            ; preds = %17353
  br label %17355

17355:                                            ; preds = %17354
  call void @llvm.lifetime.start.p0(i64 4, ptr %519) #11
  %17356 = call ptr @__errno_location() #12
  %17357 = load i32, ptr %17356, align 4, !tbaa !5
  store i32 %17357, ptr %519, align 4, !tbaa !5
  %17358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17359 = call i32 @s2n_print_stacktrace(ptr noundef %17358)
  %17360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17361 = trunc i8 %17360 to i1
  br i1 %17361, label %17362, label %17384

17362:                                            ; preds = %17355
  %17363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17364 = call i32 @fileno(ptr noundef %17363) #11
  %17365 = call i32 @isatty(i32 noundef %17364) #11
  %17366 = icmp ne i32 %17365, 0
  br i1 %17366, label %17367, label %17384

17367:                                            ; preds = %17362
  %17368 = load i32, ptr %519, align 4, !tbaa !5
  %17369 = call ptr @__errno_location() #12
  store i32 %17368, ptr %17369, align 4, !tbaa !5
  %17370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17371 = load i32, ptr @test_count, align 4, !tbaa !5
  %17372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17373 = load i32, ptr %17372, align 4, !tbaa !5
  %17374 = call ptr @s2n_strerror(i32 noundef %17373, ptr noundef @.str.4)
  %17375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17376 = load i32, ptr %17375, align 4, !tbaa !5
  %17377 = call ptr @s2n_strerror_debug(i32 noundef %17376, ptr noundef @.str.4)
  %17378 = call ptr @__errno_location() #12
  %17379 = load i32, ptr %17378, align 4, !tbaa !5
  %17380 = call ptr @strerror(i32 noundef %17379) #11
  %17381 = call ptr @__errno_location() #12
  %17382 = load i32, ptr %17381, align 4, !tbaa !5
  %17383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17370, ptr noundef @.str.2, i32 noundef %17371, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1074, ptr noundef %17374, ptr noundef %17377, ptr noundef %17380, i32 noundef %17382) #11
  br label %17401

17384:                                            ; preds = %17362, %17355
  %17385 = load i32, ptr %519, align 4, !tbaa !5
  %17386 = call ptr @__errno_location() #12
  store i32 %17385, ptr %17386, align 4, !tbaa !5
  %17387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17388 = load i32, ptr @test_count, align 4, !tbaa !5
  %17389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17390 = load i32, ptr %17389, align 4, !tbaa !5
  %17391 = call ptr @s2n_strerror(i32 noundef %17390, ptr noundef @.str.4)
  %17392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17393 = load i32, ptr %17392, align 4, !tbaa !5
  %17394 = call ptr @s2n_strerror_debug(i32 noundef %17393, ptr noundef @.str.4)
  %17395 = call ptr @__errno_location() #12
  %17396 = load i32, ptr %17395, align 4, !tbaa !5
  %17397 = call ptr @strerror(i32 noundef %17396) #11
  %17398 = call ptr @__errno_location() #12
  %17399 = load i32, ptr %17398, align 4, !tbaa !5
  %17400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17387, ptr noundef @.str.5, i32 noundef %17388, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1074, ptr noundef %17391, ptr noundef %17394, ptr noundef %17397, i32 noundef %17399) #11
  br label %17401

17401:                                            ; preds = %17384, %17367
  call void @llvm.lifetime.end.p0(i64 4, ptr %519) #11
  br label %17402

17402:                                            ; preds = %17401
  br label %17403

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

17404:                                            ; No predecessors!
  br label %17405

17405:                                            ; preds = %17404
  br label %17406

17406:                                            ; preds = %17405, %17346
  br label %17407

17407:                                            ; preds = %17406
  br label %17408

17408:                                            ; preds = %17407
  call void @llvm.lifetime.start.p0(i64 8, ptr %520) #11
  %17409 = load ptr, ptr %504, align 8, !tbaa !9
  %17410 = getelementptr inbounds %struct.s2n_connection, ptr %17409, i32 0, i32 1
  %17411 = load ptr, ptr %17410, align 8, !tbaa !22
  %17412 = getelementptr inbounds %struct.s2n_config, ptr %17411, i32 0, i32 5
  %17413 = load ptr, ptr %17412, align 8, !tbaa !47
  store ptr %17413, ptr %520, align 8, !tbaa !9
  %17414 = load ptr, ptr %504, align 8, !tbaa !9
  %17415 = getelementptr inbounds %struct.s2n_connection, ptr %17414, i32 0, i32 1
  %17416 = load ptr, ptr %17415, align 8, !tbaa !22
  %17417 = call i32 @s2n_config_set_wall_clock(ptr noundef %17416, ptr noundef @fetch_expired_after_ocsp_timestamp, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 40, ptr %521) #11
  call void @llvm.memset.p0.i64(ptr align 8 %521, i8 0, i64 40, i1 false)
  br label %17418

17418:                                            ; preds = %17408
  %17419 = load i32, ptr @test_count, align 4, !tbaa !5
  %17420 = add nsw i32 %17419, 1
  store i32 %17420, ptr @test_count, align 4, !tbaa !5
  %17421 = call i32 @read_file(ptr noundef %521, ptr noundef @.str.74, i32 noundef 12000)
  %17422 = icmp eq i32 %17421, -1
  br i1 %17422, label %17423, label %17476

17423:                                            ; preds = %17418
  br label %17424

17424:                                            ; preds = %17423
  br label %17425

17425:                                            ; preds = %17424
  call void @llvm.lifetime.start.p0(i64 4, ptr %522) #11
  %17426 = call ptr @__errno_location() #12
  %17427 = load i32, ptr %17426, align 4, !tbaa !5
  store i32 %17427, ptr %522, align 4, !tbaa !5
  %17428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17429 = call i32 @s2n_print_stacktrace(ptr noundef %17428)
  %17430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17431 = trunc i8 %17430 to i1
  br i1 %17431, label %17432, label %17454

17432:                                            ; preds = %17425
  %17433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17434 = call i32 @fileno(ptr noundef %17433) #11
  %17435 = call i32 @isatty(i32 noundef %17434) #11
  %17436 = icmp ne i32 %17435, 0
  br i1 %17436, label %17437, label %17454

17437:                                            ; preds = %17432
  %17438 = load i32, ptr %522, align 4, !tbaa !5
  %17439 = call ptr @__errno_location() #12
  store i32 %17438, ptr %17439, align 4, !tbaa !5
  %17440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17441 = load i32, ptr @test_count, align 4, !tbaa !5
  %17442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17443 = load i32, ptr %17442, align 4, !tbaa !5
  %17444 = call ptr @s2n_strerror(i32 noundef %17443, ptr noundef @.str.4)
  %17445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17446 = load i32, ptr %17445, align 4, !tbaa !5
  %17447 = call ptr @s2n_strerror_debug(i32 noundef %17446, ptr noundef @.str.4)
  %17448 = call ptr @__errno_location() #12
  %17449 = load i32, ptr %17448, align 4, !tbaa !5
  %17450 = call ptr @strerror(i32 noundef %17449) #11
  %17451 = call ptr @__errno_location() #12
  %17452 = load i32, ptr %17451, align 4, !tbaa !5
  %17453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17440, ptr noundef @.str.2, i32 noundef %17441, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %17444, ptr noundef %17447, ptr noundef %17450, i32 noundef %17452) #11
  br label %17471

17454:                                            ; preds = %17432, %17425
  %17455 = load i32, ptr %522, align 4, !tbaa !5
  %17456 = call ptr @__errno_location() #12
  store i32 %17455, ptr %17456, align 4, !tbaa !5
  %17457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17458 = load i32, ptr @test_count, align 4, !tbaa !5
  %17459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17460 = load i32, ptr %17459, align 4, !tbaa !5
  %17461 = call ptr @s2n_strerror(i32 noundef %17460, ptr noundef @.str.4)
  %17462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17463 = load i32, ptr %17462, align 4, !tbaa !5
  %17464 = call ptr @s2n_strerror_debug(i32 noundef %17463, ptr noundef @.str.4)
  %17465 = call ptr @__errno_location() #12
  %17466 = load i32, ptr %17465, align 4, !tbaa !5
  %17467 = call ptr @strerror(i32 noundef %17466) #11
  %17468 = call ptr @__errno_location() #12
  %17469 = load i32, ptr %17468, align 4, !tbaa !5
  %17470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17457, ptr noundef @.str.5, i32 noundef %17458, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1079, ptr noundef %17461, ptr noundef %17464, ptr noundef %17467, i32 noundef %17469) #11
  br label %17471

17471:                                            ; preds = %17454, %17437
  call void @llvm.lifetime.end.p0(i64 4, ptr %522) #11
  br label %17472

17472:                                            ; preds = %17471
  br label %17473

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

17474:                                            ; No predecessors!
  br label %17475

17475:                                            ; preds = %17474
  br label %17476

17476:                                            ; preds = %17475, %17418
  br label %17477

17477:                                            ; preds = %17476
  br label %17478

17478:                                            ; preds = %17477
  call void @llvm.lifetime.start.p0(i64 4, ptr %523) #11
  %17479 = getelementptr inbounds %struct.s2n_stuffer, ptr %521, i32 0, i32 2
  %17480 = load i32, ptr %17479, align 4, !tbaa !15
  %17481 = getelementptr inbounds %struct.s2n_stuffer, ptr %521, i32 0, i32 1
  %17482 = load i32, ptr %17481, align 8, !tbaa !18
  %17483 = sub i32 %17480, %17482
  store i32 %17483, ptr %523, align 4, !tbaa !5
  br label %17484

17484:                                            ; preds = %17478
  %17485 = load i32, ptr @test_count, align 4, !tbaa !5
  %17486 = add nsw i32 %17485, 1
  store i32 %17486, ptr @test_count, align 4, !tbaa !5
  %17487 = load i32, ptr %523, align 4, !tbaa !5
  %17488 = icmp ugt i32 %17487, 0
  br i1 %17488, label %17542, label %17489

17489:                                            ; preds = %17484
  br label %17490

17490:                                            ; preds = %17489
  br label %17491

17491:                                            ; preds = %17490
  call void @llvm.lifetime.start.p0(i64 4, ptr %524) #11
  %17492 = call ptr @__errno_location() #12
  %17493 = load i32, ptr %17492, align 4, !tbaa !5
  store i32 %17493, ptr %524, align 4, !tbaa !5
  %17494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17495 = call i32 @s2n_print_stacktrace(ptr noundef %17494)
  %17496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17497 = trunc i8 %17496 to i1
  br i1 %17497, label %17498, label %17520

17498:                                            ; preds = %17491
  %17499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17500 = call i32 @fileno(ptr noundef %17499) #11
  %17501 = call i32 @isatty(i32 noundef %17500) #11
  %17502 = icmp ne i32 %17501, 0
  br i1 %17502, label %17503, label %17520

17503:                                            ; preds = %17498
  %17504 = load i32, ptr %524, align 4, !tbaa !5
  %17505 = call ptr @__errno_location() #12
  store i32 %17504, ptr %17505, align 4, !tbaa !5
  %17506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17507 = load i32, ptr @test_count, align 4, !tbaa !5
  %17508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17509 = load i32, ptr %17508, align 4, !tbaa !5
  %17510 = call ptr @s2n_strerror(i32 noundef %17509, ptr noundef @.str.4)
  %17511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17512 = load i32, ptr %17511, align 4, !tbaa !5
  %17513 = call ptr @s2n_strerror_debug(i32 noundef %17512, ptr noundef @.str.4)
  %17514 = call ptr @__errno_location() #12
  %17515 = load i32, ptr %17514, align 4, !tbaa !5
  %17516 = call ptr @strerror(i32 noundef %17515) #11
  %17517 = call ptr @__errno_location() #12
  %17518 = load i32, ptr %17517, align 4, !tbaa !5
  %17519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17506, ptr noundef @.str.2, i32 noundef %17507, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1081, ptr noundef %17510, ptr noundef %17513, ptr noundef %17516, i32 noundef %17518) #11
  br label %17537

17520:                                            ; preds = %17498, %17491
  %17521 = load i32, ptr %524, align 4, !tbaa !5
  %17522 = call ptr @__errno_location() #12
  store i32 %17521, ptr %17522, align 4, !tbaa !5
  %17523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17524 = load i32, ptr @test_count, align 4, !tbaa !5
  %17525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17526 = load i32, ptr %17525, align 4, !tbaa !5
  %17527 = call ptr @s2n_strerror(i32 noundef %17526, ptr noundef @.str.4)
  %17528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17529 = load i32, ptr %17528, align 4, !tbaa !5
  %17530 = call ptr @s2n_strerror_debug(i32 noundef %17529, ptr noundef @.str.4)
  %17531 = call ptr @__errno_location() #12
  %17532 = load i32, ptr %17531, align 4, !tbaa !5
  %17533 = call ptr @strerror(i32 noundef %17532) #11
  %17534 = call ptr @__errno_location() #12
  %17535 = load i32, ptr %17534, align 4, !tbaa !5
  %17536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17523, ptr noundef @.str.5, i32 noundef %17524, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1081, ptr noundef %17527, ptr noundef %17530, ptr noundef %17533, i32 noundef %17535) #11
  br label %17537

17537:                                            ; preds = %17520, %17503
  call void @llvm.lifetime.end.p0(i64 4, ptr %524) #11
  br label %17538

17538:                                            ; preds = %17537
  br label %17539

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

17540:                                            ; No predecessors!
  br label %17541

17541:                                            ; preds = %17540
  br label %17542

17542:                                            ; preds = %17541, %17484
  br label %17543

17543:                                            ; preds = %17542
  br label %17544

17544:                                            ; preds = %17543
  %17545 = call zeroext i1 @s2n_supports_large_time_t()
  br i1 %17545, label %17546, label %17751

17546:                                            ; preds = %17544
  br label %17547

17547:                                            ; preds = %17546
  br label %17548

17548:                                            ; preds = %17547
  br label %17549

17549:                                            ; preds = %17548
  %17550 = load i32, ptr @test_count, align 4, !tbaa !5
  %17551 = add nsw i32 %17550, 1
  store i32 %17551, ptr @test_count, align 4, !tbaa !5
  %17552 = load ptr, ptr %504, align 8, !tbaa !9
  %17553 = load i32, ptr %523, align 4, !tbaa !5
  %17554 = call ptr @s2n_stuffer_raw_read(ptr noundef %521, i32 noundef %17553)
  %17555 = load i32, ptr %523, align 4, !tbaa !5
  %17556 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %503, ptr noundef %17552, ptr noundef %17554, i32 noundef %17555)
  %17557 = getelementptr inbounds %struct.s2n_result, ptr %525, i32 0, i32 0
  store i32 %17556, ptr %17557, align 4
  %17558 = getelementptr inbounds %struct.s2n_result, ptr %525, i32 0, i32 0
  %17559 = load i32, ptr %17558, align 4
  %17560 = call zeroext i1 @s2n_result_is_error(i32 %17559)
  br i1 %17560, label %17614, label %17561

17561:                                            ; preds = %17549
  br label %17562

17562:                                            ; preds = %17561
  br label %17563

17563:                                            ; preds = %17562
  call void @llvm.lifetime.start.p0(i64 4, ptr %526) #11
  %17564 = call ptr @__errno_location() #12
  %17565 = load i32, ptr %17564, align 4, !tbaa !5
  store i32 %17565, ptr %526, align 4, !tbaa !5
  %17566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17567 = call i32 @s2n_print_stacktrace(ptr noundef %17566)
  %17568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17569 = trunc i8 %17568 to i1
  br i1 %17569, label %17570, label %17592

17570:                                            ; preds = %17563
  %17571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17572 = call i32 @fileno(ptr noundef %17571) #11
  %17573 = call i32 @isatty(i32 noundef %17572) #11
  %17574 = icmp ne i32 %17573, 0
  br i1 %17574, label %17575, label %17592

17575:                                            ; preds = %17570
  %17576 = load i32, ptr %526, align 4, !tbaa !5
  %17577 = call ptr @__errno_location() #12
  store i32 %17576, ptr %17577, align 4, !tbaa !5
  %17578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17579 = load i32, ptr @test_count, align 4, !tbaa !5
  %17580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17581 = load i32, ptr %17580, align 4, !tbaa !5
  %17582 = call ptr @s2n_strerror(i32 noundef %17581, ptr noundef @.str.4)
  %17583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17584 = load i32, ptr %17583, align 4, !tbaa !5
  %17585 = call ptr @s2n_strerror_debug(i32 noundef %17584, ptr noundef @.str.4)
  %17586 = call ptr @__errno_location() #12
  %17587 = load i32, ptr %17586, align 4, !tbaa !5
  %17588 = call ptr @strerror(i32 noundef %17587) #11
  %17589 = call ptr @__errno_location() #12
  %17590 = load i32, ptr %17589, align 4, !tbaa !5
  %17591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17578, ptr noundef @.str.2, i32 noundef %17579, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1086, ptr noundef %17582, ptr noundef %17585, ptr noundef %17588, i32 noundef %17590) #11
  br label %17609

17592:                                            ; preds = %17570, %17563
  %17593 = load i32, ptr %526, align 4, !tbaa !5
  %17594 = call ptr @__errno_location() #12
  store i32 %17593, ptr %17594, align 4, !tbaa !5
  %17595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17596 = load i32, ptr @test_count, align 4, !tbaa !5
  %17597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17598 = load i32, ptr %17597, align 4, !tbaa !5
  %17599 = call ptr @s2n_strerror(i32 noundef %17598, ptr noundef @.str.4)
  %17600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17601 = load i32, ptr %17600, align 4, !tbaa !5
  %17602 = call ptr @s2n_strerror_debug(i32 noundef %17601, ptr noundef @.str.4)
  %17603 = call ptr @__errno_location() #12
  %17604 = load i32, ptr %17603, align 4, !tbaa !5
  %17605 = call ptr @strerror(i32 noundef %17604) #11
  %17606 = call ptr @__errno_location() #12
  %17607 = load i32, ptr %17606, align 4, !tbaa !5
  %17608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17595, ptr noundef @.str.5, i32 noundef %17596, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1086, ptr noundef %17599, ptr noundef %17602, ptr noundef %17605, i32 noundef %17607) #11
  br label %17609

17609:                                            ; preds = %17592, %17575
  call void @llvm.lifetime.end.p0(i64 4, ptr %526) #11
  br label %17610

17610:                                            ; preds = %17609
  br label %17611

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

17612:                                            ; No predecessors!
  br label %17613

17613:                                            ; preds = %17612
  br label %17614

17614:                                            ; preds = %17613, %17549
  br label %17615

17615:                                            ; preds = %17614
  br label %17616

17616:                                            ; preds = %17615
  br label %17617

17617:                                            ; preds = %17616
  %17618 = load i32, ptr @test_count, align 4, !tbaa !5
  %17619 = add nsw i32 %17618, 1
  store i32 %17619, ptr @test_count, align 4, !tbaa !5
  %17620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17621 = load i32, ptr %17620, align 4, !tbaa !5
  %17622 = icmp eq i32 %17621, 335544369
  br i1 %17622, label %17676, label %17623

17623:                                            ; preds = %17617
  br label %17624

17624:                                            ; preds = %17623
  br label %17625

17625:                                            ; preds = %17624
  call void @llvm.lifetime.start.p0(i64 4, ptr %527) #11
  %17626 = call ptr @__errno_location() #12
  %17627 = load i32, ptr %17626, align 4, !tbaa !5
  store i32 %17627, ptr %527, align 4, !tbaa !5
  %17628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17629 = call i32 @s2n_print_stacktrace(ptr noundef %17628)
  %17630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17631 = trunc i8 %17630 to i1
  br i1 %17631, label %17632, label %17654

17632:                                            ; preds = %17625
  %17633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17634 = call i32 @fileno(ptr noundef %17633) #11
  %17635 = call i32 @isatty(i32 noundef %17634) #11
  %17636 = icmp ne i32 %17635, 0
  br i1 %17636, label %17637, label %17654

17637:                                            ; preds = %17632
  %17638 = load i32, ptr %527, align 4, !tbaa !5
  %17639 = call ptr @__errno_location() #12
  store i32 %17638, ptr %17639, align 4, !tbaa !5
  %17640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17641 = load i32, ptr @test_count, align 4, !tbaa !5
  %17642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17643 = load i32, ptr %17642, align 4, !tbaa !5
  %17644 = call ptr @s2n_strerror(i32 noundef %17643, ptr noundef @.str.4)
  %17645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17646 = load i32, ptr %17645, align 4, !tbaa !5
  %17647 = call ptr @s2n_strerror_debug(i32 noundef %17646, ptr noundef @.str.4)
  %17648 = call ptr @__errno_location() #12
  %17649 = load i32, ptr %17648, align 4, !tbaa !5
  %17650 = call ptr @strerror(i32 noundef %17649) #11
  %17651 = call ptr @__errno_location() #12
  %17652 = load i32, ptr %17651, align 4, !tbaa !5
  %17653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17640, ptr noundef @.str.2, i32 noundef %17641, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 1086, ptr noundef %17644, ptr noundef %17647, ptr noundef %17650, i32 noundef %17652) #11
  br label %17671

17654:                                            ; preds = %17632, %17625
  %17655 = load i32, ptr %527, align 4, !tbaa !5
  %17656 = call ptr @__errno_location() #12
  store i32 %17655, ptr %17656, align 4, !tbaa !5
  %17657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17658 = load i32, ptr @test_count, align 4, !tbaa !5
  %17659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17660 = load i32, ptr %17659, align 4, !tbaa !5
  %17661 = call ptr @s2n_strerror(i32 noundef %17660, ptr noundef @.str.4)
  %17662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17663 = load i32, ptr %17662, align 4, !tbaa !5
  %17664 = call ptr @s2n_strerror_debug(i32 noundef %17663, ptr noundef @.str.4)
  %17665 = call ptr @__errno_location() #12
  %17666 = load i32, ptr %17665, align 4, !tbaa !5
  %17667 = call ptr @strerror(i32 noundef %17666) #11
  %17668 = call ptr @__errno_location() #12
  %17669 = load i32, ptr %17668, align 4, !tbaa !5
  %17670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17657, ptr noundef @.str.5, i32 noundef %17658, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 1086, ptr noundef %17661, ptr noundef %17664, ptr noundef %17667, i32 noundef %17669) #11
  br label %17671

17671:                                            ; preds = %17654, %17637
  call void @llvm.lifetime.end.p0(i64 4, ptr %527) #11
  br label %17672

17672:                                            ; preds = %17671
  br label %17673

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

17674:                                            ; No predecessors!
  br label %17675

17675:                                            ; preds = %17674
  br label %17676

17676:                                            ; preds = %17675, %17617
  br label %17677

17677:                                            ; preds = %17676
  br label %17678

17678:                                            ; preds = %17677
  br label %17679

17679:                                            ; preds = %17678
  %17680 = load i32, ptr @test_count, align 4, !tbaa !5
  %17681 = add nsw i32 %17680, 1
  store i32 %17681, ptr @test_count, align 4, !tbaa !5
  %17682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17683 = load i32, ptr %17682, align 4, !tbaa !5
  %17684 = call ptr @s2n_strerror_debug(i32 noundef %17683, ptr noundef @.str.4)
  %17685 = icmp eq ptr %17684, null
  br i1 %17685, label %17686, label %17739

17686:                                            ; preds = %17679
  br label %17687

17687:                                            ; preds = %17686
  br label %17688

17688:                                            ; preds = %17687
  call void @llvm.lifetime.start.p0(i64 4, ptr %528) #11
  %17689 = call ptr @__errno_location() #12
  %17690 = load i32, ptr %17689, align 4, !tbaa !5
  store i32 %17690, ptr %528, align 4, !tbaa !5
  %17691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17692 = call i32 @s2n_print_stacktrace(ptr noundef %17691)
  %17693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17694 = trunc i8 %17693 to i1
  br i1 %17694, label %17695, label %17717

17695:                                            ; preds = %17688
  %17696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17697 = call i32 @fileno(ptr noundef %17696) #11
  %17698 = call i32 @isatty(i32 noundef %17697) #11
  %17699 = icmp ne i32 %17698, 0
  br i1 %17699, label %17700, label %17717

17700:                                            ; preds = %17695
  %17701 = load i32, ptr %528, align 4, !tbaa !5
  %17702 = call ptr @__errno_location() #12
  store i32 %17701, ptr %17702, align 4, !tbaa !5
  %17703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17704 = load i32, ptr @test_count, align 4, !tbaa !5
  %17705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17706 = load i32, ptr %17705, align 4, !tbaa !5
  %17707 = call ptr @s2n_strerror(i32 noundef %17706, ptr noundef @.str.4)
  %17708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17709 = load i32, ptr %17708, align 4, !tbaa !5
  %17710 = call ptr @s2n_strerror_debug(i32 noundef %17709, ptr noundef @.str.4)
  %17711 = call ptr @__errno_location() #12
  %17712 = load i32, ptr %17711, align 4, !tbaa !5
  %17713 = call ptr @strerror(i32 noundef %17712) #11
  %17714 = call ptr @__errno_location() #12
  %17715 = load i32, ptr %17714, align 4, !tbaa !5
  %17716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17703, ptr noundef @.str.2, i32 noundef %17704, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1086, ptr noundef %17707, ptr noundef %17710, ptr noundef %17713, i32 noundef %17715) #11
  br label %17734

17717:                                            ; preds = %17695, %17688
  %17718 = load i32, ptr %528, align 4, !tbaa !5
  %17719 = call ptr @__errno_location() #12
  store i32 %17718, ptr %17719, align 4, !tbaa !5
  %17720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17721 = load i32, ptr @test_count, align 4, !tbaa !5
  %17722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17723 = load i32, ptr %17722, align 4, !tbaa !5
  %17724 = call ptr @s2n_strerror(i32 noundef %17723, ptr noundef @.str.4)
  %17725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17726 = load i32, ptr %17725, align 4, !tbaa !5
  %17727 = call ptr @s2n_strerror_debug(i32 noundef %17726, ptr noundef @.str.4)
  %17728 = call ptr @__errno_location() #12
  %17729 = load i32, ptr %17728, align 4, !tbaa !5
  %17730 = call ptr @strerror(i32 noundef %17729) #11
  %17731 = call ptr @__errno_location() #12
  %17732 = load i32, ptr %17731, align 4, !tbaa !5
  %17733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17720, ptr noundef @.str.5, i32 noundef %17721, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1086, ptr noundef %17724, ptr noundef %17727, ptr noundef %17730, i32 noundef %17732) #11
  br label %17734

17734:                                            ; preds = %17717, %17700
  call void @llvm.lifetime.end.p0(i64 4, ptr %528) #11
  br label %17735

17735:                                            ; preds = %17734
  br label %17736

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

17737:                                            ; No predecessors!
  br label %17738

17738:                                            ; preds = %17737
  br label %17739

17739:                                            ; preds = %17738, %17679
  br label %17740

17740:                                            ; preds = %17739
  br label %17741

17741:                                            ; preds = %17740
  br label %17742

17742:                                            ; preds = %17741
  br label %17743

17743:                                            ; preds = %17742
  br label %17744

17744:                                            ; preds = %17743
  %17745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17745, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17746 = call ptr @__errno_location() #12
  store i32 0, ptr %17746, align 4, !tbaa !5
  br label %17747

17747:                                            ; preds = %17744
  br label %17748

17748:                                            ; preds = %17747
  br label %17749

17749:                                            ; preds = %17748
  br label %17750

17750:                                            ; preds = %17749
  br label %17956

17751:                                            ; preds = %17544
  br label %17752

17752:                                            ; preds = %17751
  br label %17753

17753:                                            ; preds = %17752
  br label %17754

17754:                                            ; preds = %17753
  %17755 = load i32, ptr @test_count, align 4, !tbaa !5
  %17756 = add nsw i32 %17755, 1
  store i32 %17756, ptr @test_count, align 4, !tbaa !5
  %17757 = load ptr, ptr %504, align 8, !tbaa !9
  %17758 = load i32, ptr %523, align 4, !tbaa !5
  %17759 = call ptr @s2n_stuffer_raw_read(ptr noundef %521, i32 noundef %17758)
  %17760 = load i32, ptr %523, align 4, !tbaa !5
  %17761 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %503, ptr noundef %17757, ptr noundef %17759, i32 noundef %17760)
  %17762 = getelementptr inbounds %struct.s2n_result, ptr %529, i32 0, i32 0
  store i32 %17761, ptr %17762, align 4
  %17763 = getelementptr inbounds %struct.s2n_result, ptr %529, i32 0, i32 0
  %17764 = load i32, ptr %17763, align 4
  %17765 = call zeroext i1 @s2n_result_is_error(i32 %17764)
  br i1 %17765, label %17819, label %17766

17766:                                            ; preds = %17754
  br label %17767

17767:                                            ; preds = %17766
  br label %17768

17768:                                            ; preds = %17767
  call void @llvm.lifetime.start.p0(i64 4, ptr %530) #11
  %17769 = call ptr @__errno_location() #12
  %17770 = load i32, ptr %17769, align 4, !tbaa !5
  store i32 %17770, ptr %530, align 4, !tbaa !5
  %17771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17772 = call i32 @s2n_print_stacktrace(ptr noundef %17771)
  %17773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17774 = trunc i8 %17773 to i1
  br i1 %17774, label %17775, label %17797

17775:                                            ; preds = %17768
  %17776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17777 = call i32 @fileno(ptr noundef %17776) #11
  %17778 = call i32 @isatty(i32 noundef %17777) #11
  %17779 = icmp ne i32 %17778, 0
  br i1 %17779, label %17780, label %17797

17780:                                            ; preds = %17775
  %17781 = load i32, ptr %530, align 4, !tbaa !5
  %17782 = call ptr @__errno_location() #12
  store i32 %17781, ptr %17782, align 4, !tbaa !5
  %17783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17784 = load i32, ptr @test_count, align 4, !tbaa !5
  %17785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17786 = load i32, ptr %17785, align 4, !tbaa !5
  %17787 = call ptr @s2n_strerror(i32 noundef %17786, ptr noundef @.str.4)
  %17788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17789 = load i32, ptr %17788, align 4, !tbaa !5
  %17790 = call ptr @s2n_strerror_debug(i32 noundef %17789, ptr noundef @.str.4)
  %17791 = call ptr @__errno_location() #12
  %17792 = load i32, ptr %17791, align 4, !tbaa !5
  %17793 = call ptr @strerror(i32 noundef %17792) #11
  %17794 = call ptr @__errno_location() #12
  %17795 = load i32, ptr %17794, align 4, !tbaa !5
  %17796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17783, ptr noundef @.str.2, i32 noundef %17784, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1093, ptr noundef %17787, ptr noundef %17790, ptr noundef %17793, i32 noundef %17795) #11
  br label %17814

17797:                                            ; preds = %17775, %17768
  %17798 = load i32, ptr %530, align 4, !tbaa !5
  %17799 = call ptr @__errno_location() #12
  store i32 %17798, ptr %17799, align 4, !tbaa !5
  %17800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17801 = load i32, ptr @test_count, align 4, !tbaa !5
  %17802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17803 = load i32, ptr %17802, align 4, !tbaa !5
  %17804 = call ptr @s2n_strerror(i32 noundef %17803, ptr noundef @.str.4)
  %17805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17806 = load i32, ptr %17805, align 4, !tbaa !5
  %17807 = call ptr @s2n_strerror_debug(i32 noundef %17806, ptr noundef @.str.4)
  %17808 = call ptr @__errno_location() #12
  %17809 = load i32, ptr %17808, align 4, !tbaa !5
  %17810 = call ptr @strerror(i32 noundef %17809) #11
  %17811 = call ptr @__errno_location() #12
  %17812 = load i32, ptr %17811, align 4, !tbaa !5
  %17813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17800, ptr noundef @.str.5, i32 noundef %17801, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1093, ptr noundef %17804, ptr noundef %17807, ptr noundef %17810, i32 noundef %17812) #11
  br label %17814

17814:                                            ; preds = %17797, %17780
  call void @llvm.lifetime.end.p0(i64 4, ptr %530) #11
  br label %17815

17815:                                            ; preds = %17814
  br label %17816

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

17817:                                            ; No predecessors!
  br label %17818

17818:                                            ; preds = %17817
  br label %17819

17819:                                            ; preds = %17818, %17754
  br label %17820

17820:                                            ; preds = %17819
  br label %17821

17821:                                            ; preds = %17820
  br label %17822

17822:                                            ; preds = %17821
  %17823 = load i32, ptr @test_count, align 4, !tbaa !5
  %17824 = add nsw i32 %17823, 1
  store i32 %17824, ptr @test_count, align 4, !tbaa !5
  %17825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17826 = load i32, ptr %17825, align 4, !tbaa !5
  %17827 = icmp eq i32 %17826, 402653194
  br i1 %17827, label %17881, label %17828

17828:                                            ; preds = %17822
  br label %17829

17829:                                            ; preds = %17828
  br label %17830

17830:                                            ; preds = %17829
  call void @llvm.lifetime.start.p0(i64 4, ptr %531) #11
  %17831 = call ptr @__errno_location() #12
  %17832 = load i32, ptr %17831, align 4, !tbaa !5
  store i32 %17832, ptr %531, align 4, !tbaa !5
  %17833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17834 = call i32 @s2n_print_stacktrace(ptr noundef %17833)
  %17835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17836 = trunc i8 %17835 to i1
  br i1 %17836, label %17837, label %17859

17837:                                            ; preds = %17830
  %17838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17839 = call i32 @fileno(ptr noundef %17838) #11
  %17840 = call i32 @isatty(i32 noundef %17839) #11
  %17841 = icmp ne i32 %17840, 0
  br i1 %17841, label %17842, label %17859

17842:                                            ; preds = %17837
  %17843 = load i32, ptr %531, align 4, !tbaa !5
  %17844 = call ptr @__errno_location() #12
  store i32 %17843, ptr %17844, align 4, !tbaa !5
  %17845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17846 = load i32, ptr @test_count, align 4, !tbaa !5
  %17847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17848 = load i32, ptr %17847, align 4, !tbaa !5
  %17849 = call ptr @s2n_strerror(i32 noundef %17848, ptr noundef @.str.4)
  %17850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17851 = load i32, ptr %17850, align 4, !tbaa !5
  %17852 = call ptr @s2n_strerror_debug(i32 noundef %17851, ptr noundef @.str.4)
  %17853 = call ptr @__errno_location() #12
  %17854 = load i32, ptr %17853, align 4, !tbaa !5
  %17855 = call ptr @strerror(i32 noundef %17854) #11
  %17856 = call ptr @__errno_location() #12
  %17857 = load i32, ptr %17856, align 4, !tbaa !5
  %17858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17845, ptr noundef @.str.2, i32 noundef %17846, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 1093, ptr noundef %17849, ptr noundef %17852, ptr noundef %17855, i32 noundef %17857) #11
  br label %17876

17859:                                            ; preds = %17837, %17830
  %17860 = load i32, ptr %531, align 4, !tbaa !5
  %17861 = call ptr @__errno_location() #12
  store i32 %17860, ptr %17861, align 4, !tbaa !5
  %17862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17863 = load i32, ptr @test_count, align 4, !tbaa !5
  %17864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17865 = load i32, ptr %17864, align 4, !tbaa !5
  %17866 = call ptr @s2n_strerror(i32 noundef %17865, ptr noundef @.str.4)
  %17867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17868 = load i32, ptr %17867, align 4, !tbaa !5
  %17869 = call ptr @s2n_strerror_debug(i32 noundef %17868, ptr noundef @.str.4)
  %17870 = call ptr @__errno_location() #12
  %17871 = load i32, ptr %17870, align 4, !tbaa !5
  %17872 = call ptr @strerror(i32 noundef %17871) #11
  %17873 = call ptr @__errno_location() #12
  %17874 = load i32, ptr %17873, align 4, !tbaa !5
  %17875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17862, ptr noundef @.str.5, i32 noundef %17863, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 1093, ptr noundef %17866, ptr noundef %17869, ptr noundef %17872, i32 noundef %17874) #11
  br label %17876

17876:                                            ; preds = %17859, %17842
  call void @llvm.lifetime.end.p0(i64 4, ptr %531) #11
  br label %17877

17877:                                            ; preds = %17876
  br label %17878

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

17879:                                            ; No predecessors!
  br label %17880

17880:                                            ; preds = %17879
  br label %17881

17881:                                            ; preds = %17880, %17822
  br label %17882

17882:                                            ; preds = %17881
  br label %17883

17883:                                            ; preds = %17882
  br label %17884

17884:                                            ; preds = %17883
  %17885 = load i32, ptr @test_count, align 4, !tbaa !5
  %17886 = add nsw i32 %17885, 1
  store i32 %17886, ptr @test_count, align 4, !tbaa !5
  %17887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17888 = load i32, ptr %17887, align 4, !tbaa !5
  %17889 = call ptr @s2n_strerror_debug(i32 noundef %17888, ptr noundef @.str.4)
  %17890 = icmp eq ptr %17889, null
  br i1 %17890, label %17891, label %17944

17891:                                            ; preds = %17884
  br label %17892

17892:                                            ; preds = %17891
  br label %17893

17893:                                            ; preds = %17892
  call void @llvm.lifetime.start.p0(i64 4, ptr %532) #11
  %17894 = call ptr @__errno_location() #12
  %17895 = load i32, ptr %17894, align 4, !tbaa !5
  store i32 %17895, ptr %532, align 4, !tbaa !5
  %17896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17897 = call i32 @s2n_print_stacktrace(ptr noundef %17896)
  %17898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17899 = trunc i8 %17898 to i1
  br i1 %17899, label %17900, label %17922

17900:                                            ; preds = %17893
  %17901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17902 = call i32 @fileno(ptr noundef %17901) #11
  %17903 = call i32 @isatty(i32 noundef %17902) #11
  %17904 = icmp ne i32 %17903, 0
  br i1 %17904, label %17905, label %17922

17905:                                            ; preds = %17900
  %17906 = load i32, ptr %532, align 4, !tbaa !5
  %17907 = call ptr @__errno_location() #12
  store i32 %17906, ptr %17907, align 4, !tbaa !5
  %17908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17909 = load i32, ptr @test_count, align 4, !tbaa !5
  %17910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17911 = load i32, ptr %17910, align 4, !tbaa !5
  %17912 = call ptr @s2n_strerror(i32 noundef %17911, ptr noundef @.str.4)
  %17913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17914 = load i32, ptr %17913, align 4, !tbaa !5
  %17915 = call ptr @s2n_strerror_debug(i32 noundef %17914, ptr noundef @.str.4)
  %17916 = call ptr @__errno_location() #12
  %17917 = load i32, ptr %17916, align 4, !tbaa !5
  %17918 = call ptr @strerror(i32 noundef %17917) #11
  %17919 = call ptr @__errno_location() #12
  %17920 = load i32, ptr %17919, align 4, !tbaa !5
  %17921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17908, ptr noundef @.str.2, i32 noundef %17909, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1093, ptr noundef %17912, ptr noundef %17915, ptr noundef %17918, i32 noundef %17920) #11
  br label %17939

17922:                                            ; preds = %17900, %17893
  %17923 = load i32, ptr %532, align 4, !tbaa !5
  %17924 = call ptr @__errno_location() #12
  store i32 %17923, ptr %17924, align 4, !tbaa !5
  %17925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17926 = load i32, ptr @test_count, align 4, !tbaa !5
  %17927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17928 = load i32, ptr %17927, align 4, !tbaa !5
  %17929 = call ptr @s2n_strerror(i32 noundef %17928, ptr noundef @.str.4)
  %17930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17931 = load i32, ptr %17930, align 4, !tbaa !5
  %17932 = call ptr @s2n_strerror_debug(i32 noundef %17931, ptr noundef @.str.4)
  %17933 = call ptr @__errno_location() #12
  %17934 = load i32, ptr %17933, align 4, !tbaa !5
  %17935 = call ptr @strerror(i32 noundef %17934) #11
  %17936 = call ptr @__errno_location() #12
  %17937 = load i32, ptr %17936, align 4, !tbaa !5
  %17938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17925, ptr noundef @.str.5, i32 noundef %17926, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1093, ptr noundef %17929, ptr noundef %17932, ptr noundef %17935, i32 noundef %17937) #11
  br label %17939

17939:                                            ; preds = %17922, %17905
  call void @llvm.lifetime.end.p0(i64 4, ptr %532) #11
  br label %17940

17940:                                            ; preds = %17939
  br label %17941

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

17942:                                            ; No predecessors!
  br label %17943

17943:                                            ; preds = %17942
  br label %17944

17944:                                            ; preds = %17943, %17884
  br label %17945

17945:                                            ; preds = %17944
  br label %17946

17946:                                            ; preds = %17945
  br label %17947

17947:                                            ; preds = %17946
  br label %17948

17948:                                            ; preds = %17947
  br label %17949

17949:                                            ; preds = %17948
  %17950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17950, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17951 = call ptr @__errno_location() #12
  store i32 0, ptr %17951, align 4, !tbaa !5
  br label %17952

17952:                                            ; preds = %17949
  br label %17953

17953:                                            ; preds = %17952
  br label %17954

17954:                                            ; preds = %17953
  br label %17955

17955:                                            ; preds = %17954
  br label %17956

17956:                                            ; preds = %17955, %17750
  %17957 = load ptr, ptr %504, align 8, !tbaa !9
  %17958 = getelementptr inbounds %struct.s2n_connection, ptr %17957, i32 0, i32 1
  %17959 = load ptr, ptr %17958, align 8, !tbaa !22
  %17960 = load ptr, ptr %520, align 8, !tbaa !9
  %17961 = call i32 @s2n_config_set_wall_clock(ptr noundef %17959, ptr noundef %17960, ptr noundef null)
  %17962 = call i32 @s2n_stuffer_free(ptr noundef %521)
  %17963 = load ptr, ptr %504, align 8, !tbaa !9
  %17964 = call i32 @s2n_connection_free(ptr noundef %17963)
  %17965 = call i32 @s2n_pkey_free(ptr noundef %514)
  %17966 = call i32 @s2n_x509_validator_wipe(ptr noundef %503)
  call void @s2n_x509_trust_store_wipe(ptr noundef %501)
  call void @llvm.lifetime.end.p0(i64 4, ptr %523) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %521) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %520) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %516) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %514) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %512) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %511) #11
  %17967 = call i32 @s2n_stuffer_free(ptr noundef %508)
  call void @llvm.lifetime.end.p0(i64 40, ptr %508) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %506) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %504) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %503) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %501) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %533) #11
  call void @llvm.memset.p0.i64(ptr align 8 %533, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef %533)
  br label %17968

17968:                                            ; preds = %17956
  %17969 = load i32, ptr @test_count, align 4, !tbaa !5
  %17970 = add nsw i32 %17969, 1
  store i32 %17970, ptr @test_count, align 4, !tbaa !5
  %17971 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %533, ptr noundef @.str.48, ptr noundef null)
  %17972 = icmp eq i32 %17971, -1
  br i1 %17972, label %17973, label %18026

17973:                                            ; preds = %17968
  br label %17974

17974:                                            ; preds = %17973
  br label %17975

17975:                                            ; preds = %17974
  call void @llvm.lifetime.start.p0(i64 4, ptr %534) #11
  %17976 = call ptr @__errno_location() #12
  %17977 = load i32, ptr %17976, align 4, !tbaa !5
  store i32 %17977, ptr %534, align 4, !tbaa !5
  %17978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17979 = call i32 @s2n_print_stacktrace(ptr noundef %17978)
  %17980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17981 = trunc i8 %17980 to i1
  br i1 %17981, label %17982, label %18004

17982:                                            ; preds = %17975
  %17983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17984 = call i32 @fileno(ptr noundef %17983) #11
  %17985 = call i32 @isatty(i32 noundef %17984) #11
  %17986 = icmp ne i32 %17985, 0
  br i1 %17986, label %17987, label %18004

17987:                                            ; preds = %17982
  %17988 = load i32, ptr %534, align 4, !tbaa !5
  %17989 = call ptr @__errno_location() #12
  store i32 %17988, ptr %17989, align 4, !tbaa !5
  %17990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17991 = load i32, ptr @test_count, align 4, !tbaa !5
  %17992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17993 = load i32, ptr %17992, align 4, !tbaa !5
  %17994 = call ptr @s2n_strerror(i32 noundef %17993, ptr noundef @.str.4)
  %17995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17996 = load i32, ptr %17995, align 4, !tbaa !5
  %17997 = call ptr @s2n_strerror_debug(i32 noundef %17996, ptr noundef @.str.4)
  %17998 = call ptr @__errno_location() #12
  %17999 = load i32, ptr %17998, align 4, !tbaa !5
  %18000 = call ptr @strerror(i32 noundef %17999) #11
  %18001 = call ptr @__errno_location() #12
  %18002 = load i32, ptr %18001, align 4, !tbaa !5
  %18003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17990, ptr noundef @.str.2, i32 noundef %17991, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1113, ptr noundef %17994, ptr noundef %17997, ptr noundef %18000, i32 noundef %18002) #11
  br label %18021

18004:                                            ; preds = %17982, %17975
  %18005 = load i32, ptr %534, align 4, !tbaa !5
  %18006 = call ptr @__errno_location() #12
  store i32 %18005, ptr %18006, align 4, !tbaa !5
  %18007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18008 = load i32, ptr @test_count, align 4, !tbaa !5
  %18009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18010 = load i32, ptr %18009, align 4, !tbaa !5
  %18011 = call ptr @s2n_strerror(i32 noundef %18010, ptr noundef @.str.4)
  %18012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18013 = load i32, ptr %18012, align 4, !tbaa !5
  %18014 = call ptr @s2n_strerror_debug(i32 noundef %18013, ptr noundef @.str.4)
  %18015 = call ptr @__errno_location() #12
  %18016 = load i32, ptr %18015, align 4, !tbaa !5
  %18017 = call ptr @strerror(i32 noundef %18016) #11
  %18018 = call ptr @__errno_location() #12
  %18019 = load i32, ptr %18018, align 4, !tbaa !5
  %18020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18007, ptr noundef @.str.5, i32 noundef %18008, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1113, ptr noundef %18011, ptr noundef %18014, ptr noundef %18017, i32 noundef %18019) #11
  br label %18021

18021:                                            ; preds = %18004, %17987
  call void @llvm.lifetime.end.p0(i64 4, ptr %534) #11
  br label %18022

18022:                                            ; preds = %18021
  br label %18023

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

18024:                                            ; No predecessors!
  br label %18025

18025:                                            ; preds = %18024
  br label %18026

18026:                                            ; preds = %18025, %17968
  br label %18027

18027:                                            ; preds = %18026
  br label %18028

18028:                                            ; preds = %18027
  call void @llvm.lifetime.start.p0(i64 56, ptr %535) #11
  call void @llvm.memset.p0.i64(ptr align 8 %535, i8 0, i64 56, i1 false)
  br label %18029

18029:                                            ; preds = %18028
  %18030 = load i32, ptr @test_count, align 4, !tbaa !5
  %18031 = add nsw i32 %18030, 1
  store i32 %18031, ptr @test_count, align 4, !tbaa !5
  %18032 = call i32 @s2n_x509_validator_init(ptr noundef %535, ptr noundef %533, i8 noundef zeroext 1)
  %18033 = icmp eq i32 %18032, -1
  br i1 %18033, label %18034, label %18087

18034:                                            ; preds = %18029
  br label %18035

18035:                                            ; preds = %18034
  br label %18036

18036:                                            ; preds = %18035
  call void @llvm.lifetime.start.p0(i64 4, ptr %536) #11
  %18037 = call ptr @__errno_location() #12
  %18038 = load i32, ptr %18037, align 4, !tbaa !5
  store i32 %18038, ptr %536, align 4, !tbaa !5
  %18039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18040 = call i32 @s2n_print_stacktrace(ptr noundef %18039)
  %18041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18042 = trunc i8 %18041 to i1
  br i1 %18042, label %18043, label %18065

18043:                                            ; preds = %18036
  %18044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18045 = call i32 @fileno(ptr noundef %18044) #11
  %18046 = call i32 @isatty(i32 noundef %18045) #11
  %18047 = icmp ne i32 %18046, 0
  br i1 %18047, label %18048, label %18065

18048:                                            ; preds = %18043
  %18049 = load i32, ptr %536, align 4, !tbaa !5
  %18050 = call ptr @__errno_location() #12
  store i32 %18049, ptr %18050, align 4, !tbaa !5
  %18051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18052 = load i32, ptr @test_count, align 4, !tbaa !5
  %18053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18054 = load i32, ptr %18053, align 4, !tbaa !5
  %18055 = call ptr @s2n_strerror(i32 noundef %18054, ptr noundef @.str.4)
  %18056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18057 = load i32, ptr %18056, align 4, !tbaa !5
  %18058 = call ptr @s2n_strerror_debug(i32 noundef %18057, ptr noundef @.str.4)
  %18059 = call ptr @__errno_location() #12
  %18060 = load i32, ptr %18059, align 4, !tbaa !5
  %18061 = call ptr @strerror(i32 noundef %18060) #11
  %18062 = call ptr @__errno_location() #12
  %18063 = load i32, ptr %18062, align 4, !tbaa !5
  %18064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18051, ptr noundef @.str.2, i32 noundef %18052, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1116, ptr noundef %18055, ptr noundef %18058, ptr noundef %18061, i32 noundef %18063) #11
  br label %18082

18065:                                            ; preds = %18043, %18036
  %18066 = load i32, ptr %536, align 4, !tbaa !5
  %18067 = call ptr @__errno_location() #12
  store i32 %18066, ptr %18067, align 4, !tbaa !5
  %18068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18069 = load i32, ptr @test_count, align 4, !tbaa !5
  %18070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18071 = load i32, ptr %18070, align 4, !tbaa !5
  %18072 = call ptr @s2n_strerror(i32 noundef %18071, ptr noundef @.str.4)
  %18073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18074 = load i32, ptr %18073, align 4, !tbaa !5
  %18075 = call ptr @s2n_strerror_debug(i32 noundef %18074, ptr noundef @.str.4)
  %18076 = call ptr @__errno_location() #12
  %18077 = load i32, ptr %18076, align 4, !tbaa !5
  %18078 = call ptr @strerror(i32 noundef %18077) #11
  %18079 = call ptr @__errno_location() #12
  %18080 = load i32, ptr %18079, align 4, !tbaa !5
  %18081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18068, ptr noundef @.str.5, i32 noundef %18069, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1116, ptr noundef %18072, ptr noundef %18075, ptr noundef %18078, i32 noundef %18080) #11
  br label %18082

18082:                                            ; preds = %18065, %18048
  call void @llvm.lifetime.end.p0(i64 4, ptr %536) #11
  br label %18083

18083:                                            ; preds = %18082
  br label %18084

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

18085:                                            ; No predecessors!
  br label %18086

18086:                                            ; preds = %18085
  br label %18087

18087:                                            ; preds = %18086, %18029
  br label %18088

18088:                                            ; preds = %18087
  br label %18089

18089:                                            ; preds = %18088
  call void @llvm.lifetime.start.p0(i64 8, ptr %537) #11
  %18090 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %18090, ptr %537, align 8, !tbaa !9
  br label %18091

18091:                                            ; preds = %18089
  %18092 = load i32, ptr @test_count, align 4, !tbaa !5
  %18093 = add nsw i32 %18092, 1
  store i32 %18093, ptr @test_count, align 4, !tbaa !5
  %18094 = load ptr, ptr %537, align 8, !tbaa !9
  %18095 = icmp eq ptr %18094, null
  br i1 %18095, label %18096, label %18149

18096:                                            ; preds = %18091
  br label %18097

18097:                                            ; preds = %18096
  br label %18098

18098:                                            ; preds = %18097
  call void @llvm.lifetime.start.p0(i64 4, ptr %538) #11
  %18099 = call ptr @__errno_location() #12
  %18100 = load i32, ptr %18099, align 4, !tbaa !5
  store i32 %18100, ptr %538, align 4, !tbaa !5
  %18101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18102 = call i32 @s2n_print_stacktrace(ptr noundef %18101)
  %18103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18104 = trunc i8 %18103 to i1
  br i1 %18104, label %18105, label %18127

18105:                                            ; preds = %18098
  %18106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18107 = call i32 @fileno(ptr noundef %18106) #11
  %18108 = call i32 @isatty(i32 noundef %18107) #11
  %18109 = icmp ne i32 %18108, 0
  br i1 %18109, label %18110, label %18127

18110:                                            ; preds = %18105
  %18111 = load i32, ptr %538, align 4, !tbaa !5
  %18112 = call ptr @__errno_location() #12
  store i32 %18111, ptr %18112, align 4, !tbaa !5
  %18113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18114 = load i32, ptr @test_count, align 4, !tbaa !5
  %18115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18116 = load i32, ptr %18115, align 4, !tbaa !5
  %18117 = call ptr @s2n_strerror(i32 noundef %18116, ptr noundef @.str.4)
  %18118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18119 = load i32, ptr %18118, align 4, !tbaa !5
  %18120 = call ptr @s2n_strerror_debug(i32 noundef %18119, ptr noundef @.str.4)
  %18121 = call ptr @__errno_location() #12
  %18122 = load i32, ptr %18121, align 4, !tbaa !5
  %18123 = call ptr @strerror(i32 noundef %18122) #11
  %18124 = call ptr @__errno_location() #12
  %18125 = load i32, ptr %18124, align 4, !tbaa !5
  %18126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18113, ptr noundef @.str.2, i32 noundef %18114, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1119, ptr noundef %18117, ptr noundef %18120, ptr noundef %18123, i32 noundef %18125) #11
  br label %18144

18127:                                            ; preds = %18105, %18098
  %18128 = load i32, ptr %538, align 4, !tbaa !5
  %18129 = call ptr @__errno_location() #12
  store i32 %18128, ptr %18129, align 4, !tbaa !5
  %18130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18131 = load i32, ptr @test_count, align 4, !tbaa !5
  %18132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18133 = load i32, ptr %18132, align 4, !tbaa !5
  %18134 = call ptr @s2n_strerror(i32 noundef %18133, ptr noundef @.str.4)
  %18135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18136 = load i32, ptr %18135, align 4, !tbaa !5
  %18137 = call ptr @s2n_strerror_debug(i32 noundef %18136, ptr noundef @.str.4)
  %18138 = call ptr @__errno_location() #12
  %18139 = load i32, ptr %18138, align 4, !tbaa !5
  %18140 = call ptr @strerror(i32 noundef %18139) #11
  %18141 = call ptr @__errno_location() #12
  %18142 = load i32, ptr %18141, align 4, !tbaa !5
  %18143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18130, ptr noundef @.str.5, i32 noundef %18131, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1119, ptr noundef %18134, ptr noundef %18137, ptr noundef %18140, i32 noundef %18142) #11
  br label %18144

18144:                                            ; preds = %18127, %18110
  call void @llvm.lifetime.end.p0(i64 4, ptr %538) #11
  br label %18145

18145:                                            ; preds = %18144
  br label %18146

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

18147:                                            ; No predecessors!
  br label %18148

18148:                                            ; preds = %18147
  br label %18149

18149:                                            ; preds = %18148, %18091
  br label %18150

18150:                                            ; preds = %18149
  br label %18151

18151:                                            ; preds = %18150
  call void @llvm.lifetime.start.p0(i64 16, ptr %539) #11
  call void @llvm.memset.p0.i64(ptr align 8 %539, i8 0, i64 16, i1 false)
  br label %18152

18152:                                            ; preds = %18151
  %18153 = load i32, ptr @test_count, align 4, !tbaa !5
  %18154 = add nsw i32 %18153, 1
  store i32 %18154, ptr @test_count, align 4, !tbaa !5
  %18155 = load ptr, ptr %537, align 8, !tbaa !9
  %18156 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %18155, ptr noundef @verify_host_accept_everything, ptr noundef %539)
  %18157 = icmp eq i32 %18156, -1
  br i1 %18157, label %18158, label %18211

18158:                                            ; preds = %18152
  br label %18159

18159:                                            ; preds = %18158
  br label %18160

18160:                                            ; preds = %18159
  call void @llvm.lifetime.start.p0(i64 4, ptr %540) #11
  %18161 = call ptr @__errno_location() #12
  %18162 = load i32, ptr %18161, align 4, !tbaa !5
  store i32 %18162, ptr %540, align 4, !tbaa !5
  %18163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18164 = call i32 @s2n_print_stacktrace(ptr noundef %18163)
  %18165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18166 = trunc i8 %18165 to i1
  br i1 %18166, label %18167, label %18189

18167:                                            ; preds = %18160
  %18168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18169 = call i32 @fileno(ptr noundef %18168) #11
  %18170 = call i32 @isatty(i32 noundef %18169) #11
  %18171 = icmp ne i32 %18170, 0
  br i1 %18171, label %18172, label %18189

18172:                                            ; preds = %18167
  %18173 = load i32, ptr %540, align 4, !tbaa !5
  %18174 = call ptr @__errno_location() #12
  store i32 %18173, ptr %18174, align 4, !tbaa !5
  %18175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18176 = load i32, ptr @test_count, align 4, !tbaa !5
  %18177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18178 = load i32, ptr %18177, align 4, !tbaa !5
  %18179 = call ptr @s2n_strerror(i32 noundef %18178, ptr noundef @.str.4)
  %18180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18181 = load i32, ptr %18180, align 4, !tbaa !5
  %18182 = call ptr @s2n_strerror_debug(i32 noundef %18181, ptr noundef @.str.4)
  %18183 = call ptr @__errno_location() #12
  %18184 = load i32, ptr %18183, align 4, !tbaa !5
  %18185 = call ptr @strerror(i32 noundef %18184) #11
  %18186 = call ptr @__errno_location() #12
  %18187 = load i32, ptr %18186, align 4, !tbaa !5
  %18188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18175, ptr noundef @.str.2, i32 noundef %18176, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1122, ptr noundef %18179, ptr noundef %18182, ptr noundef %18185, i32 noundef %18187) #11
  br label %18206

18189:                                            ; preds = %18167, %18160
  %18190 = load i32, ptr %540, align 4, !tbaa !5
  %18191 = call ptr @__errno_location() #12
  store i32 %18190, ptr %18191, align 4, !tbaa !5
  %18192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18193 = load i32, ptr @test_count, align 4, !tbaa !5
  %18194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18195 = load i32, ptr %18194, align 4, !tbaa !5
  %18196 = call ptr @s2n_strerror(i32 noundef %18195, ptr noundef @.str.4)
  %18197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18198 = load i32, ptr %18197, align 4, !tbaa !5
  %18199 = call ptr @s2n_strerror_debug(i32 noundef %18198, ptr noundef @.str.4)
  %18200 = call ptr @__errno_location() #12
  %18201 = load i32, ptr %18200, align 4, !tbaa !5
  %18202 = call ptr @strerror(i32 noundef %18201) #11
  %18203 = call ptr @__errno_location() #12
  %18204 = load i32, ptr %18203, align 4, !tbaa !5
  %18205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18192, ptr noundef @.str.5, i32 noundef %18193, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1122, ptr noundef %18196, ptr noundef %18199, ptr noundef %18202, i32 noundef %18204) #11
  br label %18206

18206:                                            ; preds = %18189, %18172
  call void @llvm.lifetime.end.p0(i64 4, ptr %540) #11
  br label %18207

18207:                                            ; preds = %18206
  br label %18208

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

18209:                                            ; No predecessors!
  br label %18210

18210:                                            ; preds = %18209
  br label %18211

18211:                                            ; preds = %18210, %18152
  br label %18212

18212:                                            ; preds = %18211
  br label %18213

18213:                                            ; preds = %18212
  call void @llvm.lifetime.start.p0(i64 40, ptr %541) #11
  call void @llvm.memset.p0.i64(ptr align 8 %541, i8 0, i64 40, i1 false)
  br label %18214

18214:                                            ; preds = %18213
  %18215 = load i32, ptr @test_count, align 4, !tbaa !5
  %18216 = add nsw i32 %18215, 1
  store i32 %18216, ptr @test_count, align 4, !tbaa !5
  %18217 = load ptr, ptr %537, align 8, !tbaa !9
  %18218 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %18217, ptr noundef @.str.51, ptr noundef %541)
  %18219 = getelementptr inbounds %struct.s2n_result, ptr %542, i32 0, i32 0
  store i32 %18218, ptr %18219, align 4
  %18220 = getelementptr inbounds %struct.s2n_result, ptr %542, i32 0, i32 0
  %18221 = load i32, ptr %18220, align 4
  %18222 = call zeroext i1 @s2n_result_is_ok(i32 %18221)
  br i1 %18222, label %18276, label %18223

18223:                                            ; preds = %18214
  br label %18224

18224:                                            ; preds = %18223
  br label %18225

18225:                                            ; preds = %18224
  call void @llvm.lifetime.start.p0(i64 4, ptr %543) #11
  %18226 = call ptr @__errno_location() #12
  %18227 = load i32, ptr %18226, align 4, !tbaa !5
  store i32 %18227, ptr %543, align 4, !tbaa !5
  %18228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18229 = call i32 @s2n_print_stacktrace(ptr noundef %18228)
  %18230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18231 = trunc i8 %18230 to i1
  br i1 %18231, label %18232, label %18254

18232:                                            ; preds = %18225
  %18233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18234 = call i32 @fileno(ptr noundef %18233) #11
  %18235 = call i32 @isatty(i32 noundef %18234) #11
  %18236 = icmp ne i32 %18235, 0
  br i1 %18236, label %18237, label %18254

18237:                                            ; preds = %18232
  %18238 = load i32, ptr %543, align 4, !tbaa !5
  %18239 = call ptr @__errno_location() #12
  store i32 %18238, ptr %18239, align 4, !tbaa !5
  %18240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18241 = load i32, ptr @test_count, align 4, !tbaa !5
  %18242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18243 = load i32, ptr %18242, align 4, !tbaa !5
  %18244 = call ptr @s2n_strerror(i32 noundef %18243, ptr noundef @.str.4)
  %18245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18246 = load i32, ptr %18245, align 4, !tbaa !5
  %18247 = call ptr @s2n_strerror_debug(i32 noundef %18246, ptr noundef @.str.4)
  %18248 = call ptr @__errno_location() #12
  %18249 = load i32, ptr %18248, align 4, !tbaa !5
  %18250 = call ptr @strerror(i32 noundef %18249) #11
  %18251 = call ptr @__errno_location() #12
  %18252 = load i32, ptr %18251, align 4, !tbaa !5
  %18253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18240, ptr noundef @.str.2, i32 noundef %18241, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1125, ptr noundef %18244, ptr noundef %18247, ptr noundef %18250, i32 noundef %18252) #11
  br label %18271

18254:                                            ; preds = %18232, %18225
  %18255 = load i32, ptr %543, align 4, !tbaa !5
  %18256 = call ptr @__errno_location() #12
  store i32 %18255, ptr %18256, align 4, !tbaa !5
  %18257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18258 = load i32, ptr @test_count, align 4, !tbaa !5
  %18259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18260 = load i32, ptr %18259, align 4, !tbaa !5
  %18261 = call ptr @s2n_strerror(i32 noundef %18260, ptr noundef @.str.4)
  %18262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18263 = load i32, ptr %18262, align 4, !tbaa !5
  %18264 = call ptr @s2n_strerror_debug(i32 noundef %18263, ptr noundef @.str.4)
  %18265 = call ptr @__errno_location() #12
  %18266 = load i32, ptr %18265, align 4, !tbaa !5
  %18267 = call ptr @strerror(i32 noundef %18266) #11
  %18268 = call ptr @__errno_location() #12
  %18269 = load i32, ptr %18268, align 4, !tbaa !5
  %18270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18257, ptr noundef @.str.5, i32 noundef %18258, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1125, ptr noundef %18261, ptr noundef %18264, ptr noundef %18267, i32 noundef %18269) #11
  br label %18271

18271:                                            ; preds = %18254, %18237
  call void @llvm.lifetime.end.p0(i64 4, ptr %543) #11
  br label %18272

18272:                                            ; preds = %18271
  br label %18273

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

18274:                                            ; No predecessors!
  br label %18275

18275:                                            ; preds = %18274
  br label %18276

18276:                                            ; preds = %18275, %18214
  br label %18277

18277:                                            ; preds = %18276
  br label %18278

18278:                                            ; preds = %18277
  call void @llvm.lifetime.start.p0(i64 4, ptr %544) #11
  %18279 = getelementptr inbounds %struct.s2n_stuffer, ptr %541, i32 0, i32 2
  %18280 = load i32, ptr %18279, align 4, !tbaa !15
  %18281 = getelementptr inbounds %struct.s2n_stuffer, ptr %541, i32 0, i32 1
  %18282 = load i32, ptr %18281, align 8, !tbaa !18
  %18283 = sub i32 %18280, %18282
  store i32 %18283, ptr %544, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %545) #11
  %18284 = load i32, ptr %544, align 4, !tbaa !5
  %18285 = call ptr @s2n_stuffer_raw_read(ptr noundef %541, i32 noundef %18284)
  store ptr %18285, ptr %545, align 8, !tbaa !9
  br label %18286

18286:                                            ; preds = %18278
  %18287 = load i32, ptr @test_count, align 4, !tbaa !5
  %18288 = add nsw i32 %18287, 1
  store i32 %18288, ptr @test_count, align 4, !tbaa !5
  %18289 = load ptr, ptr %545, align 8, !tbaa !9
  %18290 = icmp eq ptr %18289, null
  br i1 %18290, label %18291, label %18344

18291:                                            ; preds = %18286
  br label %18292

18292:                                            ; preds = %18291
  br label %18293

18293:                                            ; preds = %18292
  call void @llvm.lifetime.start.p0(i64 4, ptr %546) #11
  %18294 = call ptr @__errno_location() #12
  %18295 = load i32, ptr %18294, align 4, !tbaa !5
  store i32 %18295, ptr %546, align 4, !tbaa !5
  %18296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18297 = call i32 @s2n_print_stacktrace(ptr noundef %18296)
  %18298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18299 = trunc i8 %18298 to i1
  br i1 %18299, label %18300, label %18322

18300:                                            ; preds = %18293
  %18301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18302 = call i32 @fileno(ptr noundef %18301) #11
  %18303 = call i32 @isatty(i32 noundef %18302) #11
  %18304 = icmp ne i32 %18303, 0
  br i1 %18304, label %18305, label %18322

18305:                                            ; preds = %18300
  %18306 = load i32, ptr %546, align 4, !tbaa !5
  %18307 = call ptr @__errno_location() #12
  store i32 %18306, ptr %18307, align 4, !tbaa !5
  %18308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18309 = load i32, ptr @test_count, align 4, !tbaa !5
  %18310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18311 = load i32, ptr %18310, align 4, !tbaa !5
  %18312 = call ptr @s2n_strerror(i32 noundef %18311, ptr noundef @.str.4)
  %18313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18314 = load i32, ptr %18313, align 4, !tbaa !5
  %18315 = call ptr @s2n_strerror_debug(i32 noundef %18314, ptr noundef @.str.4)
  %18316 = call ptr @__errno_location() #12
  %18317 = load i32, ptr %18316, align 4, !tbaa !5
  %18318 = call ptr @strerror(i32 noundef %18317) #11
  %18319 = call ptr @__errno_location() #12
  %18320 = load i32, ptr %18319, align 4, !tbaa !5
  %18321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18308, ptr noundef @.str.2, i32 noundef %18309, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1128, ptr noundef %18312, ptr noundef %18315, ptr noundef %18318, i32 noundef %18320) #11
  br label %18339

18322:                                            ; preds = %18300, %18293
  %18323 = load i32, ptr %546, align 4, !tbaa !5
  %18324 = call ptr @__errno_location() #12
  store i32 %18323, ptr %18324, align 4, !tbaa !5
  %18325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18326 = load i32, ptr @test_count, align 4, !tbaa !5
  %18327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18328 = load i32, ptr %18327, align 4, !tbaa !5
  %18329 = call ptr @s2n_strerror(i32 noundef %18328, ptr noundef @.str.4)
  %18330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18331 = load i32, ptr %18330, align 4, !tbaa !5
  %18332 = call ptr @s2n_strerror_debug(i32 noundef %18331, ptr noundef @.str.4)
  %18333 = call ptr @__errno_location() #12
  %18334 = load i32, ptr %18333, align 4, !tbaa !5
  %18335 = call ptr @strerror(i32 noundef %18334) #11
  %18336 = call ptr @__errno_location() #12
  %18337 = load i32, ptr %18336, align 4, !tbaa !5
  %18338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18325, ptr noundef @.str.5, i32 noundef %18326, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1128, ptr noundef %18329, ptr noundef %18332, ptr noundef %18335, i32 noundef %18337) #11
  br label %18339

18339:                                            ; preds = %18322, %18305
  call void @llvm.lifetime.end.p0(i64 4, ptr %546) #11
  br label %18340

18340:                                            ; preds = %18339
  br label %18341

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

18342:                                            ; No predecessors!
  br label %18343

18343:                                            ; preds = %18342
  br label %18344

18344:                                            ; preds = %18343, %18286
  br label %18345

18345:                                            ; preds = %18344
  br label %18346

18346:                                            ; preds = %18345
  call void @llvm.lifetime.start.p0(i64 48, ptr %547) #11
  call void @llvm.memset.p0.i64(ptr align 8 %547, i8 0, i64 48, i1 false)
  br label %18347

18347:                                            ; preds = %18346
  %18348 = load i32, ptr @test_count, align 4, !tbaa !5
  %18349 = add nsw i32 %18348, 1
  store i32 %18349, ptr @test_count, align 4, !tbaa !5
  %18350 = call i32 @s2n_pkey_zero_init(ptr noundef %547)
  %18351 = icmp eq i32 %18350, -1
  br i1 %18351, label %18352, label %18405

18352:                                            ; preds = %18347
  br label %18353

18353:                                            ; preds = %18352
  br label %18354

18354:                                            ; preds = %18353
  call void @llvm.lifetime.start.p0(i64 4, ptr %548) #11
  %18355 = call ptr @__errno_location() #12
  %18356 = load i32, ptr %18355, align 4, !tbaa !5
  store i32 %18356, ptr %548, align 4, !tbaa !5
  %18357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18358 = call i32 @s2n_print_stacktrace(ptr noundef %18357)
  %18359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18360 = trunc i8 %18359 to i1
  br i1 %18360, label %18361, label %18383

18361:                                            ; preds = %18354
  %18362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18363 = call i32 @fileno(ptr noundef %18362) #11
  %18364 = call i32 @isatty(i32 noundef %18363) #11
  %18365 = icmp ne i32 %18364, 0
  br i1 %18365, label %18366, label %18383

18366:                                            ; preds = %18361
  %18367 = load i32, ptr %548, align 4, !tbaa !5
  %18368 = call ptr @__errno_location() #12
  store i32 %18367, ptr %18368, align 4, !tbaa !5
  %18369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18370 = load i32, ptr @test_count, align 4, !tbaa !5
  %18371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18372 = load i32, ptr %18371, align 4, !tbaa !5
  %18373 = call ptr @s2n_strerror(i32 noundef %18372, ptr noundef @.str.4)
  %18374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18375 = load i32, ptr %18374, align 4, !tbaa !5
  %18376 = call ptr @s2n_strerror_debug(i32 noundef %18375, ptr noundef @.str.4)
  %18377 = call ptr @__errno_location() #12
  %18378 = load i32, ptr %18377, align 4, !tbaa !5
  %18379 = call ptr @strerror(i32 noundef %18378) #11
  %18380 = call ptr @__errno_location() #12
  %18381 = load i32, ptr %18380, align 4, !tbaa !5
  %18382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18369, ptr noundef @.str.2, i32 noundef %18370, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1131, ptr noundef %18373, ptr noundef %18376, ptr noundef %18379, i32 noundef %18381) #11
  br label %18400

18383:                                            ; preds = %18361, %18354
  %18384 = load i32, ptr %548, align 4, !tbaa !5
  %18385 = call ptr @__errno_location() #12
  store i32 %18384, ptr %18385, align 4, !tbaa !5
  %18386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18387 = load i32, ptr @test_count, align 4, !tbaa !5
  %18388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18389 = load i32, ptr %18388, align 4, !tbaa !5
  %18390 = call ptr @s2n_strerror(i32 noundef %18389, ptr noundef @.str.4)
  %18391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18392 = load i32, ptr %18391, align 4, !tbaa !5
  %18393 = call ptr @s2n_strerror_debug(i32 noundef %18392, ptr noundef @.str.4)
  %18394 = call ptr @__errno_location() #12
  %18395 = load i32, ptr %18394, align 4, !tbaa !5
  %18396 = call ptr @strerror(i32 noundef %18395) #11
  %18397 = call ptr @__errno_location() #12
  %18398 = load i32, ptr %18397, align 4, !tbaa !5
  %18399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18386, ptr noundef @.str.5, i32 noundef %18387, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1131, ptr noundef %18390, ptr noundef %18393, ptr noundef %18396, i32 noundef %18398) #11
  br label %18400

18400:                                            ; preds = %18383, %18366
  call void @llvm.lifetime.end.p0(i64 4, ptr %548) #11
  br label %18401

18401:                                            ; preds = %18400
  br label %18402

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

18403:                                            ; No predecessors!
  br label %18404

18404:                                            ; preds = %18403
  br label %18405

18405:                                            ; preds = %18404, %18347
  br label %18406

18406:                                            ; preds = %18405
  br label %18407

18407:                                            ; preds = %18406
  call void @llvm.lifetime.start.p0(i64 4, ptr %549) #11
  store i32 -1, ptr %549, align 4, !tbaa !5
  br label %18408

18408:                                            ; preds = %18407
  %18409 = load i32, ptr @test_count, align 4, !tbaa !5
  %18410 = add nsw i32 %18409, 1
  store i32 %18410, ptr @test_count, align 4, !tbaa !5
  %18411 = load ptr, ptr %537, align 8, !tbaa !9
  %18412 = load ptr, ptr %545, align 8, !tbaa !9
  %18413 = load i32, ptr %544, align 4, !tbaa !5
  %18414 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %535, ptr noundef %18411, ptr noundef %18412, i32 noundef %18413, ptr noundef %549, ptr noundef %547)
  %18415 = getelementptr inbounds %struct.s2n_result, ptr %550, i32 0, i32 0
  store i32 %18414, ptr %18415, align 4
  %18416 = getelementptr inbounds %struct.s2n_result, ptr %550, i32 0, i32 0
  %18417 = load i32, ptr %18416, align 4
  %18418 = call zeroext i1 @s2n_result_is_ok(i32 %18417)
  br i1 %18418, label %18472, label %18419

18419:                                            ; preds = %18408
  br label %18420

18420:                                            ; preds = %18419
  br label %18421

18421:                                            ; preds = %18420
  call void @llvm.lifetime.start.p0(i64 4, ptr %551) #11
  %18422 = call ptr @__errno_location() #12
  %18423 = load i32, ptr %18422, align 4, !tbaa !5
  store i32 %18423, ptr %551, align 4, !tbaa !5
  %18424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18425 = call i32 @s2n_print_stacktrace(ptr noundef %18424)
  %18426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18427 = trunc i8 %18426 to i1
  br i1 %18427, label %18428, label %18450

18428:                                            ; preds = %18421
  %18429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18430 = call i32 @fileno(ptr noundef %18429) #11
  %18431 = call i32 @isatty(i32 noundef %18430) #11
  %18432 = icmp ne i32 %18431, 0
  br i1 %18432, label %18433, label %18450

18433:                                            ; preds = %18428
  %18434 = load i32, ptr %551, align 4, !tbaa !5
  %18435 = call ptr @__errno_location() #12
  store i32 %18434, ptr %18435, align 4, !tbaa !5
  %18436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18437 = load i32, ptr @test_count, align 4, !tbaa !5
  %18438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18439 = load i32, ptr %18438, align 4, !tbaa !5
  %18440 = call ptr @s2n_strerror(i32 noundef %18439, ptr noundef @.str.4)
  %18441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18442 = load i32, ptr %18441, align 4, !tbaa !5
  %18443 = call ptr @s2n_strerror_debug(i32 noundef %18442, ptr noundef @.str.4)
  %18444 = call ptr @__errno_location() #12
  %18445 = load i32, ptr %18444, align 4, !tbaa !5
  %18446 = call ptr @strerror(i32 noundef %18445) #11
  %18447 = call ptr @__errno_location() #12
  %18448 = load i32, ptr %18447, align 4, !tbaa !5
  %18449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18436, ptr noundef @.str.2, i32 noundef %18437, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1133, ptr noundef %18440, ptr noundef %18443, ptr noundef %18446, i32 noundef %18448) #11
  br label %18467

18450:                                            ; preds = %18428, %18421
  %18451 = load i32, ptr %551, align 4, !tbaa !5
  %18452 = call ptr @__errno_location() #12
  store i32 %18451, ptr %18452, align 4, !tbaa !5
  %18453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18454 = load i32, ptr @test_count, align 4, !tbaa !5
  %18455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18456 = load i32, ptr %18455, align 4, !tbaa !5
  %18457 = call ptr @s2n_strerror(i32 noundef %18456, ptr noundef @.str.4)
  %18458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18459 = load i32, ptr %18458, align 4, !tbaa !5
  %18460 = call ptr @s2n_strerror_debug(i32 noundef %18459, ptr noundef @.str.4)
  %18461 = call ptr @__errno_location() #12
  %18462 = load i32, ptr %18461, align 4, !tbaa !5
  %18463 = call ptr @strerror(i32 noundef %18462) #11
  %18464 = call ptr @__errno_location() #12
  %18465 = load i32, ptr %18464, align 4, !tbaa !5
  %18466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18453, ptr noundef @.str.5, i32 noundef %18454, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1133, ptr noundef %18457, ptr noundef %18460, ptr noundef %18463, i32 noundef %18465) #11
  br label %18467

18467:                                            ; preds = %18450, %18433
  call void @llvm.lifetime.end.p0(i64 4, ptr %551) #11
  br label %18468

18468:                                            ; preds = %18467
  br label %18469

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

18470:                                            ; No predecessors!
  br label %18471

18471:                                            ; preds = %18470
  br label %18472

18472:                                            ; preds = %18471, %18408
  br label %18473

18473:                                            ; preds = %18472
  br label %18474

18474:                                            ; preds = %18473
  br label %18475

18475:                                            ; preds = %18474
  %18476 = load i32, ptr @test_count, align 4, !tbaa !5
  %18477 = add nsw i32 %18476, 1
  store i32 %18477, ptr @test_count, align 4, !tbaa !5
  %18478 = getelementptr inbounds %struct.host_verify_data, ptr %539, i32 0, i32 2
  %18479 = load i8, ptr %18478, align 1, !tbaa !19
  %18480 = zext i8 %18479 to i32
  %18481 = icmp eq i32 1, %18480
  br i1 %18481, label %18535, label %18482

18482:                                            ; preds = %18475
  br label %18483

18483:                                            ; preds = %18482
  br label %18484

18484:                                            ; preds = %18483
  call void @llvm.lifetime.start.p0(i64 4, ptr %552) #11
  %18485 = call ptr @__errno_location() #12
  %18486 = load i32, ptr %18485, align 4, !tbaa !5
  store i32 %18486, ptr %552, align 4, !tbaa !5
  %18487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18488 = call i32 @s2n_print_stacktrace(ptr noundef %18487)
  %18489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18490 = trunc i8 %18489 to i1
  br i1 %18490, label %18491, label %18513

18491:                                            ; preds = %18484
  %18492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18493 = call i32 @fileno(ptr noundef %18492) #11
  %18494 = call i32 @isatty(i32 noundef %18493) #11
  %18495 = icmp ne i32 %18494, 0
  br i1 %18495, label %18496, label %18513

18496:                                            ; preds = %18491
  %18497 = load i32, ptr %552, align 4, !tbaa !5
  %18498 = call ptr @__errno_location() #12
  store i32 %18497, ptr %18498, align 4, !tbaa !5
  %18499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18500 = load i32, ptr @test_count, align 4, !tbaa !5
  %18501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18502 = load i32, ptr %18501, align 4, !tbaa !5
  %18503 = call ptr @s2n_strerror(i32 noundef %18502, ptr noundef @.str.4)
  %18504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18505 = load i32, ptr %18504, align 4, !tbaa !5
  %18506 = call ptr @s2n_strerror_debug(i32 noundef %18505, ptr noundef @.str.4)
  %18507 = call ptr @__errno_location() #12
  %18508 = load i32, ptr %18507, align 4, !tbaa !5
  %18509 = call ptr @strerror(i32 noundef %18508) #11
  %18510 = call ptr @__errno_location() #12
  %18511 = load i32, ptr %18510, align 4, !tbaa !5
  %18512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18499, ptr noundef @.str.2, i32 noundef %18500, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1135, ptr noundef %18503, ptr noundef %18506, ptr noundef %18509, i32 noundef %18511) #11
  br label %18530

18513:                                            ; preds = %18491, %18484
  %18514 = load i32, ptr %552, align 4, !tbaa !5
  %18515 = call ptr @__errno_location() #12
  store i32 %18514, ptr %18515, align 4, !tbaa !5
  %18516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18517 = load i32, ptr @test_count, align 4, !tbaa !5
  %18518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18519 = load i32, ptr %18518, align 4, !tbaa !5
  %18520 = call ptr @s2n_strerror(i32 noundef %18519, ptr noundef @.str.4)
  %18521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18522 = load i32, ptr %18521, align 4, !tbaa !5
  %18523 = call ptr @s2n_strerror_debug(i32 noundef %18522, ptr noundef @.str.4)
  %18524 = call ptr @__errno_location() #12
  %18525 = load i32, ptr %18524, align 4, !tbaa !5
  %18526 = call ptr @strerror(i32 noundef %18525) #11
  %18527 = call ptr @__errno_location() #12
  %18528 = load i32, ptr %18527, align 4, !tbaa !5
  %18529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18516, ptr noundef @.str.5, i32 noundef %18517, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1135, ptr noundef %18520, ptr noundef %18523, ptr noundef %18526, i32 noundef %18528) #11
  br label %18530

18530:                                            ; preds = %18513, %18496
  call void @llvm.lifetime.end.p0(i64 4, ptr %552) #11
  br label %18531

18531:                                            ; preds = %18530
  br label %18532

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

18533:                                            ; No predecessors!
  br label %18534

18534:                                            ; preds = %18533
  br label %18535

18535:                                            ; preds = %18534, %18475
  br label %18536

18536:                                            ; preds = %18535
  br label %18537

18537:                                            ; preds = %18536
  call void @llvm.lifetime.start.p0(i64 8, ptr %553) #11
  %18538 = load ptr, ptr %537, align 8, !tbaa !9
  %18539 = getelementptr inbounds %struct.s2n_connection, ptr %18538, i32 0, i32 1
  %18540 = load ptr, ptr %18539, align 8, !tbaa !22
  %18541 = getelementptr inbounds %struct.s2n_config, ptr %18540, i32 0, i32 5
  %18542 = load ptr, ptr %18541, align 8, !tbaa !47
  store ptr %18542, ptr %553, align 8, !tbaa !9
  br label %18543

18543:                                            ; preds = %18537
  %18544 = load i32, ptr @test_count, align 4, !tbaa !5
  %18545 = add nsw i32 %18544, 1
  store i32 %18545, ptr @test_count, align 4, !tbaa !5
  %18546 = load ptr, ptr %537, align 8, !tbaa !9
  %18547 = getelementptr inbounds %struct.s2n_connection, ptr %18546, i32 0, i32 1
  %18548 = load ptr, ptr %18547, align 8, !tbaa !22
  %18549 = call i32 @s2n_config_set_wall_clock(ptr noundef %18548, ptr noundef @fetch_early_expired_after_ocsp_timestamp, ptr noundef null)
  %18550 = icmp eq i32 %18549, -1
  br i1 %18550, label %18551, label %18604

18551:                                            ; preds = %18543
  br label %18552

18552:                                            ; preds = %18551
  br label %18553

18553:                                            ; preds = %18552
  call void @llvm.lifetime.start.p0(i64 4, ptr %554) #11
  %18554 = call ptr @__errno_location() #12
  %18555 = load i32, ptr %18554, align 4, !tbaa !5
  store i32 %18555, ptr %554, align 4, !tbaa !5
  %18556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18557 = call i32 @s2n_print_stacktrace(ptr noundef %18556)
  %18558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18559 = trunc i8 %18558 to i1
  br i1 %18559, label %18560, label %18582

18560:                                            ; preds = %18553
  %18561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18562 = call i32 @fileno(ptr noundef %18561) #11
  %18563 = call i32 @isatty(i32 noundef %18562) #11
  %18564 = icmp ne i32 %18563, 0
  br i1 %18564, label %18565, label %18582

18565:                                            ; preds = %18560
  %18566 = load i32, ptr %554, align 4, !tbaa !5
  %18567 = call ptr @__errno_location() #12
  store i32 %18566, ptr %18567, align 4, !tbaa !5
  %18568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18569 = load i32, ptr @test_count, align 4, !tbaa !5
  %18570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18571 = load i32, ptr %18570, align 4, !tbaa !5
  %18572 = call ptr @s2n_strerror(i32 noundef %18571, ptr noundef @.str.4)
  %18573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18574 = load i32, ptr %18573, align 4, !tbaa !5
  %18575 = call ptr @s2n_strerror_debug(i32 noundef %18574, ptr noundef @.str.4)
  %18576 = call ptr @__errno_location() #12
  %18577 = load i32, ptr %18576, align 4, !tbaa !5
  %18578 = call ptr @strerror(i32 noundef %18577) #11
  %18579 = call ptr @__errno_location() #12
  %18580 = load i32, ptr %18579, align 4, !tbaa !5
  %18581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18568, ptr noundef @.str.2, i32 noundef %18569, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 1137, ptr noundef %18572, ptr noundef %18575, ptr noundef %18578, i32 noundef %18580) #11
  br label %18599

18582:                                            ; preds = %18560, %18553
  %18583 = load i32, ptr %554, align 4, !tbaa !5
  %18584 = call ptr @__errno_location() #12
  store i32 %18583, ptr %18584, align 4, !tbaa !5
  %18585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18586 = load i32, ptr @test_count, align 4, !tbaa !5
  %18587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18588 = load i32, ptr %18587, align 4, !tbaa !5
  %18589 = call ptr @s2n_strerror(i32 noundef %18588, ptr noundef @.str.4)
  %18590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18591 = load i32, ptr %18590, align 4, !tbaa !5
  %18592 = call ptr @s2n_strerror_debug(i32 noundef %18591, ptr noundef @.str.4)
  %18593 = call ptr @__errno_location() #12
  %18594 = load i32, ptr %18593, align 4, !tbaa !5
  %18595 = call ptr @strerror(i32 noundef %18594) #11
  %18596 = call ptr @__errno_location() #12
  %18597 = load i32, ptr %18596, align 4, !tbaa !5
  %18598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18585, ptr noundef @.str.5, i32 noundef %18586, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 1137, ptr noundef %18589, ptr noundef %18592, ptr noundef %18595, i32 noundef %18597) #11
  br label %18599

18599:                                            ; preds = %18582, %18565
  call void @llvm.lifetime.end.p0(i64 4, ptr %554) #11
  br label %18600

18600:                                            ; preds = %18599
  br label %18601

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

18602:                                            ; No predecessors!
  br label %18603

18603:                                            ; preds = %18602
  br label %18604

18604:                                            ; preds = %18603, %18543
  br label %18605

18605:                                            ; preds = %18604
  br label %18606

18606:                                            ; preds = %18605
  call void @llvm.lifetime.start.p0(i64 40, ptr %555) #11
  call void @llvm.memset.p0.i64(ptr align 8 %555, i8 0, i64 40, i1 false)
  br label %18607

18607:                                            ; preds = %18606
  %18608 = load i32, ptr @test_count, align 4, !tbaa !5
  %18609 = add nsw i32 %18608, 1
  store i32 %18609, ptr @test_count, align 4, !tbaa !5
  %18610 = call i32 @read_file(ptr noundef %555, ptr noundef @.str.84, i32 noundef 12000)
  %18611 = icmp eq i32 %18610, -1
  br i1 %18611, label %18612, label %18665

18612:                                            ; preds = %18607
  br label %18613

18613:                                            ; preds = %18612
  br label %18614

18614:                                            ; preds = %18613
  call void @llvm.lifetime.start.p0(i64 4, ptr %556) #11
  %18615 = call ptr @__errno_location() #12
  %18616 = load i32, ptr %18615, align 4, !tbaa !5
  store i32 %18616, ptr %556, align 4, !tbaa !5
  %18617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18618 = call i32 @s2n_print_stacktrace(ptr noundef %18617)
  %18619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18620 = trunc i8 %18619 to i1
  br i1 %18620, label %18621, label %18643

18621:                                            ; preds = %18614
  %18622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18623 = call i32 @fileno(ptr noundef %18622) #11
  %18624 = call i32 @isatty(i32 noundef %18623) #11
  %18625 = icmp ne i32 %18624, 0
  br i1 %18625, label %18626, label %18643

18626:                                            ; preds = %18621
  %18627 = load i32, ptr %556, align 4, !tbaa !5
  %18628 = call ptr @__errno_location() #12
  store i32 %18627, ptr %18628, align 4, !tbaa !5
  %18629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18630 = load i32, ptr @test_count, align 4, !tbaa !5
  %18631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18632 = load i32, ptr %18631, align 4, !tbaa !5
  %18633 = call ptr @s2n_strerror(i32 noundef %18632, ptr noundef @.str.4)
  %18634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18635 = load i32, ptr %18634, align 4, !tbaa !5
  %18636 = call ptr @s2n_strerror_debug(i32 noundef %18635, ptr noundef @.str.4)
  %18637 = call ptr @__errno_location() #12
  %18638 = load i32, ptr %18637, align 4, !tbaa !5
  %18639 = call ptr @strerror(i32 noundef %18638) #11
  %18640 = call ptr @__errno_location() #12
  %18641 = load i32, ptr %18640, align 4, !tbaa !5
  %18642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18629, ptr noundef @.str.2, i32 noundef %18630, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1140, ptr noundef %18633, ptr noundef %18636, ptr noundef %18639, i32 noundef %18641) #11
  br label %18660

18643:                                            ; preds = %18621, %18614
  %18644 = load i32, ptr %556, align 4, !tbaa !5
  %18645 = call ptr @__errno_location() #12
  store i32 %18644, ptr %18645, align 4, !tbaa !5
  %18646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18647 = load i32, ptr @test_count, align 4, !tbaa !5
  %18648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18649 = load i32, ptr %18648, align 4, !tbaa !5
  %18650 = call ptr @s2n_strerror(i32 noundef %18649, ptr noundef @.str.4)
  %18651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18652 = load i32, ptr %18651, align 4, !tbaa !5
  %18653 = call ptr @s2n_strerror_debug(i32 noundef %18652, ptr noundef @.str.4)
  %18654 = call ptr @__errno_location() #12
  %18655 = load i32, ptr %18654, align 4, !tbaa !5
  %18656 = call ptr @strerror(i32 noundef %18655) #11
  %18657 = call ptr @__errno_location() #12
  %18658 = load i32, ptr %18657, align 4, !tbaa !5
  %18659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18646, ptr noundef @.str.5, i32 noundef %18647, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1140, ptr noundef %18650, ptr noundef %18653, ptr noundef %18656, i32 noundef %18658) #11
  br label %18660

18660:                                            ; preds = %18643, %18626
  call void @llvm.lifetime.end.p0(i64 4, ptr %556) #11
  br label %18661

18661:                                            ; preds = %18660
  br label %18662

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

18663:                                            ; No predecessors!
  br label %18664

18664:                                            ; preds = %18663
  br label %18665

18665:                                            ; preds = %18664, %18607
  br label %18666

18666:                                            ; preds = %18665
  br label %18667

18667:                                            ; preds = %18666
  call void @llvm.lifetime.start.p0(i64 4, ptr %557) #11
  %18668 = getelementptr inbounds %struct.s2n_stuffer, ptr %555, i32 0, i32 2
  %18669 = load i32, ptr %18668, align 4, !tbaa !15
  %18670 = getelementptr inbounds %struct.s2n_stuffer, ptr %555, i32 0, i32 1
  %18671 = load i32, ptr %18670, align 8, !tbaa !18
  %18672 = sub i32 %18669, %18671
  store i32 %18672, ptr %557, align 4, !tbaa !5
  br label %18673

18673:                                            ; preds = %18667
  %18674 = load i32, ptr @test_count, align 4, !tbaa !5
  %18675 = add nsw i32 %18674, 1
  store i32 %18675, ptr @test_count, align 4, !tbaa !5
  %18676 = load i32, ptr %557, align 4, !tbaa !5
  %18677 = icmp ugt i32 %18676, 0
  br i1 %18677, label %18731, label %18678

18678:                                            ; preds = %18673
  br label %18679

18679:                                            ; preds = %18678
  br label %18680

18680:                                            ; preds = %18679
  call void @llvm.lifetime.start.p0(i64 4, ptr %558) #11
  %18681 = call ptr @__errno_location() #12
  %18682 = load i32, ptr %18681, align 4, !tbaa !5
  store i32 %18682, ptr %558, align 4, !tbaa !5
  %18683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18684 = call i32 @s2n_print_stacktrace(ptr noundef %18683)
  %18685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18686 = trunc i8 %18685 to i1
  br i1 %18686, label %18687, label %18709

18687:                                            ; preds = %18680
  %18688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18689 = call i32 @fileno(ptr noundef %18688) #11
  %18690 = call i32 @isatty(i32 noundef %18689) #11
  %18691 = icmp ne i32 %18690, 0
  br i1 %18691, label %18692, label %18709

18692:                                            ; preds = %18687
  %18693 = load i32, ptr %558, align 4, !tbaa !5
  %18694 = call ptr @__errno_location() #12
  store i32 %18693, ptr %18694, align 4, !tbaa !5
  %18695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18696 = load i32, ptr @test_count, align 4, !tbaa !5
  %18697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18698 = load i32, ptr %18697, align 4, !tbaa !5
  %18699 = call ptr @s2n_strerror(i32 noundef %18698, ptr noundef @.str.4)
  %18700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18701 = load i32, ptr %18700, align 4, !tbaa !5
  %18702 = call ptr @s2n_strerror_debug(i32 noundef %18701, ptr noundef @.str.4)
  %18703 = call ptr @__errno_location() #12
  %18704 = load i32, ptr %18703, align 4, !tbaa !5
  %18705 = call ptr @strerror(i32 noundef %18704) #11
  %18706 = call ptr @__errno_location() #12
  %18707 = load i32, ptr %18706, align 4, !tbaa !5
  %18708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18695, ptr noundef @.str.2, i32 noundef %18696, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1142, ptr noundef %18699, ptr noundef %18702, ptr noundef %18705, i32 noundef %18707) #11
  br label %18726

18709:                                            ; preds = %18687, %18680
  %18710 = load i32, ptr %558, align 4, !tbaa !5
  %18711 = call ptr @__errno_location() #12
  store i32 %18710, ptr %18711, align 4, !tbaa !5
  %18712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18713 = load i32, ptr @test_count, align 4, !tbaa !5
  %18714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18715 = load i32, ptr %18714, align 4, !tbaa !5
  %18716 = call ptr @s2n_strerror(i32 noundef %18715, ptr noundef @.str.4)
  %18717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18718 = load i32, ptr %18717, align 4, !tbaa !5
  %18719 = call ptr @s2n_strerror_debug(i32 noundef %18718, ptr noundef @.str.4)
  %18720 = call ptr @__errno_location() #12
  %18721 = load i32, ptr %18720, align 4, !tbaa !5
  %18722 = call ptr @strerror(i32 noundef %18721) #11
  %18723 = call ptr @__errno_location() #12
  %18724 = load i32, ptr %18723, align 4, !tbaa !5
  %18725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18712, ptr noundef @.str.5, i32 noundef %18713, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1142, ptr noundef %18716, ptr noundef %18719, ptr noundef %18722, i32 noundef %18724) #11
  br label %18726

18726:                                            ; preds = %18709, %18692
  call void @llvm.lifetime.end.p0(i64 4, ptr %558) #11
  br label %18727

18727:                                            ; preds = %18726
  br label %18728

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

18729:                                            ; No predecessors!
  br label %18730

18730:                                            ; preds = %18729
  br label %18731

18731:                                            ; preds = %18730, %18673
  br label %18732

18732:                                            ; preds = %18731
  br label %18733

18733:                                            ; preds = %18732
  br label %18734

18734:                                            ; preds = %18733
  br label %18735

18735:                                            ; preds = %18734
  br label %18736

18736:                                            ; preds = %18735
  %18737 = load i32, ptr @test_count, align 4, !tbaa !5
  %18738 = add nsw i32 %18737, 1
  store i32 %18738, ptr @test_count, align 4, !tbaa !5
  %18739 = load ptr, ptr %537, align 8, !tbaa !9
  %18740 = load i32, ptr %557, align 4, !tbaa !5
  %18741 = call ptr @s2n_stuffer_raw_read(ptr noundef %555, i32 noundef %18740)
  %18742 = load i32, ptr %557, align 4, !tbaa !5
  %18743 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %535, ptr noundef %18739, ptr noundef %18741, i32 noundef %18742)
  %18744 = getelementptr inbounds %struct.s2n_result, ptr %559, i32 0, i32 0
  store i32 %18743, ptr %18744, align 4
  %18745 = getelementptr inbounds %struct.s2n_result, ptr %559, i32 0, i32 0
  %18746 = load i32, ptr %18745, align 4
  %18747 = call zeroext i1 @s2n_result_is_error(i32 %18746)
  br i1 %18747, label %18801, label %18748

18748:                                            ; preds = %18736
  br label %18749

18749:                                            ; preds = %18748
  br label %18750

18750:                                            ; preds = %18749
  call void @llvm.lifetime.start.p0(i64 4, ptr %560) #11
  %18751 = call ptr @__errno_location() #12
  %18752 = load i32, ptr %18751, align 4, !tbaa !5
  store i32 %18752, ptr %560, align 4, !tbaa !5
  %18753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18754 = call i32 @s2n_print_stacktrace(ptr noundef %18753)
  %18755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18756 = trunc i8 %18755 to i1
  br i1 %18756, label %18757, label %18779

18757:                                            ; preds = %18750
  %18758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18759 = call i32 @fileno(ptr noundef %18758) #11
  %18760 = call i32 @isatty(i32 noundef %18759) #11
  %18761 = icmp ne i32 %18760, 0
  br i1 %18761, label %18762, label %18779

18762:                                            ; preds = %18757
  %18763 = load i32, ptr %560, align 4, !tbaa !5
  %18764 = call ptr @__errno_location() #12
  store i32 %18763, ptr %18764, align 4, !tbaa !5
  %18765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18766 = load i32, ptr @test_count, align 4, !tbaa !5
  %18767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18768 = load i32, ptr %18767, align 4, !tbaa !5
  %18769 = call ptr @s2n_strerror(i32 noundef %18768, ptr noundef @.str.4)
  %18770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18771 = load i32, ptr %18770, align 4, !tbaa !5
  %18772 = call ptr @s2n_strerror_debug(i32 noundef %18771, ptr noundef @.str.4)
  %18773 = call ptr @__errno_location() #12
  %18774 = load i32, ptr %18773, align 4, !tbaa !5
  %18775 = call ptr @strerror(i32 noundef %18774) #11
  %18776 = call ptr @__errno_location() #12
  %18777 = load i32, ptr %18776, align 4, !tbaa !5
  %18778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18765, ptr noundef @.str.2, i32 noundef %18766, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %18769, ptr noundef %18772, ptr noundef %18775, i32 noundef %18777) #11
  br label %18796

18779:                                            ; preds = %18757, %18750
  %18780 = load i32, ptr %560, align 4, !tbaa !5
  %18781 = call ptr @__errno_location() #12
  store i32 %18780, ptr %18781, align 4, !tbaa !5
  %18782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18783 = load i32, ptr @test_count, align 4, !tbaa !5
  %18784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18785 = load i32, ptr %18784, align 4, !tbaa !5
  %18786 = call ptr @s2n_strerror(i32 noundef %18785, ptr noundef @.str.4)
  %18787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18788 = load i32, ptr %18787, align 4, !tbaa !5
  %18789 = call ptr @s2n_strerror_debug(i32 noundef %18788, ptr noundef @.str.4)
  %18790 = call ptr @__errno_location() #12
  %18791 = load i32, ptr %18790, align 4, !tbaa !5
  %18792 = call ptr @strerror(i32 noundef %18791) #11
  %18793 = call ptr @__errno_location() #12
  %18794 = load i32, ptr %18793, align 4, !tbaa !5
  %18795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18782, ptr noundef @.str.5, i32 noundef %18783, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %18786, ptr noundef %18789, ptr noundef %18792, i32 noundef %18794) #11
  br label %18796

18796:                                            ; preds = %18779, %18762
  call void @llvm.lifetime.end.p0(i64 4, ptr %560) #11
  br label %18797

18797:                                            ; preds = %18796
  br label %18798

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

18799:                                            ; No predecessors!
  br label %18800

18800:                                            ; preds = %18799
  br label %18801

18801:                                            ; preds = %18800, %18736
  br label %18802

18802:                                            ; preds = %18801
  br label %18803

18803:                                            ; preds = %18802
  br label %18804

18804:                                            ; preds = %18803
  %18805 = load i32, ptr @test_count, align 4, !tbaa !5
  %18806 = add nsw i32 %18805, 1
  store i32 %18806, ptr @test_count, align 4, !tbaa !5
  %18807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18808 = load i32, ptr %18807, align 4, !tbaa !5
  %18809 = icmp eq i32 %18808, 335544369
  br i1 %18809, label %18863, label %18810

18810:                                            ; preds = %18804
  br label %18811

18811:                                            ; preds = %18810
  br label %18812

18812:                                            ; preds = %18811
  call void @llvm.lifetime.start.p0(i64 4, ptr %561) #11
  %18813 = call ptr @__errno_location() #12
  %18814 = load i32, ptr %18813, align 4, !tbaa !5
  store i32 %18814, ptr %561, align 4, !tbaa !5
  %18815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18816 = call i32 @s2n_print_stacktrace(ptr noundef %18815)
  %18817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18818 = trunc i8 %18817 to i1
  br i1 %18818, label %18819, label %18841

18819:                                            ; preds = %18812
  %18820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18821 = call i32 @fileno(ptr noundef %18820) #11
  %18822 = call i32 @isatty(i32 noundef %18821) #11
  %18823 = icmp ne i32 %18822, 0
  br i1 %18823, label %18824, label %18841

18824:                                            ; preds = %18819
  %18825 = load i32, ptr %561, align 4, !tbaa !5
  %18826 = call ptr @__errno_location() #12
  store i32 %18825, ptr %18826, align 4, !tbaa !5
  %18827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18828 = load i32, ptr @test_count, align 4, !tbaa !5
  %18829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18830 = load i32, ptr %18829, align 4, !tbaa !5
  %18831 = call ptr @s2n_strerror(i32 noundef %18830, ptr noundef @.str.4)
  %18832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18833 = load i32, ptr %18832, align 4, !tbaa !5
  %18834 = call ptr @s2n_strerror_debug(i32 noundef %18833, ptr noundef @.str.4)
  %18835 = call ptr @__errno_location() #12
  %18836 = load i32, ptr %18835, align 4, !tbaa !5
  %18837 = call ptr @strerror(i32 noundef %18836) #11
  %18838 = call ptr @__errno_location() #12
  %18839 = load i32, ptr %18838, align 4, !tbaa !5
  %18840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18827, ptr noundef @.str.2, i32 noundef %18828, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %18831, ptr noundef %18834, ptr noundef %18837, i32 noundef %18839) #11
  br label %18858

18841:                                            ; preds = %18819, %18812
  %18842 = load i32, ptr %561, align 4, !tbaa !5
  %18843 = call ptr @__errno_location() #12
  store i32 %18842, ptr %18843, align 4, !tbaa !5
  %18844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18845 = load i32, ptr @test_count, align 4, !tbaa !5
  %18846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18847 = load i32, ptr %18846, align 4, !tbaa !5
  %18848 = call ptr @s2n_strerror(i32 noundef %18847, ptr noundef @.str.4)
  %18849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18850 = load i32, ptr %18849, align 4, !tbaa !5
  %18851 = call ptr @s2n_strerror_debug(i32 noundef %18850, ptr noundef @.str.4)
  %18852 = call ptr @__errno_location() #12
  %18853 = load i32, ptr %18852, align 4, !tbaa !5
  %18854 = call ptr @strerror(i32 noundef %18853) #11
  %18855 = call ptr @__errno_location() #12
  %18856 = load i32, ptr %18855, align 4, !tbaa !5
  %18857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18844, ptr noundef @.str.5, i32 noundef %18845, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %18848, ptr noundef %18851, ptr noundef %18854, i32 noundef %18856) #11
  br label %18858

18858:                                            ; preds = %18841, %18824
  call void @llvm.lifetime.end.p0(i64 4, ptr %561) #11
  br label %18859

18859:                                            ; preds = %18858
  br label %18860

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

18861:                                            ; No predecessors!
  br label %18862

18862:                                            ; preds = %18861
  br label %18863

18863:                                            ; preds = %18862, %18804
  br label %18864

18864:                                            ; preds = %18863
  br label %18865

18865:                                            ; preds = %18864
  br label %18866

18866:                                            ; preds = %18865
  %18867 = load i32, ptr @test_count, align 4, !tbaa !5
  %18868 = add nsw i32 %18867, 1
  store i32 %18868, ptr @test_count, align 4, !tbaa !5
  %18869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18870 = load i32, ptr %18869, align 4, !tbaa !5
  %18871 = call ptr @s2n_strerror_debug(i32 noundef %18870, ptr noundef @.str.4)
  %18872 = icmp eq ptr %18871, null
  br i1 %18872, label %18873, label %18926

18873:                                            ; preds = %18866
  br label %18874

18874:                                            ; preds = %18873
  br label %18875

18875:                                            ; preds = %18874
  call void @llvm.lifetime.start.p0(i64 4, ptr %562) #11
  %18876 = call ptr @__errno_location() #12
  %18877 = load i32, ptr %18876, align 4, !tbaa !5
  store i32 %18877, ptr %562, align 4, !tbaa !5
  %18878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18879 = call i32 @s2n_print_stacktrace(ptr noundef %18878)
  %18880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18881 = trunc i8 %18880 to i1
  br i1 %18881, label %18882, label %18904

18882:                                            ; preds = %18875
  %18883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18884 = call i32 @fileno(ptr noundef %18883) #11
  %18885 = call i32 @isatty(i32 noundef %18884) #11
  %18886 = icmp ne i32 %18885, 0
  br i1 %18886, label %18887, label %18904

18887:                                            ; preds = %18882
  %18888 = load i32, ptr %562, align 4, !tbaa !5
  %18889 = call ptr @__errno_location() #12
  store i32 %18888, ptr %18889, align 4, !tbaa !5
  %18890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18891 = load i32, ptr @test_count, align 4, !tbaa !5
  %18892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18893 = load i32, ptr %18892, align 4, !tbaa !5
  %18894 = call ptr @s2n_strerror(i32 noundef %18893, ptr noundef @.str.4)
  %18895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18896 = load i32, ptr %18895, align 4, !tbaa !5
  %18897 = call ptr @s2n_strerror_debug(i32 noundef %18896, ptr noundef @.str.4)
  %18898 = call ptr @__errno_location() #12
  %18899 = load i32, ptr %18898, align 4, !tbaa !5
  %18900 = call ptr @strerror(i32 noundef %18899) #11
  %18901 = call ptr @__errno_location() #12
  %18902 = load i32, ptr %18901, align 4, !tbaa !5
  %18903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18890, ptr noundef @.str.2, i32 noundef %18891, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %18894, ptr noundef %18897, ptr noundef %18900, i32 noundef %18902) #11
  br label %18921

18904:                                            ; preds = %18882, %18875
  %18905 = load i32, ptr %562, align 4, !tbaa !5
  %18906 = call ptr @__errno_location() #12
  store i32 %18905, ptr %18906, align 4, !tbaa !5
  %18907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18908 = load i32, ptr @test_count, align 4, !tbaa !5
  %18909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18910 = load i32, ptr %18909, align 4, !tbaa !5
  %18911 = call ptr @s2n_strerror(i32 noundef %18910, ptr noundef @.str.4)
  %18912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18913 = load i32, ptr %18912, align 4, !tbaa !5
  %18914 = call ptr @s2n_strerror_debug(i32 noundef %18913, ptr noundef @.str.4)
  %18915 = call ptr @__errno_location() #12
  %18916 = load i32, ptr %18915, align 4, !tbaa !5
  %18917 = call ptr @strerror(i32 noundef %18916) #11
  %18918 = call ptr @__errno_location() #12
  %18919 = load i32, ptr %18918, align 4, !tbaa !5
  %18920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18907, ptr noundef @.str.5, i32 noundef %18908, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %18911, ptr noundef %18914, ptr noundef %18917, i32 noundef %18919) #11
  br label %18921

18921:                                            ; preds = %18904, %18887
  call void @llvm.lifetime.end.p0(i64 4, ptr %562) #11
  br label %18922

18922:                                            ; preds = %18921
  br label %18923

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

18924:                                            ; No predecessors!
  br label %18925

18925:                                            ; preds = %18924
  br label %18926

18926:                                            ; preds = %18925, %18866
  br label %18927

18927:                                            ; preds = %18926
  br label %18928

18928:                                            ; preds = %18927
  br label %18929

18929:                                            ; preds = %18928
  br label %18930

18930:                                            ; preds = %18929
  br label %18931

18931:                                            ; preds = %18930
  %18932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %18932, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %18933 = call ptr @__errno_location() #12
  store i32 0, ptr %18933, align 4, !tbaa !5
  br label %18934

18934:                                            ; preds = %18931
  br label %18935

18935:                                            ; preds = %18934
  br label %18936

18936:                                            ; preds = %18935
  br label %18937

18937:                                            ; preds = %18936
  br label %18938

18938:                                            ; preds = %18937
  %18939 = load i32, ptr @test_count, align 4, !tbaa !5
  %18940 = add nsw i32 %18939, 1
  store i32 %18940, ptr @test_count, align 4, !tbaa !5
  %18941 = load ptr, ptr %537, align 8, !tbaa !9
  %18942 = getelementptr inbounds %struct.s2n_connection, ptr %18941, i32 0, i32 1
  %18943 = load ptr, ptr %18942, align 8, !tbaa !22
  %18944 = load ptr, ptr %553, align 8, !tbaa !9
  %18945 = call i32 @s2n_config_set_wall_clock(ptr noundef %18943, ptr noundef %18944, ptr noundef null)
  %18946 = icmp eq i32 %18945, -1
  br i1 %18946, label %18947, label %19000

18947:                                            ; preds = %18938
  br label %18948

18948:                                            ; preds = %18947
  br label %18949

18949:                                            ; preds = %18948
  call void @llvm.lifetime.start.p0(i64 4, ptr %563) #11
  %18950 = call ptr @__errno_location() #12
  %18951 = load i32, ptr %18950, align 4, !tbaa !5
  store i32 %18951, ptr %563, align 4, !tbaa !5
  %18952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18953 = call i32 @s2n_print_stacktrace(ptr noundef %18952)
  %18954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18955 = trunc i8 %18954 to i1
  br i1 %18955, label %18956, label %18978

18956:                                            ; preds = %18949
  %18957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18958 = call i32 @fileno(ptr noundef %18957) #11
  %18959 = call i32 @isatty(i32 noundef %18958) #11
  %18960 = icmp ne i32 %18959, 0
  br i1 %18960, label %18961, label %18978

18961:                                            ; preds = %18956
  %18962 = load i32, ptr %563, align 4, !tbaa !5
  %18963 = call ptr @__errno_location() #12
  store i32 %18962, ptr %18963, align 4, !tbaa !5
  %18964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18965 = load i32, ptr @test_count, align 4, !tbaa !5
  %18966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18967 = load i32, ptr %18966, align 4, !tbaa !5
  %18968 = call ptr @s2n_strerror(i32 noundef %18967, ptr noundef @.str.4)
  %18969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18970 = load i32, ptr %18969, align 4, !tbaa !5
  %18971 = call ptr @s2n_strerror_debug(i32 noundef %18970, ptr noundef @.str.4)
  %18972 = call ptr @__errno_location() #12
  %18973 = load i32, ptr %18972, align 4, !tbaa !5
  %18974 = call ptr @strerror(i32 noundef %18973) #11
  %18975 = call ptr @__errno_location() #12
  %18976 = load i32, ptr %18975, align 4, !tbaa !5
  %18977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18964, ptr noundef @.str.2, i32 noundef %18965, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 1147, ptr noundef %18968, ptr noundef %18971, ptr noundef %18974, i32 noundef %18976) #11
  br label %18995

18978:                                            ; preds = %18956, %18949
  %18979 = load i32, ptr %563, align 4, !tbaa !5
  %18980 = call ptr @__errno_location() #12
  store i32 %18979, ptr %18980, align 4, !tbaa !5
  %18981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18982 = load i32, ptr @test_count, align 4, !tbaa !5
  %18983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18984 = load i32, ptr %18983, align 4, !tbaa !5
  %18985 = call ptr @s2n_strerror(i32 noundef %18984, ptr noundef @.str.4)
  %18986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18987 = load i32, ptr %18986, align 4, !tbaa !5
  %18988 = call ptr @s2n_strerror_debug(i32 noundef %18987, ptr noundef @.str.4)
  %18989 = call ptr @__errno_location() #12
  %18990 = load i32, ptr %18989, align 4, !tbaa !5
  %18991 = call ptr @strerror(i32 noundef %18990) #11
  %18992 = call ptr @__errno_location() #12
  %18993 = load i32, ptr %18992, align 4, !tbaa !5
  %18994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18981, ptr noundef @.str.5, i32 noundef %18982, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 1147, ptr noundef %18985, ptr noundef %18988, ptr noundef %18991, i32 noundef %18993) #11
  br label %18995

18995:                                            ; preds = %18978, %18961
  call void @llvm.lifetime.end.p0(i64 4, ptr %563) #11
  br label %18996

18996:                                            ; preds = %18995
  br label %18997

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

18998:                                            ; No predecessors!
  br label %18999

18999:                                            ; preds = %18998
  br label %19000

19000:                                            ; preds = %18999, %18938
  br label %19001

19001:                                            ; preds = %19000
  br label %19002

19002:                                            ; preds = %19001
  call void @llvm.lifetime.end.p0(i64 4, ptr %557) #11
  %19003 = call i32 @s2n_stuffer_free(ptr noundef %555)
  call void @llvm.lifetime.end.p0(i64 40, ptr %555) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %553) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %549) #11
  %19004 = call i32 @s2n_pkey_free(ptr noundef %547)
  call void @llvm.lifetime.end.p0(i64 48, ptr %547) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %545) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %544) #11
  %19005 = call i32 @s2n_stuffer_free(ptr noundef %541)
  call void @llvm.lifetime.end.p0(i64 40, ptr %541) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %539) #11
  %19006 = call i32 @s2n_connection_ptr_free(ptr noundef %537)
  %19007 = getelementptr inbounds %struct.s2n_result, ptr %564, i32 0, i32 0
  store i32 %19006, ptr %19007, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %537) #11
  %19008 = call i32 @s2n_x509_validator_wipe(ptr noundef %535)
  call void @llvm.lifetime.end.p0(i64 56, ptr %535) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef %533)
  call void @llvm.lifetime.end.p0(i64 16, ptr %533) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %565) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %565)
  br label %19009

19009:                                            ; preds = %19002
  %19010 = load i32, ptr @test_count, align 4, !tbaa !5
  %19011 = add nsw i32 %19010, 1
  store i32 %19011, ptr @test_count, align 4, !tbaa !5
  %19012 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %565, ptr noundef @.str.48, ptr noundef null)
  %19013 = icmp eq i32 %19012, -1
  br i1 %19013, label %19014, label %19067

19014:                                            ; preds = %19009
  br label %19015

19015:                                            ; preds = %19014
  br label %19016

19016:                                            ; preds = %19015
  call void @llvm.lifetime.start.p0(i64 4, ptr %566) #11
  %19017 = call ptr @__errno_location() #12
  %19018 = load i32, ptr %19017, align 4, !tbaa !5
  store i32 %19018, ptr %566, align 4, !tbaa !5
  %19019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19020 = call i32 @s2n_print_stacktrace(ptr noundef %19019)
  %19021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19022 = trunc i8 %19021 to i1
  br i1 %19022, label %19023, label %19045

19023:                                            ; preds = %19016
  %19024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19025 = call i32 @fileno(ptr noundef %19024) #11
  %19026 = call i32 @isatty(i32 noundef %19025) #11
  %19027 = icmp ne i32 %19026, 0
  br i1 %19027, label %19028, label %19045

19028:                                            ; preds = %19023
  %19029 = load i32, ptr %566, align 4, !tbaa !5
  %19030 = call ptr @__errno_location() #12
  store i32 %19029, ptr %19030, align 4, !tbaa !5
  %19031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19032 = load i32, ptr @test_count, align 4, !tbaa !5
  %19033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19034 = load i32, ptr %19033, align 4, !tbaa !5
  %19035 = call ptr @s2n_strerror(i32 noundef %19034, ptr noundef @.str.4)
  %19036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19037 = load i32, ptr %19036, align 4, !tbaa !5
  %19038 = call ptr @s2n_strerror_debug(i32 noundef %19037, ptr noundef @.str.4)
  %19039 = call ptr @__errno_location() #12
  %19040 = load i32, ptr %19039, align 4, !tbaa !5
  %19041 = call ptr @strerror(i32 noundef %19040) #11
  %19042 = call ptr @__errno_location() #12
  %19043 = load i32, ptr %19042, align 4, !tbaa !5
  %19044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19031, ptr noundef @.str.2, i32 noundef %19032, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1154, ptr noundef %19035, ptr noundef %19038, ptr noundef %19041, i32 noundef %19043) #11
  br label %19062

19045:                                            ; preds = %19023, %19016
  %19046 = load i32, ptr %566, align 4, !tbaa !5
  %19047 = call ptr @__errno_location() #12
  store i32 %19046, ptr %19047, align 4, !tbaa !5
  %19048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19049 = load i32, ptr @test_count, align 4, !tbaa !5
  %19050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19051 = load i32, ptr %19050, align 4, !tbaa !5
  %19052 = call ptr @s2n_strerror(i32 noundef %19051, ptr noundef @.str.4)
  %19053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19054 = load i32, ptr %19053, align 4, !tbaa !5
  %19055 = call ptr @s2n_strerror_debug(i32 noundef %19054, ptr noundef @.str.4)
  %19056 = call ptr @__errno_location() #12
  %19057 = load i32, ptr %19056, align 4, !tbaa !5
  %19058 = call ptr @strerror(i32 noundef %19057) #11
  %19059 = call ptr @__errno_location() #12
  %19060 = load i32, ptr %19059, align 4, !tbaa !5
  %19061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19048, ptr noundef @.str.5, i32 noundef %19049, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1154, ptr noundef %19052, ptr noundef %19055, ptr noundef %19058, i32 noundef %19060) #11
  br label %19062

19062:                                            ; preds = %19045, %19028
  call void @llvm.lifetime.end.p0(i64 4, ptr %566) #11
  br label %19063

19063:                                            ; preds = %19062
  br label %19064

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

19065:                                            ; No predecessors!
  br label %19066

19066:                                            ; preds = %19065
  br label %19067

19067:                                            ; preds = %19066, %19009
  br label %19068

19068:                                            ; preds = %19067
  br label %19069

19069:                                            ; preds = %19068
  call void @llvm.lifetime.start.p0(i64 56, ptr %567) #11
  %19070 = call i32 @s2n_x509_validator_init(ptr noundef %567, ptr noundef %565, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %568) #11
  %19071 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %19071, ptr %568, align 8, !tbaa !9
  br label %19072

19072:                                            ; preds = %19069
  %19073 = load i32, ptr @test_count, align 4, !tbaa !5
  %19074 = add nsw i32 %19073, 1
  store i32 %19074, ptr @test_count, align 4, !tbaa !5
  %19075 = load ptr, ptr %568, align 8, !tbaa !9
  %19076 = icmp eq ptr %19075, null
  br i1 %19076, label %19077, label %19130

19077:                                            ; preds = %19072
  br label %19078

19078:                                            ; preds = %19077
  br label %19079

19079:                                            ; preds = %19078
  call void @llvm.lifetime.start.p0(i64 4, ptr %569) #11
  %19080 = call ptr @__errno_location() #12
  %19081 = load i32, ptr %19080, align 4, !tbaa !5
  store i32 %19081, ptr %569, align 4, !tbaa !5
  %19082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19083 = call i32 @s2n_print_stacktrace(ptr noundef %19082)
  %19084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19085 = trunc i8 %19084 to i1
  br i1 %19085, label %19086, label %19108

19086:                                            ; preds = %19079
  %19087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19088 = call i32 @fileno(ptr noundef %19087) #11
  %19089 = call i32 @isatty(i32 noundef %19088) #11
  %19090 = icmp ne i32 %19089, 0
  br i1 %19090, label %19091, label %19108

19091:                                            ; preds = %19086
  %19092 = load i32, ptr %569, align 4, !tbaa !5
  %19093 = call ptr @__errno_location() #12
  store i32 %19092, ptr %19093, align 4, !tbaa !5
  %19094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19095 = load i32, ptr @test_count, align 4, !tbaa !5
  %19096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19097 = load i32, ptr %19096, align 4, !tbaa !5
  %19098 = call ptr @s2n_strerror(i32 noundef %19097, ptr noundef @.str.4)
  %19099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19100 = load i32, ptr %19099, align 4, !tbaa !5
  %19101 = call ptr @s2n_strerror_debug(i32 noundef %19100, ptr noundef @.str.4)
  %19102 = call ptr @__errno_location() #12
  %19103 = load i32, ptr %19102, align 4, !tbaa !5
  %19104 = call ptr @strerror(i32 noundef %19103) #11
  %19105 = call ptr @__errno_location() #12
  %19106 = load i32, ptr %19105, align 4, !tbaa !5
  %19107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19094, ptr noundef @.str.2, i32 noundef %19095, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1160, ptr noundef %19098, ptr noundef %19101, ptr noundef %19104, i32 noundef %19106) #11
  br label %19125

19108:                                            ; preds = %19086, %19079
  %19109 = load i32, ptr %569, align 4, !tbaa !5
  %19110 = call ptr @__errno_location() #12
  store i32 %19109, ptr %19110, align 4, !tbaa !5
  %19111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19112 = load i32, ptr @test_count, align 4, !tbaa !5
  %19113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19114 = load i32, ptr %19113, align 4, !tbaa !5
  %19115 = call ptr @s2n_strerror(i32 noundef %19114, ptr noundef @.str.4)
  %19116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19117 = load i32, ptr %19116, align 4, !tbaa !5
  %19118 = call ptr @s2n_strerror_debug(i32 noundef %19117, ptr noundef @.str.4)
  %19119 = call ptr @__errno_location() #12
  %19120 = load i32, ptr %19119, align 4, !tbaa !5
  %19121 = call ptr @strerror(i32 noundef %19120) #11
  %19122 = call ptr @__errno_location() #12
  %19123 = load i32, ptr %19122, align 4, !tbaa !5
  %19124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19111, ptr noundef @.str.5, i32 noundef %19112, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1160, ptr noundef %19115, ptr noundef %19118, ptr noundef %19121, i32 noundef %19123) #11
  br label %19125

19125:                                            ; preds = %19108, %19091
  call void @llvm.lifetime.end.p0(i64 4, ptr %569) #11
  br label %19126

19126:                                            ; preds = %19125
  br label %19127

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

19128:                                            ; No predecessors!
  br label %19129

19129:                                            ; preds = %19128
  br label %19130

19130:                                            ; preds = %19129, %19072
  br label %19131

19131:                                            ; preds = %19130
  br label %19132

19132:                                            ; preds = %19131
  call void @llvm.lifetime.start.p0(i64 16, ptr %570) #11
  call void @llvm.memset.p0.i64(ptr align 8 %570, i8 0, i64 16, i1 false)
  br label %19133

19133:                                            ; preds = %19132
  %19134 = load i32, ptr @test_count, align 4, !tbaa !5
  %19135 = add nsw i32 %19134, 1
  store i32 %19135, ptr @test_count, align 4, !tbaa !5
  %19136 = load ptr, ptr %568, align 8, !tbaa !9
  %19137 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %19136, ptr noundef @verify_host_accept_everything, ptr noundef %570)
  %19138 = icmp eq i32 %19137, -1
  br i1 %19138, label %19139, label %19192

19139:                                            ; preds = %19133
  br label %19140

19140:                                            ; preds = %19139
  br label %19141

19141:                                            ; preds = %19140
  call void @llvm.lifetime.start.p0(i64 4, ptr %571) #11
  %19142 = call ptr @__errno_location() #12
  %19143 = load i32, ptr %19142, align 4, !tbaa !5
  store i32 %19143, ptr %571, align 4, !tbaa !5
  %19144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19145 = call i32 @s2n_print_stacktrace(ptr noundef %19144)
  %19146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19147 = trunc i8 %19146 to i1
  br i1 %19147, label %19148, label %19170

19148:                                            ; preds = %19141
  %19149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19150 = call i32 @fileno(ptr noundef %19149) #11
  %19151 = call i32 @isatty(i32 noundef %19150) #11
  %19152 = icmp ne i32 %19151, 0
  br i1 %19152, label %19153, label %19170

19153:                                            ; preds = %19148
  %19154 = load i32, ptr %571, align 4, !tbaa !5
  %19155 = call ptr @__errno_location() #12
  store i32 %19154, ptr %19155, align 4, !tbaa !5
  %19156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19157 = load i32, ptr @test_count, align 4, !tbaa !5
  %19158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19159 = load i32, ptr %19158, align 4, !tbaa !5
  %19160 = call ptr @s2n_strerror(i32 noundef %19159, ptr noundef @.str.4)
  %19161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19162 = load i32, ptr %19161, align 4, !tbaa !5
  %19163 = call ptr @s2n_strerror_debug(i32 noundef %19162, ptr noundef @.str.4)
  %19164 = call ptr @__errno_location() #12
  %19165 = load i32, ptr %19164, align 4, !tbaa !5
  %19166 = call ptr @strerror(i32 noundef %19165) #11
  %19167 = call ptr @__errno_location() #12
  %19168 = load i32, ptr %19167, align 4, !tbaa !5
  %19169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19156, ptr noundef @.str.2, i32 noundef %19157, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1163, ptr noundef %19160, ptr noundef %19163, ptr noundef %19166, i32 noundef %19168) #11
  br label %19187

19170:                                            ; preds = %19148, %19141
  %19171 = load i32, ptr %571, align 4, !tbaa !5
  %19172 = call ptr @__errno_location() #12
  store i32 %19171, ptr %19172, align 4, !tbaa !5
  %19173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19174 = load i32, ptr @test_count, align 4, !tbaa !5
  %19175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19176 = load i32, ptr %19175, align 4, !tbaa !5
  %19177 = call ptr @s2n_strerror(i32 noundef %19176, ptr noundef @.str.4)
  %19178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19179 = load i32, ptr %19178, align 4, !tbaa !5
  %19180 = call ptr @s2n_strerror_debug(i32 noundef %19179, ptr noundef @.str.4)
  %19181 = call ptr @__errno_location() #12
  %19182 = load i32, ptr %19181, align 4, !tbaa !5
  %19183 = call ptr @strerror(i32 noundef %19182) #11
  %19184 = call ptr @__errno_location() #12
  %19185 = load i32, ptr %19184, align 4, !tbaa !5
  %19186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19173, ptr noundef @.str.5, i32 noundef %19174, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1163, ptr noundef %19177, ptr noundef %19180, ptr noundef %19183, i32 noundef %19185) #11
  br label %19187

19187:                                            ; preds = %19170, %19153
  call void @llvm.lifetime.end.p0(i64 4, ptr %571) #11
  br label %19188

19188:                                            ; preds = %19187
  br label %19189

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

19190:                                            ; No predecessors!
  br label %19191

19191:                                            ; preds = %19190
  br label %19192

19192:                                            ; preds = %19191, %19133
  br label %19193

19193:                                            ; preds = %19192
  br label %19194

19194:                                            ; preds = %19193
  call void @llvm.lifetime.start.p0(i64 40, ptr %572) #11
  call void @llvm.memset.p0.i64(ptr align 8 %572, i8 0, i64 40, i1 false)
  br label %19195

19195:                                            ; preds = %19194
  %19196 = load i32, ptr @test_count, align 4, !tbaa !5
  %19197 = add nsw i32 %19196, 1
  store i32 %19197, ptr @test_count, align 4, !tbaa !5
  %19198 = load ptr, ptr %568, align 8, !tbaa !9
  %19199 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %19198, ptr noundef @.str.72, ptr noundef %572)
  %19200 = getelementptr inbounds %struct.s2n_result, ptr %573, i32 0, i32 0
  store i32 %19199, ptr %19200, align 4
  %19201 = getelementptr inbounds %struct.s2n_result, ptr %573, i32 0, i32 0
  %19202 = load i32, ptr %19201, align 4
  %19203 = call zeroext i1 @s2n_result_is_ok(i32 %19202)
  br i1 %19203, label %19257, label %19204

19204:                                            ; preds = %19195
  br label %19205

19205:                                            ; preds = %19204
  br label %19206

19206:                                            ; preds = %19205
  call void @llvm.lifetime.start.p0(i64 4, ptr %574) #11
  %19207 = call ptr @__errno_location() #12
  %19208 = load i32, ptr %19207, align 4, !tbaa !5
  store i32 %19208, ptr %574, align 4, !tbaa !5
  %19209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19210 = call i32 @s2n_print_stacktrace(ptr noundef %19209)
  %19211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19212 = trunc i8 %19211 to i1
  br i1 %19212, label %19213, label %19235

19213:                                            ; preds = %19206
  %19214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19215 = call i32 @fileno(ptr noundef %19214) #11
  %19216 = call i32 @isatty(i32 noundef %19215) #11
  %19217 = icmp ne i32 %19216, 0
  br i1 %19217, label %19218, label %19235

19218:                                            ; preds = %19213
  %19219 = load i32, ptr %574, align 4, !tbaa !5
  %19220 = call ptr @__errno_location() #12
  store i32 %19219, ptr %19220, align 4, !tbaa !5
  %19221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19222 = load i32, ptr @test_count, align 4, !tbaa !5
  %19223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19224 = load i32, ptr %19223, align 4, !tbaa !5
  %19225 = call ptr @s2n_strerror(i32 noundef %19224, ptr noundef @.str.4)
  %19226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19227 = load i32, ptr %19226, align 4, !tbaa !5
  %19228 = call ptr @s2n_strerror_debug(i32 noundef %19227, ptr noundef @.str.4)
  %19229 = call ptr @__errno_location() #12
  %19230 = load i32, ptr %19229, align 4, !tbaa !5
  %19231 = call ptr @strerror(i32 noundef %19230) #11
  %19232 = call ptr @__errno_location() #12
  %19233 = load i32, ptr %19232, align 4, !tbaa !5
  %19234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19221, ptr noundef @.str.2, i32 noundef %19222, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1166, ptr noundef %19225, ptr noundef %19228, ptr noundef %19231, i32 noundef %19233) #11
  br label %19252

19235:                                            ; preds = %19213, %19206
  %19236 = load i32, ptr %574, align 4, !tbaa !5
  %19237 = call ptr @__errno_location() #12
  store i32 %19236, ptr %19237, align 4, !tbaa !5
  %19238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19239 = load i32, ptr @test_count, align 4, !tbaa !5
  %19240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19241 = load i32, ptr %19240, align 4, !tbaa !5
  %19242 = call ptr @s2n_strerror(i32 noundef %19241, ptr noundef @.str.4)
  %19243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19244 = load i32, ptr %19243, align 4, !tbaa !5
  %19245 = call ptr @s2n_strerror_debug(i32 noundef %19244, ptr noundef @.str.4)
  %19246 = call ptr @__errno_location() #12
  %19247 = load i32, ptr %19246, align 4, !tbaa !5
  %19248 = call ptr @strerror(i32 noundef %19247) #11
  %19249 = call ptr @__errno_location() #12
  %19250 = load i32, ptr %19249, align 4, !tbaa !5
  %19251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19238, ptr noundef @.str.5, i32 noundef %19239, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1166, ptr noundef %19242, ptr noundef %19245, ptr noundef %19248, i32 noundef %19250) #11
  br label %19252

19252:                                            ; preds = %19235, %19218
  call void @llvm.lifetime.end.p0(i64 4, ptr %574) #11
  br label %19253

19253:                                            ; preds = %19252
  br label %19254

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

19255:                                            ; No predecessors!
  br label %19256

19256:                                            ; preds = %19255
  br label %19257

19257:                                            ; preds = %19256, %19195
  br label %19258

19258:                                            ; preds = %19257
  br label %19259

19259:                                            ; preds = %19258
  call void @llvm.lifetime.start.p0(i64 4, ptr %575) #11
  %19260 = getelementptr inbounds %struct.s2n_stuffer, ptr %572, i32 0, i32 2
  %19261 = load i32, ptr %19260, align 4, !tbaa !15
  %19262 = getelementptr inbounds %struct.s2n_stuffer, ptr %572, i32 0, i32 1
  %19263 = load i32, ptr %19262, align 8, !tbaa !18
  %19264 = sub i32 %19261, %19263
  store i32 %19264, ptr %575, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %576) #11
  %19265 = load i32, ptr %575, align 4, !tbaa !5
  %19266 = call ptr @s2n_stuffer_raw_read(ptr noundef %572, i32 noundef %19265)
  store ptr %19266, ptr %576, align 8, !tbaa !9
  br label %19267

19267:                                            ; preds = %19259
  %19268 = load i32, ptr @test_count, align 4, !tbaa !5
  %19269 = add nsw i32 %19268, 1
  store i32 %19269, ptr @test_count, align 4, !tbaa !5
  %19270 = load ptr, ptr %576, align 8, !tbaa !9
  %19271 = icmp eq ptr %19270, null
  br i1 %19271, label %19272, label %19325

19272:                                            ; preds = %19267
  br label %19273

19273:                                            ; preds = %19272
  br label %19274

19274:                                            ; preds = %19273
  call void @llvm.lifetime.start.p0(i64 4, ptr %577) #11
  %19275 = call ptr @__errno_location() #12
  %19276 = load i32, ptr %19275, align 4, !tbaa !5
  store i32 %19276, ptr %577, align 4, !tbaa !5
  %19277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19278 = call i32 @s2n_print_stacktrace(ptr noundef %19277)
  %19279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19280 = trunc i8 %19279 to i1
  br i1 %19280, label %19281, label %19303

19281:                                            ; preds = %19274
  %19282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19283 = call i32 @fileno(ptr noundef %19282) #11
  %19284 = call i32 @isatty(i32 noundef %19283) #11
  %19285 = icmp ne i32 %19284, 0
  br i1 %19285, label %19286, label %19303

19286:                                            ; preds = %19281
  %19287 = load i32, ptr %577, align 4, !tbaa !5
  %19288 = call ptr @__errno_location() #12
  store i32 %19287, ptr %19288, align 4, !tbaa !5
  %19289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19290 = load i32, ptr @test_count, align 4, !tbaa !5
  %19291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19292 = load i32, ptr %19291, align 4, !tbaa !5
  %19293 = call ptr @s2n_strerror(i32 noundef %19292, ptr noundef @.str.4)
  %19294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19295 = load i32, ptr %19294, align 4, !tbaa !5
  %19296 = call ptr @s2n_strerror_debug(i32 noundef %19295, ptr noundef @.str.4)
  %19297 = call ptr @__errno_location() #12
  %19298 = load i32, ptr %19297, align 4, !tbaa !5
  %19299 = call ptr @strerror(i32 noundef %19298) #11
  %19300 = call ptr @__errno_location() #12
  %19301 = load i32, ptr %19300, align 4, !tbaa !5
  %19302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19289, ptr noundef @.str.2, i32 noundef %19290, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1169, ptr noundef %19293, ptr noundef %19296, ptr noundef %19299, i32 noundef %19301) #11
  br label %19320

19303:                                            ; preds = %19281, %19274
  %19304 = load i32, ptr %577, align 4, !tbaa !5
  %19305 = call ptr @__errno_location() #12
  store i32 %19304, ptr %19305, align 4, !tbaa !5
  %19306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19307 = load i32, ptr @test_count, align 4, !tbaa !5
  %19308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19309 = load i32, ptr %19308, align 4, !tbaa !5
  %19310 = call ptr @s2n_strerror(i32 noundef %19309, ptr noundef @.str.4)
  %19311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19312 = load i32, ptr %19311, align 4, !tbaa !5
  %19313 = call ptr @s2n_strerror_debug(i32 noundef %19312, ptr noundef @.str.4)
  %19314 = call ptr @__errno_location() #12
  %19315 = load i32, ptr %19314, align 4, !tbaa !5
  %19316 = call ptr @strerror(i32 noundef %19315) #11
  %19317 = call ptr @__errno_location() #12
  %19318 = load i32, ptr %19317, align 4, !tbaa !5
  %19319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19306, ptr noundef @.str.5, i32 noundef %19307, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1169, ptr noundef %19310, ptr noundef %19313, ptr noundef %19316, i32 noundef %19318) #11
  br label %19320

19320:                                            ; preds = %19303, %19286
  call void @llvm.lifetime.end.p0(i64 4, ptr %577) #11
  br label %19321

19321:                                            ; preds = %19320
  br label %19322

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

19323:                                            ; No predecessors!
  br label %19324

19324:                                            ; preds = %19323
  br label %19325

19325:                                            ; preds = %19324, %19267
  br label %19326

19326:                                            ; preds = %19325
  br label %19327

19327:                                            ; preds = %19326
  call void @llvm.lifetime.start.p0(i64 48, ptr %578) #11
  br label %19328

19328:                                            ; preds = %19327
  %19329 = load i32, ptr @test_count, align 4, !tbaa !5
  %19330 = add nsw i32 %19329, 1
  store i32 %19330, ptr @test_count, align 4, !tbaa !5
  %19331 = call i32 @s2n_pkey_zero_init(ptr noundef %578)
  %19332 = icmp eq i32 %19331, -1
  br i1 %19332, label %19333, label %19386

19333:                                            ; preds = %19328
  br label %19334

19334:                                            ; preds = %19333
  br label %19335

19335:                                            ; preds = %19334
  call void @llvm.lifetime.start.p0(i64 4, ptr %579) #11
  %19336 = call ptr @__errno_location() #12
  %19337 = load i32, ptr %19336, align 4, !tbaa !5
  store i32 %19337, ptr %579, align 4, !tbaa !5
  %19338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19339 = call i32 @s2n_print_stacktrace(ptr noundef %19338)
  %19340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19341 = trunc i8 %19340 to i1
  br i1 %19341, label %19342, label %19364

19342:                                            ; preds = %19335
  %19343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19344 = call i32 @fileno(ptr noundef %19343) #11
  %19345 = call i32 @isatty(i32 noundef %19344) #11
  %19346 = icmp ne i32 %19345, 0
  br i1 %19346, label %19347, label %19364

19347:                                            ; preds = %19342
  %19348 = load i32, ptr %579, align 4, !tbaa !5
  %19349 = call ptr @__errno_location() #12
  store i32 %19348, ptr %19349, align 4, !tbaa !5
  %19350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19351 = load i32, ptr @test_count, align 4, !tbaa !5
  %19352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19353 = load i32, ptr %19352, align 4, !tbaa !5
  %19354 = call ptr @s2n_strerror(i32 noundef %19353, ptr noundef @.str.4)
  %19355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19356 = load i32, ptr %19355, align 4, !tbaa !5
  %19357 = call ptr @s2n_strerror_debug(i32 noundef %19356, ptr noundef @.str.4)
  %19358 = call ptr @__errno_location() #12
  %19359 = load i32, ptr %19358, align 4, !tbaa !5
  %19360 = call ptr @strerror(i32 noundef %19359) #11
  %19361 = call ptr @__errno_location() #12
  %19362 = load i32, ptr %19361, align 4, !tbaa !5
  %19363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19350, ptr noundef @.str.2, i32 noundef %19351, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1172, ptr noundef %19354, ptr noundef %19357, ptr noundef %19360, i32 noundef %19362) #11
  br label %19381

19364:                                            ; preds = %19342, %19335
  %19365 = load i32, ptr %579, align 4, !tbaa !5
  %19366 = call ptr @__errno_location() #12
  store i32 %19365, ptr %19366, align 4, !tbaa !5
  %19367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19368 = load i32, ptr @test_count, align 4, !tbaa !5
  %19369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19370 = load i32, ptr %19369, align 4, !tbaa !5
  %19371 = call ptr @s2n_strerror(i32 noundef %19370, ptr noundef @.str.4)
  %19372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19373 = load i32, ptr %19372, align 4, !tbaa !5
  %19374 = call ptr @s2n_strerror_debug(i32 noundef %19373, ptr noundef @.str.4)
  %19375 = call ptr @__errno_location() #12
  %19376 = load i32, ptr %19375, align 4, !tbaa !5
  %19377 = call ptr @strerror(i32 noundef %19376) #11
  %19378 = call ptr @__errno_location() #12
  %19379 = load i32, ptr %19378, align 4, !tbaa !5
  %19380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19367, ptr noundef @.str.5, i32 noundef %19368, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1172, ptr noundef %19371, ptr noundef %19374, ptr noundef %19377, i32 noundef %19379) #11
  br label %19381

19381:                                            ; preds = %19364, %19347
  call void @llvm.lifetime.end.p0(i64 4, ptr %579) #11
  br label %19382

19382:                                            ; preds = %19381
  br label %19383

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

19384:                                            ; No predecessors!
  br label %19385

19385:                                            ; preds = %19384
  br label %19386

19386:                                            ; preds = %19385, %19328
  br label %19387

19387:                                            ; preds = %19386
  br label %19388

19388:                                            ; preds = %19387
  call void @llvm.lifetime.start.p0(i64 4, ptr %580) #11
  store i32 -1, ptr %580, align 4, !tbaa !5
  br label %19389

19389:                                            ; preds = %19388
  %19390 = load i32, ptr @test_count, align 4, !tbaa !5
  %19391 = add nsw i32 %19390, 1
  store i32 %19391, ptr @test_count, align 4, !tbaa !5
  %19392 = load ptr, ptr %568, align 8, !tbaa !9
  %19393 = load ptr, ptr %576, align 8, !tbaa !9
  %19394 = load i32, ptr %575, align 4, !tbaa !5
  %19395 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %567, ptr noundef %19392, ptr noundef %19393, i32 noundef %19394, ptr noundef %580, ptr noundef %578)
  %19396 = getelementptr inbounds %struct.s2n_result, ptr %581, i32 0, i32 0
  store i32 %19395, ptr %19396, align 4
  %19397 = getelementptr inbounds %struct.s2n_result, ptr %581, i32 0, i32 0
  %19398 = load i32, ptr %19397, align 4
  %19399 = call zeroext i1 @s2n_result_is_ok(i32 %19398)
  br i1 %19399, label %19453, label %19400

19400:                                            ; preds = %19389
  br label %19401

19401:                                            ; preds = %19400
  br label %19402

19402:                                            ; preds = %19401
  call void @llvm.lifetime.start.p0(i64 4, ptr %582) #11
  %19403 = call ptr @__errno_location() #12
  %19404 = load i32, ptr %19403, align 4, !tbaa !5
  store i32 %19404, ptr %582, align 4, !tbaa !5
  %19405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19406 = call i32 @s2n_print_stacktrace(ptr noundef %19405)
  %19407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19408 = trunc i8 %19407 to i1
  br i1 %19408, label %19409, label %19431

19409:                                            ; preds = %19402
  %19410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19411 = call i32 @fileno(ptr noundef %19410) #11
  %19412 = call i32 @isatty(i32 noundef %19411) #11
  %19413 = icmp ne i32 %19412, 0
  br i1 %19413, label %19414, label %19431

19414:                                            ; preds = %19409
  %19415 = load i32, ptr %582, align 4, !tbaa !5
  %19416 = call ptr @__errno_location() #12
  store i32 %19415, ptr %19416, align 4, !tbaa !5
  %19417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19418 = load i32, ptr @test_count, align 4, !tbaa !5
  %19419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19420 = load i32, ptr %19419, align 4, !tbaa !5
  %19421 = call ptr @s2n_strerror(i32 noundef %19420, ptr noundef @.str.4)
  %19422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19423 = load i32, ptr %19422, align 4, !tbaa !5
  %19424 = call ptr @s2n_strerror_debug(i32 noundef %19423, ptr noundef @.str.4)
  %19425 = call ptr @__errno_location() #12
  %19426 = load i32, ptr %19425, align 4, !tbaa !5
  %19427 = call ptr @strerror(i32 noundef %19426) #11
  %19428 = call ptr @__errno_location() #12
  %19429 = load i32, ptr %19428, align 4, !tbaa !5
  %19430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19417, ptr noundef @.str.2, i32 noundef %19418, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1174, ptr noundef %19421, ptr noundef %19424, ptr noundef %19427, i32 noundef %19429) #11
  br label %19448

19431:                                            ; preds = %19409, %19402
  %19432 = load i32, ptr %582, align 4, !tbaa !5
  %19433 = call ptr @__errno_location() #12
  store i32 %19432, ptr %19433, align 4, !tbaa !5
  %19434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19435 = load i32, ptr @test_count, align 4, !tbaa !5
  %19436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19437 = load i32, ptr %19436, align 4, !tbaa !5
  %19438 = call ptr @s2n_strerror(i32 noundef %19437, ptr noundef @.str.4)
  %19439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19440 = load i32, ptr %19439, align 4, !tbaa !5
  %19441 = call ptr @s2n_strerror_debug(i32 noundef %19440, ptr noundef @.str.4)
  %19442 = call ptr @__errno_location() #12
  %19443 = load i32, ptr %19442, align 4, !tbaa !5
  %19444 = call ptr @strerror(i32 noundef %19443) #11
  %19445 = call ptr @__errno_location() #12
  %19446 = load i32, ptr %19445, align 4, !tbaa !5
  %19447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19434, ptr noundef @.str.5, i32 noundef %19435, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1174, ptr noundef %19438, ptr noundef %19441, ptr noundef %19444, i32 noundef %19446) #11
  br label %19448

19448:                                            ; preds = %19431, %19414
  call void @llvm.lifetime.end.p0(i64 4, ptr %582) #11
  br label %19449

19449:                                            ; preds = %19448
  br label %19450

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

19451:                                            ; No predecessors!
  br label %19452

19452:                                            ; preds = %19451
  br label %19453

19453:                                            ; preds = %19452, %19389
  br label %19454

19454:                                            ; preds = %19453
  br label %19455

19455:                                            ; preds = %19454
  br label %19456

19456:                                            ; preds = %19455
  %19457 = load i32, ptr @test_count, align 4, !tbaa !5
  %19458 = add nsw i32 %19457, 1
  store i32 %19458, ptr @test_count, align 4, !tbaa !5
  %19459 = getelementptr inbounds %struct.host_verify_data, ptr %570, i32 0, i32 2
  %19460 = load i8, ptr %19459, align 1, !tbaa !19
  %19461 = zext i8 %19460 to i32
  %19462 = icmp eq i32 1, %19461
  br i1 %19462, label %19516, label %19463

19463:                                            ; preds = %19456
  br label %19464

19464:                                            ; preds = %19463
  br label %19465

19465:                                            ; preds = %19464
  call void @llvm.lifetime.start.p0(i64 4, ptr %583) #11
  %19466 = call ptr @__errno_location() #12
  %19467 = load i32, ptr %19466, align 4, !tbaa !5
  store i32 %19467, ptr %583, align 4, !tbaa !5
  %19468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19469 = call i32 @s2n_print_stacktrace(ptr noundef %19468)
  %19470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19471 = trunc i8 %19470 to i1
  br i1 %19471, label %19472, label %19494

19472:                                            ; preds = %19465
  %19473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19474 = call i32 @fileno(ptr noundef %19473) #11
  %19475 = call i32 @isatty(i32 noundef %19474) #11
  %19476 = icmp ne i32 %19475, 0
  br i1 %19476, label %19477, label %19494

19477:                                            ; preds = %19472
  %19478 = load i32, ptr %583, align 4, !tbaa !5
  %19479 = call ptr @__errno_location() #12
  store i32 %19478, ptr %19479, align 4, !tbaa !5
  %19480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19481 = load i32, ptr @test_count, align 4, !tbaa !5
  %19482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19483 = load i32, ptr %19482, align 4, !tbaa !5
  %19484 = call ptr @s2n_strerror(i32 noundef %19483, ptr noundef @.str.4)
  %19485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19486 = load i32, ptr %19485, align 4, !tbaa !5
  %19487 = call ptr @s2n_strerror_debug(i32 noundef %19486, ptr noundef @.str.4)
  %19488 = call ptr @__errno_location() #12
  %19489 = load i32, ptr %19488, align 4, !tbaa !5
  %19490 = call ptr @strerror(i32 noundef %19489) #11
  %19491 = call ptr @__errno_location() #12
  %19492 = load i32, ptr %19491, align 4, !tbaa !5
  %19493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19480, ptr noundef @.str.2, i32 noundef %19481, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1176, ptr noundef %19484, ptr noundef %19487, ptr noundef %19490, i32 noundef %19492) #11
  br label %19511

19494:                                            ; preds = %19472, %19465
  %19495 = load i32, ptr %583, align 4, !tbaa !5
  %19496 = call ptr @__errno_location() #12
  store i32 %19495, ptr %19496, align 4, !tbaa !5
  %19497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19498 = load i32, ptr @test_count, align 4, !tbaa !5
  %19499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19500 = load i32, ptr %19499, align 4, !tbaa !5
  %19501 = call ptr @s2n_strerror(i32 noundef %19500, ptr noundef @.str.4)
  %19502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19503 = load i32, ptr %19502, align 4, !tbaa !5
  %19504 = call ptr @s2n_strerror_debug(i32 noundef %19503, ptr noundef @.str.4)
  %19505 = call ptr @__errno_location() #12
  %19506 = load i32, ptr %19505, align 4, !tbaa !5
  %19507 = call ptr @strerror(i32 noundef %19506) #11
  %19508 = call ptr @__errno_location() #12
  %19509 = load i32, ptr %19508, align 4, !tbaa !5
  %19510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19497, ptr noundef @.str.5, i32 noundef %19498, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1176, ptr noundef %19501, ptr noundef %19504, ptr noundef %19507, i32 noundef %19509) #11
  br label %19511

19511:                                            ; preds = %19494, %19477
  call void @llvm.lifetime.end.p0(i64 4, ptr %583) #11
  br label %19512

19512:                                            ; preds = %19511
  br label %19513

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

19514:                                            ; No predecessors!
  br label %19515

19515:                                            ; preds = %19514
  br label %19516

19516:                                            ; preds = %19515, %19456
  br label %19517

19517:                                            ; preds = %19516
  br label %19518

19518:                                            ; preds = %19517
  call void @llvm.lifetime.start.p0(i64 8, ptr %584) #11
  %19519 = load ptr, ptr %568, align 8, !tbaa !9
  %19520 = getelementptr inbounds %struct.s2n_connection, ptr %19519, i32 0, i32 1
  %19521 = load ptr, ptr %19520, align 8, !tbaa !22
  %19522 = getelementptr inbounds %struct.s2n_config, ptr %19521, i32 0, i32 5
  %19523 = load ptr, ptr %19522, align 8, !tbaa !47
  store ptr %19523, ptr %584, align 8, !tbaa !9
  %19524 = load ptr, ptr %568, align 8, !tbaa !9
  %19525 = getelementptr inbounds %struct.s2n_connection, ptr %19524, i32 0, i32 1
  %19526 = load ptr, ptr %19525, align 8, !tbaa !22
  %19527 = call i32 @s2n_config_set_wall_clock(ptr noundef %19526, ptr noundef @fetch_invalid_before_ocsp_timestamp, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 40, ptr %585) #11
  call void @llvm.memset.p0.i64(ptr align 8 %585, i8 0, i64 40, i1 false)
  br label %19528

19528:                                            ; preds = %19518
  %19529 = load i32, ptr @test_count, align 4, !tbaa !5
  %19530 = add nsw i32 %19529, 1
  store i32 %19530, ptr @test_count, align 4, !tbaa !5
  %19531 = call i32 @read_file(ptr noundef %585, ptr noundef @.str.74, i32 noundef 12000)
  %19532 = icmp eq i32 %19531, -1
  br i1 %19532, label %19533, label %19586

19533:                                            ; preds = %19528
  br label %19534

19534:                                            ; preds = %19533
  br label %19535

19535:                                            ; preds = %19534
  call void @llvm.lifetime.start.p0(i64 4, ptr %586) #11
  %19536 = call ptr @__errno_location() #12
  %19537 = load i32, ptr %19536, align 4, !tbaa !5
  store i32 %19537, ptr %586, align 4, !tbaa !5
  %19538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19539 = call i32 @s2n_print_stacktrace(ptr noundef %19538)
  %19540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19541 = trunc i8 %19540 to i1
  br i1 %19541, label %19542, label %19564

19542:                                            ; preds = %19535
  %19543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19544 = call i32 @fileno(ptr noundef %19543) #11
  %19545 = call i32 @isatty(i32 noundef %19544) #11
  %19546 = icmp ne i32 %19545, 0
  br i1 %19546, label %19547, label %19564

19547:                                            ; preds = %19542
  %19548 = load i32, ptr %586, align 4, !tbaa !5
  %19549 = call ptr @__errno_location() #12
  store i32 %19548, ptr %19549, align 4, !tbaa !5
  %19550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19551 = load i32, ptr @test_count, align 4, !tbaa !5
  %19552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19553 = load i32, ptr %19552, align 4, !tbaa !5
  %19554 = call ptr @s2n_strerror(i32 noundef %19553, ptr noundef @.str.4)
  %19555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19556 = load i32, ptr %19555, align 4, !tbaa !5
  %19557 = call ptr @s2n_strerror_debug(i32 noundef %19556, ptr noundef @.str.4)
  %19558 = call ptr @__errno_location() #12
  %19559 = load i32, ptr %19558, align 4, !tbaa !5
  %19560 = call ptr @strerror(i32 noundef %19559) #11
  %19561 = call ptr @__errno_location() #12
  %19562 = load i32, ptr %19561, align 4, !tbaa !5
  %19563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19550, ptr noundef @.str.2, i32 noundef %19551, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1181, ptr noundef %19554, ptr noundef %19557, ptr noundef %19560, i32 noundef %19562) #11
  br label %19581

19564:                                            ; preds = %19542, %19535
  %19565 = load i32, ptr %586, align 4, !tbaa !5
  %19566 = call ptr @__errno_location() #12
  store i32 %19565, ptr %19566, align 4, !tbaa !5
  %19567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19568 = load i32, ptr @test_count, align 4, !tbaa !5
  %19569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19570 = load i32, ptr %19569, align 4, !tbaa !5
  %19571 = call ptr @s2n_strerror(i32 noundef %19570, ptr noundef @.str.4)
  %19572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19573 = load i32, ptr %19572, align 4, !tbaa !5
  %19574 = call ptr @s2n_strerror_debug(i32 noundef %19573, ptr noundef @.str.4)
  %19575 = call ptr @__errno_location() #12
  %19576 = load i32, ptr %19575, align 4, !tbaa !5
  %19577 = call ptr @strerror(i32 noundef %19576) #11
  %19578 = call ptr @__errno_location() #12
  %19579 = load i32, ptr %19578, align 4, !tbaa !5
  %19580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19567, ptr noundef @.str.5, i32 noundef %19568, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1181, ptr noundef %19571, ptr noundef %19574, ptr noundef %19577, i32 noundef %19579) #11
  br label %19581

19581:                                            ; preds = %19564, %19547
  call void @llvm.lifetime.end.p0(i64 4, ptr %586) #11
  br label %19582

19582:                                            ; preds = %19581
  br label %19583

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

19584:                                            ; No predecessors!
  br label %19585

19585:                                            ; preds = %19584
  br label %19586

19586:                                            ; preds = %19585, %19528
  br label %19587

19587:                                            ; preds = %19586
  br label %19588

19588:                                            ; preds = %19587
  call void @llvm.lifetime.start.p0(i64 4, ptr %587) #11
  %19589 = getelementptr inbounds %struct.s2n_stuffer, ptr %585, i32 0, i32 2
  %19590 = load i32, ptr %19589, align 4, !tbaa !15
  %19591 = getelementptr inbounds %struct.s2n_stuffer, ptr %585, i32 0, i32 1
  %19592 = load i32, ptr %19591, align 8, !tbaa !18
  %19593 = sub i32 %19590, %19592
  store i32 %19593, ptr %587, align 4, !tbaa !5
  br label %19594

19594:                                            ; preds = %19588
  %19595 = load i32, ptr @test_count, align 4, !tbaa !5
  %19596 = add nsw i32 %19595, 1
  store i32 %19596, ptr @test_count, align 4, !tbaa !5
  %19597 = load i32, ptr %587, align 4, !tbaa !5
  %19598 = icmp ugt i32 %19597, 0
  br i1 %19598, label %19652, label %19599

19599:                                            ; preds = %19594
  br label %19600

19600:                                            ; preds = %19599
  br label %19601

19601:                                            ; preds = %19600
  call void @llvm.lifetime.start.p0(i64 4, ptr %588) #11
  %19602 = call ptr @__errno_location() #12
  %19603 = load i32, ptr %19602, align 4, !tbaa !5
  store i32 %19603, ptr %588, align 4, !tbaa !5
  %19604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19605 = call i32 @s2n_print_stacktrace(ptr noundef %19604)
  %19606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19607 = trunc i8 %19606 to i1
  br i1 %19607, label %19608, label %19630

19608:                                            ; preds = %19601
  %19609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19610 = call i32 @fileno(ptr noundef %19609) #11
  %19611 = call i32 @isatty(i32 noundef %19610) #11
  %19612 = icmp ne i32 %19611, 0
  br i1 %19612, label %19613, label %19630

19613:                                            ; preds = %19608
  %19614 = load i32, ptr %588, align 4, !tbaa !5
  %19615 = call ptr @__errno_location() #12
  store i32 %19614, ptr %19615, align 4, !tbaa !5
  %19616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19617 = load i32, ptr @test_count, align 4, !tbaa !5
  %19618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19619 = load i32, ptr %19618, align 4, !tbaa !5
  %19620 = call ptr @s2n_strerror(i32 noundef %19619, ptr noundef @.str.4)
  %19621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19622 = load i32, ptr %19621, align 4, !tbaa !5
  %19623 = call ptr @s2n_strerror_debug(i32 noundef %19622, ptr noundef @.str.4)
  %19624 = call ptr @__errno_location() #12
  %19625 = load i32, ptr %19624, align 4, !tbaa !5
  %19626 = call ptr @strerror(i32 noundef %19625) #11
  %19627 = call ptr @__errno_location() #12
  %19628 = load i32, ptr %19627, align 4, !tbaa !5
  %19629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19616, ptr noundef @.str.2, i32 noundef %19617, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1183, ptr noundef %19620, ptr noundef %19623, ptr noundef %19626, i32 noundef %19628) #11
  br label %19647

19630:                                            ; preds = %19608, %19601
  %19631 = load i32, ptr %588, align 4, !tbaa !5
  %19632 = call ptr @__errno_location() #12
  store i32 %19631, ptr %19632, align 4, !tbaa !5
  %19633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19634 = load i32, ptr @test_count, align 4, !tbaa !5
  %19635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19636 = load i32, ptr %19635, align 4, !tbaa !5
  %19637 = call ptr @s2n_strerror(i32 noundef %19636, ptr noundef @.str.4)
  %19638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19639 = load i32, ptr %19638, align 4, !tbaa !5
  %19640 = call ptr @s2n_strerror_debug(i32 noundef %19639, ptr noundef @.str.4)
  %19641 = call ptr @__errno_location() #12
  %19642 = load i32, ptr %19641, align 4, !tbaa !5
  %19643 = call ptr @strerror(i32 noundef %19642) #11
  %19644 = call ptr @__errno_location() #12
  %19645 = load i32, ptr %19644, align 4, !tbaa !5
  %19646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19633, ptr noundef @.str.5, i32 noundef %19634, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1183, ptr noundef %19637, ptr noundef %19640, ptr noundef %19643, i32 noundef %19645) #11
  br label %19647

19647:                                            ; preds = %19630, %19613
  call void @llvm.lifetime.end.p0(i64 4, ptr %588) #11
  br label %19648

19648:                                            ; preds = %19647
  br label %19649

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

19650:                                            ; No predecessors!
  br label %19651

19651:                                            ; preds = %19650
  br label %19652

19652:                                            ; preds = %19651, %19594
  br label %19653

19653:                                            ; preds = %19652
  br label %19654

19654:                                            ; preds = %19653
  br label %19655

19655:                                            ; preds = %19654
  br label %19656

19656:                                            ; preds = %19655
  br label %19657

19657:                                            ; preds = %19656
  %19658 = load i32, ptr @test_count, align 4, !tbaa !5
  %19659 = add nsw i32 %19658, 1
  store i32 %19659, ptr @test_count, align 4, !tbaa !5
  %19660 = load ptr, ptr %568, align 8, !tbaa !9
  %19661 = load i32, ptr %587, align 4, !tbaa !5
  %19662 = call ptr @s2n_stuffer_raw_read(ptr noundef %585, i32 noundef %19661)
  %19663 = load i32, ptr %587, align 4, !tbaa !5
  %19664 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %567, ptr noundef %19660, ptr noundef %19662, i32 noundef %19663)
  %19665 = getelementptr inbounds %struct.s2n_result, ptr %589, i32 0, i32 0
  store i32 %19664, ptr %19665, align 4
  %19666 = getelementptr inbounds %struct.s2n_result, ptr %589, i32 0, i32 0
  %19667 = load i32, ptr %19666, align 4
  %19668 = call zeroext i1 @s2n_result_is_error(i32 %19667)
  br i1 %19668, label %19722, label %19669

19669:                                            ; preds = %19657
  br label %19670

19670:                                            ; preds = %19669
  br label %19671

19671:                                            ; preds = %19670
  call void @llvm.lifetime.start.p0(i64 4, ptr %590) #11
  %19672 = call ptr @__errno_location() #12
  %19673 = load i32, ptr %19672, align 4, !tbaa !5
  store i32 %19673, ptr %590, align 4, !tbaa !5
  %19674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19675 = call i32 @s2n_print_stacktrace(ptr noundef %19674)
  %19676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19677 = trunc i8 %19676 to i1
  br i1 %19677, label %19678, label %19700

19678:                                            ; preds = %19671
  %19679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19680 = call i32 @fileno(ptr noundef %19679) #11
  %19681 = call i32 @isatty(i32 noundef %19680) #11
  %19682 = icmp ne i32 %19681, 0
  br i1 %19682, label %19683, label %19700

19683:                                            ; preds = %19678
  %19684 = load i32, ptr %590, align 4, !tbaa !5
  %19685 = call ptr @__errno_location() #12
  store i32 %19684, ptr %19685, align 4, !tbaa !5
  %19686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19687 = load i32, ptr @test_count, align 4, !tbaa !5
  %19688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19689 = load i32, ptr %19688, align 4, !tbaa !5
  %19690 = call ptr @s2n_strerror(i32 noundef %19689, ptr noundef @.str.4)
  %19691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19692 = load i32, ptr %19691, align 4, !tbaa !5
  %19693 = call ptr @s2n_strerror_debug(i32 noundef %19692, ptr noundef @.str.4)
  %19694 = call ptr @__errno_location() #12
  %19695 = load i32, ptr %19694, align 4, !tbaa !5
  %19696 = call ptr @strerror(i32 noundef %19695) #11
  %19697 = call ptr @__errno_location() #12
  %19698 = load i32, ptr %19697, align 4, !tbaa !5
  %19699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19686, ptr noundef @.str.2, i32 noundef %19687, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %19690, ptr noundef %19693, ptr noundef %19696, i32 noundef %19698) #11
  br label %19717

19700:                                            ; preds = %19678, %19671
  %19701 = load i32, ptr %590, align 4, !tbaa !5
  %19702 = call ptr @__errno_location() #12
  store i32 %19701, ptr %19702, align 4, !tbaa !5
  %19703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19704 = load i32, ptr @test_count, align 4, !tbaa !5
  %19705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19706 = load i32, ptr %19705, align 4, !tbaa !5
  %19707 = call ptr @s2n_strerror(i32 noundef %19706, ptr noundef @.str.4)
  %19708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19709 = load i32, ptr %19708, align 4, !tbaa !5
  %19710 = call ptr @s2n_strerror_debug(i32 noundef %19709, ptr noundef @.str.4)
  %19711 = call ptr @__errno_location() #12
  %19712 = load i32, ptr %19711, align 4, !tbaa !5
  %19713 = call ptr @strerror(i32 noundef %19712) #11
  %19714 = call ptr @__errno_location() #12
  %19715 = load i32, ptr %19714, align 4, !tbaa !5
  %19716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19703, ptr noundef @.str.5, i32 noundef %19704, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %19707, ptr noundef %19710, ptr noundef %19713, i32 noundef %19715) #11
  br label %19717

19717:                                            ; preds = %19700, %19683
  call void @llvm.lifetime.end.p0(i64 4, ptr %590) #11
  br label %19718

19718:                                            ; preds = %19717
  br label %19719

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

19720:                                            ; No predecessors!
  br label %19721

19721:                                            ; preds = %19720
  br label %19722

19722:                                            ; preds = %19721, %19657
  br label %19723

19723:                                            ; preds = %19722
  br label %19724

19724:                                            ; preds = %19723
  br label %19725

19725:                                            ; preds = %19724
  %19726 = load i32, ptr @test_count, align 4, !tbaa !5
  %19727 = add nsw i32 %19726, 1
  store i32 %19727, ptr @test_count, align 4, !tbaa !5
  %19728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19729 = load i32, ptr %19728, align 4, !tbaa !5
  %19730 = icmp eq i32 %19729, 335544371
  br i1 %19730, label %19784, label %19731

19731:                                            ; preds = %19725
  br label %19732

19732:                                            ; preds = %19731
  br label %19733

19733:                                            ; preds = %19732
  call void @llvm.lifetime.start.p0(i64 4, ptr %591) #11
  %19734 = call ptr @__errno_location() #12
  %19735 = load i32, ptr %19734, align 4, !tbaa !5
  store i32 %19735, ptr %591, align 4, !tbaa !5
  %19736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19737 = call i32 @s2n_print_stacktrace(ptr noundef %19736)
  %19738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19739 = trunc i8 %19738 to i1
  br i1 %19739, label %19740, label %19762

19740:                                            ; preds = %19733
  %19741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19742 = call i32 @fileno(ptr noundef %19741) #11
  %19743 = call i32 @isatty(i32 noundef %19742) #11
  %19744 = icmp ne i32 %19743, 0
  br i1 %19744, label %19745, label %19762

19745:                                            ; preds = %19740
  %19746 = load i32, ptr %591, align 4, !tbaa !5
  %19747 = call ptr @__errno_location() #12
  store i32 %19746, ptr %19747, align 4, !tbaa !5
  %19748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19749 = load i32, ptr @test_count, align 4, !tbaa !5
  %19750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19751 = load i32, ptr %19750, align 4, !tbaa !5
  %19752 = call ptr @s2n_strerror(i32 noundef %19751, ptr noundef @.str.4)
  %19753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19754 = load i32, ptr %19753, align 4, !tbaa !5
  %19755 = call ptr @s2n_strerror_debug(i32 noundef %19754, ptr noundef @.str.4)
  %19756 = call ptr @__errno_location() #12
  %19757 = load i32, ptr %19756, align 4, !tbaa !5
  %19758 = call ptr @strerror(i32 noundef %19757) #11
  %19759 = call ptr @__errno_location() #12
  %19760 = load i32, ptr %19759, align 4, !tbaa !5
  %19761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19748, ptr noundef @.str.2, i32 noundef %19749, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %19752, ptr noundef %19755, ptr noundef %19758, i32 noundef %19760) #11
  br label %19779

19762:                                            ; preds = %19740, %19733
  %19763 = load i32, ptr %591, align 4, !tbaa !5
  %19764 = call ptr @__errno_location() #12
  store i32 %19763, ptr %19764, align 4, !tbaa !5
  %19765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19766 = load i32, ptr @test_count, align 4, !tbaa !5
  %19767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19768 = load i32, ptr %19767, align 4, !tbaa !5
  %19769 = call ptr @s2n_strerror(i32 noundef %19768, ptr noundef @.str.4)
  %19770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19771 = load i32, ptr %19770, align 4, !tbaa !5
  %19772 = call ptr @s2n_strerror_debug(i32 noundef %19771, ptr noundef @.str.4)
  %19773 = call ptr @__errno_location() #12
  %19774 = load i32, ptr %19773, align 4, !tbaa !5
  %19775 = call ptr @strerror(i32 noundef %19774) #11
  %19776 = call ptr @__errno_location() #12
  %19777 = load i32, ptr %19776, align 4, !tbaa !5
  %19778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19765, ptr noundef @.str.5, i32 noundef %19766, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %19769, ptr noundef %19772, ptr noundef %19775, i32 noundef %19777) #11
  br label %19779

19779:                                            ; preds = %19762, %19745
  call void @llvm.lifetime.end.p0(i64 4, ptr %591) #11
  br label %19780

19780:                                            ; preds = %19779
  br label %19781

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

19782:                                            ; No predecessors!
  br label %19783

19783:                                            ; preds = %19782
  br label %19784

19784:                                            ; preds = %19783, %19725
  br label %19785

19785:                                            ; preds = %19784
  br label %19786

19786:                                            ; preds = %19785
  br label %19787

19787:                                            ; preds = %19786
  %19788 = load i32, ptr @test_count, align 4, !tbaa !5
  %19789 = add nsw i32 %19788, 1
  store i32 %19789, ptr @test_count, align 4, !tbaa !5
  %19790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19791 = load i32, ptr %19790, align 4, !tbaa !5
  %19792 = call ptr @s2n_strerror_debug(i32 noundef %19791, ptr noundef @.str.4)
  %19793 = icmp eq ptr %19792, null
  br i1 %19793, label %19794, label %19847

19794:                                            ; preds = %19787
  br label %19795

19795:                                            ; preds = %19794
  br label %19796

19796:                                            ; preds = %19795
  call void @llvm.lifetime.start.p0(i64 4, ptr %592) #11
  %19797 = call ptr @__errno_location() #12
  %19798 = load i32, ptr %19797, align 4, !tbaa !5
  store i32 %19798, ptr %592, align 4, !tbaa !5
  %19799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19800 = call i32 @s2n_print_stacktrace(ptr noundef %19799)
  %19801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19802 = trunc i8 %19801 to i1
  br i1 %19802, label %19803, label %19825

19803:                                            ; preds = %19796
  %19804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19805 = call i32 @fileno(ptr noundef %19804) #11
  %19806 = call i32 @isatty(i32 noundef %19805) #11
  %19807 = icmp ne i32 %19806, 0
  br i1 %19807, label %19808, label %19825

19808:                                            ; preds = %19803
  %19809 = load i32, ptr %592, align 4, !tbaa !5
  %19810 = call ptr @__errno_location() #12
  store i32 %19809, ptr %19810, align 4, !tbaa !5
  %19811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19812 = load i32, ptr @test_count, align 4, !tbaa !5
  %19813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19814 = load i32, ptr %19813, align 4, !tbaa !5
  %19815 = call ptr @s2n_strerror(i32 noundef %19814, ptr noundef @.str.4)
  %19816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19817 = load i32, ptr %19816, align 4, !tbaa !5
  %19818 = call ptr @s2n_strerror_debug(i32 noundef %19817, ptr noundef @.str.4)
  %19819 = call ptr @__errno_location() #12
  %19820 = load i32, ptr %19819, align 4, !tbaa !5
  %19821 = call ptr @strerror(i32 noundef %19820) #11
  %19822 = call ptr @__errno_location() #12
  %19823 = load i32, ptr %19822, align 4, !tbaa !5
  %19824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19811, ptr noundef @.str.2, i32 noundef %19812, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %19815, ptr noundef %19818, ptr noundef %19821, i32 noundef %19823) #11
  br label %19842

19825:                                            ; preds = %19803, %19796
  %19826 = load i32, ptr %592, align 4, !tbaa !5
  %19827 = call ptr @__errno_location() #12
  store i32 %19826, ptr %19827, align 4, !tbaa !5
  %19828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19829 = load i32, ptr @test_count, align 4, !tbaa !5
  %19830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19831 = load i32, ptr %19830, align 4, !tbaa !5
  %19832 = call ptr @s2n_strerror(i32 noundef %19831, ptr noundef @.str.4)
  %19833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19834 = load i32, ptr %19833, align 4, !tbaa !5
  %19835 = call ptr @s2n_strerror_debug(i32 noundef %19834, ptr noundef @.str.4)
  %19836 = call ptr @__errno_location() #12
  %19837 = load i32, ptr %19836, align 4, !tbaa !5
  %19838 = call ptr @strerror(i32 noundef %19837) #11
  %19839 = call ptr @__errno_location() #12
  %19840 = load i32, ptr %19839, align 4, !tbaa !5
  %19841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19828, ptr noundef @.str.5, i32 noundef %19829, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1186, ptr noundef %19832, ptr noundef %19835, ptr noundef %19838, i32 noundef %19840) #11
  br label %19842

19842:                                            ; preds = %19825, %19808
  call void @llvm.lifetime.end.p0(i64 4, ptr %592) #11
  br label %19843

19843:                                            ; preds = %19842
  br label %19844

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

19845:                                            ; No predecessors!
  br label %19846

19846:                                            ; preds = %19845
  br label %19847

19847:                                            ; preds = %19846, %19787
  br label %19848

19848:                                            ; preds = %19847
  br label %19849

19849:                                            ; preds = %19848
  br label %19850

19850:                                            ; preds = %19849
  br label %19851

19851:                                            ; preds = %19850
  br label %19852

19852:                                            ; preds = %19851
  %19853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %19853, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %19854 = call ptr @__errno_location() #12
  store i32 0, ptr %19854, align 4, !tbaa !5
  br label %19855

19855:                                            ; preds = %19852
  br label %19856

19856:                                            ; preds = %19855
  br label %19857

19857:                                            ; preds = %19856
  br label %19858

19858:                                            ; preds = %19857
  %19859 = load ptr, ptr %568, align 8, !tbaa !9
  %19860 = getelementptr inbounds %struct.s2n_connection, ptr %19859, i32 0, i32 1
  %19861 = load ptr, ptr %19860, align 8, !tbaa !22
  %19862 = load ptr, ptr %584, align 8, !tbaa !9
  %19863 = call i32 @s2n_config_set_wall_clock(ptr noundef %19861, ptr noundef %19862, ptr noundef null)
  %19864 = call i32 @s2n_stuffer_free(ptr noundef %585)
  %19865 = load ptr, ptr %568, align 8, !tbaa !9
  %19866 = call i32 @s2n_connection_free(ptr noundef %19865)
  %19867 = call i32 @s2n_pkey_free(ptr noundef %578)
  %19868 = call i32 @s2n_x509_validator_wipe(ptr noundef %567)
  call void @s2n_x509_trust_store_wipe(ptr noundef %565)
  call void @llvm.lifetime.end.p0(i64 4, ptr %587) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %585) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %584) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %580) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %578) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %576) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %575) #11
  %19869 = call i32 @s2n_stuffer_free(ptr noundef %572)
  call void @llvm.lifetime.end.p0(i64 40, ptr %572) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %570) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %568) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %567) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %565) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %593) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %593)
  br label %19870

19870:                                            ; preds = %19858
  %19871 = load i32, ptr @test_count, align 4, !tbaa !5
  %19872 = add nsw i32 %19871, 1
  store i32 %19872, ptr @test_count, align 4, !tbaa !5
  %19873 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %593, ptr noundef @.str.48, ptr noundef null)
  %19874 = icmp eq i32 %19873, -1
  br i1 %19874, label %19875, label %19928

19875:                                            ; preds = %19870
  br label %19876

19876:                                            ; preds = %19875
  br label %19877

19877:                                            ; preds = %19876
  call void @llvm.lifetime.start.p0(i64 4, ptr %594) #11
  %19878 = call ptr @__errno_location() #12
  %19879 = load i32, ptr %19878, align 4, !tbaa !5
  store i32 %19879, ptr %594, align 4, !tbaa !5
  %19880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19881 = call i32 @s2n_print_stacktrace(ptr noundef %19880)
  %19882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19883 = trunc i8 %19882 to i1
  br i1 %19883, label %19884, label %19906

19884:                                            ; preds = %19877
  %19885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19886 = call i32 @fileno(ptr noundef %19885) #11
  %19887 = call i32 @isatty(i32 noundef %19886) #11
  %19888 = icmp ne i32 %19887, 0
  br i1 %19888, label %19889, label %19906

19889:                                            ; preds = %19884
  %19890 = load i32, ptr %594, align 4, !tbaa !5
  %19891 = call ptr @__errno_location() #12
  store i32 %19890, ptr %19891, align 4, !tbaa !5
  %19892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19893 = load i32, ptr @test_count, align 4, !tbaa !5
  %19894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19895 = load i32, ptr %19894, align 4, !tbaa !5
  %19896 = call ptr @s2n_strerror(i32 noundef %19895, ptr noundef @.str.4)
  %19897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19898 = load i32, ptr %19897, align 4, !tbaa !5
  %19899 = call ptr @s2n_strerror_debug(i32 noundef %19898, ptr noundef @.str.4)
  %19900 = call ptr @__errno_location() #12
  %19901 = load i32, ptr %19900, align 4, !tbaa !5
  %19902 = call ptr @strerror(i32 noundef %19901) #11
  %19903 = call ptr @__errno_location() #12
  %19904 = load i32, ptr %19903, align 4, !tbaa !5
  %19905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19892, ptr noundef @.str.2, i32 noundef %19893, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1201, ptr noundef %19896, ptr noundef %19899, ptr noundef %19902, i32 noundef %19904) #11
  br label %19923

19906:                                            ; preds = %19884, %19877
  %19907 = load i32, ptr %594, align 4, !tbaa !5
  %19908 = call ptr @__errno_location() #12
  store i32 %19907, ptr %19908, align 4, !tbaa !5
  %19909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19910 = load i32, ptr @test_count, align 4, !tbaa !5
  %19911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19912 = load i32, ptr %19911, align 4, !tbaa !5
  %19913 = call ptr @s2n_strerror(i32 noundef %19912, ptr noundef @.str.4)
  %19914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19915 = load i32, ptr %19914, align 4, !tbaa !5
  %19916 = call ptr @s2n_strerror_debug(i32 noundef %19915, ptr noundef @.str.4)
  %19917 = call ptr @__errno_location() #12
  %19918 = load i32, ptr %19917, align 4, !tbaa !5
  %19919 = call ptr @strerror(i32 noundef %19918) #11
  %19920 = call ptr @__errno_location() #12
  %19921 = load i32, ptr %19920, align 4, !tbaa !5
  %19922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19909, ptr noundef @.str.5, i32 noundef %19910, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1201, ptr noundef %19913, ptr noundef %19916, ptr noundef %19919, i32 noundef %19921) #11
  br label %19923

19923:                                            ; preds = %19906, %19889
  call void @llvm.lifetime.end.p0(i64 4, ptr %594) #11
  br label %19924

19924:                                            ; preds = %19923
  br label %19925

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

19926:                                            ; No predecessors!
  br label %19927

19927:                                            ; preds = %19926
  br label %19928

19928:                                            ; preds = %19927, %19870
  br label %19929

19929:                                            ; preds = %19928
  br label %19930

19930:                                            ; preds = %19929
  call void @llvm.lifetime.start.p0(i64 56, ptr %595) #11
  %19931 = call i32 @s2n_x509_validator_init(ptr noundef %595, ptr noundef %593, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %596) #11
  %19932 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %19932, ptr %596, align 8, !tbaa !9
  br label %19933

19933:                                            ; preds = %19930
  %19934 = load i32, ptr @test_count, align 4, !tbaa !5
  %19935 = add nsw i32 %19934, 1
  store i32 %19935, ptr @test_count, align 4, !tbaa !5
  %19936 = load ptr, ptr %596, align 8, !tbaa !9
  %19937 = icmp eq ptr %19936, null
  br i1 %19937, label %19938, label %19991

19938:                                            ; preds = %19933
  br label %19939

19939:                                            ; preds = %19938
  br label %19940

19940:                                            ; preds = %19939
  call void @llvm.lifetime.start.p0(i64 4, ptr %597) #11
  %19941 = call ptr @__errno_location() #12
  %19942 = load i32, ptr %19941, align 4, !tbaa !5
  store i32 %19942, ptr %597, align 4, !tbaa !5
  %19943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19944 = call i32 @s2n_print_stacktrace(ptr noundef %19943)
  %19945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19946 = trunc i8 %19945 to i1
  br i1 %19946, label %19947, label %19969

19947:                                            ; preds = %19940
  %19948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19949 = call i32 @fileno(ptr noundef %19948) #11
  %19950 = call i32 @isatty(i32 noundef %19949) #11
  %19951 = icmp ne i32 %19950, 0
  br i1 %19951, label %19952, label %19969

19952:                                            ; preds = %19947
  %19953 = load i32, ptr %597, align 4, !tbaa !5
  %19954 = call ptr @__errno_location() #12
  store i32 %19953, ptr %19954, align 4, !tbaa !5
  %19955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19956 = load i32, ptr @test_count, align 4, !tbaa !5
  %19957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19958 = load i32, ptr %19957, align 4, !tbaa !5
  %19959 = call ptr @s2n_strerror(i32 noundef %19958, ptr noundef @.str.4)
  %19960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19961 = load i32, ptr %19960, align 4, !tbaa !5
  %19962 = call ptr @s2n_strerror_debug(i32 noundef %19961, ptr noundef @.str.4)
  %19963 = call ptr @__errno_location() #12
  %19964 = load i32, ptr %19963, align 4, !tbaa !5
  %19965 = call ptr @strerror(i32 noundef %19964) #11
  %19966 = call ptr @__errno_location() #12
  %19967 = load i32, ptr %19966, align 4, !tbaa !5
  %19968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19955, ptr noundef @.str.2, i32 noundef %19956, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1207, ptr noundef %19959, ptr noundef %19962, ptr noundef %19965, i32 noundef %19967) #11
  br label %19986

19969:                                            ; preds = %19947, %19940
  %19970 = load i32, ptr %597, align 4, !tbaa !5
  %19971 = call ptr @__errno_location() #12
  store i32 %19970, ptr %19971, align 4, !tbaa !5
  %19972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19973 = load i32, ptr @test_count, align 4, !tbaa !5
  %19974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19975 = load i32, ptr %19974, align 4, !tbaa !5
  %19976 = call ptr @s2n_strerror(i32 noundef %19975, ptr noundef @.str.4)
  %19977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19978 = load i32, ptr %19977, align 4, !tbaa !5
  %19979 = call ptr @s2n_strerror_debug(i32 noundef %19978, ptr noundef @.str.4)
  %19980 = call ptr @__errno_location() #12
  %19981 = load i32, ptr %19980, align 4, !tbaa !5
  %19982 = call ptr @strerror(i32 noundef %19981) #11
  %19983 = call ptr @__errno_location() #12
  %19984 = load i32, ptr %19983, align 4, !tbaa !5
  %19985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19972, ptr noundef @.str.5, i32 noundef %19973, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1207, ptr noundef %19976, ptr noundef %19979, ptr noundef %19982, i32 noundef %19984) #11
  br label %19986

19986:                                            ; preds = %19969, %19952
  call void @llvm.lifetime.end.p0(i64 4, ptr %597) #11
  br label %19987

19987:                                            ; preds = %19986
  br label %19988

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

19989:                                            ; No predecessors!
  br label %19990

19990:                                            ; preds = %19989
  br label %19991

19991:                                            ; preds = %19990, %19933
  br label %19992

19992:                                            ; preds = %19991
  br label %19993

19993:                                            ; preds = %19992
  call void @llvm.lifetime.start.p0(i64 16, ptr %598) #11
  call void @llvm.memset.p0.i64(ptr align 8 %598, i8 0, i64 16, i1 false)
  br label %19994

19994:                                            ; preds = %19993
  %19995 = load i32, ptr @test_count, align 4, !tbaa !5
  %19996 = add nsw i32 %19995, 1
  store i32 %19996, ptr @test_count, align 4, !tbaa !5
  %19997 = load ptr, ptr %596, align 8, !tbaa !9
  %19998 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %19997, ptr noundef @verify_host_accept_everything, ptr noundef %598)
  %19999 = icmp eq i32 %19998, -1
  br i1 %19999, label %20000, label %20053

20000:                                            ; preds = %19994
  br label %20001

20001:                                            ; preds = %20000
  br label %20002

20002:                                            ; preds = %20001
  call void @llvm.lifetime.start.p0(i64 4, ptr %599) #11
  %20003 = call ptr @__errno_location() #12
  %20004 = load i32, ptr %20003, align 4, !tbaa !5
  store i32 %20004, ptr %599, align 4, !tbaa !5
  %20005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20006 = call i32 @s2n_print_stacktrace(ptr noundef %20005)
  %20007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20008 = trunc i8 %20007 to i1
  br i1 %20008, label %20009, label %20031

20009:                                            ; preds = %20002
  %20010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20011 = call i32 @fileno(ptr noundef %20010) #11
  %20012 = call i32 @isatty(i32 noundef %20011) #11
  %20013 = icmp ne i32 %20012, 0
  br i1 %20013, label %20014, label %20031

20014:                                            ; preds = %20009
  %20015 = load i32, ptr %599, align 4, !tbaa !5
  %20016 = call ptr @__errno_location() #12
  store i32 %20015, ptr %20016, align 4, !tbaa !5
  %20017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20018 = load i32, ptr @test_count, align 4, !tbaa !5
  %20019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20020 = load i32, ptr %20019, align 4, !tbaa !5
  %20021 = call ptr @s2n_strerror(i32 noundef %20020, ptr noundef @.str.4)
  %20022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20023 = load i32, ptr %20022, align 4, !tbaa !5
  %20024 = call ptr @s2n_strerror_debug(i32 noundef %20023, ptr noundef @.str.4)
  %20025 = call ptr @__errno_location() #12
  %20026 = load i32, ptr %20025, align 4, !tbaa !5
  %20027 = call ptr @strerror(i32 noundef %20026) #11
  %20028 = call ptr @__errno_location() #12
  %20029 = load i32, ptr %20028, align 4, !tbaa !5
  %20030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20017, ptr noundef @.str.2, i32 noundef %20018, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1210, ptr noundef %20021, ptr noundef %20024, ptr noundef %20027, i32 noundef %20029) #11
  br label %20048

20031:                                            ; preds = %20009, %20002
  %20032 = load i32, ptr %599, align 4, !tbaa !5
  %20033 = call ptr @__errno_location() #12
  store i32 %20032, ptr %20033, align 4, !tbaa !5
  %20034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20035 = load i32, ptr @test_count, align 4, !tbaa !5
  %20036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20037 = load i32, ptr %20036, align 4, !tbaa !5
  %20038 = call ptr @s2n_strerror(i32 noundef %20037, ptr noundef @.str.4)
  %20039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20040 = load i32, ptr %20039, align 4, !tbaa !5
  %20041 = call ptr @s2n_strerror_debug(i32 noundef %20040, ptr noundef @.str.4)
  %20042 = call ptr @__errno_location() #12
  %20043 = load i32, ptr %20042, align 4, !tbaa !5
  %20044 = call ptr @strerror(i32 noundef %20043) #11
  %20045 = call ptr @__errno_location() #12
  %20046 = load i32, ptr %20045, align 4, !tbaa !5
  %20047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20034, ptr noundef @.str.5, i32 noundef %20035, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1210, ptr noundef %20038, ptr noundef %20041, ptr noundef %20044, i32 noundef %20046) #11
  br label %20048

20048:                                            ; preds = %20031, %20014
  call void @llvm.lifetime.end.p0(i64 4, ptr %599) #11
  br label %20049

20049:                                            ; preds = %20048
  br label %20050

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

20051:                                            ; No predecessors!
  br label %20052

20052:                                            ; preds = %20051
  br label %20053

20053:                                            ; preds = %20052, %19994
  br label %20054

20054:                                            ; preds = %20053
  br label %20055

20055:                                            ; preds = %20054
  call void @llvm.lifetime.start.p0(i64 40, ptr %600) #11
  call void @llvm.memset.p0.i64(ptr align 8 %600, i8 0, i64 40, i1 false)
  br label %20056

20056:                                            ; preds = %20055
  %20057 = load i32, ptr @test_count, align 4, !tbaa !5
  %20058 = add nsw i32 %20057, 1
  store i32 %20058, ptr @test_count, align 4, !tbaa !5
  %20059 = load ptr, ptr %596, align 8, !tbaa !9
  %20060 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %20059, ptr noundef @.str.72, ptr noundef %600)
  %20061 = getelementptr inbounds %struct.s2n_result, ptr %601, i32 0, i32 0
  store i32 %20060, ptr %20061, align 4
  %20062 = getelementptr inbounds %struct.s2n_result, ptr %601, i32 0, i32 0
  %20063 = load i32, ptr %20062, align 4
  %20064 = call zeroext i1 @s2n_result_is_ok(i32 %20063)
  br i1 %20064, label %20118, label %20065

20065:                                            ; preds = %20056
  br label %20066

20066:                                            ; preds = %20065
  br label %20067

20067:                                            ; preds = %20066
  call void @llvm.lifetime.start.p0(i64 4, ptr %602) #11
  %20068 = call ptr @__errno_location() #12
  %20069 = load i32, ptr %20068, align 4, !tbaa !5
  store i32 %20069, ptr %602, align 4, !tbaa !5
  %20070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20071 = call i32 @s2n_print_stacktrace(ptr noundef %20070)
  %20072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20073 = trunc i8 %20072 to i1
  br i1 %20073, label %20074, label %20096

20074:                                            ; preds = %20067
  %20075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20076 = call i32 @fileno(ptr noundef %20075) #11
  %20077 = call i32 @isatty(i32 noundef %20076) #11
  %20078 = icmp ne i32 %20077, 0
  br i1 %20078, label %20079, label %20096

20079:                                            ; preds = %20074
  %20080 = load i32, ptr %602, align 4, !tbaa !5
  %20081 = call ptr @__errno_location() #12
  store i32 %20080, ptr %20081, align 4, !tbaa !5
  %20082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20083 = load i32, ptr @test_count, align 4, !tbaa !5
  %20084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20085 = load i32, ptr %20084, align 4, !tbaa !5
  %20086 = call ptr @s2n_strerror(i32 noundef %20085, ptr noundef @.str.4)
  %20087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20088 = load i32, ptr %20087, align 4, !tbaa !5
  %20089 = call ptr @s2n_strerror_debug(i32 noundef %20088, ptr noundef @.str.4)
  %20090 = call ptr @__errno_location() #12
  %20091 = load i32, ptr %20090, align 4, !tbaa !5
  %20092 = call ptr @strerror(i32 noundef %20091) #11
  %20093 = call ptr @__errno_location() #12
  %20094 = load i32, ptr %20093, align 4, !tbaa !5
  %20095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20082, ptr noundef @.str.2, i32 noundef %20083, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1213, ptr noundef %20086, ptr noundef %20089, ptr noundef %20092, i32 noundef %20094) #11
  br label %20113

20096:                                            ; preds = %20074, %20067
  %20097 = load i32, ptr %602, align 4, !tbaa !5
  %20098 = call ptr @__errno_location() #12
  store i32 %20097, ptr %20098, align 4, !tbaa !5
  %20099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20100 = load i32, ptr @test_count, align 4, !tbaa !5
  %20101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20102 = load i32, ptr %20101, align 4, !tbaa !5
  %20103 = call ptr @s2n_strerror(i32 noundef %20102, ptr noundef @.str.4)
  %20104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20105 = load i32, ptr %20104, align 4, !tbaa !5
  %20106 = call ptr @s2n_strerror_debug(i32 noundef %20105, ptr noundef @.str.4)
  %20107 = call ptr @__errno_location() #12
  %20108 = load i32, ptr %20107, align 4, !tbaa !5
  %20109 = call ptr @strerror(i32 noundef %20108) #11
  %20110 = call ptr @__errno_location() #12
  %20111 = load i32, ptr %20110, align 4, !tbaa !5
  %20112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20099, ptr noundef @.str.5, i32 noundef %20100, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1213, ptr noundef %20103, ptr noundef %20106, ptr noundef %20109, i32 noundef %20111) #11
  br label %20113

20113:                                            ; preds = %20096, %20079
  call void @llvm.lifetime.end.p0(i64 4, ptr %602) #11
  br label %20114

20114:                                            ; preds = %20113
  br label %20115

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

20116:                                            ; No predecessors!
  br label %20117

20117:                                            ; preds = %20116
  br label %20118

20118:                                            ; preds = %20117, %20056
  br label %20119

20119:                                            ; preds = %20118
  br label %20120

20120:                                            ; preds = %20119
  call void @llvm.lifetime.start.p0(i64 4, ptr %603) #11
  %20121 = getelementptr inbounds %struct.s2n_stuffer, ptr %600, i32 0, i32 2
  %20122 = load i32, ptr %20121, align 4, !tbaa !15
  %20123 = getelementptr inbounds %struct.s2n_stuffer, ptr %600, i32 0, i32 1
  %20124 = load i32, ptr %20123, align 8, !tbaa !18
  %20125 = sub i32 %20122, %20124
  store i32 %20125, ptr %603, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %604) #11
  %20126 = load i32, ptr %603, align 4, !tbaa !5
  %20127 = call ptr @s2n_stuffer_raw_read(ptr noundef %600, i32 noundef %20126)
  store ptr %20127, ptr %604, align 8, !tbaa !9
  br label %20128

20128:                                            ; preds = %20120
  %20129 = load i32, ptr @test_count, align 4, !tbaa !5
  %20130 = add nsw i32 %20129, 1
  store i32 %20130, ptr @test_count, align 4, !tbaa !5
  %20131 = load ptr, ptr %604, align 8, !tbaa !9
  %20132 = icmp eq ptr %20131, null
  br i1 %20132, label %20133, label %20186

20133:                                            ; preds = %20128
  br label %20134

20134:                                            ; preds = %20133
  br label %20135

20135:                                            ; preds = %20134
  call void @llvm.lifetime.start.p0(i64 4, ptr %605) #11
  %20136 = call ptr @__errno_location() #12
  %20137 = load i32, ptr %20136, align 4, !tbaa !5
  store i32 %20137, ptr %605, align 4, !tbaa !5
  %20138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20139 = call i32 @s2n_print_stacktrace(ptr noundef %20138)
  %20140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20141 = trunc i8 %20140 to i1
  br i1 %20141, label %20142, label %20164

20142:                                            ; preds = %20135
  %20143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20144 = call i32 @fileno(ptr noundef %20143) #11
  %20145 = call i32 @isatty(i32 noundef %20144) #11
  %20146 = icmp ne i32 %20145, 0
  br i1 %20146, label %20147, label %20164

20147:                                            ; preds = %20142
  %20148 = load i32, ptr %605, align 4, !tbaa !5
  %20149 = call ptr @__errno_location() #12
  store i32 %20148, ptr %20149, align 4, !tbaa !5
  %20150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20151 = load i32, ptr @test_count, align 4, !tbaa !5
  %20152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20153 = load i32, ptr %20152, align 4, !tbaa !5
  %20154 = call ptr @s2n_strerror(i32 noundef %20153, ptr noundef @.str.4)
  %20155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20156 = load i32, ptr %20155, align 4, !tbaa !5
  %20157 = call ptr @s2n_strerror_debug(i32 noundef %20156, ptr noundef @.str.4)
  %20158 = call ptr @__errno_location() #12
  %20159 = load i32, ptr %20158, align 4, !tbaa !5
  %20160 = call ptr @strerror(i32 noundef %20159) #11
  %20161 = call ptr @__errno_location() #12
  %20162 = load i32, ptr %20161, align 4, !tbaa !5
  %20163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20150, ptr noundef @.str.2, i32 noundef %20151, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1216, ptr noundef %20154, ptr noundef %20157, ptr noundef %20160, i32 noundef %20162) #11
  br label %20181

20164:                                            ; preds = %20142, %20135
  %20165 = load i32, ptr %605, align 4, !tbaa !5
  %20166 = call ptr @__errno_location() #12
  store i32 %20165, ptr %20166, align 4, !tbaa !5
  %20167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20168 = load i32, ptr @test_count, align 4, !tbaa !5
  %20169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20170 = load i32, ptr %20169, align 4, !tbaa !5
  %20171 = call ptr @s2n_strerror(i32 noundef %20170, ptr noundef @.str.4)
  %20172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20173 = load i32, ptr %20172, align 4, !tbaa !5
  %20174 = call ptr @s2n_strerror_debug(i32 noundef %20173, ptr noundef @.str.4)
  %20175 = call ptr @__errno_location() #12
  %20176 = load i32, ptr %20175, align 4, !tbaa !5
  %20177 = call ptr @strerror(i32 noundef %20176) #11
  %20178 = call ptr @__errno_location() #12
  %20179 = load i32, ptr %20178, align 4, !tbaa !5
  %20180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20167, ptr noundef @.str.5, i32 noundef %20168, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1216, ptr noundef %20171, ptr noundef %20174, ptr noundef %20177, i32 noundef %20179) #11
  br label %20181

20181:                                            ; preds = %20164, %20147
  call void @llvm.lifetime.end.p0(i64 4, ptr %605) #11
  br label %20182

20182:                                            ; preds = %20181
  br label %20183

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

20184:                                            ; No predecessors!
  br label %20185

20185:                                            ; preds = %20184
  br label %20186

20186:                                            ; preds = %20185, %20128
  br label %20187

20187:                                            ; preds = %20186
  br label %20188

20188:                                            ; preds = %20187
  call void @llvm.lifetime.start.p0(i64 48, ptr %606) #11
  br label %20189

20189:                                            ; preds = %20188
  %20190 = load i32, ptr @test_count, align 4, !tbaa !5
  %20191 = add nsw i32 %20190, 1
  store i32 %20191, ptr @test_count, align 4, !tbaa !5
  %20192 = call i32 @s2n_pkey_zero_init(ptr noundef %606)
  %20193 = icmp eq i32 %20192, -1
  br i1 %20193, label %20194, label %20247

20194:                                            ; preds = %20189
  br label %20195

20195:                                            ; preds = %20194
  br label %20196

20196:                                            ; preds = %20195
  call void @llvm.lifetime.start.p0(i64 4, ptr %607) #11
  %20197 = call ptr @__errno_location() #12
  %20198 = load i32, ptr %20197, align 4, !tbaa !5
  store i32 %20198, ptr %607, align 4, !tbaa !5
  %20199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20200 = call i32 @s2n_print_stacktrace(ptr noundef %20199)
  %20201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20202 = trunc i8 %20201 to i1
  br i1 %20202, label %20203, label %20225

20203:                                            ; preds = %20196
  %20204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20205 = call i32 @fileno(ptr noundef %20204) #11
  %20206 = call i32 @isatty(i32 noundef %20205) #11
  %20207 = icmp ne i32 %20206, 0
  br i1 %20207, label %20208, label %20225

20208:                                            ; preds = %20203
  %20209 = load i32, ptr %607, align 4, !tbaa !5
  %20210 = call ptr @__errno_location() #12
  store i32 %20209, ptr %20210, align 4, !tbaa !5
  %20211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20212 = load i32, ptr @test_count, align 4, !tbaa !5
  %20213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20214 = load i32, ptr %20213, align 4, !tbaa !5
  %20215 = call ptr @s2n_strerror(i32 noundef %20214, ptr noundef @.str.4)
  %20216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20217 = load i32, ptr %20216, align 4, !tbaa !5
  %20218 = call ptr @s2n_strerror_debug(i32 noundef %20217, ptr noundef @.str.4)
  %20219 = call ptr @__errno_location() #12
  %20220 = load i32, ptr %20219, align 4, !tbaa !5
  %20221 = call ptr @strerror(i32 noundef %20220) #11
  %20222 = call ptr @__errno_location() #12
  %20223 = load i32, ptr %20222, align 4, !tbaa !5
  %20224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20211, ptr noundef @.str.2, i32 noundef %20212, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1219, ptr noundef %20215, ptr noundef %20218, ptr noundef %20221, i32 noundef %20223) #11
  br label %20242

20225:                                            ; preds = %20203, %20196
  %20226 = load i32, ptr %607, align 4, !tbaa !5
  %20227 = call ptr @__errno_location() #12
  store i32 %20226, ptr %20227, align 4, !tbaa !5
  %20228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20229 = load i32, ptr @test_count, align 4, !tbaa !5
  %20230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20231 = load i32, ptr %20230, align 4, !tbaa !5
  %20232 = call ptr @s2n_strerror(i32 noundef %20231, ptr noundef @.str.4)
  %20233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20234 = load i32, ptr %20233, align 4, !tbaa !5
  %20235 = call ptr @s2n_strerror_debug(i32 noundef %20234, ptr noundef @.str.4)
  %20236 = call ptr @__errno_location() #12
  %20237 = load i32, ptr %20236, align 4, !tbaa !5
  %20238 = call ptr @strerror(i32 noundef %20237) #11
  %20239 = call ptr @__errno_location() #12
  %20240 = load i32, ptr %20239, align 4, !tbaa !5
  %20241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20228, ptr noundef @.str.5, i32 noundef %20229, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1219, ptr noundef %20232, ptr noundef %20235, ptr noundef %20238, i32 noundef %20240) #11
  br label %20242

20242:                                            ; preds = %20225, %20208
  call void @llvm.lifetime.end.p0(i64 4, ptr %607) #11
  br label %20243

20243:                                            ; preds = %20242
  br label %20244

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

20245:                                            ; No predecessors!
  br label %20246

20246:                                            ; preds = %20245
  br label %20247

20247:                                            ; preds = %20246, %20189
  br label %20248

20248:                                            ; preds = %20247
  br label %20249

20249:                                            ; preds = %20248
  call void @llvm.lifetime.start.p0(i64 4, ptr %608) #11
  store i32 -1, ptr %608, align 4, !tbaa !5
  br label %20250

20250:                                            ; preds = %20249
  %20251 = load i32, ptr @test_count, align 4, !tbaa !5
  %20252 = add nsw i32 %20251, 1
  store i32 %20252, ptr @test_count, align 4, !tbaa !5
  %20253 = load ptr, ptr %596, align 8, !tbaa !9
  %20254 = load ptr, ptr %604, align 8, !tbaa !9
  %20255 = load i32, ptr %603, align 4, !tbaa !5
  %20256 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %595, ptr noundef %20253, ptr noundef %20254, i32 noundef %20255, ptr noundef %608, ptr noundef %606)
  %20257 = getelementptr inbounds %struct.s2n_result, ptr %609, i32 0, i32 0
  store i32 %20256, ptr %20257, align 4
  %20258 = getelementptr inbounds %struct.s2n_result, ptr %609, i32 0, i32 0
  %20259 = load i32, ptr %20258, align 4
  %20260 = call zeroext i1 @s2n_result_is_ok(i32 %20259)
  br i1 %20260, label %20314, label %20261

20261:                                            ; preds = %20250
  br label %20262

20262:                                            ; preds = %20261
  br label %20263

20263:                                            ; preds = %20262
  call void @llvm.lifetime.start.p0(i64 4, ptr %610) #11
  %20264 = call ptr @__errno_location() #12
  %20265 = load i32, ptr %20264, align 4, !tbaa !5
  store i32 %20265, ptr %610, align 4, !tbaa !5
  %20266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20267 = call i32 @s2n_print_stacktrace(ptr noundef %20266)
  %20268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20269 = trunc i8 %20268 to i1
  br i1 %20269, label %20270, label %20292

20270:                                            ; preds = %20263
  %20271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20272 = call i32 @fileno(ptr noundef %20271) #11
  %20273 = call i32 @isatty(i32 noundef %20272) #11
  %20274 = icmp ne i32 %20273, 0
  br i1 %20274, label %20275, label %20292

20275:                                            ; preds = %20270
  %20276 = load i32, ptr %610, align 4, !tbaa !5
  %20277 = call ptr @__errno_location() #12
  store i32 %20276, ptr %20277, align 4, !tbaa !5
  %20278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20279 = load i32, ptr @test_count, align 4, !tbaa !5
  %20280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20281 = load i32, ptr %20280, align 4, !tbaa !5
  %20282 = call ptr @s2n_strerror(i32 noundef %20281, ptr noundef @.str.4)
  %20283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20284 = load i32, ptr %20283, align 4, !tbaa !5
  %20285 = call ptr @s2n_strerror_debug(i32 noundef %20284, ptr noundef @.str.4)
  %20286 = call ptr @__errno_location() #12
  %20287 = load i32, ptr %20286, align 4, !tbaa !5
  %20288 = call ptr @strerror(i32 noundef %20287) #11
  %20289 = call ptr @__errno_location() #12
  %20290 = load i32, ptr %20289, align 4, !tbaa !5
  %20291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20278, ptr noundef @.str.2, i32 noundef %20279, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1221, ptr noundef %20282, ptr noundef %20285, ptr noundef %20288, i32 noundef %20290) #11
  br label %20309

20292:                                            ; preds = %20270, %20263
  %20293 = load i32, ptr %610, align 4, !tbaa !5
  %20294 = call ptr @__errno_location() #12
  store i32 %20293, ptr %20294, align 4, !tbaa !5
  %20295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20296 = load i32, ptr @test_count, align 4, !tbaa !5
  %20297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20298 = load i32, ptr %20297, align 4, !tbaa !5
  %20299 = call ptr @s2n_strerror(i32 noundef %20298, ptr noundef @.str.4)
  %20300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20301 = load i32, ptr %20300, align 4, !tbaa !5
  %20302 = call ptr @s2n_strerror_debug(i32 noundef %20301, ptr noundef @.str.4)
  %20303 = call ptr @__errno_location() #12
  %20304 = load i32, ptr %20303, align 4, !tbaa !5
  %20305 = call ptr @strerror(i32 noundef %20304) #11
  %20306 = call ptr @__errno_location() #12
  %20307 = load i32, ptr %20306, align 4, !tbaa !5
  %20308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20295, ptr noundef @.str.5, i32 noundef %20296, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1221, ptr noundef %20299, ptr noundef %20302, ptr noundef %20305, i32 noundef %20307) #11
  br label %20309

20309:                                            ; preds = %20292, %20275
  call void @llvm.lifetime.end.p0(i64 4, ptr %610) #11
  br label %20310

20310:                                            ; preds = %20309
  br label %20311

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

20312:                                            ; No predecessors!
  br label %20313

20313:                                            ; preds = %20312
  br label %20314

20314:                                            ; preds = %20313, %20250
  br label %20315

20315:                                            ; preds = %20314
  br label %20316

20316:                                            ; preds = %20315
  br label %20317

20317:                                            ; preds = %20316
  %20318 = load i32, ptr @test_count, align 4, !tbaa !5
  %20319 = add nsw i32 %20318, 1
  store i32 %20319, ptr @test_count, align 4, !tbaa !5
  %20320 = getelementptr inbounds %struct.host_verify_data, ptr %598, i32 0, i32 2
  %20321 = load i8, ptr %20320, align 1, !tbaa !19
  %20322 = zext i8 %20321 to i32
  %20323 = icmp eq i32 1, %20322
  br i1 %20323, label %20377, label %20324

20324:                                            ; preds = %20317
  br label %20325

20325:                                            ; preds = %20324
  br label %20326

20326:                                            ; preds = %20325
  call void @llvm.lifetime.start.p0(i64 4, ptr %611) #11
  %20327 = call ptr @__errno_location() #12
  %20328 = load i32, ptr %20327, align 4, !tbaa !5
  store i32 %20328, ptr %611, align 4, !tbaa !5
  %20329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20330 = call i32 @s2n_print_stacktrace(ptr noundef %20329)
  %20331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20332 = trunc i8 %20331 to i1
  br i1 %20332, label %20333, label %20355

20333:                                            ; preds = %20326
  %20334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20335 = call i32 @fileno(ptr noundef %20334) #11
  %20336 = call i32 @isatty(i32 noundef %20335) #11
  %20337 = icmp ne i32 %20336, 0
  br i1 %20337, label %20338, label %20355

20338:                                            ; preds = %20333
  %20339 = load i32, ptr %611, align 4, !tbaa !5
  %20340 = call ptr @__errno_location() #12
  store i32 %20339, ptr %20340, align 4, !tbaa !5
  %20341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20342 = load i32, ptr @test_count, align 4, !tbaa !5
  %20343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20344 = load i32, ptr %20343, align 4, !tbaa !5
  %20345 = call ptr @s2n_strerror(i32 noundef %20344, ptr noundef @.str.4)
  %20346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20347 = load i32, ptr %20346, align 4, !tbaa !5
  %20348 = call ptr @s2n_strerror_debug(i32 noundef %20347, ptr noundef @.str.4)
  %20349 = call ptr @__errno_location() #12
  %20350 = load i32, ptr %20349, align 4, !tbaa !5
  %20351 = call ptr @strerror(i32 noundef %20350) #11
  %20352 = call ptr @__errno_location() #12
  %20353 = load i32, ptr %20352, align 4, !tbaa !5
  %20354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20341, ptr noundef @.str.2, i32 noundef %20342, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1223, ptr noundef %20345, ptr noundef %20348, ptr noundef %20351, i32 noundef %20353) #11
  br label %20372

20355:                                            ; preds = %20333, %20326
  %20356 = load i32, ptr %611, align 4, !tbaa !5
  %20357 = call ptr @__errno_location() #12
  store i32 %20356, ptr %20357, align 4, !tbaa !5
  %20358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20359 = load i32, ptr @test_count, align 4, !tbaa !5
  %20360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20361 = load i32, ptr %20360, align 4, !tbaa !5
  %20362 = call ptr @s2n_strerror(i32 noundef %20361, ptr noundef @.str.4)
  %20363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20364 = load i32, ptr %20363, align 4, !tbaa !5
  %20365 = call ptr @s2n_strerror_debug(i32 noundef %20364, ptr noundef @.str.4)
  %20366 = call ptr @__errno_location() #12
  %20367 = load i32, ptr %20366, align 4, !tbaa !5
  %20368 = call ptr @strerror(i32 noundef %20367) #11
  %20369 = call ptr @__errno_location() #12
  %20370 = load i32, ptr %20369, align 4, !tbaa !5
  %20371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20358, ptr noundef @.str.5, i32 noundef %20359, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1223, ptr noundef %20362, ptr noundef %20365, ptr noundef %20368, i32 noundef %20370) #11
  br label %20372

20372:                                            ; preds = %20355, %20338
  call void @llvm.lifetime.end.p0(i64 4, ptr %611) #11
  br label %20373

20373:                                            ; preds = %20372
  br label %20374

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

20375:                                            ; No predecessors!
  br label %20376

20376:                                            ; preds = %20375
  br label %20377

20377:                                            ; preds = %20376, %20317
  br label %20378

20378:                                            ; preds = %20377
  br label %20379

20379:                                            ; preds = %20378
  call void @llvm.lifetime.start.p0(i64 40, ptr %612) #11
  call void @llvm.memset.p0.i64(ptr align 8 %612, i8 0, i64 40, i1 false)
  br label %20380

20380:                                            ; preds = %20379
  %20381 = load i32, ptr @test_count, align 4, !tbaa !5
  %20382 = add nsw i32 %20381, 1
  store i32 %20382, ptr @test_count, align 4, !tbaa !5
  %20383 = call i32 @read_file(ptr noundef %612, ptr noundef @.str.74, i32 noundef 12000)
  %20384 = icmp eq i32 %20383, -1
  br i1 %20384, label %20385, label %20438

20385:                                            ; preds = %20380
  br label %20386

20386:                                            ; preds = %20385
  br label %20387

20387:                                            ; preds = %20386
  call void @llvm.lifetime.start.p0(i64 4, ptr %613) #11
  %20388 = call ptr @__errno_location() #12
  %20389 = load i32, ptr %20388, align 4, !tbaa !5
  store i32 %20389, ptr %613, align 4, !tbaa !5
  %20390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20391 = call i32 @s2n_print_stacktrace(ptr noundef %20390)
  %20392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20393 = trunc i8 %20392 to i1
  br i1 %20393, label %20394, label %20416

20394:                                            ; preds = %20387
  %20395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20396 = call i32 @fileno(ptr noundef %20395) #11
  %20397 = call i32 @isatty(i32 noundef %20396) #11
  %20398 = icmp ne i32 %20397, 0
  br i1 %20398, label %20399, label %20416

20399:                                            ; preds = %20394
  %20400 = load i32, ptr %613, align 4, !tbaa !5
  %20401 = call ptr @__errno_location() #12
  store i32 %20400, ptr %20401, align 4, !tbaa !5
  %20402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20403 = load i32, ptr @test_count, align 4, !tbaa !5
  %20404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20405 = load i32, ptr %20404, align 4, !tbaa !5
  %20406 = call ptr @s2n_strerror(i32 noundef %20405, ptr noundef @.str.4)
  %20407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20408 = load i32, ptr %20407, align 4, !tbaa !5
  %20409 = call ptr @s2n_strerror_debug(i32 noundef %20408, ptr noundef @.str.4)
  %20410 = call ptr @__errno_location() #12
  %20411 = load i32, ptr %20410, align 4, !tbaa !5
  %20412 = call ptr @strerror(i32 noundef %20411) #11
  %20413 = call ptr @__errno_location() #12
  %20414 = load i32, ptr %20413, align 4, !tbaa !5
  %20415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20402, ptr noundef @.str.2, i32 noundef %20403, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1225, ptr noundef %20406, ptr noundef %20409, ptr noundef %20412, i32 noundef %20414) #11
  br label %20433

20416:                                            ; preds = %20394, %20387
  %20417 = load i32, ptr %613, align 4, !tbaa !5
  %20418 = call ptr @__errno_location() #12
  store i32 %20417, ptr %20418, align 4, !tbaa !5
  %20419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20420 = load i32, ptr @test_count, align 4, !tbaa !5
  %20421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20422 = load i32, ptr %20421, align 4, !tbaa !5
  %20423 = call ptr @s2n_strerror(i32 noundef %20422, ptr noundef @.str.4)
  %20424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20425 = load i32, ptr %20424, align 4, !tbaa !5
  %20426 = call ptr @s2n_strerror_debug(i32 noundef %20425, ptr noundef @.str.4)
  %20427 = call ptr @__errno_location() #12
  %20428 = load i32, ptr %20427, align 4, !tbaa !5
  %20429 = call ptr @strerror(i32 noundef %20428) #11
  %20430 = call ptr @__errno_location() #12
  %20431 = load i32, ptr %20430, align 4, !tbaa !5
  %20432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20419, ptr noundef @.str.5, i32 noundef %20420, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1225, ptr noundef %20423, ptr noundef %20426, ptr noundef %20429, i32 noundef %20431) #11
  br label %20433

20433:                                            ; preds = %20416, %20399
  call void @llvm.lifetime.end.p0(i64 4, ptr %613) #11
  br label %20434

20434:                                            ; preds = %20433
  br label %20435

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

20436:                                            ; No predecessors!
  br label %20437

20437:                                            ; preds = %20436
  br label %20438

20438:                                            ; preds = %20437, %20380
  br label %20439

20439:                                            ; preds = %20438
  br label %20440

20440:                                            ; preds = %20439
  call void @llvm.lifetime.start.p0(i64 4, ptr %614) #11
  %20441 = getelementptr inbounds %struct.s2n_stuffer, ptr %612, i32 0, i32 2
  %20442 = load i32, ptr %20441, align 4, !tbaa !15
  %20443 = getelementptr inbounds %struct.s2n_stuffer, ptr %612, i32 0, i32 1
  %20444 = load i32, ptr %20443, align 8, !tbaa !18
  %20445 = sub i32 %20442, %20444
  store i32 %20445, ptr %614, align 4, !tbaa !5
  br label %20446

20446:                                            ; preds = %20440
  %20447 = load i32, ptr @test_count, align 4, !tbaa !5
  %20448 = add nsw i32 %20447, 1
  store i32 %20448, ptr @test_count, align 4, !tbaa !5
  %20449 = load i32, ptr %614, align 4, !tbaa !5
  %20450 = icmp ugt i32 %20449, 0
  br i1 %20450, label %20504, label %20451

20451:                                            ; preds = %20446
  br label %20452

20452:                                            ; preds = %20451
  br label %20453

20453:                                            ; preds = %20452
  call void @llvm.lifetime.start.p0(i64 4, ptr %615) #11
  %20454 = call ptr @__errno_location() #12
  %20455 = load i32, ptr %20454, align 4, !tbaa !5
  store i32 %20455, ptr %615, align 4, !tbaa !5
  %20456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20457 = call i32 @s2n_print_stacktrace(ptr noundef %20456)
  %20458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20459 = trunc i8 %20458 to i1
  br i1 %20459, label %20460, label %20482

20460:                                            ; preds = %20453
  %20461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20462 = call i32 @fileno(ptr noundef %20461) #11
  %20463 = call i32 @isatty(i32 noundef %20462) #11
  %20464 = icmp ne i32 %20463, 0
  br i1 %20464, label %20465, label %20482

20465:                                            ; preds = %20460
  %20466 = load i32, ptr %615, align 4, !tbaa !5
  %20467 = call ptr @__errno_location() #12
  store i32 %20466, ptr %20467, align 4, !tbaa !5
  %20468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20469 = load i32, ptr @test_count, align 4, !tbaa !5
  %20470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20471 = load i32, ptr %20470, align 4, !tbaa !5
  %20472 = call ptr @s2n_strerror(i32 noundef %20471, ptr noundef @.str.4)
  %20473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20474 = load i32, ptr %20473, align 4, !tbaa !5
  %20475 = call ptr @s2n_strerror_debug(i32 noundef %20474, ptr noundef @.str.4)
  %20476 = call ptr @__errno_location() #12
  %20477 = load i32, ptr %20476, align 4, !tbaa !5
  %20478 = call ptr @strerror(i32 noundef %20477) #11
  %20479 = call ptr @__errno_location() #12
  %20480 = load i32, ptr %20479, align 4, !tbaa !5
  %20481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20468, ptr noundef @.str.2, i32 noundef %20469, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1227, ptr noundef %20472, ptr noundef %20475, ptr noundef %20478, i32 noundef %20480) #11
  br label %20499

20482:                                            ; preds = %20460, %20453
  %20483 = load i32, ptr %615, align 4, !tbaa !5
  %20484 = call ptr @__errno_location() #12
  store i32 %20483, ptr %20484, align 4, !tbaa !5
  %20485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20486 = load i32, ptr @test_count, align 4, !tbaa !5
  %20487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20488 = load i32, ptr %20487, align 4, !tbaa !5
  %20489 = call ptr @s2n_strerror(i32 noundef %20488, ptr noundef @.str.4)
  %20490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20491 = load i32, ptr %20490, align 4, !tbaa !5
  %20492 = call ptr @s2n_strerror_debug(i32 noundef %20491, ptr noundef @.str.4)
  %20493 = call ptr @__errno_location() #12
  %20494 = load i32, ptr %20493, align 4, !tbaa !5
  %20495 = call ptr @strerror(i32 noundef %20494) #11
  %20496 = call ptr @__errno_location() #12
  %20497 = load i32, ptr %20496, align 4, !tbaa !5
  %20498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20485, ptr noundef @.str.5, i32 noundef %20486, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1227, ptr noundef %20489, ptr noundef %20492, ptr noundef %20495, i32 noundef %20497) #11
  br label %20499

20499:                                            ; preds = %20482, %20465
  call void @llvm.lifetime.end.p0(i64 4, ptr %615) #11
  br label %20500

20500:                                            ; preds = %20499
  br label %20501

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

20502:                                            ; No predecessors!
  br label %20503

20503:                                            ; preds = %20502
  br label %20504

20504:                                            ; preds = %20503, %20446
  br label %20505

20505:                                            ; preds = %20504
  br label %20506

20506:                                            ; preds = %20505
  call void @llvm.lifetime.start.p0(i64 8, ptr %616) #11
  %20507 = load i32, ptr %614, align 4, !tbaa !5
  %20508 = call ptr @s2n_stuffer_raw_read(ptr noundef %612, i32 noundef %20507)
  store ptr %20508, ptr %616, align 8, !tbaa !9
  %20509 = load ptr, ptr %616, align 8, !tbaa !9
  %20510 = getelementptr inbounds i8, ptr %20509, i64 800
  %20511 = load i8, ptr %20510, align 1, !tbaa !52
  %20512 = zext i8 %20511 to i32
  %20513 = add nsw i32 %20512, 1
  %20514 = trunc i32 %20513 to i8
  %20515 = load ptr, ptr %616, align 8, !tbaa !9
  %20516 = getelementptr inbounds i8, ptr %20515, i64 800
  store i8 %20514, ptr %20516, align 1, !tbaa !52
  br label %20517

20517:                                            ; preds = %20506
  br label %20518

20518:                                            ; preds = %20517
  br label %20519

20519:                                            ; preds = %20518
  %20520 = load i32, ptr @test_count, align 4, !tbaa !5
  %20521 = add nsw i32 %20520, 1
  store i32 %20521, ptr @test_count, align 4, !tbaa !5
  %20522 = load ptr, ptr %596, align 8, !tbaa !9
  %20523 = load ptr, ptr %616, align 8, !tbaa !9
  %20524 = load i32, ptr %614, align 4, !tbaa !5
  %20525 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %595, ptr noundef %20522, ptr noundef %20523, i32 noundef %20524)
  %20526 = getelementptr inbounds %struct.s2n_result, ptr %617, i32 0, i32 0
  store i32 %20525, ptr %20526, align 4
  %20527 = getelementptr inbounds %struct.s2n_result, ptr %617, i32 0, i32 0
  %20528 = load i32, ptr %20527, align 4
  %20529 = call zeroext i1 @s2n_result_is_error(i32 %20528)
  br i1 %20529, label %20583, label %20530

20530:                                            ; preds = %20519
  br label %20531

20531:                                            ; preds = %20530
  br label %20532

20532:                                            ; preds = %20531
  call void @llvm.lifetime.start.p0(i64 4, ptr %618) #11
  %20533 = call ptr @__errno_location() #12
  %20534 = load i32, ptr %20533, align 4, !tbaa !5
  store i32 %20534, ptr %618, align 4, !tbaa !5
  %20535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20536 = call i32 @s2n_print_stacktrace(ptr noundef %20535)
  %20537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20538 = trunc i8 %20537 to i1
  br i1 %20538, label %20539, label %20561

20539:                                            ; preds = %20532
  %20540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20541 = call i32 @fileno(ptr noundef %20540) #11
  %20542 = call i32 @isatty(i32 noundef %20541) #11
  %20543 = icmp ne i32 %20542, 0
  br i1 %20543, label %20544, label %20561

20544:                                            ; preds = %20539
  %20545 = load i32, ptr %618, align 4, !tbaa !5
  %20546 = call ptr @__errno_location() #12
  store i32 %20545, ptr %20546, align 4, !tbaa !5
  %20547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20548 = load i32, ptr @test_count, align 4, !tbaa !5
  %20549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20550 = load i32, ptr %20549, align 4, !tbaa !5
  %20551 = call ptr @s2n_strerror(i32 noundef %20550, ptr noundef @.str.4)
  %20552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20553 = load i32, ptr %20552, align 4, !tbaa !5
  %20554 = call ptr @s2n_strerror_debug(i32 noundef %20553, ptr noundef @.str.4)
  %20555 = call ptr @__errno_location() #12
  %20556 = load i32, ptr %20555, align 4, !tbaa !5
  %20557 = call ptr @strerror(i32 noundef %20556) #11
  %20558 = call ptr @__errno_location() #12
  %20559 = load i32, ptr %20558, align 4, !tbaa !5
  %20560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20547, ptr noundef @.str.2, i32 noundef %20548, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1235, ptr noundef %20551, ptr noundef %20554, ptr noundef %20557, i32 noundef %20559) #11
  br label %20578

20561:                                            ; preds = %20539, %20532
  %20562 = load i32, ptr %618, align 4, !tbaa !5
  %20563 = call ptr @__errno_location() #12
  store i32 %20562, ptr %20563, align 4, !tbaa !5
  %20564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20565 = load i32, ptr @test_count, align 4, !tbaa !5
  %20566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20567 = load i32, ptr %20566, align 4, !tbaa !5
  %20568 = call ptr @s2n_strerror(i32 noundef %20567, ptr noundef @.str.4)
  %20569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20570 = load i32, ptr %20569, align 4, !tbaa !5
  %20571 = call ptr @s2n_strerror_debug(i32 noundef %20570, ptr noundef @.str.4)
  %20572 = call ptr @__errno_location() #12
  %20573 = load i32, ptr %20572, align 4, !tbaa !5
  %20574 = call ptr @strerror(i32 noundef %20573) #11
  %20575 = call ptr @__errno_location() #12
  %20576 = load i32, ptr %20575, align 4, !tbaa !5
  %20577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20564, ptr noundef @.str.5, i32 noundef %20565, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1235, ptr noundef %20568, ptr noundef %20571, ptr noundef %20574, i32 noundef %20576) #11
  br label %20578

20578:                                            ; preds = %20561, %20544
  call void @llvm.lifetime.end.p0(i64 4, ptr %618) #11
  br label %20579

20579:                                            ; preds = %20578
  br label %20580

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

20581:                                            ; No predecessors!
  br label %20582

20582:                                            ; preds = %20581
  br label %20583

20583:                                            ; preds = %20582, %20519
  br label %20584

20584:                                            ; preds = %20583
  br label %20585

20585:                                            ; preds = %20584
  br label %20586

20586:                                            ; preds = %20585
  %20587 = load i32, ptr @test_count, align 4, !tbaa !5
  %20588 = add nsw i32 %20587, 1
  store i32 %20588, ptr @test_count, align 4, !tbaa !5
  %20589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20590 = load i32, ptr %20589, align 4, !tbaa !5
  %20591 = icmp eq i32 %20590, 335544366
  br i1 %20591, label %20645, label %20592

20592:                                            ; preds = %20586
  br label %20593

20593:                                            ; preds = %20592
  br label %20594

20594:                                            ; preds = %20593
  call void @llvm.lifetime.start.p0(i64 4, ptr %619) #11
  %20595 = call ptr @__errno_location() #12
  %20596 = load i32, ptr %20595, align 4, !tbaa !5
  store i32 %20596, ptr %619, align 4, !tbaa !5
  %20597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20598 = call i32 @s2n_print_stacktrace(ptr noundef %20597)
  %20599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20600 = trunc i8 %20599 to i1
  br i1 %20600, label %20601, label %20623

20601:                                            ; preds = %20594
  %20602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20603 = call i32 @fileno(ptr noundef %20602) #11
  %20604 = call i32 @isatty(i32 noundef %20603) #11
  %20605 = icmp ne i32 %20604, 0
  br i1 %20605, label %20606, label %20623

20606:                                            ; preds = %20601
  %20607 = load i32, ptr %619, align 4, !tbaa !5
  %20608 = call ptr @__errno_location() #12
  store i32 %20607, ptr %20608, align 4, !tbaa !5
  %20609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20610 = load i32, ptr @test_count, align 4, !tbaa !5
  %20611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20612 = load i32, ptr %20611, align 4, !tbaa !5
  %20613 = call ptr @s2n_strerror(i32 noundef %20612, ptr noundef @.str.4)
  %20614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20615 = load i32, ptr %20614, align 4, !tbaa !5
  %20616 = call ptr @s2n_strerror_debug(i32 noundef %20615, ptr noundef @.str.4)
  %20617 = call ptr @__errno_location() #12
  %20618 = load i32, ptr %20617, align 4, !tbaa !5
  %20619 = call ptr @strerror(i32 noundef %20618) #11
  %20620 = call ptr @__errno_location() #12
  %20621 = load i32, ptr %20620, align 4, !tbaa !5
  %20622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20609, ptr noundef @.str.2, i32 noundef %20610, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1235, ptr noundef %20613, ptr noundef %20616, ptr noundef %20619, i32 noundef %20621) #11
  br label %20640

20623:                                            ; preds = %20601, %20594
  %20624 = load i32, ptr %619, align 4, !tbaa !5
  %20625 = call ptr @__errno_location() #12
  store i32 %20624, ptr %20625, align 4, !tbaa !5
  %20626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20627 = load i32, ptr @test_count, align 4, !tbaa !5
  %20628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20629 = load i32, ptr %20628, align 4, !tbaa !5
  %20630 = call ptr @s2n_strerror(i32 noundef %20629, ptr noundef @.str.4)
  %20631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20632 = load i32, ptr %20631, align 4, !tbaa !5
  %20633 = call ptr @s2n_strerror_debug(i32 noundef %20632, ptr noundef @.str.4)
  %20634 = call ptr @__errno_location() #12
  %20635 = load i32, ptr %20634, align 4, !tbaa !5
  %20636 = call ptr @strerror(i32 noundef %20635) #11
  %20637 = call ptr @__errno_location() #12
  %20638 = load i32, ptr %20637, align 4, !tbaa !5
  %20639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20626, ptr noundef @.str.5, i32 noundef %20627, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1235, ptr noundef %20630, ptr noundef %20633, ptr noundef %20636, i32 noundef %20638) #11
  br label %20640

20640:                                            ; preds = %20623, %20606
  call void @llvm.lifetime.end.p0(i64 4, ptr %619) #11
  br label %20641

20641:                                            ; preds = %20640
  br label %20642

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

20643:                                            ; No predecessors!
  br label %20644

20644:                                            ; preds = %20643
  br label %20645

20645:                                            ; preds = %20644, %20586
  br label %20646

20646:                                            ; preds = %20645
  br label %20647

20647:                                            ; preds = %20646
  br label %20648

20648:                                            ; preds = %20647
  %20649 = load i32, ptr @test_count, align 4, !tbaa !5
  %20650 = add nsw i32 %20649, 1
  store i32 %20650, ptr @test_count, align 4, !tbaa !5
  %20651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20652 = load i32, ptr %20651, align 4, !tbaa !5
  %20653 = call ptr @s2n_strerror_debug(i32 noundef %20652, ptr noundef @.str.4)
  %20654 = icmp eq ptr %20653, null
  br i1 %20654, label %20655, label %20708

20655:                                            ; preds = %20648
  br label %20656

20656:                                            ; preds = %20655
  br label %20657

20657:                                            ; preds = %20656
  call void @llvm.lifetime.start.p0(i64 4, ptr %620) #11
  %20658 = call ptr @__errno_location() #12
  %20659 = load i32, ptr %20658, align 4, !tbaa !5
  store i32 %20659, ptr %620, align 4, !tbaa !5
  %20660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20661 = call i32 @s2n_print_stacktrace(ptr noundef %20660)
  %20662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20663 = trunc i8 %20662 to i1
  br i1 %20663, label %20664, label %20686

20664:                                            ; preds = %20657
  %20665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20666 = call i32 @fileno(ptr noundef %20665) #11
  %20667 = call i32 @isatty(i32 noundef %20666) #11
  %20668 = icmp ne i32 %20667, 0
  br i1 %20668, label %20669, label %20686

20669:                                            ; preds = %20664
  %20670 = load i32, ptr %620, align 4, !tbaa !5
  %20671 = call ptr @__errno_location() #12
  store i32 %20670, ptr %20671, align 4, !tbaa !5
  %20672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20673 = load i32, ptr @test_count, align 4, !tbaa !5
  %20674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20675 = load i32, ptr %20674, align 4, !tbaa !5
  %20676 = call ptr @s2n_strerror(i32 noundef %20675, ptr noundef @.str.4)
  %20677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20678 = load i32, ptr %20677, align 4, !tbaa !5
  %20679 = call ptr @s2n_strerror_debug(i32 noundef %20678, ptr noundef @.str.4)
  %20680 = call ptr @__errno_location() #12
  %20681 = load i32, ptr %20680, align 4, !tbaa !5
  %20682 = call ptr @strerror(i32 noundef %20681) #11
  %20683 = call ptr @__errno_location() #12
  %20684 = load i32, ptr %20683, align 4, !tbaa !5
  %20685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20672, ptr noundef @.str.2, i32 noundef %20673, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1235, ptr noundef %20676, ptr noundef %20679, ptr noundef %20682, i32 noundef %20684) #11
  br label %20703

20686:                                            ; preds = %20664, %20657
  %20687 = load i32, ptr %620, align 4, !tbaa !5
  %20688 = call ptr @__errno_location() #12
  store i32 %20687, ptr %20688, align 4, !tbaa !5
  %20689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20690 = load i32, ptr @test_count, align 4, !tbaa !5
  %20691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20692 = load i32, ptr %20691, align 4, !tbaa !5
  %20693 = call ptr @s2n_strerror(i32 noundef %20692, ptr noundef @.str.4)
  %20694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20695 = load i32, ptr %20694, align 4, !tbaa !5
  %20696 = call ptr @s2n_strerror_debug(i32 noundef %20695, ptr noundef @.str.4)
  %20697 = call ptr @__errno_location() #12
  %20698 = load i32, ptr %20697, align 4, !tbaa !5
  %20699 = call ptr @strerror(i32 noundef %20698) #11
  %20700 = call ptr @__errno_location() #12
  %20701 = load i32, ptr %20700, align 4, !tbaa !5
  %20702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20689, ptr noundef @.str.5, i32 noundef %20690, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1235, ptr noundef %20693, ptr noundef %20696, ptr noundef %20699, i32 noundef %20701) #11
  br label %20703

20703:                                            ; preds = %20686, %20669
  call void @llvm.lifetime.end.p0(i64 4, ptr %620) #11
  br label %20704

20704:                                            ; preds = %20703
  br label %20705

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

20706:                                            ; No predecessors!
  br label %20707

20707:                                            ; preds = %20706
  br label %20708

20708:                                            ; preds = %20707, %20648
  br label %20709

20709:                                            ; preds = %20708
  br label %20710

20710:                                            ; preds = %20709
  br label %20711

20711:                                            ; preds = %20710
  br label %20712

20712:                                            ; preds = %20711
  br label %20713

20713:                                            ; preds = %20712
  %20714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %20714, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %20715 = call ptr @__errno_location() #12
  store i32 0, ptr %20715, align 4, !tbaa !5
  br label %20716

20716:                                            ; preds = %20713
  br label %20717

20717:                                            ; preds = %20716
  br label %20718

20718:                                            ; preds = %20717
  br label %20719

20719:                                            ; preds = %20718
  %20720 = call i32 @s2n_stuffer_free(ptr noundef %612)
  %20721 = load ptr, ptr %596, align 8, !tbaa !9
  %20722 = call i32 @s2n_connection_free(ptr noundef %20721)
  %20723 = call i32 @s2n_pkey_free(ptr noundef %606)
  %20724 = call i32 @s2n_x509_validator_wipe(ptr noundef %595)
  call void @s2n_x509_trust_store_wipe(ptr noundef %593)
  call void @llvm.lifetime.end.p0(i64 8, ptr %616) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %614) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %612) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %608) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %606) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %604) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %603) #11
  %20725 = call i32 @s2n_stuffer_free(ptr noundef %600)
  call void @llvm.lifetime.end.p0(i64 40, ptr %600) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %598) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %596) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %595) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %593) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %621) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %621)
  br label %20726

20726:                                            ; preds = %20719
  %20727 = load i32, ptr @test_count, align 4, !tbaa !5
  %20728 = add nsw i32 %20727, 1
  store i32 %20728, ptr @test_count, align 4, !tbaa !5
  %20729 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %621, ptr noundef @.str.88, ptr noundef null)
  %20730 = icmp eq i32 %20729, -1
  br i1 %20730, label %20731, label %20784

20731:                                            ; preds = %20726
  br label %20732

20732:                                            ; preds = %20731
  br label %20733

20733:                                            ; preds = %20732
  call void @llvm.lifetime.start.p0(i64 4, ptr %622) #11
  %20734 = call ptr @__errno_location() #12
  %20735 = load i32, ptr %20734, align 4, !tbaa !5
  store i32 %20735, ptr %622, align 4, !tbaa !5
  %20736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20737 = call i32 @s2n_print_stacktrace(ptr noundef %20736)
  %20738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20739 = trunc i8 %20738 to i1
  br i1 %20739, label %20740, label %20762

20740:                                            ; preds = %20733
  %20741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20742 = call i32 @fileno(ptr noundef %20741) #11
  %20743 = call i32 @isatty(i32 noundef %20742) #11
  %20744 = icmp ne i32 %20743, 0
  br i1 %20744, label %20745, label %20762

20745:                                            ; preds = %20740
  %20746 = load i32, ptr %622, align 4, !tbaa !5
  %20747 = call ptr @__errno_location() #12
  store i32 %20746, ptr %20747, align 4, !tbaa !5
  %20748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20749 = load i32, ptr @test_count, align 4, !tbaa !5
  %20750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20751 = load i32, ptr %20750, align 4, !tbaa !5
  %20752 = call ptr @s2n_strerror(i32 noundef %20751, ptr noundef @.str.4)
  %20753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20754 = load i32, ptr %20753, align 4, !tbaa !5
  %20755 = call ptr @s2n_strerror_debug(i32 noundef %20754, ptr noundef @.str.4)
  %20756 = call ptr @__errno_location() #12
  %20757 = load i32, ptr %20756, align 4, !tbaa !5
  %20758 = call ptr @strerror(i32 noundef %20757) #11
  %20759 = call ptr @__errno_location() #12
  %20760 = load i32, ptr %20759, align 4, !tbaa !5
  %20761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20748, ptr noundef @.str.2, i32 noundef %20749, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 1248, ptr noundef %20752, ptr noundef %20755, ptr noundef %20758, i32 noundef %20760) #11
  br label %20779

20762:                                            ; preds = %20740, %20733
  %20763 = load i32, ptr %622, align 4, !tbaa !5
  %20764 = call ptr @__errno_location() #12
  store i32 %20763, ptr %20764, align 4, !tbaa !5
  %20765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20766 = load i32, ptr @test_count, align 4, !tbaa !5
  %20767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20768 = load i32, ptr %20767, align 4, !tbaa !5
  %20769 = call ptr @s2n_strerror(i32 noundef %20768, ptr noundef @.str.4)
  %20770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20771 = load i32, ptr %20770, align 4, !tbaa !5
  %20772 = call ptr @s2n_strerror_debug(i32 noundef %20771, ptr noundef @.str.4)
  %20773 = call ptr @__errno_location() #12
  %20774 = load i32, ptr %20773, align 4, !tbaa !5
  %20775 = call ptr @strerror(i32 noundef %20774) #11
  %20776 = call ptr @__errno_location() #12
  %20777 = load i32, ptr %20776, align 4, !tbaa !5
  %20778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20765, ptr noundef @.str.5, i32 noundef %20766, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 1248, ptr noundef %20769, ptr noundef %20772, ptr noundef %20775, i32 noundef %20777) #11
  br label %20779

20779:                                            ; preds = %20762, %20745
  call void @llvm.lifetime.end.p0(i64 4, ptr %622) #11
  br label %20780

20780:                                            ; preds = %20779
  br label %20781

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

20782:                                            ; No predecessors!
  br label %20783

20783:                                            ; preds = %20782
  br label %20784

20784:                                            ; preds = %20783, %20726
  br label %20785

20785:                                            ; preds = %20784
  br label %20786

20786:                                            ; preds = %20785
  call void @llvm.lifetime.start.p0(i64 56, ptr %623) #11
  %20787 = call i32 @s2n_x509_validator_init(ptr noundef %623, ptr noundef %621, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %624) #11
  %20788 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %20788, ptr %624, align 8, !tbaa !9
  br label %20789

20789:                                            ; preds = %20786
  %20790 = load i32, ptr @test_count, align 4, !tbaa !5
  %20791 = add nsw i32 %20790, 1
  store i32 %20791, ptr @test_count, align 4, !tbaa !5
  %20792 = load ptr, ptr %624, align 8, !tbaa !9
  %20793 = icmp eq ptr %20792, null
  br i1 %20793, label %20794, label %20847

20794:                                            ; preds = %20789
  br label %20795

20795:                                            ; preds = %20794
  br label %20796

20796:                                            ; preds = %20795
  call void @llvm.lifetime.start.p0(i64 4, ptr %625) #11
  %20797 = call ptr @__errno_location() #12
  %20798 = load i32, ptr %20797, align 4, !tbaa !5
  store i32 %20798, ptr %625, align 4, !tbaa !5
  %20799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20800 = call i32 @s2n_print_stacktrace(ptr noundef %20799)
  %20801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20802 = trunc i8 %20801 to i1
  br i1 %20802, label %20803, label %20825

20803:                                            ; preds = %20796
  %20804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20805 = call i32 @fileno(ptr noundef %20804) #11
  %20806 = call i32 @isatty(i32 noundef %20805) #11
  %20807 = icmp ne i32 %20806, 0
  br i1 %20807, label %20808, label %20825

20808:                                            ; preds = %20803
  %20809 = load i32, ptr %625, align 4, !tbaa !5
  %20810 = call ptr @__errno_location() #12
  store i32 %20809, ptr %20810, align 4, !tbaa !5
  %20811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20812 = load i32, ptr @test_count, align 4, !tbaa !5
  %20813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20814 = load i32, ptr %20813, align 4, !tbaa !5
  %20815 = call ptr @s2n_strerror(i32 noundef %20814, ptr noundef @.str.4)
  %20816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20817 = load i32, ptr %20816, align 4, !tbaa !5
  %20818 = call ptr @s2n_strerror_debug(i32 noundef %20817, ptr noundef @.str.4)
  %20819 = call ptr @__errno_location() #12
  %20820 = load i32, ptr %20819, align 4, !tbaa !5
  %20821 = call ptr @strerror(i32 noundef %20820) #11
  %20822 = call ptr @__errno_location() #12
  %20823 = load i32, ptr %20822, align 4, !tbaa !5
  %20824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20811, ptr noundef @.str.2, i32 noundef %20812, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1254, ptr noundef %20815, ptr noundef %20818, ptr noundef %20821, i32 noundef %20823) #11
  br label %20842

20825:                                            ; preds = %20803, %20796
  %20826 = load i32, ptr %625, align 4, !tbaa !5
  %20827 = call ptr @__errno_location() #12
  store i32 %20826, ptr %20827, align 4, !tbaa !5
  %20828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20829 = load i32, ptr @test_count, align 4, !tbaa !5
  %20830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20831 = load i32, ptr %20830, align 4, !tbaa !5
  %20832 = call ptr @s2n_strerror(i32 noundef %20831, ptr noundef @.str.4)
  %20833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20834 = load i32, ptr %20833, align 4, !tbaa !5
  %20835 = call ptr @s2n_strerror_debug(i32 noundef %20834, ptr noundef @.str.4)
  %20836 = call ptr @__errno_location() #12
  %20837 = load i32, ptr %20836, align 4, !tbaa !5
  %20838 = call ptr @strerror(i32 noundef %20837) #11
  %20839 = call ptr @__errno_location() #12
  %20840 = load i32, ptr %20839, align 4, !tbaa !5
  %20841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20828, ptr noundef @.str.5, i32 noundef %20829, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1254, ptr noundef %20832, ptr noundef %20835, ptr noundef %20838, i32 noundef %20840) #11
  br label %20842

20842:                                            ; preds = %20825, %20808
  call void @llvm.lifetime.end.p0(i64 4, ptr %625) #11
  br label %20843

20843:                                            ; preds = %20842
  br label %20844

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

20845:                                            ; No predecessors!
  br label %20846

20846:                                            ; preds = %20845
  br label %20847

20847:                                            ; preds = %20846, %20789
  br label %20848

20848:                                            ; preds = %20847
  br label %20849

20849:                                            ; preds = %20848
  call void @llvm.lifetime.start.p0(i64 16, ptr %626) #11
  call void @llvm.memset.p0.i64(ptr align 8 %626, i8 0, i64 16, i1 false)
  br label %20850

20850:                                            ; preds = %20849
  %20851 = load i32, ptr @test_count, align 4, !tbaa !5
  %20852 = add nsw i32 %20851, 1
  store i32 %20852, ptr @test_count, align 4, !tbaa !5
  %20853 = load ptr, ptr %624, align 8, !tbaa !9
  %20854 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %20853, ptr noundef @verify_host_accept_everything, ptr noundef %626)
  %20855 = icmp eq i32 %20854, -1
  br i1 %20855, label %20856, label %20909

20856:                                            ; preds = %20850
  br label %20857

20857:                                            ; preds = %20856
  br label %20858

20858:                                            ; preds = %20857
  call void @llvm.lifetime.start.p0(i64 4, ptr %627) #11
  %20859 = call ptr @__errno_location() #12
  %20860 = load i32, ptr %20859, align 4, !tbaa !5
  store i32 %20860, ptr %627, align 4, !tbaa !5
  %20861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20862 = call i32 @s2n_print_stacktrace(ptr noundef %20861)
  %20863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20864 = trunc i8 %20863 to i1
  br i1 %20864, label %20865, label %20887

20865:                                            ; preds = %20858
  %20866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20867 = call i32 @fileno(ptr noundef %20866) #11
  %20868 = call i32 @isatty(i32 noundef %20867) #11
  %20869 = icmp ne i32 %20868, 0
  br i1 %20869, label %20870, label %20887

20870:                                            ; preds = %20865
  %20871 = load i32, ptr %627, align 4, !tbaa !5
  %20872 = call ptr @__errno_location() #12
  store i32 %20871, ptr %20872, align 4, !tbaa !5
  %20873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20874 = load i32, ptr @test_count, align 4, !tbaa !5
  %20875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20876 = load i32, ptr %20875, align 4, !tbaa !5
  %20877 = call ptr @s2n_strerror(i32 noundef %20876, ptr noundef @.str.4)
  %20878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20879 = load i32, ptr %20878, align 4, !tbaa !5
  %20880 = call ptr @s2n_strerror_debug(i32 noundef %20879, ptr noundef @.str.4)
  %20881 = call ptr @__errno_location() #12
  %20882 = load i32, ptr %20881, align 4, !tbaa !5
  %20883 = call ptr @strerror(i32 noundef %20882) #11
  %20884 = call ptr @__errno_location() #12
  %20885 = load i32, ptr %20884, align 4, !tbaa !5
  %20886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20873, ptr noundef @.str.2, i32 noundef %20874, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1257, ptr noundef %20877, ptr noundef %20880, ptr noundef %20883, i32 noundef %20885) #11
  br label %20904

20887:                                            ; preds = %20865, %20858
  %20888 = load i32, ptr %627, align 4, !tbaa !5
  %20889 = call ptr @__errno_location() #12
  store i32 %20888, ptr %20889, align 4, !tbaa !5
  %20890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20891 = load i32, ptr @test_count, align 4, !tbaa !5
  %20892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20893 = load i32, ptr %20892, align 4, !tbaa !5
  %20894 = call ptr @s2n_strerror(i32 noundef %20893, ptr noundef @.str.4)
  %20895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20896 = load i32, ptr %20895, align 4, !tbaa !5
  %20897 = call ptr @s2n_strerror_debug(i32 noundef %20896, ptr noundef @.str.4)
  %20898 = call ptr @__errno_location() #12
  %20899 = load i32, ptr %20898, align 4, !tbaa !5
  %20900 = call ptr @strerror(i32 noundef %20899) #11
  %20901 = call ptr @__errno_location() #12
  %20902 = load i32, ptr %20901, align 4, !tbaa !5
  %20903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20890, ptr noundef @.str.5, i32 noundef %20891, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1257, ptr noundef %20894, ptr noundef %20897, ptr noundef %20900, i32 noundef %20902) #11
  br label %20904

20904:                                            ; preds = %20887, %20870
  call void @llvm.lifetime.end.p0(i64 4, ptr %627) #11
  br label %20905

20905:                                            ; preds = %20904
  br label %20906

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

20907:                                            ; No predecessors!
  br label %20908

20908:                                            ; preds = %20907
  br label %20909

20909:                                            ; preds = %20908, %20850
  br label %20910

20910:                                            ; preds = %20909
  br label %20911

20911:                                            ; preds = %20910
  call void @llvm.lifetime.start.p0(i64 40, ptr %628) #11
  call void @llvm.memset.p0.i64(ptr align 8 %628, i8 0, i64 40, i1 false)
  br label %20912

20912:                                            ; preds = %20911
  %20913 = load i32, ptr @test_count, align 4, !tbaa !5
  %20914 = add nsw i32 %20913, 1
  store i32 %20914, ptr @test_count, align 4, !tbaa !5
  %20915 = load ptr, ptr %624, align 8, !tbaa !9
  %20916 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %20915, ptr noundef @.str.88, ptr noundef %628)
  %20917 = getelementptr inbounds %struct.s2n_result, ptr %629, i32 0, i32 0
  store i32 %20916, ptr %20917, align 4
  %20918 = getelementptr inbounds %struct.s2n_result, ptr %629, i32 0, i32 0
  %20919 = load i32, ptr %20918, align 4
  %20920 = call zeroext i1 @s2n_result_is_ok(i32 %20919)
  br i1 %20920, label %20974, label %20921

20921:                                            ; preds = %20912
  br label %20922

20922:                                            ; preds = %20921
  br label %20923

20923:                                            ; preds = %20922
  call void @llvm.lifetime.start.p0(i64 4, ptr %630) #11
  %20924 = call ptr @__errno_location() #12
  %20925 = load i32, ptr %20924, align 4, !tbaa !5
  store i32 %20925, ptr %630, align 4, !tbaa !5
  %20926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20927 = call i32 @s2n_print_stacktrace(ptr noundef %20926)
  %20928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20929 = trunc i8 %20928 to i1
  br i1 %20929, label %20930, label %20952

20930:                                            ; preds = %20923
  %20931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20932 = call i32 @fileno(ptr noundef %20931) #11
  %20933 = call i32 @isatty(i32 noundef %20932) #11
  %20934 = icmp ne i32 %20933, 0
  br i1 %20934, label %20935, label %20952

20935:                                            ; preds = %20930
  %20936 = load i32, ptr %630, align 4, !tbaa !5
  %20937 = call ptr @__errno_location() #12
  store i32 %20936, ptr %20937, align 4, !tbaa !5
  %20938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20939 = load i32, ptr @test_count, align 4, !tbaa !5
  %20940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20941 = load i32, ptr %20940, align 4, !tbaa !5
  %20942 = call ptr @s2n_strerror(i32 noundef %20941, ptr noundef @.str.4)
  %20943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20944 = load i32, ptr %20943, align 4, !tbaa !5
  %20945 = call ptr @s2n_strerror_debug(i32 noundef %20944, ptr noundef @.str.4)
  %20946 = call ptr @__errno_location() #12
  %20947 = load i32, ptr %20946, align 4, !tbaa !5
  %20948 = call ptr @strerror(i32 noundef %20947) #11
  %20949 = call ptr @__errno_location() #12
  %20950 = load i32, ptr %20949, align 4, !tbaa !5
  %20951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20938, ptr noundef @.str.2, i32 noundef %20939, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1261, ptr noundef %20942, ptr noundef %20945, ptr noundef %20948, i32 noundef %20950) #11
  br label %20969

20952:                                            ; preds = %20930, %20923
  %20953 = load i32, ptr %630, align 4, !tbaa !5
  %20954 = call ptr @__errno_location() #12
  store i32 %20953, ptr %20954, align 4, !tbaa !5
  %20955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20956 = load i32, ptr @test_count, align 4, !tbaa !5
  %20957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20958 = load i32, ptr %20957, align 4, !tbaa !5
  %20959 = call ptr @s2n_strerror(i32 noundef %20958, ptr noundef @.str.4)
  %20960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20961 = load i32, ptr %20960, align 4, !tbaa !5
  %20962 = call ptr @s2n_strerror_debug(i32 noundef %20961, ptr noundef @.str.4)
  %20963 = call ptr @__errno_location() #12
  %20964 = load i32, ptr %20963, align 4, !tbaa !5
  %20965 = call ptr @strerror(i32 noundef %20964) #11
  %20966 = call ptr @__errno_location() #12
  %20967 = load i32, ptr %20966, align 4, !tbaa !5
  %20968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20955, ptr noundef @.str.5, i32 noundef %20956, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1261, ptr noundef %20959, ptr noundef %20962, ptr noundef %20965, i32 noundef %20967) #11
  br label %20969

20969:                                            ; preds = %20952, %20935
  call void @llvm.lifetime.end.p0(i64 4, ptr %630) #11
  br label %20970

20970:                                            ; preds = %20969
  br label %20971

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

20972:                                            ; No predecessors!
  br label %20973

20973:                                            ; preds = %20972
  br label %20974

20974:                                            ; preds = %20973, %20912
  br label %20975

20975:                                            ; preds = %20974
  br label %20976

20976:                                            ; preds = %20975
  call void @llvm.lifetime.start.p0(i64 4, ptr %631) #11
  %20977 = getelementptr inbounds %struct.s2n_stuffer, ptr %628, i32 0, i32 2
  %20978 = load i32, ptr %20977, align 4, !tbaa !15
  %20979 = getelementptr inbounds %struct.s2n_stuffer, ptr %628, i32 0, i32 1
  %20980 = load i32, ptr %20979, align 8, !tbaa !18
  %20981 = sub i32 %20978, %20980
  store i32 %20981, ptr %631, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %632) #11
  %20982 = load i32, ptr %631, align 4, !tbaa !5
  %20983 = call ptr @s2n_stuffer_raw_read(ptr noundef %628, i32 noundef %20982)
  store ptr %20983, ptr %632, align 8, !tbaa !9
  br label %20984

20984:                                            ; preds = %20976
  %20985 = load i32, ptr @test_count, align 4, !tbaa !5
  %20986 = add nsw i32 %20985, 1
  store i32 %20986, ptr @test_count, align 4, !tbaa !5
  %20987 = load ptr, ptr %632, align 8, !tbaa !9
  %20988 = icmp eq ptr %20987, null
  br i1 %20988, label %20989, label %21042

20989:                                            ; preds = %20984
  br label %20990

20990:                                            ; preds = %20989
  br label %20991

20991:                                            ; preds = %20990
  call void @llvm.lifetime.start.p0(i64 4, ptr %633) #11
  %20992 = call ptr @__errno_location() #12
  %20993 = load i32, ptr %20992, align 4, !tbaa !5
  store i32 %20993, ptr %633, align 4, !tbaa !5
  %20994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20995 = call i32 @s2n_print_stacktrace(ptr noundef %20994)
  %20996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20997 = trunc i8 %20996 to i1
  br i1 %20997, label %20998, label %21020

20998:                                            ; preds = %20991
  %20999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21000 = call i32 @fileno(ptr noundef %20999) #11
  %21001 = call i32 @isatty(i32 noundef %21000) #11
  %21002 = icmp ne i32 %21001, 0
  br i1 %21002, label %21003, label %21020

21003:                                            ; preds = %20998
  %21004 = load i32, ptr %633, align 4, !tbaa !5
  %21005 = call ptr @__errno_location() #12
  store i32 %21004, ptr %21005, align 4, !tbaa !5
  %21006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21007 = load i32, ptr @test_count, align 4, !tbaa !5
  %21008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21009 = load i32, ptr %21008, align 4, !tbaa !5
  %21010 = call ptr @s2n_strerror(i32 noundef %21009, ptr noundef @.str.4)
  %21011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21012 = load i32, ptr %21011, align 4, !tbaa !5
  %21013 = call ptr @s2n_strerror_debug(i32 noundef %21012, ptr noundef @.str.4)
  %21014 = call ptr @__errno_location() #12
  %21015 = load i32, ptr %21014, align 4, !tbaa !5
  %21016 = call ptr @strerror(i32 noundef %21015) #11
  %21017 = call ptr @__errno_location() #12
  %21018 = load i32, ptr %21017, align 4, !tbaa !5
  %21019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21006, ptr noundef @.str.2, i32 noundef %21007, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1264, ptr noundef %21010, ptr noundef %21013, ptr noundef %21016, i32 noundef %21018) #11
  br label %21037

21020:                                            ; preds = %20998, %20991
  %21021 = load i32, ptr %633, align 4, !tbaa !5
  %21022 = call ptr @__errno_location() #12
  store i32 %21021, ptr %21022, align 4, !tbaa !5
  %21023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21024 = load i32, ptr @test_count, align 4, !tbaa !5
  %21025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21026 = load i32, ptr %21025, align 4, !tbaa !5
  %21027 = call ptr @s2n_strerror(i32 noundef %21026, ptr noundef @.str.4)
  %21028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21029 = load i32, ptr %21028, align 4, !tbaa !5
  %21030 = call ptr @s2n_strerror_debug(i32 noundef %21029, ptr noundef @.str.4)
  %21031 = call ptr @__errno_location() #12
  %21032 = load i32, ptr %21031, align 4, !tbaa !5
  %21033 = call ptr @strerror(i32 noundef %21032) #11
  %21034 = call ptr @__errno_location() #12
  %21035 = load i32, ptr %21034, align 4, !tbaa !5
  %21036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21023, ptr noundef @.str.5, i32 noundef %21024, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1264, ptr noundef %21027, ptr noundef %21030, ptr noundef %21033, i32 noundef %21035) #11
  br label %21037

21037:                                            ; preds = %21020, %21003
  call void @llvm.lifetime.end.p0(i64 4, ptr %633) #11
  br label %21038

21038:                                            ; preds = %21037
  br label %21039

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

21040:                                            ; No predecessors!
  br label %21041

21041:                                            ; preds = %21040
  br label %21042

21042:                                            ; preds = %21041, %20984
  br label %21043

21043:                                            ; preds = %21042
  br label %21044

21044:                                            ; preds = %21043
  call void @llvm.lifetime.start.p0(i64 48, ptr %634) #11
  br label %21045

21045:                                            ; preds = %21044
  %21046 = load i32, ptr @test_count, align 4, !tbaa !5
  %21047 = add nsw i32 %21046, 1
  store i32 %21047, ptr @test_count, align 4, !tbaa !5
  %21048 = call i32 @s2n_pkey_zero_init(ptr noundef %634)
  %21049 = icmp eq i32 %21048, -1
  br i1 %21049, label %21050, label %21103

21050:                                            ; preds = %21045
  br label %21051

21051:                                            ; preds = %21050
  br label %21052

21052:                                            ; preds = %21051
  call void @llvm.lifetime.start.p0(i64 4, ptr %635) #11
  %21053 = call ptr @__errno_location() #12
  %21054 = load i32, ptr %21053, align 4, !tbaa !5
  store i32 %21054, ptr %635, align 4, !tbaa !5
  %21055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21056 = call i32 @s2n_print_stacktrace(ptr noundef %21055)
  %21057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21058 = trunc i8 %21057 to i1
  br i1 %21058, label %21059, label %21081

21059:                                            ; preds = %21052
  %21060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21061 = call i32 @fileno(ptr noundef %21060) #11
  %21062 = call i32 @isatty(i32 noundef %21061) #11
  %21063 = icmp ne i32 %21062, 0
  br i1 %21063, label %21064, label %21081

21064:                                            ; preds = %21059
  %21065 = load i32, ptr %635, align 4, !tbaa !5
  %21066 = call ptr @__errno_location() #12
  store i32 %21065, ptr %21066, align 4, !tbaa !5
  %21067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21068 = load i32, ptr @test_count, align 4, !tbaa !5
  %21069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21070 = load i32, ptr %21069, align 4, !tbaa !5
  %21071 = call ptr @s2n_strerror(i32 noundef %21070, ptr noundef @.str.4)
  %21072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21073 = load i32, ptr %21072, align 4, !tbaa !5
  %21074 = call ptr @s2n_strerror_debug(i32 noundef %21073, ptr noundef @.str.4)
  %21075 = call ptr @__errno_location() #12
  %21076 = load i32, ptr %21075, align 4, !tbaa !5
  %21077 = call ptr @strerror(i32 noundef %21076) #11
  %21078 = call ptr @__errno_location() #12
  %21079 = load i32, ptr %21078, align 4, !tbaa !5
  %21080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21067, ptr noundef @.str.2, i32 noundef %21068, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1267, ptr noundef %21071, ptr noundef %21074, ptr noundef %21077, i32 noundef %21079) #11
  br label %21098

21081:                                            ; preds = %21059, %21052
  %21082 = load i32, ptr %635, align 4, !tbaa !5
  %21083 = call ptr @__errno_location() #12
  store i32 %21082, ptr %21083, align 4, !tbaa !5
  %21084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21085 = load i32, ptr @test_count, align 4, !tbaa !5
  %21086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21087 = load i32, ptr %21086, align 4, !tbaa !5
  %21088 = call ptr @s2n_strerror(i32 noundef %21087, ptr noundef @.str.4)
  %21089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21090 = load i32, ptr %21089, align 4, !tbaa !5
  %21091 = call ptr @s2n_strerror_debug(i32 noundef %21090, ptr noundef @.str.4)
  %21092 = call ptr @__errno_location() #12
  %21093 = load i32, ptr %21092, align 4, !tbaa !5
  %21094 = call ptr @strerror(i32 noundef %21093) #11
  %21095 = call ptr @__errno_location() #12
  %21096 = load i32, ptr %21095, align 4, !tbaa !5
  %21097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21084, ptr noundef @.str.5, i32 noundef %21085, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1267, ptr noundef %21088, ptr noundef %21091, ptr noundef %21094, i32 noundef %21096) #11
  br label %21098

21098:                                            ; preds = %21081, %21064
  call void @llvm.lifetime.end.p0(i64 4, ptr %635) #11
  br label %21099

21099:                                            ; preds = %21098
  br label %21100

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

21101:                                            ; No predecessors!
  br label %21102

21102:                                            ; preds = %21101
  br label %21103

21103:                                            ; preds = %21102, %21045
  br label %21104

21104:                                            ; preds = %21103
  br label %21105

21105:                                            ; preds = %21104
  call void @llvm.lifetime.start.p0(i64 4, ptr %636) #11
  store i32 -1, ptr %636, align 4, !tbaa !5
  br label %21106

21106:                                            ; preds = %21105
  %21107 = load i32, ptr @test_count, align 4, !tbaa !5
  %21108 = add nsw i32 %21107, 1
  store i32 %21108, ptr @test_count, align 4, !tbaa !5
  %21109 = load ptr, ptr %624, align 8, !tbaa !9
  %21110 = load ptr, ptr %632, align 8, !tbaa !9
  %21111 = load i32, ptr %631, align 4, !tbaa !5
  %21112 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %623, ptr noundef %21109, ptr noundef %21110, i32 noundef %21111, ptr noundef %636, ptr noundef %634)
  %21113 = getelementptr inbounds %struct.s2n_result, ptr %637, i32 0, i32 0
  store i32 %21112, ptr %21113, align 4
  %21114 = getelementptr inbounds %struct.s2n_result, ptr %637, i32 0, i32 0
  %21115 = load i32, ptr %21114, align 4
  %21116 = call zeroext i1 @s2n_result_is_ok(i32 %21115)
  br i1 %21116, label %21170, label %21117

21117:                                            ; preds = %21106
  br label %21118

21118:                                            ; preds = %21117
  br label %21119

21119:                                            ; preds = %21118
  call void @llvm.lifetime.start.p0(i64 4, ptr %638) #11
  %21120 = call ptr @__errno_location() #12
  %21121 = load i32, ptr %21120, align 4, !tbaa !5
  store i32 %21121, ptr %638, align 4, !tbaa !5
  %21122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21123 = call i32 @s2n_print_stacktrace(ptr noundef %21122)
  %21124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21125 = trunc i8 %21124 to i1
  br i1 %21125, label %21126, label %21148

21126:                                            ; preds = %21119
  %21127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21128 = call i32 @fileno(ptr noundef %21127) #11
  %21129 = call i32 @isatty(i32 noundef %21128) #11
  %21130 = icmp ne i32 %21129, 0
  br i1 %21130, label %21131, label %21148

21131:                                            ; preds = %21126
  %21132 = load i32, ptr %638, align 4, !tbaa !5
  %21133 = call ptr @__errno_location() #12
  store i32 %21132, ptr %21133, align 4, !tbaa !5
  %21134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21135 = load i32, ptr @test_count, align 4, !tbaa !5
  %21136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21137 = load i32, ptr %21136, align 4, !tbaa !5
  %21138 = call ptr @s2n_strerror(i32 noundef %21137, ptr noundef @.str.4)
  %21139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21140 = load i32, ptr %21139, align 4, !tbaa !5
  %21141 = call ptr @s2n_strerror_debug(i32 noundef %21140, ptr noundef @.str.4)
  %21142 = call ptr @__errno_location() #12
  %21143 = load i32, ptr %21142, align 4, !tbaa !5
  %21144 = call ptr @strerror(i32 noundef %21143) #11
  %21145 = call ptr @__errno_location() #12
  %21146 = load i32, ptr %21145, align 4, !tbaa !5
  %21147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21134, ptr noundef @.str.2, i32 noundef %21135, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1269, ptr noundef %21138, ptr noundef %21141, ptr noundef %21144, i32 noundef %21146) #11
  br label %21165

21148:                                            ; preds = %21126, %21119
  %21149 = load i32, ptr %638, align 4, !tbaa !5
  %21150 = call ptr @__errno_location() #12
  store i32 %21149, ptr %21150, align 4, !tbaa !5
  %21151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21152 = load i32, ptr @test_count, align 4, !tbaa !5
  %21153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21154 = load i32, ptr %21153, align 4, !tbaa !5
  %21155 = call ptr @s2n_strerror(i32 noundef %21154, ptr noundef @.str.4)
  %21156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21157 = load i32, ptr %21156, align 4, !tbaa !5
  %21158 = call ptr @s2n_strerror_debug(i32 noundef %21157, ptr noundef @.str.4)
  %21159 = call ptr @__errno_location() #12
  %21160 = load i32, ptr %21159, align 4, !tbaa !5
  %21161 = call ptr @strerror(i32 noundef %21160) #11
  %21162 = call ptr @__errno_location() #12
  %21163 = load i32, ptr %21162, align 4, !tbaa !5
  %21164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21151, ptr noundef @.str.5, i32 noundef %21152, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1269, ptr noundef %21155, ptr noundef %21158, ptr noundef %21161, i32 noundef %21163) #11
  br label %21165

21165:                                            ; preds = %21148, %21131
  call void @llvm.lifetime.end.p0(i64 4, ptr %638) #11
  br label %21166

21166:                                            ; preds = %21165
  br label %21167

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

21168:                                            ; No predecessors!
  br label %21169

21169:                                            ; preds = %21168
  br label %21170

21170:                                            ; preds = %21169, %21106
  br label %21171

21171:                                            ; preds = %21170
  br label %21172

21172:                                            ; preds = %21171
  br label %21173

21173:                                            ; preds = %21172
  %21174 = load i32, ptr @test_count, align 4, !tbaa !5
  %21175 = add nsw i32 %21174, 1
  store i32 %21175, ptr @test_count, align 4, !tbaa !5
  %21176 = getelementptr inbounds %struct.host_verify_data, ptr %626, i32 0, i32 2
  %21177 = load i8, ptr %21176, align 1, !tbaa !19
  %21178 = zext i8 %21177 to i32
  %21179 = icmp eq i32 1, %21178
  br i1 %21179, label %21233, label %21180

21180:                                            ; preds = %21173
  br label %21181

21181:                                            ; preds = %21180
  br label %21182

21182:                                            ; preds = %21181
  call void @llvm.lifetime.start.p0(i64 4, ptr %639) #11
  %21183 = call ptr @__errno_location() #12
  %21184 = load i32, ptr %21183, align 4, !tbaa !5
  store i32 %21184, ptr %639, align 4, !tbaa !5
  %21185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21186 = call i32 @s2n_print_stacktrace(ptr noundef %21185)
  %21187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21188 = trunc i8 %21187 to i1
  br i1 %21188, label %21189, label %21211

21189:                                            ; preds = %21182
  %21190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21191 = call i32 @fileno(ptr noundef %21190) #11
  %21192 = call i32 @isatty(i32 noundef %21191) #11
  %21193 = icmp ne i32 %21192, 0
  br i1 %21193, label %21194, label %21211

21194:                                            ; preds = %21189
  %21195 = load i32, ptr %639, align 4, !tbaa !5
  %21196 = call ptr @__errno_location() #12
  store i32 %21195, ptr %21196, align 4, !tbaa !5
  %21197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21198 = load i32, ptr @test_count, align 4, !tbaa !5
  %21199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21200 = load i32, ptr %21199, align 4, !tbaa !5
  %21201 = call ptr @s2n_strerror(i32 noundef %21200, ptr noundef @.str.4)
  %21202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21203 = load i32, ptr %21202, align 4, !tbaa !5
  %21204 = call ptr @s2n_strerror_debug(i32 noundef %21203, ptr noundef @.str.4)
  %21205 = call ptr @__errno_location() #12
  %21206 = load i32, ptr %21205, align 4, !tbaa !5
  %21207 = call ptr @strerror(i32 noundef %21206) #11
  %21208 = call ptr @__errno_location() #12
  %21209 = load i32, ptr %21208, align 4, !tbaa !5
  %21210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21197, ptr noundef @.str.2, i32 noundef %21198, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1271, ptr noundef %21201, ptr noundef %21204, ptr noundef %21207, i32 noundef %21209) #11
  br label %21228

21211:                                            ; preds = %21189, %21182
  %21212 = load i32, ptr %639, align 4, !tbaa !5
  %21213 = call ptr @__errno_location() #12
  store i32 %21212, ptr %21213, align 4, !tbaa !5
  %21214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21215 = load i32, ptr @test_count, align 4, !tbaa !5
  %21216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21217 = load i32, ptr %21216, align 4, !tbaa !5
  %21218 = call ptr @s2n_strerror(i32 noundef %21217, ptr noundef @.str.4)
  %21219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21220 = load i32, ptr %21219, align 4, !tbaa !5
  %21221 = call ptr @s2n_strerror_debug(i32 noundef %21220, ptr noundef @.str.4)
  %21222 = call ptr @__errno_location() #12
  %21223 = load i32, ptr %21222, align 4, !tbaa !5
  %21224 = call ptr @strerror(i32 noundef %21223) #11
  %21225 = call ptr @__errno_location() #12
  %21226 = load i32, ptr %21225, align 4, !tbaa !5
  %21227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21214, ptr noundef @.str.5, i32 noundef %21215, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1271, ptr noundef %21218, ptr noundef %21221, ptr noundef %21224, i32 noundef %21226) #11
  br label %21228

21228:                                            ; preds = %21211, %21194
  call void @llvm.lifetime.end.p0(i64 4, ptr %639) #11
  br label %21229

21229:                                            ; preds = %21228
  br label %21230

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

21231:                                            ; No predecessors!
  br label %21232

21232:                                            ; preds = %21231
  br label %21233

21233:                                            ; preds = %21232, %21173
  br label %21234

21234:                                            ; preds = %21233
  br label %21235

21235:                                            ; preds = %21234
  call void @llvm.lifetime.start.p0(i64 40, ptr %640) #11
  call void @llvm.memset.p0.i64(ptr align 8 %640, i8 0, i64 40, i1 false)
  br label %21236

21236:                                            ; preds = %21235
  %21237 = load i32, ptr @test_count, align 4, !tbaa !5
  %21238 = add nsw i32 %21237, 1
  store i32 %21238, ptr @test_count, align 4, !tbaa !5
  %21239 = call i32 @read_file(ptr noundef %640, ptr noundef @.str.74, i32 noundef 12000)
  %21240 = icmp eq i32 %21239, -1
  br i1 %21240, label %21241, label %21294

21241:                                            ; preds = %21236
  br label %21242

21242:                                            ; preds = %21241
  br label %21243

21243:                                            ; preds = %21242
  call void @llvm.lifetime.start.p0(i64 4, ptr %641) #11
  %21244 = call ptr @__errno_location() #12
  %21245 = load i32, ptr %21244, align 4, !tbaa !5
  store i32 %21245, ptr %641, align 4, !tbaa !5
  %21246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21247 = call i32 @s2n_print_stacktrace(ptr noundef %21246)
  %21248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21249 = trunc i8 %21248 to i1
  br i1 %21249, label %21250, label %21272

21250:                                            ; preds = %21243
  %21251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21252 = call i32 @fileno(ptr noundef %21251) #11
  %21253 = call i32 @isatty(i32 noundef %21252) #11
  %21254 = icmp ne i32 %21253, 0
  br i1 %21254, label %21255, label %21272

21255:                                            ; preds = %21250
  %21256 = load i32, ptr %641, align 4, !tbaa !5
  %21257 = call ptr @__errno_location() #12
  store i32 %21256, ptr %21257, align 4, !tbaa !5
  %21258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21259 = load i32, ptr @test_count, align 4, !tbaa !5
  %21260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21261 = load i32, ptr %21260, align 4, !tbaa !5
  %21262 = call ptr @s2n_strerror(i32 noundef %21261, ptr noundef @.str.4)
  %21263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21264 = load i32, ptr %21263, align 4, !tbaa !5
  %21265 = call ptr @s2n_strerror_debug(i32 noundef %21264, ptr noundef @.str.4)
  %21266 = call ptr @__errno_location() #12
  %21267 = load i32, ptr %21266, align 4, !tbaa !5
  %21268 = call ptr @strerror(i32 noundef %21267) #11
  %21269 = call ptr @__errno_location() #12
  %21270 = load i32, ptr %21269, align 4, !tbaa !5
  %21271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21258, ptr noundef @.str.2, i32 noundef %21259, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1273, ptr noundef %21262, ptr noundef %21265, ptr noundef %21268, i32 noundef %21270) #11
  br label %21289

21272:                                            ; preds = %21250, %21243
  %21273 = load i32, ptr %641, align 4, !tbaa !5
  %21274 = call ptr @__errno_location() #12
  store i32 %21273, ptr %21274, align 4, !tbaa !5
  %21275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21276 = load i32, ptr @test_count, align 4, !tbaa !5
  %21277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21278 = load i32, ptr %21277, align 4, !tbaa !5
  %21279 = call ptr @s2n_strerror(i32 noundef %21278, ptr noundef @.str.4)
  %21280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21281 = load i32, ptr %21280, align 4, !tbaa !5
  %21282 = call ptr @s2n_strerror_debug(i32 noundef %21281, ptr noundef @.str.4)
  %21283 = call ptr @__errno_location() #12
  %21284 = load i32, ptr %21283, align 4, !tbaa !5
  %21285 = call ptr @strerror(i32 noundef %21284) #11
  %21286 = call ptr @__errno_location() #12
  %21287 = load i32, ptr %21286, align 4, !tbaa !5
  %21288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21275, ptr noundef @.str.5, i32 noundef %21276, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1273, ptr noundef %21279, ptr noundef %21282, ptr noundef %21285, i32 noundef %21287) #11
  br label %21289

21289:                                            ; preds = %21272, %21255
  call void @llvm.lifetime.end.p0(i64 4, ptr %641) #11
  br label %21290

21290:                                            ; preds = %21289
  br label %21291

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

21292:                                            ; No predecessors!
  br label %21293

21293:                                            ; preds = %21292
  br label %21294

21294:                                            ; preds = %21293, %21236
  br label %21295

21295:                                            ; preds = %21294
  br label %21296

21296:                                            ; preds = %21295
  call void @llvm.lifetime.start.p0(i64 4, ptr %642) #11
  %21297 = getelementptr inbounds %struct.s2n_stuffer, ptr %640, i32 0, i32 2
  %21298 = load i32, ptr %21297, align 4, !tbaa !15
  %21299 = getelementptr inbounds %struct.s2n_stuffer, ptr %640, i32 0, i32 1
  %21300 = load i32, ptr %21299, align 8, !tbaa !18
  %21301 = sub i32 %21298, %21300
  store i32 %21301, ptr %642, align 4, !tbaa !5
  br label %21302

21302:                                            ; preds = %21296
  %21303 = load i32, ptr @test_count, align 4, !tbaa !5
  %21304 = add nsw i32 %21303, 1
  store i32 %21304, ptr @test_count, align 4, !tbaa !5
  %21305 = load i32, ptr %642, align 4, !tbaa !5
  %21306 = icmp ugt i32 %21305, 0
  br i1 %21306, label %21360, label %21307

21307:                                            ; preds = %21302
  br label %21308

21308:                                            ; preds = %21307
  br label %21309

21309:                                            ; preds = %21308
  call void @llvm.lifetime.start.p0(i64 4, ptr %643) #11
  %21310 = call ptr @__errno_location() #12
  %21311 = load i32, ptr %21310, align 4, !tbaa !5
  store i32 %21311, ptr %643, align 4, !tbaa !5
  %21312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21313 = call i32 @s2n_print_stacktrace(ptr noundef %21312)
  %21314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21315 = trunc i8 %21314 to i1
  br i1 %21315, label %21316, label %21338

21316:                                            ; preds = %21309
  %21317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21318 = call i32 @fileno(ptr noundef %21317) #11
  %21319 = call i32 @isatty(i32 noundef %21318) #11
  %21320 = icmp ne i32 %21319, 0
  br i1 %21320, label %21321, label %21338

21321:                                            ; preds = %21316
  %21322 = load i32, ptr %643, align 4, !tbaa !5
  %21323 = call ptr @__errno_location() #12
  store i32 %21322, ptr %21323, align 4, !tbaa !5
  %21324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21325 = load i32, ptr @test_count, align 4, !tbaa !5
  %21326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21327 = load i32, ptr %21326, align 4, !tbaa !5
  %21328 = call ptr @s2n_strerror(i32 noundef %21327, ptr noundef @.str.4)
  %21329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21330 = load i32, ptr %21329, align 4, !tbaa !5
  %21331 = call ptr @s2n_strerror_debug(i32 noundef %21330, ptr noundef @.str.4)
  %21332 = call ptr @__errno_location() #12
  %21333 = load i32, ptr %21332, align 4, !tbaa !5
  %21334 = call ptr @strerror(i32 noundef %21333) #11
  %21335 = call ptr @__errno_location() #12
  %21336 = load i32, ptr %21335, align 4, !tbaa !5
  %21337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21324, ptr noundef @.str.2, i32 noundef %21325, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1275, ptr noundef %21328, ptr noundef %21331, ptr noundef %21334, i32 noundef %21336) #11
  br label %21355

21338:                                            ; preds = %21316, %21309
  %21339 = load i32, ptr %643, align 4, !tbaa !5
  %21340 = call ptr @__errno_location() #12
  store i32 %21339, ptr %21340, align 4, !tbaa !5
  %21341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21342 = load i32, ptr @test_count, align 4, !tbaa !5
  %21343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21344 = load i32, ptr %21343, align 4, !tbaa !5
  %21345 = call ptr @s2n_strerror(i32 noundef %21344, ptr noundef @.str.4)
  %21346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21347 = load i32, ptr %21346, align 4, !tbaa !5
  %21348 = call ptr @s2n_strerror_debug(i32 noundef %21347, ptr noundef @.str.4)
  %21349 = call ptr @__errno_location() #12
  %21350 = load i32, ptr %21349, align 4, !tbaa !5
  %21351 = call ptr @strerror(i32 noundef %21350) #11
  %21352 = call ptr @__errno_location() #12
  %21353 = load i32, ptr %21352, align 4, !tbaa !5
  %21354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21341, ptr noundef @.str.5, i32 noundef %21342, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1275, ptr noundef %21345, ptr noundef %21348, ptr noundef %21351, i32 noundef %21353) #11
  br label %21355

21355:                                            ; preds = %21338, %21321
  call void @llvm.lifetime.end.p0(i64 4, ptr %643) #11
  br label %21356

21356:                                            ; preds = %21355
  br label %21357

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

21358:                                            ; No predecessors!
  br label %21359

21359:                                            ; preds = %21358
  br label %21360

21360:                                            ; preds = %21359, %21302
  br label %21361

21361:                                            ; preds = %21360
  br label %21362

21362:                                            ; preds = %21361
  call void @llvm.lifetime.start.p0(i64 8, ptr %644) #11
  %21363 = load i32, ptr %642, align 4, !tbaa !5
  %21364 = call ptr @s2n_stuffer_raw_read(ptr noundef %640, i32 noundef %21363)
  store ptr %21364, ptr %644, align 8, !tbaa !9
  br label %21365

21365:                                            ; preds = %21362
  br label %21366

21366:                                            ; preds = %21365
  br label %21367

21367:                                            ; preds = %21366
  %21368 = load i32, ptr @test_count, align 4, !tbaa !5
  %21369 = add nsw i32 %21368, 1
  store i32 %21369, ptr @test_count, align 4, !tbaa !5
  %21370 = load ptr, ptr %624, align 8, !tbaa !9
  %21371 = load ptr, ptr %644, align 8, !tbaa !9
  %21372 = load i32, ptr %642, align 4, !tbaa !5
  %21373 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %623, ptr noundef %21370, ptr noundef %21371, i32 noundef %21372)
  %21374 = getelementptr inbounds %struct.s2n_result, ptr %645, i32 0, i32 0
  store i32 %21373, ptr %21374, align 4
  %21375 = getelementptr inbounds %struct.s2n_result, ptr %645, i32 0, i32 0
  %21376 = load i32, ptr %21375, align 4
  %21377 = call zeroext i1 @s2n_result_is_error(i32 %21376)
  br i1 %21377, label %21431, label %21378

21378:                                            ; preds = %21367
  br label %21379

21379:                                            ; preds = %21378
  br label %21380

21380:                                            ; preds = %21379
  call void @llvm.lifetime.start.p0(i64 4, ptr %646) #11
  %21381 = call ptr @__errno_location() #12
  %21382 = load i32, ptr %21381, align 4, !tbaa !5
  store i32 %21382, ptr %646, align 4, !tbaa !5
  %21383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21384 = call i32 @s2n_print_stacktrace(ptr noundef %21383)
  %21385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21386 = trunc i8 %21385 to i1
  br i1 %21386, label %21387, label %21409

21387:                                            ; preds = %21380
  %21388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21389 = call i32 @fileno(ptr noundef %21388) #11
  %21390 = call i32 @isatty(i32 noundef %21389) #11
  %21391 = icmp ne i32 %21390, 0
  br i1 %21391, label %21392, label %21409

21392:                                            ; preds = %21387
  %21393 = load i32, ptr %646, align 4, !tbaa !5
  %21394 = call ptr @__errno_location() #12
  store i32 %21393, ptr %21394, align 4, !tbaa !5
  %21395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21396 = load i32, ptr @test_count, align 4, !tbaa !5
  %21397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21398 = load i32, ptr %21397, align 4, !tbaa !5
  %21399 = call ptr @s2n_strerror(i32 noundef %21398, ptr noundef @.str.4)
  %21400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21401 = load i32, ptr %21400, align 4, !tbaa !5
  %21402 = call ptr @s2n_strerror_debug(i32 noundef %21401, ptr noundef @.str.4)
  %21403 = call ptr @__errno_location() #12
  %21404 = load i32, ptr %21403, align 4, !tbaa !5
  %21405 = call ptr @strerror(i32 noundef %21404) #11
  %21406 = call ptr @__errno_location() #12
  %21407 = load i32, ptr %21406, align 4, !tbaa !5
  %21408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21395, ptr noundef @.str.2, i32 noundef %21396, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1281, ptr noundef %21399, ptr noundef %21402, ptr noundef %21405, i32 noundef %21407) #11
  br label %21426

21409:                                            ; preds = %21387, %21380
  %21410 = load i32, ptr %646, align 4, !tbaa !5
  %21411 = call ptr @__errno_location() #12
  store i32 %21410, ptr %21411, align 4, !tbaa !5
  %21412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21413 = load i32, ptr @test_count, align 4, !tbaa !5
  %21414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21415 = load i32, ptr %21414, align 4, !tbaa !5
  %21416 = call ptr @s2n_strerror(i32 noundef %21415, ptr noundef @.str.4)
  %21417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21418 = load i32, ptr %21417, align 4, !tbaa !5
  %21419 = call ptr @s2n_strerror_debug(i32 noundef %21418, ptr noundef @.str.4)
  %21420 = call ptr @__errno_location() #12
  %21421 = load i32, ptr %21420, align 4, !tbaa !5
  %21422 = call ptr @strerror(i32 noundef %21421) #11
  %21423 = call ptr @__errno_location() #12
  %21424 = load i32, ptr %21423, align 4, !tbaa !5
  %21425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21412, ptr noundef @.str.5, i32 noundef %21413, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1281, ptr noundef %21416, ptr noundef %21419, ptr noundef %21422, i32 noundef %21424) #11
  br label %21426

21426:                                            ; preds = %21409, %21392
  call void @llvm.lifetime.end.p0(i64 4, ptr %646) #11
  br label %21427

21427:                                            ; preds = %21426
  br label %21428

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

21429:                                            ; No predecessors!
  br label %21430

21430:                                            ; preds = %21429
  br label %21431

21431:                                            ; preds = %21430, %21367
  br label %21432

21432:                                            ; preds = %21431
  br label %21433

21433:                                            ; preds = %21432
  br label %21434

21434:                                            ; preds = %21433
  %21435 = load i32, ptr @test_count, align 4, !tbaa !5
  %21436 = add nsw i32 %21435, 1
  store i32 %21436, ptr @test_count, align 4, !tbaa !5
  %21437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21438 = load i32, ptr %21437, align 4, !tbaa !5
  %21439 = icmp eq i32 %21438, 335544366
  br i1 %21439, label %21493, label %21440

21440:                                            ; preds = %21434
  br label %21441

21441:                                            ; preds = %21440
  br label %21442

21442:                                            ; preds = %21441
  call void @llvm.lifetime.start.p0(i64 4, ptr %647) #11
  %21443 = call ptr @__errno_location() #12
  %21444 = load i32, ptr %21443, align 4, !tbaa !5
  store i32 %21444, ptr %647, align 4, !tbaa !5
  %21445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21446 = call i32 @s2n_print_stacktrace(ptr noundef %21445)
  %21447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21448 = trunc i8 %21447 to i1
  br i1 %21448, label %21449, label %21471

21449:                                            ; preds = %21442
  %21450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21451 = call i32 @fileno(ptr noundef %21450) #11
  %21452 = call i32 @isatty(i32 noundef %21451) #11
  %21453 = icmp ne i32 %21452, 0
  br i1 %21453, label %21454, label %21471

21454:                                            ; preds = %21449
  %21455 = load i32, ptr %647, align 4, !tbaa !5
  %21456 = call ptr @__errno_location() #12
  store i32 %21455, ptr %21456, align 4, !tbaa !5
  %21457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21458 = load i32, ptr @test_count, align 4, !tbaa !5
  %21459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21460 = load i32, ptr %21459, align 4, !tbaa !5
  %21461 = call ptr @s2n_strerror(i32 noundef %21460, ptr noundef @.str.4)
  %21462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21463 = load i32, ptr %21462, align 4, !tbaa !5
  %21464 = call ptr @s2n_strerror_debug(i32 noundef %21463, ptr noundef @.str.4)
  %21465 = call ptr @__errno_location() #12
  %21466 = load i32, ptr %21465, align 4, !tbaa !5
  %21467 = call ptr @strerror(i32 noundef %21466) #11
  %21468 = call ptr @__errno_location() #12
  %21469 = load i32, ptr %21468, align 4, !tbaa !5
  %21470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21457, ptr noundef @.str.2, i32 noundef %21458, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1281, ptr noundef %21461, ptr noundef %21464, ptr noundef %21467, i32 noundef %21469) #11
  br label %21488

21471:                                            ; preds = %21449, %21442
  %21472 = load i32, ptr %647, align 4, !tbaa !5
  %21473 = call ptr @__errno_location() #12
  store i32 %21472, ptr %21473, align 4, !tbaa !5
  %21474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21475 = load i32, ptr @test_count, align 4, !tbaa !5
  %21476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21477 = load i32, ptr %21476, align 4, !tbaa !5
  %21478 = call ptr @s2n_strerror(i32 noundef %21477, ptr noundef @.str.4)
  %21479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21480 = load i32, ptr %21479, align 4, !tbaa !5
  %21481 = call ptr @s2n_strerror_debug(i32 noundef %21480, ptr noundef @.str.4)
  %21482 = call ptr @__errno_location() #12
  %21483 = load i32, ptr %21482, align 4, !tbaa !5
  %21484 = call ptr @strerror(i32 noundef %21483) #11
  %21485 = call ptr @__errno_location() #12
  %21486 = load i32, ptr %21485, align 4, !tbaa !5
  %21487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21474, ptr noundef @.str.5, i32 noundef %21475, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1281, ptr noundef %21478, ptr noundef %21481, ptr noundef %21484, i32 noundef %21486) #11
  br label %21488

21488:                                            ; preds = %21471, %21454
  call void @llvm.lifetime.end.p0(i64 4, ptr %647) #11
  br label %21489

21489:                                            ; preds = %21488
  br label %21490

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

21491:                                            ; No predecessors!
  br label %21492

21492:                                            ; preds = %21491
  br label %21493

21493:                                            ; preds = %21492, %21434
  br label %21494

21494:                                            ; preds = %21493
  br label %21495

21495:                                            ; preds = %21494
  br label %21496

21496:                                            ; preds = %21495
  %21497 = load i32, ptr @test_count, align 4, !tbaa !5
  %21498 = add nsw i32 %21497, 1
  store i32 %21498, ptr @test_count, align 4, !tbaa !5
  %21499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21500 = load i32, ptr %21499, align 4, !tbaa !5
  %21501 = call ptr @s2n_strerror_debug(i32 noundef %21500, ptr noundef @.str.4)
  %21502 = icmp eq ptr %21501, null
  br i1 %21502, label %21503, label %21556

21503:                                            ; preds = %21496
  br label %21504

21504:                                            ; preds = %21503
  br label %21505

21505:                                            ; preds = %21504
  call void @llvm.lifetime.start.p0(i64 4, ptr %648) #11
  %21506 = call ptr @__errno_location() #12
  %21507 = load i32, ptr %21506, align 4, !tbaa !5
  store i32 %21507, ptr %648, align 4, !tbaa !5
  %21508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21509 = call i32 @s2n_print_stacktrace(ptr noundef %21508)
  %21510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21511 = trunc i8 %21510 to i1
  br i1 %21511, label %21512, label %21534

21512:                                            ; preds = %21505
  %21513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21514 = call i32 @fileno(ptr noundef %21513) #11
  %21515 = call i32 @isatty(i32 noundef %21514) #11
  %21516 = icmp ne i32 %21515, 0
  br i1 %21516, label %21517, label %21534

21517:                                            ; preds = %21512
  %21518 = load i32, ptr %648, align 4, !tbaa !5
  %21519 = call ptr @__errno_location() #12
  store i32 %21518, ptr %21519, align 4, !tbaa !5
  %21520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21521 = load i32, ptr @test_count, align 4, !tbaa !5
  %21522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21523 = load i32, ptr %21522, align 4, !tbaa !5
  %21524 = call ptr @s2n_strerror(i32 noundef %21523, ptr noundef @.str.4)
  %21525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21526 = load i32, ptr %21525, align 4, !tbaa !5
  %21527 = call ptr @s2n_strerror_debug(i32 noundef %21526, ptr noundef @.str.4)
  %21528 = call ptr @__errno_location() #12
  %21529 = load i32, ptr %21528, align 4, !tbaa !5
  %21530 = call ptr @strerror(i32 noundef %21529) #11
  %21531 = call ptr @__errno_location() #12
  %21532 = load i32, ptr %21531, align 4, !tbaa !5
  %21533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21520, ptr noundef @.str.2, i32 noundef %21521, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1281, ptr noundef %21524, ptr noundef %21527, ptr noundef %21530, i32 noundef %21532) #11
  br label %21551

21534:                                            ; preds = %21512, %21505
  %21535 = load i32, ptr %648, align 4, !tbaa !5
  %21536 = call ptr @__errno_location() #12
  store i32 %21535, ptr %21536, align 4, !tbaa !5
  %21537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21538 = load i32, ptr @test_count, align 4, !tbaa !5
  %21539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21540 = load i32, ptr %21539, align 4, !tbaa !5
  %21541 = call ptr @s2n_strerror(i32 noundef %21540, ptr noundef @.str.4)
  %21542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21543 = load i32, ptr %21542, align 4, !tbaa !5
  %21544 = call ptr @s2n_strerror_debug(i32 noundef %21543, ptr noundef @.str.4)
  %21545 = call ptr @__errno_location() #12
  %21546 = load i32, ptr %21545, align 4, !tbaa !5
  %21547 = call ptr @strerror(i32 noundef %21546) #11
  %21548 = call ptr @__errno_location() #12
  %21549 = load i32, ptr %21548, align 4, !tbaa !5
  %21550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21537, ptr noundef @.str.5, i32 noundef %21538, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1281, ptr noundef %21541, ptr noundef %21544, ptr noundef %21547, i32 noundef %21549) #11
  br label %21551

21551:                                            ; preds = %21534, %21517
  call void @llvm.lifetime.end.p0(i64 4, ptr %648) #11
  br label %21552

21552:                                            ; preds = %21551
  br label %21553

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

21554:                                            ; No predecessors!
  br label %21555

21555:                                            ; preds = %21554
  br label %21556

21556:                                            ; preds = %21555, %21496
  br label %21557

21557:                                            ; preds = %21556
  br label %21558

21558:                                            ; preds = %21557
  br label %21559

21559:                                            ; preds = %21558
  br label %21560

21560:                                            ; preds = %21559
  br label %21561

21561:                                            ; preds = %21560
  %21562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %21562, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %21563 = call ptr @__errno_location() #12
  store i32 0, ptr %21563, align 4, !tbaa !5
  br label %21564

21564:                                            ; preds = %21561
  br label %21565

21565:                                            ; preds = %21564
  br label %21566

21566:                                            ; preds = %21565
  br label %21567

21567:                                            ; preds = %21566
  %21568 = call i32 @s2n_stuffer_free(ptr noundef %640)
  %21569 = load ptr, ptr %624, align 8, !tbaa !9
  %21570 = call i32 @s2n_connection_free(ptr noundef %21569)
  %21571 = call i32 @s2n_pkey_free(ptr noundef %634)
  %21572 = call i32 @s2n_x509_validator_wipe(ptr noundef %623)
  call void @s2n_x509_trust_store_wipe(ptr noundef %621)
  call void @llvm.lifetime.end.p0(i64 8, ptr %644) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %642) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %640) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %636) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %634) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %632) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %631) #11
  %21573 = call i32 @s2n_stuffer_free(ptr noundef %628)
  call void @llvm.lifetime.end.p0(i64 40, ptr %628) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %626) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %624) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %623) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %621) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %649) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %649)
  br label %21574

21574:                                            ; preds = %21567
  %21575 = load i32, ptr @test_count, align 4, !tbaa !5
  %21576 = add nsw i32 %21575, 1
  store i32 %21576, ptr @test_count, align 4, !tbaa !5
  %21577 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %649, ptr noundef @.str.48, ptr noundef null)
  %21578 = icmp eq i32 %21577, -1
  br i1 %21578, label %21579, label %21632

21579:                                            ; preds = %21574
  br label %21580

21580:                                            ; preds = %21579
  br label %21581

21581:                                            ; preds = %21580
  call void @llvm.lifetime.start.p0(i64 4, ptr %650) #11
  %21582 = call ptr @__errno_location() #12
  %21583 = load i32, ptr %21582, align 4, !tbaa !5
  store i32 %21583, ptr %650, align 4, !tbaa !5
  %21584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21585 = call i32 @s2n_print_stacktrace(ptr noundef %21584)
  %21586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21587 = trunc i8 %21586 to i1
  br i1 %21587, label %21588, label %21610

21588:                                            ; preds = %21581
  %21589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21590 = call i32 @fileno(ptr noundef %21589) #11
  %21591 = call i32 @isatty(i32 noundef %21590) #11
  %21592 = icmp ne i32 %21591, 0
  br i1 %21592, label %21593, label %21610

21593:                                            ; preds = %21588
  %21594 = load i32, ptr %650, align 4, !tbaa !5
  %21595 = call ptr @__errno_location() #12
  store i32 %21594, ptr %21595, align 4, !tbaa !5
  %21596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21597 = load i32, ptr @test_count, align 4, !tbaa !5
  %21598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21599 = load i32, ptr %21598, align 4, !tbaa !5
  %21600 = call ptr @s2n_strerror(i32 noundef %21599, ptr noundef @.str.4)
  %21601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21602 = load i32, ptr %21601, align 4, !tbaa !5
  %21603 = call ptr @s2n_strerror_debug(i32 noundef %21602, ptr noundef @.str.4)
  %21604 = call ptr @__errno_location() #12
  %21605 = load i32, ptr %21604, align 4, !tbaa !5
  %21606 = call ptr @strerror(i32 noundef %21605) #11
  %21607 = call ptr @__errno_location() #12
  %21608 = load i32, ptr %21607, align 4, !tbaa !5
  %21609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21596, ptr noundef @.str.2, i32 noundef %21597, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1295, ptr noundef %21600, ptr noundef %21603, ptr noundef %21606, i32 noundef %21608) #11
  br label %21627

21610:                                            ; preds = %21588, %21581
  %21611 = load i32, ptr %650, align 4, !tbaa !5
  %21612 = call ptr @__errno_location() #12
  store i32 %21611, ptr %21612, align 4, !tbaa !5
  %21613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21614 = load i32, ptr @test_count, align 4, !tbaa !5
  %21615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21616 = load i32, ptr %21615, align 4, !tbaa !5
  %21617 = call ptr @s2n_strerror(i32 noundef %21616, ptr noundef @.str.4)
  %21618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21619 = load i32, ptr %21618, align 4, !tbaa !5
  %21620 = call ptr @s2n_strerror_debug(i32 noundef %21619, ptr noundef @.str.4)
  %21621 = call ptr @__errno_location() #12
  %21622 = load i32, ptr %21621, align 4, !tbaa !5
  %21623 = call ptr @strerror(i32 noundef %21622) #11
  %21624 = call ptr @__errno_location() #12
  %21625 = load i32, ptr %21624, align 4, !tbaa !5
  %21626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21613, ptr noundef @.str.5, i32 noundef %21614, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1295, ptr noundef %21617, ptr noundef %21620, ptr noundef %21623, i32 noundef %21625) #11
  br label %21627

21627:                                            ; preds = %21610, %21593
  call void @llvm.lifetime.end.p0(i64 4, ptr %650) #11
  br label %21628

21628:                                            ; preds = %21627
  br label %21629

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

21630:                                            ; No predecessors!
  br label %21631

21631:                                            ; preds = %21630
  br label %21632

21632:                                            ; preds = %21631, %21574
  br label %21633

21633:                                            ; preds = %21632
  br label %21634

21634:                                            ; preds = %21633
  call void @llvm.lifetime.start.p0(i64 56, ptr %651) #11
  %21635 = call i32 @s2n_x509_validator_init(ptr noundef %651, ptr noundef %649, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %652) #11
  %21636 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %21636, ptr %652, align 8, !tbaa !9
  br label %21637

21637:                                            ; preds = %21634
  %21638 = load i32, ptr @test_count, align 4, !tbaa !5
  %21639 = add nsw i32 %21638, 1
  store i32 %21639, ptr @test_count, align 4, !tbaa !5
  %21640 = load ptr, ptr %652, align 8, !tbaa !9
  %21641 = icmp eq ptr %21640, null
  br i1 %21641, label %21642, label %21695

21642:                                            ; preds = %21637
  br label %21643

21643:                                            ; preds = %21642
  br label %21644

21644:                                            ; preds = %21643
  call void @llvm.lifetime.start.p0(i64 4, ptr %653) #11
  %21645 = call ptr @__errno_location() #12
  %21646 = load i32, ptr %21645, align 4, !tbaa !5
  store i32 %21646, ptr %653, align 4, !tbaa !5
  %21647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21648 = call i32 @s2n_print_stacktrace(ptr noundef %21647)
  %21649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21650 = trunc i8 %21649 to i1
  br i1 %21650, label %21651, label %21673

21651:                                            ; preds = %21644
  %21652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21653 = call i32 @fileno(ptr noundef %21652) #11
  %21654 = call i32 @isatty(i32 noundef %21653) #11
  %21655 = icmp ne i32 %21654, 0
  br i1 %21655, label %21656, label %21673

21656:                                            ; preds = %21651
  %21657 = load i32, ptr %653, align 4, !tbaa !5
  %21658 = call ptr @__errno_location() #12
  store i32 %21657, ptr %21658, align 4, !tbaa !5
  %21659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21660 = load i32, ptr @test_count, align 4, !tbaa !5
  %21661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21662 = load i32, ptr %21661, align 4, !tbaa !5
  %21663 = call ptr @s2n_strerror(i32 noundef %21662, ptr noundef @.str.4)
  %21664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21665 = load i32, ptr %21664, align 4, !tbaa !5
  %21666 = call ptr @s2n_strerror_debug(i32 noundef %21665, ptr noundef @.str.4)
  %21667 = call ptr @__errno_location() #12
  %21668 = load i32, ptr %21667, align 4, !tbaa !5
  %21669 = call ptr @strerror(i32 noundef %21668) #11
  %21670 = call ptr @__errno_location() #12
  %21671 = load i32, ptr %21670, align 4, !tbaa !5
  %21672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21659, ptr noundef @.str.2, i32 noundef %21660, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1301, ptr noundef %21663, ptr noundef %21666, ptr noundef %21669, i32 noundef %21671) #11
  br label %21690

21673:                                            ; preds = %21651, %21644
  %21674 = load i32, ptr %653, align 4, !tbaa !5
  %21675 = call ptr @__errno_location() #12
  store i32 %21674, ptr %21675, align 4, !tbaa !5
  %21676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21677 = load i32, ptr @test_count, align 4, !tbaa !5
  %21678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21679 = load i32, ptr %21678, align 4, !tbaa !5
  %21680 = call ptr @s2n_strerror(i32 noundef %21679, ptr noundef @.str.4)
  %21681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21682 = load i32, ptr %21681, align 4, !tbaa !5
  %21683 = call ptr @s2n_strerror_debug(i32 noundef %21682, ptr noundef @.str.4)
  %21684 = call ptr @__errno_location() #12
  %21685 = load i32, ptr %21684, align 4, !tbaa !5
  %21686 = call ptr @strerror(i32 noundef %21685) #11
  %21687 = call ptr @__errno_location() #12
  %21688 = load i32, ptr %21687, align 4, !tbaa !5
  %21689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21676, ptr noundef @.str.5, i32 noundef %21677, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1301, ptr noundef %21680, ptr noundef %21683, ptr noundef %21686, i32 noundef %21688) #11
  br label %21690

21690:                                            ; preds = %21673, %21656
  call void @llvm.lifetime.end.p0(i64 4, ptr %653) #11
  br label %21691

21691:                                            ; preds = %21690
  br label %21692

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

21693:                                            ; No predecessors!
  br label %21694

21694:                                            ; preds = %21693
  br label %21695

21695:                                            ; preds = %21694, %21637
  br label %21696

21696:                                            ; preds = %21695
  br label %21697

21697:                                            ; preds = %21696
  call void @llvm.lifetime.start.p0(i64 16, ptr %654) #11
  call void @llvm.memset.p0.i64(ptr align 8 %654, i8 0, i64 16, i1 false)
  br label %21698

21698:                                            ; preds = %21697
  %21699 = load i32, ptr @test_count, align 4, !tbaa !5
  %21700 = add nsw i32 %21699, 1
  store i32 %21700, ptr @test_count, align 4, !tbaa !5
  %21701 = load ptr, ptr %652, align 8, !tbaa !9
  %21702 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %21701, ptr noundef @verify_host_accept_everything, ptr noundef %654)
  %21703 = icmp eq i32 %21702, -1
  br i1 %21703, label %21704, label %21757

21704:                                            ; preds = %21698
  br label %21705

21705:                                            ; preds = %21704
  br label %21706

21706:                                            ; preds = %21705
  call void @llvm.lifetime.start.p0(i64 4, ptr %655) #11
  %21707 = call ptr @__errno_location() #12
  %21708 = load i32, ptr %21707, align 4, !tbaa !5
  store i32 %21708, ptr %655, align 4, !tbaa !5
  %21709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21710 = call i32 @s2n_print_stacktrace(ptr noundef %21709)
  %21711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21712 = trunc i8 %21711 to i1
  br i1 %21712, label %21713, label %21735

21713:                                            ; preds = %21706
  %21714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21715 = call i32 @fileno(ptr noundef %21714) #11
  %21716 = call i32 @isatty(i32 noundef %21715) #11
  %21717 = icmp ne i32 %21716, 0
  br i1 %21717, label %21718, label %21735

21718:                                            ; preds = %21713
  %21719 = load i32, ptr %655, align 4, !tbaa !5
  %21720 = call ptr @__errno_location() #12
  store i32 %21719, ptr %21720, align 4, !tbaa !5
  %21721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21722 = load i32, ptr @test_count, align 4, !tbaa !5
  %21723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21724 = load i32, ptr %21723, align 4, !tbaa !5
  %21725 = call ptr @s2n_strerror(i32 noundef %21724, ptr noundef @.str.4)
  %21726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21727 = load i32, ptr %21726, align 4, !tbaa !5
  %21728 = call ptr @s2n_strerror_debug(i32 noundef %21727, ptr noundef @.str.4)
  %21729 = call ptr @__errno_location() #12
  %21730 = load i32, ptr %21729, align 4, !tbaa !5
  %21731 = call ptr @strerror(i32 noundef %21730) #11
  %21732 = call ptr @__errno_location() #12
  %21733 = load i32, ptr %21732, align 4, !tbaa !5
  %21734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21721, ptr noundef @.str.2, i32 noundef %21722, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1304, ptr noundef %21725, ptr noundef %21728, ptr noundef %21731, i32 noundef %21733) #11
  br label %21752

21735:                                            ; preds = %21713, %21706
  %21736 = load i32, ptr %655, align 4, !tbaa !5
  %21737 = call ptr @__errno_location() #12
  store i32 %21736, ptr %21737, align 4, !tbaa !5
  %21738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21739 = load i32, ptr @test_count, align 4, !tbaa !5
  %21740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21741 = load i32, ptr %21740, align 4, !tbaa !5
  %21742 = call ptr @s2n_strerror(i32 noundef %21741, ptr noundef @.str.4)
  %21743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21744 = load i32, ptr %21743, align 4, !tbaa !5
  %21745 = call ptr @s2n_strerror_debug(i32 noundef %21744, ptr noundef @.str.4)
  %21746 = call ptr @__errno_location() #12
  %21747 = load i32, ptr %21746, align 4, !tbaa !5
  %21748 = call ptr @strerror(i32 noundef %21747) #11
  %21749 = call ptr @__errno_location() #12
  %21750 = load i32, ptr %21749, align 4, !tbaa !5
  %21751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21738, ptr noundef @.str.5, i32 noundef %21739, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1304, ptr noundef %21742, ptr noundef %21745, ptr noundef %21748, i32 noundef %21750) #11
  br label %21752

21752:                                            ; preds = %21735, %21718
  call void @llvm.lifetime.end.p0(i64 4, ptr %655) #11
  br label %21753

21753:                                            ; preds = %21752
  br label %21754

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

21755:                                            ; No predecessors!
  br label %21756

21756:                                            ; preds = %21755
  br label %21757

21757:                                            ; preds = %21756, %21698
  br label %21758

21758:                                            ; preds = %21757
  br label %21759

21759:                                            ; preds = %21758
  call void @llvm.lifetime.start.p0(i64 40, ptr %656) #11
  call void @llvm.memset.p0.i64(ptr align 8 %656, i8 0, i64 40, i1 false)
  br label %21760

21760:                                            ; preds = %21759
  %21761 = load i32, ptr @test_count, align 4, !tbaa !5
  %21762 = add nsw i32 %21761, 1
  store i32 %21762, ptr @test_count, align 4, !tbaa !5
  %21763 = load ptr, ptr %652, align 8, !tbaa !9
  %21764 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %21763, ptr noundef @.str.91, ptr noundef %656)
  %21765 = getelementptr inbounds %struct.s2n_result, ptr %657, i32 0, i32 0
  store i32 %21764, ptr %21765, align 4
  %21766 = getelementptr inbounds %struct.s2n_result, ptr %657, i32 0, i32 0
  %21767 = load i32, ptr %21766, align 4
  %21768 = call zeroext i1 @s2n_result_is_ok(i32 %21767)
  br i1 %21768, label %21822, label %21769

21769:                                            ; preds = %21760
  br label %21770

21770:                                            ; preds = %21769
  br label %21771

21771:                                            ; preds = %21770
  call void @llvm.lifetime.start.p0(i64 4, ptr %658) #11
  %21772 = call ptr @__errno_location() #12
  %21773 = load i32, ptr %21772, align 4, !tbaa !5
  store i32 %21773, ptr %658, align 4, !tbaa !5
  %21774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21775 = call i32 @s2n_print_stacktrace(ptr noundef %21774)
  %21776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21777 = trunc i8 %21776 to i1
  br i1 %21777, label %21778, label %21800

21778:                                            ; preds = %21771
  %21779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21780 = call i32 @fileno(ptr noundef %21779) #11
  %21781 = call i32 @isatty(i32 noundef %21780) #11
  %21782 = icmp ne i32 %21781, 0
  br i1 %21782, label %21783, label %21800

21783:                                            ; preds = %21778
  %21784 = load i32, ptr %658, align 4, !tbaa !5
  %21785 = call ptr @__errno_location() #12
  store i32 %21784, ptr %21785, align 4, !tbaa !5
  %21786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21787 = load i32, ptr @test_count, align 4, !tbaa !5
  %21788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21789 = load i32, ptr %21788, align 4, !tbaa !5
  %21790 = call ptr @s2n_strerror(i32 noundef %21789, ptr noundef @.str.4)
  %21791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21792 = load i32, ptr %21791, align 4, !tbaa !5
  %21793 = call ptr @s2n_strerror_debug(i32 noundef %21792, ptr noundef @.str.4)
  %21794 = call ptr @__errno_location() #12
  %21795 = load i32, ptr %21794, align 4, !tbaa !5
  %21796 = call ptr @strerror(i32 noundef %21795) #11
  %21797 = call ptr @__errno_location() #12
  %21798 = load i32, ptr %21797, align 4, !tbaa !5
  %21799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21786, ptr noundef @.str.2, i32 noundef %21787, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 1307, ptr noundef %21790, ptr noundef %21793, ptr noundef %21796, i32 noundef %21798) #11
  br label %21817

21800:                                            ; preds = %21778, %21771
  %21801 = load i32, ptr %658, align 4, !tbaa !5
  %21802 = call ptr @__errno_location() #12
  store i32 %21801, ptr %21802, align 4, !tbaa !5
  %21803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21804 = load i32, ptr @test_count, align 4, !tbaa !5
  %21805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21806 = load i32, ptr %21805, align 4, !tbaa !5
  %21807 = call ptr @s2n_strerror(i32 noundef %21806, ptr noundef @.str.4)
  %21808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21809 = load i32, ptr %21808, align 4, !tbaa !5
  %21810 = call ptr @s2n_strerror_debug(i32 noundef %21809, ptr noundef @.str.4)
  %21811 = call ptr @__errno_location() #12
  %21812 = load i32, ptr %21811, align 4, !tbaa !5
  %21813 = call ptr @strerror(i32 noundef %21812) #11
  %21814 = call ptr @__errno_location() #12
  %21815 = load i32, ptr %21814, align 4, !tbaa !5
  %21816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21803, ptr noundef @.str.5, i32 noundef %21804, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 1307, ptr noundef %21807, ptr noundef %21810, ptr noundef %21813, i32 noundef %21815) #11
  br label %21817

21817:                                            ; preds = %21800, %21783
  call void @llvm.lifetime.end.p0(i64 4, ptr %658) #11
  br label %21818

21818:                                            ; preds = %21817
  br label %21819

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

21820:                                            ; No predecessors!
  br label %21821

21821:                                            ; preds = %21820
  br label %21822

21822:                                            ; preds = %21821, %21760
  br label %21823

21823:                                            ; preds = %21822
  br label %21824

21824:                                            ; preds = %21823
  call void @llvm.lifetime.start.p0(i64 4, ptr %659) #11
  %21825 = getelementptr inbounds %struct.s2n_stuffer, ptr %656, i32 0, i32 2
  %21826 = load i32, ptr %21825, align 4, !tbaa !15
  %21827 = getelementptr inbounds %struct.s2n_stuffer, ptr %656, i32 0, i32 1
  %21828 = load i32, ptr %21827, align 8, !tbaa !18
  %21829 = sub i32 %21826, %21828
  store i32 %21829, ptr %659, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %660) #11
  %21830 = load i32, ptr %659, align 4, !tbaa !5
  %21831 = call ptr @s2n_stuffer_raw_read(ptr noundef %656, i32 noundef %21830)
  store ptr %21831, ptr %660, align 8, !tbaa !9
  br label %21832

21832:                                            ; preds = %21824
  %21833 = load i32, ptr @test_count, align 4, !tbaa !5
  %21834 = add nsw i32 %21833, 1
  store i32 %21834, ptr @test_count, align 4, !tbaa !5
  %21835 = load ptr, ptr %660, align 8, !tbaa !9
  %21836 = icmp eq ptr %21835, null
  br i1 %21836, label %21837, label %21890

21837:                                            ; preds = %21832
  br label %21838

21838:                                            ; preds = %21837
  br label %21839

21839:                                            ; preds = %21838
  call void @llvm.lifetime.start.p0(i64 4, ptr %661) #11
  %21840 = call ptr @__errno_location() #12
  %21841 = load i32, ptr %21840, align 4, !tbaa !5
  store i32 %21841, ptr %661, align 4, !tbaa !5
  %21842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21843 = call i32 @s2n_print_stacktrace(ptr noundef %21842)
  %21844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21845 = trunc i8 %21844 to i1
  br i1 %21845, label %21846, label %21868

21846:                                            ; preds = %21839
  %21847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21848 = call i32 @fileno(ptr noundef %21847) #11
  %21849 = call i32 @isatty(i32 noundef %21848) #11
  %21850 = icmp ne i32 %21849, 0
  br i1 %21850, label %21851, label %21868

21851:                                            ; preds = %21846
  %21852 = load i32, ptr %661, align 4, !tbaa !5
  %21853 = call ptr @__errno_location() #12
  store i32 %21852, ptr %21853, align 4, !tbaa !5
  %21854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21855 = load i32, ptr @test_count, align 4, !tbaa !5
  %21856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21857 = load i32, ptr %21856, align 4, !tbaa !5
  %21858 = call ptr @s2n_strerror(i32 noundef %21857, ptr noundef @.str.4)
  %21859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21860 = load i32, ptr %21859, align 4, !tbaa !5
  %21861 = call ptr @s2n_strerror_debug(i32 noundef %21860, ptr noundef @.str.4)
  %21862 = call ptr @__errno_location() #12
  %21863 = load i32, ptr %21862, align 4, !tbaa !5
  %21864 = call ptr @strerror(i32 noundef %21863) #11
  %21865 = call ptr @__errno_location() #12
  %21866 = load i32, ptr %21865, align 4, !tbaa !5
  %21867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21854, ptr noundef @.str.2, i32 noundef %21855, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1310, ptr noundef %21858, ptr noundef %21861, ptr noundef %21864, i32 noundef %21866) #11
  br label %21885

21868:                                            ; preds = %21846, %21839
  %21869 = load i32, ptr %661, align 4, !tbaa !5
  %21870 = call ptr @__errno_location() #12
  store i32 %21869, ptr %21870, align 4, !tbaa !5
  %21871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21872 = load i32, ptr @test_count, align 4, !tbaa !5
  %21873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21874 = load i32, ptr %21873, align 4, !tbaa !5
  %21875 = call ptr @s2n_strerror(i32 noundef %21874, ptr noundef @.str.4)
  %21876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21877 = load i32, ptr %21876, align 4, !tbaa !5
  %21878 = call ptr @s2n_strerror_debug(i32 noundef %21877, ptr noundef @.str.4)
  %21879 = call ptr @__errno_location() #12
  %21880 = load i32, ptr %21879, align 4, !tbaa !5
  %21881 = call ptr @strerror(i32 noundef %21880) #11
  %21882 = call ptr @__errno_location() #12
  %21883 = load i32, ptr %21882, align 4, !tbaa !5
  %21884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21871, ptr noundef @.str.5, i32 noundef %21872, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1310, ptr noundef %21875, ptr noundef %21878, ptr noundef %21881, i32 noundef %21883) #11
  br label %21885

21885:                                            ; preds = %21868, %21851
  call void @llvm.lifetime.end.p0(i64 4, ptr %661) #11
  br label %21886

21886:                                            ; preds = %21885
  br label %21887

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

21888:                                            ; No predecessors!
  br label %21889

21889:                                            ; preds = %21888
  br label %21890

21890:                                            ; preds = %21889, %21832
  br label %21891

21891:                                            ; preds = %21890
  br label %21892

21892:                                            ; preds = %21891
  call void @llvm.lifetime.start.p0(i64 48, ptr %662) #11
  br label %21893

21893:                                            ; preds = %21892
  %21894 = load i32, ptr @test_count, align 4, !tbaa !5
  %21895 = add nsw i32 %21894, 1
  store i32 %21895, ptr @test_count, align 4, !tbaa !5
  %21896 = call i32 @s2n_pkey_zero_init(ptr noundef %662)
  %21897 = icmp eq i32 %21896, -1
  br i1 %21897, label %21898, label %21951

21898:                                            ; preds = %21893
  br label %21899

21899:                                            ; preds = %21898
  br label %21900

21900:                                            ; preds = %21899
  call void @llvm.lifetime.start.p0(i64 4, ptr %663) #11
  %21901 = call ptr @__errno_location() #12
  %21902 = load i32, ptr %21901, align 4, !tbaa !5
  store i32 %21902, ptr %663, align 4, !tbaa !5
  %21903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21904 = call i32 @s2n_print_stacktrace(ptr noundef %21903)
  %21905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21906 = trunc i8 %21905 to i1
  br i1 %21906, label %21907, label %21929

21907:                                            ; preds = %21900
  %21908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21909 = call i32 @fileno(ptr noundef %21908) #11
  %21910 = call i32 @isatty(i32 noundef %21909) #11
  %21911 = icmp ne i32 %21910, 0
  br i1 %21911, label %21912, label %21929

21912:                                            ; preds = %21907
  %21913 = load i32, ptr %663, align 4, !tbaa !5
  %21914 = call ptr @__errno_location() #12
  store i32 %21913, ptr %21914, align 4, !tbaa !5
  %21915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21916 = load i32, ptr @test_count, align 4, !tbaa !5
  %21917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21918 = load i32, ptr %21917, align 4, !tbaa !5
  %21919 = call ptr @s2n_strerror(i32 noundef %21918, ptr noundef @.str.4)
  %21920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21921 = load i32, ptr %21920, align 4, !tbaa !5
  %21922 = call ptr @s2n_strerror_debug(i32 noundef %21921, ptr noundef @.str.4)
  %21923 = call ptr @__errno_location() #12
  %21924 = load i32, ptr %21923, align 4, !tbaa !5
  %21925 = call ptr @strerror(i32 noundef %21924) #11
  %21926 = call ptr @__errno_location() #12
  %21927 = load i32, ptr %21926, align 4, !tbaa !5
  %21928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21915, ptr noundef @.str.2, i32 noundef %21916, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1313, ptr noundef %21919, ptr noundef %21922, ptr noundef %21925, i32 noundef %21927) #11
  br label %21946

21929:                                            ; preds = %21907, %21900
  %21930 = load i32, ptr %663, align 4, !tbaa !5
  %21931 = call ptr @__errno_location() #12
  store i32 %21930, ptr %21931, align 4, !tbaa !5
  %21932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21933 = load i32, ptr @test_count, align 4, !tbaa !5
  %21934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21935 = load i32, ptr %21934, align 4, !tbaa !5
  %21936 = call ptr @s2n_strerror(i32 noundef %21935, ptr noundef @.str.4)
  %21937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21938 = load i32, ptr %21937, align 4, !tbaa !5
  %21939 = call ptr @s2n_strerror_debug(i32 noundef %21938, ptr noundef @.str.4)
  %21940 = call ptr @__errno_location() #12
  %21941 = load i32, ptr %21940, align 4, !tbaa !5
  %21942 = call ptr @strerror(i32 noundef %21941) #11
  %21943 = call ptr @__errno_location() #12
  %21944 = load i32, ptr %21943, align 4, !tbaa !5
  %21945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21932, ptr noundef @.str.5, i32 noundef %21933, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1313, ptr noundef %21936, ptr noundef %21939, ptr noundef %21942, i32 noundef %21944) #11
  br label %21946

21946:                                            ; preds = %21929, %21912
  call void @llvm.lifetime.end.p0(i64 4, ptr %663) #11
  br label %21947

21947:                                            ; preds = %21946
  br label %21948

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

21949:                                            ; No predecessors!
  br label %21950

21950:                                            ; preds = %21949
  br label %21951

21951:                                            ; preds = %21950, %21893
  br label %21952

21952:                                            ; preds = %21951
  br label %21953

21953:                                            ; preds = %21952
  call void @llvm.lifetime.start.p0(i64 4, ptr %664) #11
  store i32 -1, ptr %664, align 4, !tbaa !5
  br label %21954

21954:                                            ; preds = %21953
  %21955 = load i32, ptr @test_count, align 4, !tbaa !5
  %21956 = add nsw i32 %21955, 1
  store i32 %21956, ptr @test_count, align 4, !tbaa !5
  %21957 = load ptr, ptr %652, align 8, !tbaa !9
  %21958 = load ptr, ptr %660, align 8, !tbaa !9
  %21959 = load i32, ptr %659, align 4, !tbaa !5
  %21960 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %651, ptr noundef %21957, ptr noundef %21958, i32 noundef %21959, ptr noundef %664, ptr noundef %662)
  %21961 = getelementptr inbounds %struct.s2n_result, ptr %665, i32 0, i32 0
  store i32 %21960, ptr %21961, align 4
  %21962 = getelementptr inbounds %struct.s2n_result, ptr %665, i32 0, i32 0
  %21963 = load i32, ptr %21962, align 4
  %21964 = call zeroext i1 @s2n_result_is_ok(i32 %21963)
  br i1 %21964, label %22018, label %21965

21965:                                            ; preds = %21954
  br label %21966

21966:                                            ; preds = %21965
  br label %21967

21967:                                            ; preds = %21966
  call void @llvm.lifetime.start.p0(i64 4, ptr %666) #11
  %21968 = call ptr @__errno_location() #12
  %21969 = load i32, ptr %21968, align 4, !tbaa !5
  store i32 %21969, ptr %666, align 4, !tbaa !5
  %21970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21971 = call i32 @s2n_print_stacktrace(ptr noundef %21970)
  %21972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21973 = trunc i8 %21972 to i1
  br i1 %21973, label %21974, label %21996

21974:                                            ; preds = %21967
  %21975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21976 = call i32 @fileno(ptr noundef %21975) #11
  %21977 = call i32 @isatty(i32 noundef %21976) #11
  %21978 = icmp ne i32 %21977, 0
  br i1 %21978, label %21979, label %21996

21979:                                            ; preds = %21974
  %21980 = load i32, ptr %666, align 4, !tbaa !5
  %21981 = call ptr @__errno_location() #12
  store i32 %21980, ptr %21981, align 4, !tbaa !5
  %21982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21983 = load i32, ptr @test_count, align 4, !tbaa !5
  %21984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21985 = load i32, ptr %21984, align 4, !tbaa !5
  %21986 = call ptr @s2n_strerror(i32 noundef %21985, ptr noundef @.str.4)
  %21987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21988 = load i32, ptr %21987, align 4, !tbaa !5
  %21989 = call ptr @s2n_strerror_debug(i32 noundef %21988, ptr noundef @.str.4)
  %21990 = call ptr @__errno_location() #12
  %21991 = load i32, ptr %21990, align 4, !tbaa !5
  %21992 = call ptr @strerror(i32 noundef %21991) #11
  %21993 = call ptr @__errno_location() #12
  %21994 = load i32, ptr %21993, align 4, !tbaa !5
  %21995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21982, ptr noundef @.str.2, i32 noundef %21983, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1315, ptr noundef %21986, ptr noundef %21989, ptr noundef %21992, i32 noundef %21994) #11
  br label %22013

21996:                                            ; preds = %21974, %21967
  %21997 = load i32, ptr %666, align 4, !tbaa !5
  %21998 = call ptr @__errno_location() #12
  store i32 %21997, ptr %21998, align 4, !tbaa !5
  %21999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22000 = load i32, ptr @test_count, align 4, !tbaa !5
  %22001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22002 = load i32, ptr %22001, align 4, !tbaa !5
  %22003 = call ptr @s2n_strerror(i32 noundef %22002, ptr noundef @.str.4)
  %22004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22005 = load i32, ptr %22004, align 4, !tbaa !5
  %22006 = call ptr @s2n_strerror_debug(i32 noundef %22005, ptr noundef @.str.4)
  %22007 = call ptr @__errno_location() #12
  %22008 = load i32, ptr %22007, align 4, !tbaa !5
  %22009 = call ptr @strerror(i32 noundef %22008) #11
  %22010 = call ptr @__errno_location() #12
  %22011 = load i32, ptr %22010, align 4, !tbaa !5
  %22012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21999, ptr noundef @.str.5, i32 noundef %22000, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1315, ptr noundef %22003, ptr noundef %22006, ptr noundef %22009, i32 noundef %22011) #11
  br label %22013

22013:                                            ; preds = %21996, %21979
  call void @llvm.lifetime.end.p0(i64 4, ptr %666) #11
  br label %22014

22014:                                            ; preds = %22013
  br label %22015

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

22016:                                            ; No predecessors!
  br label %22017

22017:                                            ; preds = %22016
  br label %22018

22018:                                            ; preds = %22017, %21954
  br label %22019

22019:                                            ; preds = %22018
  br label %22020

22020:                                            ; preds = %22019
  br label %22021

22021:                                            ; preds = %22020
  %22022 = load i32, ptr @test_count, align 4, !tbaa !5
  %22023 = add nsw i32 %22022, 1
  store i32 %22023, ptr @test_count, align 4, !tbaa !5
  %22024 = getelementptr inbounds %struct.host_verify_data, ptr %654, i32 0, i32 2
  %22025 = load i8, ptr %22024, align 1, !tbaa !19
  %22026 = zext i8 %22025 to i32
  %22027 = icmp eq i32 1, %22026
  br i1 %22027, label %22081, label %22028

22028:                                            ; preds = %22021
  br label %22029

22029:                                            ; preds = %22028
  br label %22030

22030:                                            ; preds = %22029
  call void @llvm.lifetime.start.p0(i64 4, ptr %667) #11
  %22031 = call ptr @__errno_location() #12
  %22032 = load i32, ptr %22031, align 4, !tbaa !5
  store i32 %22032, ptr %667, align 4, !tbaa !5
  %22033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22034 = call i32 @s2n_print_stacktrace(ptr noundef %22033)
  %22035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22036 = trunc i8 %22035 to i1
  br i1 %22036, label %22037, label %22059

22037:                                            ; preds = %22030
  %22038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22039 = call i32 @fileno(ptr noundef %22038) #11
  %22040 = call i32 @isatty(i32 noundef %22039) #11
  %22041 = icmp ne i32 %22040, 0
  br i1 %22041, label %22042, label %22059

22042:                                            ; preds = %22037
  %22043 = load i32, ptr %667, align 4, !tbaa !5
  %22044 = call ptr @__errno_location() #12
  store i32 %22043, ptr %22044, align 4, !tbaa !5
  %22045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22046 = load i32, ptr @test_count, align 4, !tbaa !5
  %22047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22048 = load i32, ptr %22047, align 4, !tbaa !5
  %22049 = call ptr @s2n_strerror(i32 noundef %22048, ptr noundef @.str.4)
  %22050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22051 = load i32, ptr %22050, align 4, !tbaa !5
  %22052 = call ptr @s2n_strerror_debug(i32 noundef %22051, ptr noundef @.str.4)
  %22053 = call ptr @__errno_location() #12
  %22054 = load i32, ptr %22053, align 4, !tbaa !5
  %22055 = call ptr @strerror(i32 noundef %22054) #11
  %22056 = call ptr @__errno_location() #12
  %22057 = load i32, ptr %22056, align 4, !tbaa !5
  %22058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22045, ptr noundef @.str.2, i32 noundef %22046, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1317, ptr noundef %22049, ptr noundef %22052, ptr noundef %22055, i32 noundef %22057) #11
  br label %22076

22059:                                            ; preds = %22037, %22030
  %22060 = load i32, ptr %667, align 4, !tbaa !5
  %22061 = call ptr @__errno_location() #12
  store i32 %22060, ptr %22061, align 4, !tbaa !5
  %22062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22063 = load i32, ptr @test_count, align 4, !tbaa !5
  %22064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22065 = load i32, ptr %22064, align 4, !tbaa !5
  %22066 = call ptr @s2n_strerror(i32 noundef %22065, ptr noundef @.str.4)
  %22067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22068 = load i32, ptr %22067, align 4, !tbaa !5
  %22069 = call ptr @s2n_strerror_debug(i32 noundef %22068, ptr noundef @.str.4)
  %22070 = call ptr @__errno_location() #12
  %22071 = load i32, ptr %22070, align 4, !tbaa !5
  %22072 = call ptr @strerror(i32 noundef %22071) #11
  %22073 = call ptr @__errno_location() #12
  %22074 = load i32, ptr %22073, align 4, !tbaa !5
  %22075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22062, ptr noundef @.str.5, i32 noundef %22063, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1317, ptr noundef %22066, ptr noundef %22069, ptr noundef %22072, i32 noundef %22074) #11
  br label %22076

22076:                                            ; preds = %22059, %22042
  call void @llvm.lifetime.end.p0(i64 4, ptr %667) #11
  br label %22077

22077:                                            ; preds = %22076
  br label %22078

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

22079:                                            ; No predecessors!
  br label %22080

22080:                                            ; preds = %22079
  br label %22081

22081:                                            ; preds = %22080, %22021
  br label %22082

22082:                                            ; preds = %22081
  br label %22083

22083:                                            ; preds = %22082
  call void @llvm.lifetime.start.p0(i64 40, ptr %668) #11
  call void @llvm.memset.p0.i64(ptr align 8 %668, i8 0, i64 40, i1 false)
  br label %22084

22084:                                            ; preds = %22083
  %22085 = load i32, ptr @test_count, align 4, !tbaa !5
  %22086 = add nsw i32 %22085, 1
  store i32 %22086, ptr @test_count, align 4, !tbaa !5
  %22087 = call i32 @read_file(ptr noundef %668, ptr noundef @.str.74, i32 noundef 12000)
  %22088 = icmp eq i32 %22087, -1
  br i1 %22088, label %22089, label %22142

22089:                                            ; preds = %22084
  br label %22090

22090:                                            ; preds = %22089
  br label %22091

22091:                                            ; preds = %22090
  call void @llvm.lifetime.start.p0(i64 4, ptr %669) #11
  %22092 = call ptr @__errno_location() #12
  %22093 = load i32, ptr %22092, align 4, !tbaa !5
  store i32 %22093, ptr %669, align 4, !tbaa !5
  %22094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22095 = call i32 @s2n_print_stacktrace(ptr noundef %22094)
  %22096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22097 = trunc i8 %22096 to i1
  br i1 %22097, label %22098, label %22120

22098:                                            ; preds = %22091
  %22099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22100 = call i32 @fileno(ptr noundef %22099) #11
  %22101 = call i32 @isatty(i32 noundef %22100) #11
  %22102 = icmp ne i32 %22101, 0
  br i1 %22102, label %22103, label %22120

22103:                                            ; preds = %22098
  %22104 = load i32, ptr %669, align 4, !tbaa !5
  %22105 = call ptr @__errno_location() #12
  store i32 %22104, ptr %22105, align 4, !tbaa !5
  %22106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22107 = load i32, ptr @test_count, align 4, !tbaa !5
  %22108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22109 = load i32, ptr %22108, align 4, !tbaa !5
  %22110 = call ptr @s2n_strerror(i32 noundef %22109, ptr noundef @.str.4)
  %22111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22112 = load i32, ptr %22111, align 4, !tbaa !5
  %22113 = call ptr @s2n_strerror_debug(i32 noundef %22112, ptr noundef @.str.4)
  %22114 = call ptr @__errno_location() #12
  %22115 = load i32, ptr %22114, align 4, !tbaa !5
  %22116 = call ptr @strerror(i32 noundef %22115) #11
  %22117 = call ptr @__errno_location() #12
  %22118 = load i32, ptr %22117, align 4, !tbaa !5
  %22119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22106, ptr noundef @.str.2, i32 noundef %22107, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1319, ptr noundef %22110, ptr noundef %22113, ptr noundef %22116, i32 noundef %22118) #11
  br label %22137

22120:                                            ; preds = %22098, %22091
  %22121 = load i32, ptr %669, align 4, !tbaa !5
  %22122 = call ptr @__errno_location() #12
  store i32 %22121, ptr %22122, align 4, !tbaa !5
  %22123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22124 = load i32, ptr @test_count, align 4, !tbaa !5
  %22125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22126 = load i32, ptr %22125, align 4, !tbaa !5
  %22127 = call ptr @s2n_strerror(i32 noundef %22126, ptr noundef @.str.4)
  %22128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22129 = load i32, ptr %22128, align 4, !tbaa !5
  %22130 = call ptr @s2n_strerror_debug(i32 noundef %22129, ptr noundef @.str.4)
  %22131 = call ptr @__errno_location() #12
  %22132 = load i32, ptr %22131, align 4, !tbaa !5
  %22133 = call ptr @strerror(i32 noundef %22132) #11
  %22134 = call ptr @__errno_location() #12
  %22135 = load i32, ptr %22134, align 4, !tbaa !5
  %22136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22123, ptr noundef @.str.5, i32 noundef %22124, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 1319, ptr noundef %22127, ptr noundef %22130, ptr noundef %22133, i32 noundef %22135) #11
  br label %22137

22137:                                            ; preds = %22120, %22103
  call void @llvm.lifetime.end.p0(i64 4, ptr %669) #11
  br label %22138

22138:                                            ; preds = %22137
  br label %22139

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

22140:                                            ; No predecessors!
  br label %22141

22141:                                            ; preds = %22140
  br label %22142

22142:                                            ; preds = %22141, %22084
  br label %22143

22143:                                            ; preds = %22142
  br label %22144

22144:                                            ; preds = %22143
  call void @llvm.lifetime.start.p0(i64 4, ptr %670) #11
  %22145 = getelementptr inbounds %struct.s2n_stuffer, ptr %668, i32 0, i32 2
  %22146 = load i32, ptr %22145, align 4, !tbaa !15
  %22147 = getelementptr inbounds %struct.s2n_stuffer, ptr %668, i32 0, i32 1
  %22148 = load i32, ptr %22147, align 8, !tbaa !18
  %22149 = sub i32 %22146, %22148
  store i32 %22149, ptr %670, align 4, !tbaa !5
  br label %22150

22150:                                            ; preds = %22144
  %22151 = load i32, ptr @test_count, align 4, !tbaa !5
  %22152 = add nsw i32 %22151, 1
  store i32 %22152, ptr @test_count, align 4, !tbaa !5
  %22153 = load i32, ptr %670, align 4, !tbaa !5
  %22154 = icmp ugt i32 %22153, 0
  br i1 %22154, label %22208, label %22155

22155:                                            ; preds = %22150
  br label %22156

22156:                                            ; preds = %22155
  br label %22157

22157:                                            ; preds = %22156
  call void @llvm.lifetime.start.p0(i64 4, ptr %671) #11
  %22158 = call ptr @__errno_location() #12
  %22159 = load i32, ptr %22158, align 4, !tbaa !5
  store i32 %22159, ptr %671, align 4, !tbaa !5
  %22160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22161 = call i32 @s2n_print_stacktrace(ptr noundef %22160)
  %22162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22163 = trunc i8 %22162 to i1
  br i1 %22163, label %22164, label %22186

22164:                                            ; preds = %22157
  %22165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22166 = call i32 @fileno(ptr noundef %22165) #11
  %22167 = call i32 @isatty(i32 noundef %22166) #11
  %22168 = icmp ne i32 %22167, 0
  br i1 %22168, label %22169, label %22186

22169:                                            ; preds = %22164
  %22170 = load i32, ptr %671, align 4, !tbaa !5
  %22171 = call ptr @__errno_location() #12
  store i32 %22170, ptr %22171, align 4, !tbaa !5
  %22172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22173 = load i32, ptr @test_count, align 4, !tbaa !5
  %22174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22175 = load i32, ptr %22174, align 4, !tbaa !5
  %22176 = call ptr @s2n_strerror(i32 noundef %22175, ptr noundef @.str.4)
  %22177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22178 = load i32, ptr %22177, align 4, !tbaa !5
  %22179 = call ptr @s2n_strerror_debug(i32 noundef %22178, ptr noundef @.str.4)
  %22180 = call ptr @__errno_location() #12
  %22181 = load i32, ptr %22180, align 4, !tbaa !5
  %22182 = call ptr @strerror(i32 noundef %22181) #11
  %22183 = call ptr @__errno_location() #12
  %22184 = load i32, ptr %22183, align 4, !tbaa !5
  %22185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22172, ptr noundef @.str.2, i32 noundef %22173, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1321, ptr noundef %22176, ptr noundef %22179, ptr noundef %22182, i32 noundef %22184) #11
  br label %22203

22186:                                            ; preds = %22164, %22157
  %22187 = load i32, ptr %671, align 4, !tbaa !5
  %22188 = call ptr @__errno_location() #12
  store i32 %22187, ptr %22188, align 4, !tbaa !5
  %22189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22190 = load i32, ptr @test_count, align 4, !tbaa !5
  %22191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22192 = load i32, ptr %22191, align 4, !tbaa !5
  %22193 = call ptr @s2n_strerror(i32 noundef %22192, ptr noundef @.str.4)
  %22194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22195 = load i32, ptr %22194, align 4, !tbaa !5
  %22196 = call ptr @s2n_strerror_debug(i32 noundef %22195, ptr noundef @.str.4)
  %22197 = call ptr @__errno_location() #12
  %22198 = load i32, ptr %22197, align 4, !tbaa !5
  %22199 = call ptr @strerror(i32 noundef %22198) #11
  %22200 = call ptr @__errno_location() #12
  %22201 = load i32, ptr %22200, align 4, !tbaa !5
  %22202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22189, ptr noundef @.str.5, i32 noundef %22190, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1321, ptr noundef %22193, ptr noundef %22196, ptr noundef %22199, i32 noundef %22201) #11
  br label %22203

22203:                                            ; preds = %22186, %22169
  call void @llvm.lifetime.end.p0(i64 4, ptr %671) #11
  br label %22204

22204:                                            ; preds = %22203
  br label %22205

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

22206:                                            ; No predecessors!
  br label %22207

22207:                                            ; preds = %22206
  br label %22208

22208:                                            ; preds = %22207, %22150
  br label %22209

22209:                                            ; preds = %22208
  br label %22210

22210:                                            ; preds = %22209
  call void @llvm.lifetime.start.p0(i64 8, ptr %672) #11
  %22211 = load i32, ptr %670, align 4, !tbaa !5
  %22212 = call ptr @s2n_stuffer_raw_read(ptr noundef %668, i32 noundef %22211)
  store ptr %22212, ptr %672, align 8, !tbaa !9
  br label %22213

22213:                                            ; preds = %22210
  br label %22214

22214:                                            ; preds = %22213
  br label %22215

22215:                                            ; preds = %22214
  %22216 = load i32, ptr @test_count, align 4, !tbaa !5
  %22217 = add nsw i32 %22216, 1
  store i32 %22217, ptr @test_count, align 4, !tbaa !5
  %22218 = load ptr, ptr %652, align 8, !tbaa !9
  %22219 = load ptr, ptr %672, align 8, !tbaa !9
  %22220 = load i32, ptr %670, align 4, !tbaa !5
  %22221 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %651, ptr noundef %22218, ptr noundef %22219, i32 noundef %22220)
  %22222 = getelementptr inbounds %struct.s2n_result, ptr %673, i32 0, i32 0
  store i32 %22221, ptr %22222, align 4
  %22223 = getelementptr inbounds %struct.s2n_result, ptr %673, i32 0, i32 0
  %22224 = load i32, ptr %22223, align 4
  %22225 = call zeroext i1 @s2n_result_is_error(i32 %22224)
  br i1 %22225, label %22279, label %22226

22226:                                            ; preds = %22215
  br label %22227

22227:                                            ; preds = %22226
  br label %22228

22228:                                            ; preds = %22227
  call void @llvm.lifetime.start.p0(i64 4, ptr %674) #11
  %22229 = call ptr @__errno_location() #12
  %22230 = load i32, ptr %22229, align 4, !tbaa !5
  store i32 %22230, ptr %674, align 4, !tbaa !5
  %22231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22232 = call i32 @s2n_print_stacktrace(ptr noundef %22231)
  %22233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22234 = trunc i8 %22233 to i1
  br i1 %22234, label %22235, label %22257

22235:                                            ; preds = %22228
  %22236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22237 = call i32 @fileno(ptr noundef %22236) #11
  %22238 = call i32 @isatty(i32 noundef %22237) #11
  %22239 = icmp ne i32 %22238, 0
  br i1 %22239, label %22240, label %22257

22240:                                            ; preds = %22235
  %22241 = load i32, ptr %674, align 4, !tbaa !5
  %22242 = call ptr @__errno_location() #12
  store i32 %22241, ptr %22242, align 4, !tbaa !5
  %22243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22244 = load i32, ptr @test_count, align 4, !tbaa !5
  %22245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22246 = load i32, ptr %22245, align 4, !tbaa !5
  %22247 = call ptr @s2n_strerror(i32 noundef %22246, ptr noundef @.str.4)
  %22248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22249 = load i32, ptr %22248, align 4, !tbaa !5
  %22250 = call ptr @s2n_strerror_debug(i32 noundef %22249, ptr noundef @.str.4)
  %22251 = call ptr @__errno_location() #12
  %22252 = load i32, ptr %22251, align 4, !tbaa !5
  %22253 = call ptr @strerror(i32 noundef %22252) #11
  %22254 = call ptr @__errno_location() #12
  %22255 = load i32, ptr %22254, align 4, !tbaa !5
  %22256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22243, ptr noundef @.str.2, i32 noundef %22244, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %22247, ptr noundef %22250, ptr noundef %22253, i32 noundef %22255) #11
  br label %22274

22257:                                            ; preds = %22235, %22228
  %22258 = load i32, ptr %674, align 4, !tbaa !5
  %22259 = call ptr @__errno_location() #12
  store i32 %22258, ptr %22259, align 4, !tbaa !5
  %22260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22261 = load i32, ptr @test_count, align 4, !tbaa !5
  %22262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22263 = load i32, ptr %22262, align 4, !tbaa !5
  %22264 = call ptr @s2n_strerror(i32 noundef %22263, ptr noundef @.str.4)
  %22265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22266 = load i32, ptr %22265, align 4, !tbaa !5
  %22267 = call ptr @s2n_strerror_debug(i32 noundef %22266, ptr noundef @.str.4)
  %22268 = call ptr @__errno_location() #12
  %22269 = load i32, ptr %22268, align 4, !tbaa !5
  %22270 = call ptr @strerror(i32 noundef %22269) #11
  %22271 = call ptr @__errno_location() #12
  %22272 = load i32, ptr %22271, align 4, !tbaa !5
  %22273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22260, ptr noundef @.str.5, i32 noundef %22261, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %22264, ptr noundef %22267, ptr noundef %22270, i32 noundef %22272) #11
  br label %22274

22274:                                            ; preds = %22257, %22240
  call void @llvm.lifetime.end.p0(i64 4, ptr %674) #11
  br label %22275

22275:                                            ; preds = %22274
  br label %22276

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

22277:                                            ; No predecessors!
  br label %22278

22278:                                            ; preds = %22277
  br label %22279

22279:                                            ; preds = %22278, %22215
  br label %22280

22280:                                            ; preds = %22279
  br label %22281

22281:                                            ; preds = %22280
  br label %22282

22282:                                            ; preds = %22281
  %22283 = load i32, ptr @test_count, align 4, !tbaa !5
  %22284 = add nsw i32 %22283, 1
  store i32 %22284, ptr @test_count, align 4, !tbaa !5
  %22285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22286 = load i32, ptr %22285, align 4, !tbaa !5
  %22287 = icmp eq i32 %22286, 335544366
  br i1 %22287, label %22341, label %22288

22288:                                            ; preds = %22282
  br label %22289

22289:                                            ; preds = %22288
  br label %22290

22290:                                            ; preds = %22289
  call void @llvm.lifetime.start.p0(i64 4, ptr %675) #11
  %22291 = call ptr @__errno_location() #12
  %22292 = load i32, ptr %22291, align 4, !tbaa !5
  store i32 %22292, ptr %675, align 4, !tbaa !5
  %22293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22294 = call i32 @s2n_print_stacktrace(ptr noundef %22293)
  %22295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22296 = trunc i8 %22295 to i1
  br i1 %22296, label %22297, label %22319

22297:                                            ; preds = %22290
  %22298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22299 = call i32 @fileno(ptr noundef %22298) #11
  %22300 = call i32 @isatty(i32 noundef %22299) #11
  %22301 = icmp ne i32 %22300, 0
  br i1 %22301, label %22302, label %22319

22302:                                            ; preds = %22297
  %22303 = load i32, ptr %675, align 4, !tbaa !5
  %22304 = call ptr @__errno_location() #12
  store i32 %22303, ptr %22304, align 4, !tbaa !5
  %22305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22306 = load i32, ptr @test_count, align 4, !tbaa !5
  %22307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22308 = load i32, ptr %22307, align 4, !tbaa !5
  %22309 = call ptr @s2n_strerror(i32 noundef %22308, ptr noundef @.str.4)
  %22310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22311 = load i32, ptr %22310, align 4, !tbaa !5
  %22312 = call ptr @s2n_strerror_debug(i32 noundef %22311, ptr noundef @.str.4)
  %22313 = call ptr @__errno_location() #12
  %22314 = load i32, ptr %22313, align 4, !tbaa !5
  %22315 = call ptr @strerror(i32 noundef %22314) #11
  %22316 = call ptr @__errno_location() #12
  %22317 = load i32, ptr %22316, align 4, !tbaa !5
  %22318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22305, ptr noundef @.str.2, i32 noundef %22306, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %22309, ptr noundef %22312, ptr noundef %22315, i32 noundef %22317) #11
  br label %22336

22319:                                            ; preds = %22297, %22290
  %22320 = load i32, ptr %675, align 4, !tbaa !5
  %22321 = call ptr @__errno_location() #12
  store i32 %22320, ptr %22321, align 4, !tbaa !5
  %22322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22323 = load i32, ptr @test_count, align 4, !tbaa !5
  %22324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22325 = load i32, ptr %22324, align 4, !tbaa !5
  %22326 = call ptr @s2n_strerror(i32 noundef %22325, ptr noundef @.str.4)
  %22327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22328 = load i32, ptr %22327, align 4, !tbaa !5
  %22329 = call ptr @s2n_strerror_debug(i32 noundef %22328, ptr noundef @.str.4)
  %22330 = call ptr @__errno_location() #12
  %22331 = load i32, ptr %22330, align 4, !tbaa !5
  %22332 = call ptr @strerror(i32 noundef %22331) #11
  %22333 = call ptr @__errno_location() #12
  %22334 = load i32, ptr %22333, align 4, !tbaa !5
  %22335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22322, ptr noundef @.str.5, i32 noundef %22323, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %22326, ptr noundef %22329, ptr noundef %22332, i32 noundef %22334) #11
  br label %22336

22336:                                            ; preds = %22319, %22302
  call void @llvm.lifetime.end.p0(i64 4, ptr %675) #11
  br label %22337

22337:                                            ; preds = %22336
  br label %22338

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

22339:                                            ; No predecessors!
  br label %22340

22340:                                            ; preds = %22339
  br label %22341

22341:                                            ; preds = %22340, %22282
  br label %22342

22342:                                            ; preds = %22341
  br label %22343

22343:                                            ; preds = %22342
  br label %22344

22344:                                            ; preds = %22343
  %22345 = load i32, ptr @test_count, align 4, !tbaa !5
  %22346 = add nsw i32 %22345, 1
  store i32 %22346, ptr @test_count, align 4, !tbaa !5
  %22347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22348 = load i32, ptr %22347, align 4, !tbaa !5
  %22349 = call ptr @s2n_strerror_debug(i32 noundef %22348, ptr noundef @.str.4)
  %22350 = icmp eq ptr %22349, null
  br i1 %22350, label %22351, label %22404

22351:                                            ; preds = %22344
  br label %22352

22352:                                            ; preds = %22351
  br label %22353

22353:                                            ; preds = %22352
  call void @llvm.lifetime.start.p0(i64 4, ptr %676) #11
  %22354 = call ptr @__errno_location() #12
  %22355 = load i32, ptr %22354, align 4, !tbaa !5
  store i32 %22355, ptr %676, align 4, !tbaa !5
  %22356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22357 = call i32 @s2n_print_stacktrace(ptr noundef %22356)
  %22358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22359 = trunc i8 %22358 to i1
  br i1 %22359, label %22360, label %22382

22360:                                            ; preds = %22353
  %22361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22362 = call i32 @fileno(ptr noundef %22361) #11
  %22363 = call i32 @isatty(i32 noundef %22362) #11
  %22364 = icmp ne i32 %22363, 0
  br i1 %22364, label %22365, label %22382

22365:                                            ; preds = %22360
  %22366 = load i32, ptr %676, align 4, !tbaa !5
  %22367 = call ptr @__errno_location() #12
  store i32 %22366, ptr %22367, align 4, !tbaa !5
  %22368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22369 = load i32, ptr @test_count, align 4, !tbaa !5
  %22370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22371 = load i32, ptr %22370, align 4, !tbaa !5
  %22372 = call ptr @s2n_strerror(i32 noundef %22371, ptr noundef @.str.4)
  %22373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22374 = load i32, ptr %22373, align 4, !tbaa !5
  %22375 = call ptr @s2n_strerror_debug(i32 noundef %22374, ptr noundef @.str.4)
  %22376 = call ptr @__errno_location() #12
  %22377 = load i32, ptr %22376, align 4, !tbaa !5
  %22378 = call ptr @strerror(i32 noundef %22377) #11
  %22379 = call ptr @__errno_location() #12
  %22380 = load i32, ptr %22379, align 4, !tbaa !5
  %22381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22368, ptr noundef @.str.2, i32 noundef %22369, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %22372, ptr noundef %22375, ptr noundef %22378, i32 noundef %22380) #11
  br label %22399

22382:                                            ; preds = %22360, %22353
  %22383 = load i32, ptr %676, align 4, !tbaa !5
  %22384 = call ptr @__errno_location() #12
  store i32 %22383, ptr %22384, align 4, !tbaa !5
  %22385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22386 = load i32, ptr @test_count, align 4, !tbaa !5
  %22387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22388 = load i32, ptr %22387, align 4, !tbaa !5
  %22389 = call ptr @s2n_strerror(i32 noundef %22388, ptr noundef @.str.4)
  %22390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22391 = load i32, ptr %22390, align 4, !tbaa !5
  %22392 = call ptr @s2n_strerror_debug(i32 noundef %22391, ptr noundef @.str.4)
  %22393 = call ptr @__errno_location() #12
  %22394 = load i32, ptr %22393, align 4, !tbaa !5
  %22395 = call ptr @strerror(i32 noundef %22394) #11
  %22396 = call ptr @__errno_location() #12
  %22397 = load i32, ptr %22396, align 4, !tbaa !5
  %22398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22385, ptr noundef @.str.5, i32 noundef %22386, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1327, ptr noundef %22389, ptr noundef %22392, ptr noundef %22395, i32 noundef %22397) #11
  br label %22399

22399:                                            ; preds = %22382, %22365
  call void @llvm.lifetime.end.p0(i64 4, ptr %676) #11
  br label %22400

22400:                                            ; preds = %22399
  br label %22401

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

22402:                                            ; No predecessors!
  br label %22403

22403:                                            ; preds = %22402
  br label %22404

22404:                                            ; preds = %22403, %22344
  br label %22405

22405:                                            ; preds = %22404
  br label %22406

22406:                                            ; preds = %22405
  br label %22407

22407:                                            ; preds = %22406
  br label %22408

22408:                                            ; preds = %22407
  br label %22409

22409:                                            ; preds = %22408
  %22410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %22410, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %22411 = call ptr @__errno_location() #12
  store i32 0, ptr %22411, align 4, !tbaa !5
  br label %22412

22412:                                            ; preds = %22409
  br label %22413

22413:                                            ; preds = %22412
  br label %22414

22414:                                            ; preds = %22413
  br label %22415

22415:                                            ; preds = %22414
  %22416 = call i32 @s2n_stuffer_free(ptr noundef %668)
  %22417 = load ptr, ptr %652, align 8, !tbaa !9
  %22418 = call i32 @s2n_connection_free(ptr noundef %22417)
  %22419 = call i32 @s2n_pkey_free(ptr noundef %662)
  %22420 = call i32 @s2n_x509_validator_wipe(ptr noundef %651)
  call void @s2n_x509_trust_store_wipe(ptr noundef %649)
  call void @llvm.lifetime.end.p0(i64 8, ptr %672) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %670) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %668) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %664) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %662) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %660) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %659) #11
  %22421 = call i32 @s2n_stuffer_free(ptr noundef %656)
  call void @llvm.lifetime.end.p0(i64 40, ptr %656) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %654) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %652) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %651) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %649) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %677) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %677)
  br label %22422

22422:                                            ; preds = %22415
  %22423 = load i32, ptr @test_count, align 4, !tbaa !5
  %22424 = add nsw i32 %22423, 1
  store i32 %22424, ptr @test_count, align 4, !tbaa !5
  %22425 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %677, ptr noundef @.str.48, ptr noundef null)
  %22426 = icmp eq i32 %22425, -1
  br i1 %22426, label %22427, label %22480

22427:                                            ; preds = %22422
  br label %22428

22428:                                            ; preds = %22427
  br label %22429

22429:                                            ; preds = %22428
  call void @llvm.lifetime.start.p0(i64 4, ptr %678) #11
  %22430 = call ptr @__errno_location() #12
  %22431 = load i32, ptr %22430, align 4, !tbaa !5
  store i32 %22431, ptr %678, align 4, !tbaa !5
  %22432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22433 = call i32 @s2n_print_stacktrace(ptr noundef %22432)
  %22434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22435 = trunc i8 %22434 to i1
  br i1 %22435, label %22436, label %22458

22436:                                            ; preds = %22429
  %22437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22438 = call i32 @fileno(ptr noundef %22437) #11
  %22439 = call i32 @isatty(i32 noundef %22438) #11
  %22440 = icmp ne i32 %22439, 0
  br i1 %22440, label %22441, label %22458

22441:                                            ; preds = %22436
  %22442 = load i32, ptr %678, align 4, !tbaa !5
  %22443 = call ptr @__errno_location() #12
  store i32 %22442, ptr %22443, align 4, !tbaa !5
  %22444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22445 = load i32, ptr @test_count, align 4, !tbaa !5
  %22446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22447 = load i32, ptr %22446, align 4, !tbaa !5
  %22448 = call ptr @s2n_strerror(i32 noundef %22447, ptr noundef @.str.4)
  %22449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22450 = load i32, ptr %22449, align 4, !tbaa !5
  %22451 = call ptr @s2n_strerror_debug(i32 noundef %22450, ptr noundef @.str.4)
  %22452 = call ptr @__errno_location() #12
  %22453 = load i32, ptr %22452, align 4, !tbaa !5
  %22454 = call ptr @strerror(i32 noundef %22453) #11
  %22455 = call ptr @__errno_location() #12
  %22456 = load i32, ptr %22455, align 4, !tbaa !5
  %22457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22444, ptr noundef @.str.2, i32 noundef %22445, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1342, ptr noundef %22448, ptr noundef %22451, ptr noundef %22454, i32 noundef %22456) #11
  br label %22475

22458:                                            ; preds = %22436, %22429
  %22459 = load i32, ptr %678, align 4, !tbaa !5
  %22460 = call ptr @__errno_location() #12
  store i32 %22459, ptr %22460, align 4, !tbaa !5
  %22461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22462 = load i32, ptr @test_count, align 4, !tbaa !5
  %22463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22464 = load i32, ptr %22463, align 4, !tbaa !5
  %22465 = call ptr @s2n_strerror(i32 noundef %22464, ptr noundef @.str.4)
  %22466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22467 = load i32, ptr %22466, align 4, !tbaa !5
  %22468 = call ptr @s2n_strerror_debug(i32 noundef %22467, ptr noundef @.str.4)
  %22469 = call ptr @__errno_location() #12
  %22470 = load i32, ptr %22469, align 4, !tbaa !5
  %22471 = call ptr @strerror(i32 noundef %22470) #11
  %22472 = call ptr @__errno_location() #12
  %22473 = load i32, ptr %22472, align 4, !tbaa !5
  %22474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22461, ptr noundef @.str.5, i32 noundef %22462, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1342, ptr noundef %22465, ptr noundef %22468, ptr noundef %22471, i32 noundef %22473) #11
  br label %22475

22475:                                            ; preds = %22458, %22441
  call void @llvm.lifetime.end.p0(i64 4, ptr %678) #11
  br label %22476

22476:                                            ; preds = %22475
  br label %22477

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

22478:                                            ; No predecessors!
  br label %22479

22479:                                            ; preds = %22478
  br label %22480

22480:                                            ; preds = %22479, %22422
  br label %22481

22481:                                            ; preds = %22480
  br label %22482

22482:                                            ; preds = %22481
  call void @llvm.lifetime.start.p0(i64 56, ptr %679) #11
  %22483 = call i32 @s2n_x509_validator_init(ptr noundef %679, ptr noundef %677, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %680) #11
  %22484 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %22484, ptr %680, align 8, !tbaa !9
  br label %22485

22485:                                            ; preds = %22482
  %22486 = load i32, ptr @test_count, align 4, !tbaa !5
  %22487 = add nsw i32 %22486, 1
  store i32 %22487, ptr @test_count, align 4, !tbaa !5
  %22488 = load ptr, ptr %680, align 8, !tbaa !9
  %22489 = icmp eq ptr %22488, null
  br i1 %22489, label %22490, label %22543

22490:                                            ; preds = %22485
  br label %22491

22491:                                            ; preds = %22490
  br label %22492

22492:                                            ; preds = %22491
  call void @llvm.lifetime.start.p0(i64 4, ptr %681) #11
  %22493 = call ptr @__errno_location() #12
  %22494 = load i32, ptr %22493, align 4, !tbaa !5
  store i32 %22494, ptr %681, align 4, !tbaa !5
  %22495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22496 = call i32 @s2n_print_stacktrace(ptr noundef %22495)
  %22497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22498 = trunc i8 %22497 to i1
  br i1 %22498, label %22499, label %22521

22499:                                            ; preds = %22492
  %22500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22501 = call i32 @fileno(ptr noundef %22500) #11
  %22502 = call i32 @isatty(i32 noundef %22501) #11
  %22503 = icmp ne i32 %22502, 0
  br i1 %22503, label %22504, label %22521

22504:                                            ; preds = %22499
  %22505 = load i32, ptr %681, align 4, !tbaa !5
  %22506 = call ptr @__errno_location() #12
  store i32 %22505, ptr %22506, align 4, !tbaa !5
  %22507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22508 = load i32, ptr @test_count, align 4, !tbaa !5
  %22509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22510 = load i32, ptr %22509, align 4, !tbaa !5
  %22511 = call ptr @s2n_strerror(i32 noundef %22510, ptr noundef @.str.4)
  %22512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22513 = load i32, ptr %22512, align 4, !tbaa !5
  %22514 = call ptr @s2n_strerror_debug(i32 noundef %22513, ptr noundef @.str.4)
  %22515 = call ptr @__errno_location() #12
  %22516 = load i32, ptr %22515, align 4, !tbaa !5
  %22517 = call ptr @strerror(i32 noundef %22516) #11
  %22518 = call ptr @__errno_location() #12
  %22519 = load i32, ptr %22518, align 4, !tbaa !5
  %22520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22507, ptr noundef @.str.2, i32 noundef %22508, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1348, ptr noundef %22511, ptr noundef %22514, ptr noundef %22517, i32 noundef %22519) #11
  br label %22538

22521:                                            ; preds = %22499, %22492
  %22522 = load i32, ptr %681, align 4, !tbaa !5
  %22523 = call ptr @__errno_location() #12
  store i32 %22522, ptr %22523, align 4, !tbaa !5
  %22524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22525 = load i32, ptr @test_count, align 4, !tbaa !5
  %22526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22527 = load i32, ptr %22526, align 4, !tbaa !5
  %22528 = call ptr @s2n_strerror(i32 noundef %22527, ptr noundef @.str.4)
  %22529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22530 = load i32, ptr %22529, align 4, !tbaa !5
  %22531 = call ptr @s2n_strerror_debug(i32 noundef %22530, ptr noundef @.str.4)
  %22532 = call ptr @__errno_location() #12
  %22533 = load i32, ptr %22532, align 4, !tbaa !5
  %22534 = call ptr @strerror(i32 noundef %22533) #11
  %22535 = call ptr @__errno_location() #12
  %22536 = load i32, ptr %22535, align 4, !tbaa !5
  %22537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22524, ptr noundef @.str.5, i32 noundef %22525, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1348, ptr noundef %22528, ptr noundef %22531, ptr noundef %22534, i32 noundef %22536) #11
  br label %22538

22538:                                            ; preds = %22521, %22504
  call void @llvm.lifetime.end.p0(i64 4, ptr %681) #11
  br label %22539

22539:                                            ; preds = %22538
  br label %22540

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

22541:                                            ; No predecessors!
  br label %22542

22542:                                            ; preds = %22541
  br label %22543

22543:                                            ; preds = %22542, %22485
  br label %22544

22544:                                            ; preds = %22543
  br label %22545

22545:                                            ; preds = %22544
  call void @llvm.lifetime.start.p0(i64 16, ptr %682) #11
  call void @llvm.memset.p0.i64(ptr align 8 %682, i8 0, i64 16, i1 false)
  br label %22546

22546:                                            ; preds = %22545
  %22547 = load i32, ptr @test_count, align 4, !tbaa !5
  %22548 = add nsw i32 %22547, 1
  store i32 %22548, ptr @test_count, align 4, !tbaa !5
  %22549 = load ptr, ptr %680, align 8, !tbaa !9
  %22550 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %22549, ptr noundef @verify_host_accept_everything, ptr noundef %682)
  %22551 = icmp eq i32 %22550, -1
  br i1 %22551, label %22552, label %22605

22552:                                            ; preds = %22546
  br label %22553

22553:                                            ; preds = %22552
  br label %22554

22554:                                            ; preds = %22553
  call void @llvm.lifetime.start.p0(i64 4, ptr %683) #11
  %22555 = call ptr @__errno_location() #12
  %22556 = load i32, ptr %22555, align 4, !tbaa !5
  store i32 %22556, ptr %683, align 4, !tbaa !5
  %22557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22558 = call i32 @s2n_print_stacktrace(ptr noundef %22557)
  %22559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22560 = trunc i8 %22559 to i1
  br i1 %22560, label %22561, label %22583

22561:                                            ; preds = %22554
  %22562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22563 = call i32 @fileno(ptr noundef %22562) #11
  %22564 = call i32 @isatty(i32 noundef %22563) #11
  %22565 = icmp ne i32 %22564, 0
  br i1 %22565, label %22566, label %22583

22566:                                            ; preds = %22561
  %22567 = load i32, ptr %683, align 4, !tbaa !5
  %22568 = call ptr @__errno_location() #12
  store i32 %22567, ptr %22568, align 4, !tbaa !5
  %22569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22570 = load i32, ptr @test_count, align 4, !tbaa !5
  %22571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22572 = load i32, ptr %22571, align 4, !tbaa !5
  %22573 = call ptr @s2n_strerror(i32 noundef %22572, ptr noundef @.str.4)
  %22574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22575 = load i32, ptr %22574, align 4, !tbaa !5
  %22576 = call ptr @s2n_strerror_debug(i32 noundef %22575, ptr noundef @.str.4)
  %22577 = call ptr @__errno_location() #12
  %22578 = load i32, ptr %22577, align 4, !tbaa !5
  %22579 = call ptr @strerror(i32 noundef %22578) #11
  %22580 = call ptr @__errno_location() #12
  %22581 = load i32, ptr %22580, align 4, !tbaa !5
  %22582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22569, ptr noundef @.str.2, i32 noundef %22570, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1351, ptr noundef %22573, ptr noundef %22576, ptr noundef %22579, i32 noundef %22581) #11
  br label %22600

22583:                                            ; preds = %22561, %22554
  %22584 = load i32, ptr %683, align 4, !tbaa !5
  %22585 = call ptr @__errno_location() #12
  store i32 %22584, ptr %22585, align 4, !tbaa !5
  %22586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22587 = load i32, ptr @test_count, align 4, !tbaa !5
  %22588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22589 = load i32, ptr %22588, align 4, !tbaa !5
  %22590 = call ptr @s2n_strerror(i32 noundef %22589, ptr noundef @.str.4)
  %22591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22592 = load i32, ptr %22591, align 4, !tbaa !5
  %22593 = call ptr @s2n_strerror_debug(i32 noundef %22592, ptr noundef @.str.4)
  %22594 = call ptr @__errno_location() #12
  %22595 = load i32, ptr %22594, align 4, !tbaa !5
  %22596 = call ptr @strerror(i32 noundef %22595) #11
  %22597 = call ptr @__errno_location() #12
  %22598 = load i32, ptr %22597, align 4, !tbaa !5
  %22599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22586, ptr noundef @.str.5, i32 noundef %22587, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1351, ptr noundef %22590, ptr noundef %22593, ptr noundef %22596, i32 noundef %22598) #11
  br label %22600

22600:                                            ; preds = %22583, %22566
  call void @llvm.lifetime.end.p0(i64 4, ptr %683) #11
  br label %22601

22601:                                            ; preds = %22600
  br label %22602

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

22603:                                            ; No predecessors!
  br label %22604

22604:                                            ; preds = %22603
  br label %22605

22605:                                            ; preds = %22604, %22546
  br label %22606

22606:                                            ; preds = %22605
  br label %22607

22607:                                            ; preds = %22606
  call void @llvm.lifetime.start.p0(i64 40, ptr %684) #11
  call void @llvm.memset.p0.i64(ptr align 8 %684, i8 0, i64 40, i1 false)
  br label %22608

22608:                                            ; preds = %22607
  %22609 = load i32, ptr @test_count, align 4, !tbaa !5
  %22610 = add nsw i32 %22609, 1
  store i32 %22610, ptr @test_count, align 4, !tbaa !5
  %22611 = load ptr, ptr %680, align 8, !tbaa !9
  %22612 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %22611, ptr noundef @.str.91, ptr noundef %684)
  %22613 = getelementptr inbounds %struct.s2n_result, ptr %685, i32 0, i32 0
  store i32 %22612, ptr %22613, align 4
  %22614 = getelementptr inbounds %struct.s2n_result, ptr %685, i32 0, i32 0
  %22615 = load i32, ptr %22614, align 4
  %22616 = call zeroext i1 @s2n_result_is_ok(i32 %22615)
  br i1 %22616, label %22670, label %22617

22617:                                            ; preds = %22608
  br label %22618

22618:                                            ; preds = %22617
  br label %22619

22619:                                            ; preds = %22618
  call void @llvm.lifetime.start.p0(i64 4, ptr %686) #11
  %22620 = call ptr @__errno_location() #12
  %22621 = load i32, ptr %22620, align 4, !tbaa !5
  store i32 %22621, ptr %686, align 4, !tbaa !5
  %22622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22623 = call i32 @s2n_print_stacktrace(ptr noundef %22622)
  %22624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22625 = trunc i8 %22624 to i1
  br i1 %22625, label %22626, label %22648

22626:                                            ; preds = %22619
  %22627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22628 = call i32 @fileno(ptr noundef %22627) #11
  %22629 = call i32 @isatty(i32 noundef %22628) #11
  %22630 = icmp ne i32 %22629, 0
  br i1 %22630, label %22631, label %22648

22631:                                            ; preds = %22626
  %22632 = load i32, ptr %686, align 4, !tbaa !5
  %22633 = call ptr @__errno_location() #12
  store i32 %22632, ptr %22633, align 4, !tbaa !5
  %22634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22635 = load i32, ptr @test_count, align 4, !tbaa !5
  %22636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22637 = load i32, ptr %22636, align 4, !tbaa !5
  %22638 = call ptr @s2n_strerror(i32 noundef %22637, ptr noundef @.str.4)
  %22639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22640 = load i32, ptr %22639, align 4, !tbaa !5
  %22641 = call ptr @s2n_strerror_debug(i32 noundef %22640, ptr noundef @.str.4)
  %22642 = call ptr @__errno_location() #12
  %22643 = load i32, ptr %22642, align 4, !tbaa !5
  %22644 = call ptr @strerror(i32 noundef %22643) #11
  %22645 = call ptr @__errno_location() #12
  %22646 = load i32, ptr %22645, align 4, !tbaa !5
  %22647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22634, ptr noundef @.str.2, i32 noundef %22635, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 1354, ptr noundef %22638, ptr noundef %22641, ptr noundef %22644, i32 noundef %22646) #11
  br label %22665

22648:                                            ; preds = %22626, %22619
  %22649 = load i32, ptr %686, align 4, !tbaa !5
  %22650 = call ptr @__errno_location() #12
  store i32 %22649, ptr %22650, align 4, !tbaa !5
  %22651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22652 = load i32, ptr @test_count, align 4, !tbaa !5
  %22653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22654 = load i32, ptr %22653, align 4, !tbaa !5
  %22655 = call ptr @s2n_strerror(i32 noundef %22654, ptr noundef @.str.4)
  %22656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22657 = load i32, ptr %22656, align 4, !tbaa !5
  %22658 = call ptr @s2n_strerror_debug(i32 noundef %22657, ptr noundef @.str.4)
  %22659 = call ptr @__errno_location() #12
  %22660 = load i32, ptr %22659, align 4, !tbaa !5
  %22661 = call ptr @strerror(i32 noundef %22660) #11
  %22662 = call ptr @__errno_location() #12
  %22663 = load i32, ptr %22662, align 4, !tbaa !5
  %22664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22651, ptr noundef @.str.5, i32 noundef %22652, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 1354, ptr noundef %22655, ptr noundef %22658, ptr noundef %22661, i32 noundef %22663) #11
  br label %22665

22665:                                            ; preds = %22648, %22631
  call void @llvm.lifetime.end.p0(i64 4, ptr %686) #11
  br label %22666

22666:                                            ; preds = %22665
  br label %22667

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

22668:                                            ; No predecessors!
  br label %22669

22669:                                            ; preds = %22668
  br label %22670

22670:                                            ; preds = %22669, %22608
  br label %22671

22671:                                            ; preds = %22670
  br label %22672

22672:                                            ; preds = %22671
  call void @llvm.lifetime.start.p0(i64 4, ptr %687) #11
  %22673 = getelementptr inbounds %struct.s2n_stuffer, ptr %684, i32 0, i32 2
  %22674 = load i32, ptr %22673, align 4, !tbaa !15
  %22675 = getelementptr inbounds %struct.s2n_stuffer, ptr %684, i32 0, i32 1
  %22676 = load i32, ptr %22675, align 8, !tbaa !18
  %22677 = sub i32 %22674, %22676
  store i32 %22677, ptr %687, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %688) #11
  %22678 = load i32, ptr %687, align 4, !tbaa !5
  %22679 = call ptr @s2n_stuffer_raw_read(ptr noundef %684, i32 noundef %22678)
  store ptr %22679, ptr %688, align 8, !tbaa !9
  br label %22680

22680:                                            ; preds = %22672
  %22681 = load i32, ptr @test_count, align 4, !tbaa !5
  %22682 = add nsw i32 %22681, 1
  store i32 %22682, ptr @test_count, align 4, !tbaa !5
  %22683 = load ptr, ptr %688, align 8, !tbaa !9
  %22684 = icmp eq ptr %22683, null
  br i1 %22684, label %22685, label %22738

22685:                                            ; preds = %22680
  br label %22686

22686:                                            ; preds = %22685
  br label %22687

22687:                                            ; preds = %22686
  call void @llvm.lifetime.start.p0(i64 4, ptr %689) #11
  %22688 = call ptr @__errno_location() #12
  %22689 = load i32, ptr %22688, align 4, !tbaa !5
  store i32 %22689, ptr %689, align 4, !tbaa !5
  %22690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22691 = call i32 @s2n_print_stacktrace(ptr noundef %22690)
  %22692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22693 = trunc i8 %22692 to i1
  br i1 %22693, label %22694, label %22716

22694:                                            ; preds = %22687
  %22695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22696 = call i32 @fileno(ptr noundef %22695) #11
  %22697 = call i32 @isatty(i32 noundef %22696) #11
  %22698 = icmp ne i32 %22697, 0
  br i1 %22698, label %22699, label %22716

22699:                                            ; preds = %22694
  %22700 = load i32, ptr %689, align 4, !tbaa !5
  %22701 = call ptr @__errno_location() #12
  store i32 %22700, ptr %22701, align 4, !tbaa !5
  %22702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22703 = load i32, ptr @test_count, align 4, !tbaa !5
  %22704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22705 = load i32, ptr %22704, align 4, !tbaa !5
  %22706 = call ptr @s2n_strerror(i32 noundef %22705, ptr noundef @.str.4)
  %22707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22708 = load i32, ptr %22707, align 4, !tbaa !5
  %22709 = call ptr @s2n_strerror_debug(i32 noundef %22708, ptr noundef @.str.4)
  %22710 = call ptr @__errno_location() #12
  %22711 = load i32, ptr %22710, align 4, !tbaa !5
  %22712 = call ptr @strerror(i32 noundef %22711) #11
  %22713 = call ptr @__errno_location() #12
  %22714 = load i32, ptr %22713, align 4, !tbaa !5
  %22715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22702, ptr noundef @.str.2, i32 noundef %22703, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1357, ptr noundef %22706, ptr noundef %22709, ptr noundef %22712, i32 noundef %22714) #11
  br label %22733

22716:                                            ; preds = %22694, %22687
  %22717 = load i32, ptr %689, align 4, !tbaa !5
  %22718 = call ptr @__errno_location() #12
  store i32 %22717, ptr %22718, align 4, !tbaa !5
  %22719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22720 = load i32, ptr @test_count, align 4, !tbaa !5
  %22721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22722 = load i32, ptr %22721, align 4, !tbaa !5
  %22723 = call ptr @s2n_strerror(i32 noundef %22722, ptr noundef @.str.4)
  %22724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22725 = load i32, ptr %22724, align 4, !tbaa !5
  %22726 = call ptr @s2n_strerror_debug(i32 noundef %22725, ptr noundef @.str.4)
  %22727 = call ptr @__errno_location() #12
  %22728 = load i32, ptr %22727, align 4, !tbaa !5
  %22729 = call ptr @strerror(i32 noundef %22728) #11
  %22730 = call ptr @__errno_location() #12
  %22731 = load i32, ptr %22730, align 4, !tbaa !5
  %22732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22719, ptr noundef @.str.5, i32 noundef %22720, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1357, ptr noundef %22723, ptr noundef %22726, ptr noundef %22729, i32 noundef %22731) #11
  br label %22733

22733:                                            ; preds = %22716, %22699
  call void @llvm.lifetime.end.p0(i64 4, ptr %689) #11
  br label %22734

22734:                                            ; preds = %22733
  br label %22735

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

22736:                                            ; No predecessors!
  br label %22737

22737:                                            ; preds = %22736
  br label %22738

22738:                                            ; preds = %22737, %22680
  br label %22739

22739:                                            ; preds = %22738
  br label %22740

22740:                                            ; preds = %22739
  call void @llvm.lifetime.start.p0(i64 48, ptr %690) #11
  br label %22741

22741:                                            ; preds = %22740
  %22742 = load i32, ptr @test_count, align 4, !tbaa !5
  %22743 = add nsw i32 %22742, 1
  store i32 %22743, ptr @test_count, align 4, !tbaa !5
  %22744 = call i32 @s2n_pkey_zero_init(ptr noundef %690)
  %22745 = icmp eq i32 %22744, -1
  br i1 %22745, label %22746, label %22799

22746:                                            ; preds = %22741
  br label %22747

22747:                                            ; preds = %22746
  br label %22748

22748:                                            ; preds = %22747
  call void @llvm.lifetime.start.p0(i64 4, ptr %691) #11
  %22749 = call ptr @__errno_location() #12
  %22750 = load i32, ptr %22749, align 4, !tbaa !5
  store i32 %22750, ptr %691, align 4, !tbaa !5
  %22751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22752 = call i32 @s2n_print_stacktrace(ptr noundef %22751)
  %22753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22754 = trunc i8 %22753 to i1
  br i1 %22754, label %22755, label %22777

22755:                                            ; preds = %22748
  %22756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22757 = call i32 @fileno(ptr noundef %22756) #11
  %22758 = call i32 @isatty(i32 noundef %22757) #11
  %22759 = icmp ne i32 %22758, 0
  br i1 %22759, label %22760, label %22777

22760:                                            ; preds = %22755
  %22761 = load i32, ptr %691, align 4, !tbaa !5
  %22762 = call ptr @__errno_location() #12
  store i32 %22761, ptr %22762, align 4, !tbaa !5
  %22763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22764 = load i32, ptr @test_count, align 4, !tbaa !5
  %22765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22766 = load i32, ptr %22765, align 4, !tbaa !5
  %22767 = call ptr @s2n_strerror(i32 noundef %22766, ptr noundef @.str.4)
  %22768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22769 = load i32, ptr %22768, align 4, !tbaa !5
  %22770 = call ptr @s2n_strerror_debug(i32 noundef %22769, ptr noundef @.str.4)
  %22771 = call ptr @__errno_location() #12
  %22772 = load i32, ptr %22771, align 4, !tbaa !5
  %22773 = call ptr @strerror(i32 noundef %22772) #11
  %22774 = call ptr @__errno_location() #12
  %22775 = load i32, ptr %22774, align 4, !tbaa !5
  %22776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22763, ptr noundef @.str.2, i32 noundef %22764, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %22767, ptr noundef %22770, ptr noundef %22773, i32 noundef %22775) #11
  br label %22794

22777:                                            ; preds = %22755, %22748
  %22778 = load i32, ptr %691, align 4, !tbaa !5
  %22779 = call ptr @__errno_location() #12
  store i32 %22778, ptr %22779, align 4, !tbaa !5
  %22780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22781 = load i32, ptr @test_count, align 4, !tbaa !5
  %22782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22783 = load i32, ptr %22782, align 4, !tbaa !5
  %22784 = call ptr @s2n_strerror(i32 noundef %22783, ptr noundef @.str.4)
  %22785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22786 = load i32, ptr %22785, align 4, !tbaa !5
  %22787 = call ptr @s2n_strerror_debug(i32 noundef %22786, ptr noundef @.str.4)
  %22788 = call ptr @__errno_location() #12
  %22789 = load i32, ptr %22788, align 4, !tbaa !5
  %22790 = call ptr @strerror(i32 noundef %22789) #11
  %22791 = call ptr @__errno_location() #12
  %22792 = load i32, ptr %22791, align 4, !tbaa !5
  %22793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22780, ptr noundef @.str.5, i32 noundef %22781, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1360, ptr noundef %22784, ptr noundef %22787, ptr noundef %22790, i32 noundef %22792) #11
  br label %22794

22794:                                            ; preds = %22777, %22760
  call void @llvm.lifetime.end.p0(i64 4, ptr %691) #11
  br label %22795

22795:                                            ; preds = %22794
  br label %22796

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

22797:                                            ; No predecessors!
  br label %22798

22798:                                            ; preds = %22797
  br label %22799

22799:                                            ; preds = %22798, %22741
  br label %22800

22800:                                            ; preds = %22799
  br label %22801

22801:                                            ; preds = %22800
  call void @llvm.lifetime.start.p0(i64 4, ptr %692) #11
  store i32 -1, ptr %692, align 4, !tbaa !5
  br label %22802

22802:                                            ; preds = %22801
  %22803 = load i32, ptr @test_count, align 4, !tbaa !5
  %22804 = add nsw i32 %22803, 1
  store i32 %22804, ptr @test_count, align 4, !tbaa !5
  %22805 = load ptr, ptr %680, align 8, !tbaa !9
  %22806 = load ptr, ptr %688, align 8, !tbaa !9
  %22807 = load i32, ptr %687, align 4, !tbaa !5
  %22808 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %679, ptr noundef %22805, ptr noundef %22806, i32 noundef %22807, ptr noundef %692, ptr noundef %690)
  %22809 = getelementptr inbounds %struct.s2n_result, ptr %693, i32 0, i32 0
  store i32 %22808, ptr %22809, align 4
  %22810 = getelementptr inbounds %struct.s2n_result, ptr %693, i32 0, i32 0
  %22811 = load i32, ptr %22810, align 4
  %22812 = call zeroext i1 @s2n_result_is_ok(i32 %22811)
  br i1 %22812, label %22866, label %22813

22813:                                            ; preds = %22802
  br label %22814

22814:                                            ; preds = %22813
  br label %22815

22815:                                            ; preds = %22814
  call void @llvm.lifetime.start.p0(i64 4, ptr %694) #11
  %22816 = call ptr @__errno_location() #12
  %22817 = load i32, ptr %22816, align 4, !tbaa !5
  store i32 %22817, ptr %694, align 4, !tbaa !5
  %22818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22819 = call i32 @s2n_print_stacktrace(ptr noundef %22818)
  %22820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22821 = trunc i8 %22820 to i1
  br i1 %22821, label %22822, label %22844

22822:                                            ; preds = %22815
  %22823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22824 = call i32 @fileno(ptr noundef %22823) #11
  %22825 = call i32 @isatty(i32 noundef %22824) #11
  %22826 = icmp ne i32 %22825, 0
  br i1 %22826, label %22827, label %22844

22827:                                            ; preds = %22822
  %22828 = load i32, ptr %694, align 4, !tbaa !5
  %22829 = call ptr @__errno_location() #12
  store i32 %22828, ptr %22829, align 4, !tbaa !5
  %22830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22831 = load i32, ptr @test_count, align 4, !tbaa !5
  %22832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22833 = load i32, ptr %22832, align 4, !tbaa !5
  %22834 = call ptr @s2n_strerror(i32 noundef %22833, ptr noundef @.str.4)
  %22835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22836 = load i32, ptr %22835, align 4, !tbaa !5
  %22837 = call ptr @s2n_strerror_debug(i32 noundef %22836, ptr noundef @.str.4)
  %22838 = call ptr @__errno_location() #12
  %22839 = load i32, ptr %22838, align 4, !tbaa !5
  %22840 = call ptr @strerror(i32 noundef %22839) #11
  %22841 = call ptr @__errno_location() #12
  %22842 = load i32, ptr %22841, align 4, !tbaa !5
  %22843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22830, ptr noundef @.str.2, i32 noundef %22831, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1362, ptr noundef %22834, ptr noundef %22837, ptr noundef %22840, i32 noundef %22842) #11
  br label %22861

22844:                                            ; preds = %22822, %22815
  %22845 = load i32, ptr %694, align 4, !tbaa !5
  %22846 = call ptr @__errno_location() #12
  store i32 %22845, ptr %22846, align 4, !tbaa !5
  %22847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22848 = load i32, ptr @test_count, align 4, !tbaa !5
  %22849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22850 = load i32, ptr %22849, align 4, !tbaa !5
  %22851 = call ptr @s2n_strerror(i32 noundef %22850, ptr noundef @.str.4)
  %22852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22853 = load i32, ptr %22852, align 4, !tbaa !5
  %22854 = call ptr @s2n_strerror_debug(i32 noundef %22853, ptr noundef @.str.4)
  %22855 = call ptr @__errno_location() #12
  %22856 = load i32, ptr %22855, align 4, !tbaa !5
  %22857 = call ptr @strerror(i32 noundef %22856) #11
  %22858 = call ptr @__errno_location() #12
  %22859 = load i32, ptr %22858, align 4, !tbaa !5
  %22860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22847, ptr noundef @.str.5, i32 noundef %22848, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1362, ptr noundef %22851, ptr noundef %22854, ptr noundef %22857, i32 noundef %22859) #11
  br label %22861

22861:                                            ; preds = %22844, %22827
  call void @llvm.lifetime.end.p0(i64 4, ptr %694) #11
  br label %22862

22862:                                            ; preds = %22861
  br label %22863

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

22864:                                            ; No predecessors!
  br label %22865

22865:                                            ; preds = %22864
  br label %22866

22866:                                            ; preds = %22865, %22802
  br label %22867

22867:                                            ; preds = %22866
  br label %22868

22868:                                            ; preds = %22867
  br label %22869

22869:                                            ; preds = %22868
  %22870 = load i32, ptr @test_count, align 4, !tbaa !5
  %22871 = add nsw i32 %22870, 1
  store i32 %22871, ptr @test_count, align 4, !tbaa !5
  %22872 = getelementptr inbounds %struct.host_verify_data, ptr %682, i32 0, i32 2
  %22873 = load i8, ptr %22872, align 1, !tbaa !19
  %22874 = zext i8 %22873 to i32
  %22875 = icmp eq i32 1, %22874
  br i1 %22875, label %22929, label %22876

22876:                                            ; preds = %22869
  br label %22877

22877:                                            ; preds = %22876
  br label %22878

22878:                                            ; preds = %22877
  call void @llvm.lifetime.start.p0(i64 4, ptr %695) #11
  %22879 = call ptr @__errno_location() #12
  %22880 = load i32, ptr %22879, align 4, !tbaa !5
  store i32 %22880, ptr %695, align 4, !tbaa !5
  %22881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22882 = call i32 @s2n_print_stacktrace(ptr noundef %22881)
  %22883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22884 = trunc i8 %22883 to i1
  br i1 %22884, label %22885, label %22907

22885:                                            ; preds = %22878
  %22886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22887 = call i32 @fileno(ptr noundef %22886) #11
  %22888 = call i32 @isatty(i32 noundef %22887) #11
  %22889 = icmp ne i32 %22888, 0
  br i1 %22889, label %22890, label %22907

22890:                                            ; preds = %22885
  %22891 = load i32, ptr %695, align 4, !tbaa !5
  %22892 = call ptr @__errno_location() #12
  store i32 %22891, ptr %22892, align 4, !tbaa !5
  %22893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22894 = load i32, ptr @test_count, align 4, !tbaa !5
  %22895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22896 = load i32, ptr %22895, align 4, !tbaa !5
  %22897 = call ptr @s2n_strerror(i32 noundef %22896, ptr noundef @.str.4)
  %22898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22899 = load i32, ptr %22898, align 4, !tbaa !5
  %22900 = call ptr @s2n_strerror_debug(i32 noundef %22899, ptr noundef @.str.4)
  %22901 = call ptr @__errno_location() #12
  %22902 = load i32, ptr %22901, align 4, !tbaa !5
  %22903 = call ptr @strerror(i32 noundef %22902) #11
  %22904 = call ptr @__errno_location() #12
  %22905 = load i32, ptr %22904, align 4, !tbaa !5
  %22906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22893, ptr noundef @.str.2, i32 noundef %22894, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1364, ptr noundef %22897, ptr noundef %22900, ptr noundef %22903, i32 noundef %22905) #11
  br label %22924

22907:                                            ; preds = %22885, %22878
  %22908 = load i32, ptr %695, align 4, !tbaa !5
  %22909 = call ptr @__errno_location() #12
  store i32 %22908, ptr %22909, align 4, !tbaa !5
  %22910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22911 = load i32, ptr @test_count, align 4, !tbaa !5
  %22912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22913 = load i32, ptr %22912, align 4, !tbaa !5
  %22914 = call ptr @s2n_strerror(i32 noundef %22913, ptr noundef @.str.4)
  %22915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22916 = load i32, ptr %22915, align 4, !tbaa !5
  %22917 = call ptr @s2n_strerror_debug(i32 noundef %22916, ptr noundef @.str.4)
  %22918 = call ptr @__errno_location() #12
  %22919 = load i32, ptr %22918, align 4, !tbaa !5
  %22920 = call ptr @strerror(i32 noundef %22919) #11
  %22921 = call ptr @__errno_location() #12
  %22922 = load i32, ptr %22921, align 4, !tbaa !5
  %22923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22910, ptr noundef @.str.5, i32 noundef %22911, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1364, ptr noundef %22914, ptr noundef %22917, ptr noundef %22920, i32 noundef %22922) #11
  br label %22924

22924:                                            ; preds = %22907, %22890
  call void @llvm.lifetime.end.p0(i64 4, ptr %695) #11
  br label %22925

22925:                                            ; preds = %22924
  br label %22926

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

22927:                                            ; No predecessors!
  br label %22928

22928:                                            ; preds = %22927
  br label %22929

22929:                                            ; preds = %22928, %22869
  br label %22930

22930:                                            ; preds = %22929
  br label %22931

22931:                                            ; preds = %22930
  call void @llvm.lifetime.start.p0(i64 40, ptr %696) #11
  call void @llvm.memset.p0.i64(ptr align 8 %696, i8 0, i64 40, i1 false)
  br label %22932

22932:                                            ; preds = %22931
  %22933 = load i32, ptr @test_count, align 4, !tbaa !5
  %22934 = add nsw i32 %22933, 1
  store i32 %22934, ptr @test_count, align 4, !tbaa !5
  %22935 = call i32 @read_file(ptr noundef %696, ptr noundef @.str.93, i32 noundef 12000)
  %22936 = icmp eq i32 %22935, -1
  br i1 %22936, label %22937, label %22990

22937:                                            ; preds = %22932
  br label %22938

22938:                                            ; preds = %22937
  br label %22939

22939:                                            ; preds = %22938
  call void @llvm.lifetime.start.p0(i64 4, ptr %697) #11
  %22940 = call ptr @__errno_location() #12
  %22941 = load i32, ptr %22940, align 4, !tbaa !5
  store i32 %22941, ptr %697, align 4, !tbaa !5
  %22942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22943 = call i32 @s2n_print_stacktrace(ptr noundef %22942)
  %22944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22945 = trunc i8 %22944 to i1
  br i1 %22945, label %22946, label %22968

22946:                                            ; preds = %22939
  %22947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22948 = call i32 @fileno(ptr noundef %22947) #11
  %22949 = call i32 @isatty(i32 noundef %22948) #11
  %22950 = icmp ne i32 %22949, 0
  br i1 %22950, label %22951, label %22968

22951:                                            ; preds = %22946
  %22952 = load i32, ptr %697, align 4, !tbaa !5
  %22953 = call ptr @__errno_location() #12
  store i32 %22952, ptr %22953, align 4, !tbaa !5
  %22954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22955 = load i32, ptr @test_count, align 4, !tbaa !5
  %22956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22957 = load i32, ptr %22956, align 4, !tbaa !5
  %22958 = call ptr @s2n_strerror(i32 noundef %22957, ptr noundef @.str.4)
  %22959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22960 = load i32, ptr %22959, align 4, !tbaa !5
  %22961 = call ptr @s2n_strerror_debug(i32 noundef %22960, ptr noundef @.str.4)
  %22962 = call ptr @__errno_location() #12
  %22963 = load i32, ptr %22962, align 4, !tbaa !5
  %22964 = call ptr @strerror(i32 noundef %22963) #11
  %22965 = call ptr @__errno_location() #12
  %22966 = load i32, ptr %22965, align 4, !tbaa !5
  %22967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22954, ptr noundef @.str.2, i32 noundef %22955, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 1366, ptr noundef %22958, ptr noundef %22961, ptr noundef %22964, i32 noundef %22966) #11
  br label %22985

22968:                                            ; preds = %22946, %22939
  %22969 = load i32, ptr %697, align 4, !tbaa !5
  %22970 = call ptr @__errno_location() #12
  store i32 %22969, ptr %22970, align 4, !tbaa !5
  %22971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22972 = load i32, ptr @test_count, align 4, !tbaa !5
  %22973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22974 = load i32, ptr %22973, align 4, !tbaa !5
  %22975 = call ptr @s2n_strerror(i32 noundef %22974, ptr noundef @.str.4)
  %22976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22977 = load i32, ptr %22976, align 4, !tbaa !5
  %22978 = call ptr @s2n_strerror_debug(i32 noundef %22977, ptr noundef @.str.4)
  %22979 = call ptr @__errno_location() #12
  %22980 = load i32, ptr %22979, align 4, !tbaa !5
  %22981 = call ptr @strerror(i32 noundef %22980) #11
  %22982 = call ptr @__errno_location() #12
  %22983 = load i32, ptr %22982, align 4, !tbaa !5
  %22984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22971, ptr noundef @.str.5, i32 noundef %22972, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 1366, ptr noundef %22975, ptr noundef %22978, ptr noundef %22981, i32 noundef %22983) #11
  br label %22985

22985:                                            ; preds = %22968, %22951
  call void @llvm.lifetime.end.p0(i64 4, ptr %697) #11
  br label %22986

22986:                                            ; preds = %22985
  br label %22987

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

22988:                                            ; No predecessors!
  br label %22989

22989:                                            ; preds = %22988
  br label %22990

22990:                                            ; preds = %22989, %22932
  br label %22991

22991:                                            ; preds = %22990
  br label %22992

22992:                                            ; preds = %22991
  call void @llvm.lifetime.start.p0(i64 4, ptr %698) #11
  %22993 = getelementptr inbounds %struct.s2n_stuffer, ptr %696, i32 0, i32 2
  %22994 = load i32, ptr %22993, align 4, !tbaa !15
  %22995 = getelementptr inbounds %struct.s2n_stuffer, ptr %696, i32 0, i32 1
  %22996 = load i32, ptr %22995, align 8, !tbaa !18
  %22997 = sub i32 %22994, %22996
  store i32 %22997, ptr %698, align 4, !tbaa !5
  br label %22998

22998:                                            ; preds = %22992
  %22999 = load i32, ptr @test_count, align 4, !tbaa !5
  %23000 = add nsw i32 %22999, 1
  store i32 %23000, ptr @test_count, align 4, !tbaa !5
  %23001 = load i32, ptr %698, align 4, !tbaa !5
  %23002 = icmp ugt i32 %23001, 0
  br i1 %23002, label %23056, label %23003

23003:                                            ; preds = %22998
  br label %23004

23004:                                            ; preds = %23003
  br label %23005

23005:                                            ; preds = %23004
  call void @llvm.lifetime.start.p0(i64 4, ptr %699) #11
  %23006 = call ptr @__errno_location() #12
  %23007 = load i32, ptr %23006, align 4, !tbaa !5
  store i32 %23007, ptr %699, align 4, !tbaa !5
  %23008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23009 = call i32 @s2n_print_stacktrace(ptr noundef %23008)
  %23010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23011 = trunc i8 %23010 to i1
  br i1 %23011, label %23012, label %23034

23012:                                            ; preds = %23005
  %23013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23014 = call i32 @fileno(ptr noundef %23013) #11
  %23015 = call i32 @isatty(i32 noundef %23014) #11
  %23016 = icmp ne i32 %23015, 0
  br i1 %23016, label %23017, label %23034

23017:                                            ; preds = %23012
  %23018 = load i32, ptr %699, align 4, !tbaa !5
  %23019 = call ptr @__errno_location() #12
  store i32 %23018, ptr %23019, align 4, !tbaa !5
  %23020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23021 = load i32, ptr @test_count, align 4, !tbaa !5
  %23022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23023 = load i32, ptr %23022, align 4, !tbaa !5
  %23024 = call ptr @s2n_strerror(i32 noundef %23023, ptr noundef @.str.4)
  %23025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23026 = load i32, ptr %23025, align 4, !tbaa !5
  %23027 = call ptr @s2n_strerror_debug(i32 noundef %23026, ptr noundef @.str.4)
  %23028 = call ptr @__errno_location() #12
  %23029 = load i32, ptr %23028, align 4, !tbaa !5
  %23030 = call ptr @strerror(i32 noundef %23029) #11
  %23031 = call ptr @__errno_location() #12
  %23032 = load i32, ptr %23031, align 4, !tbaa !5
  %23033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23020, ptr noundef @.str.2, i32 noundef %23021, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1368, ptr noundef %23024, ptr noundef %23027, ptr noundef %23030, i32 noundef %23032) #11
  br label %23051

23034:                                            ; preds = %23012, %23005
  %23035 = load i32, ptr %699, align 4, !tbaa !5
  %23036 = call ptr @__errno_location() #12
  store i32 %23035, ptr %23036, align 4, !tbaa !5
  %23037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23038 = load i32, ptr @test_count, align 4, !tbaa !5
  %23039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23040 = load i32, ptr %23039, align 4, !tbaa !5
  %23041 = call ptr @s2n_strerror(i32 noundef %23040, ptr noundef @.str.4)
  %23042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23043 = load i32, ptr %23042, align 4, !tbaa !5
  %23044 = call ptr @s2n_strerror_debug(i32 noundef %23043, ptr noundef @.str.4)
  %23045 = call ptr @__errno_location() #12
  %23046 = load i32, ptr %23045, align 4, !tbaa !5
  %23047 = call ptr @strerror(i32 noundef %23046) #11
  %23048 = call ptr @__errno_location() #12
  %23049 = load i32, ptr %23048, align 4, !tbaa !5
  %23050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23037, ptr noundef @.str.5, i32 noundef %23038, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1368, ptr noundef %23041, ptr noundef %23044, ptr noundef %23047, i32 noundef %23049) #11
  br label %23051

23051:                                            ; preds = %23034, %23017
  call void @llvm.lifetime.end.p0(i64 4, ptr %699) #11
  br label %23052

23052:                                            ; preds = %23051
  br label %23053

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

23054:                                            ; No predecessors!
  br label %23055

23055:                                            ; preds = %23054
  br label %23056

23056:                                            ; preds = %23055, %22998
  br label %23057

23057:                                            ; preds = %23056
  br label %23058

23058:                                            ; preds = %23057
  call void @llvm.lifetime.start.p0(i64 8, ptr %700) #11
  %23059 = load i32, ptr %698, align 4, !tbaa !5
  %23060 = call ptr @s2n_stuffer_raw_read(ptr noundef %696, i32 noundef %23059)
  store ptr %23060, ptr %700, align 8, !tbaa !9
  br label %23061

23061:                                            ; preds = %23058
  br label %23062

23062:                                            ; preds = %23061
  br label %23063

23063:                                            ; preds = %23062
  %23064 = load i32, ptr @test_count, align 4, !tbaa !5
  %23065 = add nsw i32 %23064, 1
  store i32 %23065, ptr @test_count, align 4, !tbaa !5
  %23066 = load ptr, ptr %680, align 8, !tbaa !9
  %23067 = load ptr, ptr %700, align 8, !tbaa !9
  %23068 = load i32, ptr %698, align 4, !tbaa !5
  %23069 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %679, ptr noundef %23066, ptr noundef %23067, i32 noundef %23068)
  %23070 = getelementptr inbounds %struct.s2n_result, ptr %701, i32 0, i32 0
  store i32 %23069, ptr %23070, align 4
  %23071 = getelementptr inbounds %struct.s2n_result, ptr %701, i32 0, i32 0
  %23072 = load i32, ptr %23071, align 4
  %23073 = call zeroext i1 @s2n_result_is_error(i32 %23072)
  br i1 %23073, label %23127, label %23074

23074:                                            ; preds = %23063
  br label %23075

23075:                                            ; preds = %23074
  br label %23076

23076:                                            ; preds = %23075
  call void @llvm.lifetime.start.p0(i64 4, ptr %702) #11
  %23077 = call ptr @__errno_location() #12
  %23078 = load i32, ptr %23077, align 4, !tbaa !5
  store i32 %23078, ptr %702, align 4, !tbaa !5
  %23079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23080 = call i32 @s2n_print_stacktrace(ptr noundef %23079)
  %23081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23082 = trunc i8 %23081 to i1
  br i1 %23082, label %23083, label %23105

23083:                                            ; preds = %23076
  %23084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23085 = call i32 @fileno(ptr noundef %23084) #11
  %23086 = call i32 @isatty(i32 noundef %23085) #11
  %23087 = icmp ne i32 %23086, 0
  br i1 %23087, label %23088, label %23105

23088:                                            ; preds = %23083
  %23089 = load i32, ptr %702, align 4, !tbaa !5
  %23090 = call ptr @__errno_location() #12
  store i32 %23089, ptr %23090, align 4, !tbaa !5
  %23091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23092 = load i32, ptr @test_count, align 4, !tbaa !5
  %23093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23094 = load i32, ptr %23093, align 4, !tbaa !5
  %23095 = call ptr @s2n_strerror(i32 noundef %23094, ptr noundef @.str.4)
  %23096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23097 = load i32, ptr %23096, align 4, !tbaa !5
  %23098 = call ptr @s2n_strerror_debug(i32 noundef %23097, ptr noundef @.str.4)
  %23099 = call ptr @__errno_location() #12
  %23100 = load i32, ptr %23099, align 4, !tbaa !5
  %23101 = call ptr @strerror(i32 noundef %23100) #11
  %23102 = call ptr @__errno_location() #12
  %23103 = load i32, ptr %23102, align 4, !tbaa !5
  %23104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23091, ptr noundef @.str.2, i32 noundef %23092, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1374, ptr noundef %23095, ptr noundef %23098, ptr noundef %23101, i32 noundef %23103) #11
  br label %23122

23105:                                            ; preds = %23083, %23076
  %23106 = load i32, ptr %702, align 4, !tbaa !5
  %23107 = call ptr @__errno_location() #12
  store i32 %23106, ptr %23107, align 4, !tbaa !5
  %23108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23109 = load i32, ptr @test_count, align 4, !tbaa !5
  %23110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23111 = load i32, ptr %23110, align 4, !tbaa !5
  %23112 = call ptr @s2n_strerror(i32 noundef %23111, ptr noundef @.str.4)
  %23113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23114 = load i32, ptr %23113, align 4, !tbaa !5
  %23115 = call ptr @s2n_strerror_debug(i32 noundef %23114, ptr noundef @.str.4)
  %23116 = call ptr @__errno_location() #12
  %23117 = load i32, ptr %23116, align 4, !tbaa !5
  %23118 = call ptr @strerror(i32 noundef %23117) #11
  %23119 = call ptr @__errno_location() #12
  %23120 = load i32, ptr %23119, align 4, !tbaa !5
  %23121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23108, ptr noundef @.str.5, i32 noundef %23109, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 1374, ptr noundef %23112, ptr noundef %23115, ptr noundef %23118, i32 noundef %23120) #11
  br label %23122

23122:                                            ; preds = %23105, %23088
  call void @llvm.lifetime.end.p0(i64 4, ptr %702) #11
  br label %23123

23123:                                            ; preds = %23122
  br label %23124

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

23125:                                            ; No predecessors!
  br label %23126

23126:                                            ; preds = %23125
  br label %23127

23127:                                            ; preds = %23126, %23063
  br label %23128

23128:                                            ; preds = %23127
  br label %23129

23129:                                            ; preds = %23128
  br label %23130

23130:                                            ; preds = %23129
  %23131 = load i32, ptr @test_count, align 4, !tbaa !5
  %23132 = add nsw i32 %23131, 1
  store i32 %23132, ptr @test_count, align 4, !tbaa !5
  %23133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23134 = load i32, ptr %23133, align 4, !tbaa !5
  %23135 = icmp eq i32 %23134, 335544366
  br i1 %23135, label %23189, label %23136

23136:                                            ; preds = %23130
  br label %23137

23137:                                            ; preds = %23136
  br label %23138

23138:                                            ; preds = %23137
  call void @llvm.lifetime.start.p0(i64 4, ptr %703) #11
  %23139 = call ptr @__errno_location() #12
  %23140 = load i32, ptr %23139, align 4, !tbaa !5
  store i32 %23140, ptr %703, align 4, !tbaa !5
  %23141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23142 = call i32 @s2n_print_stacktrace(ptr noundef %23141)
  %23143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23144 = trunc i8 %23143 to i1
  br i1 %23144, label %23145, label %23167

23145:                                            ; preds = %23138
  %23146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23147 = call i32 @fileno(ptr noundef %23146) #11
  %23148 = call i32 @isatty(i32 noundef %23147) #11
  %23149 = icmp ne i32 %23148, 0
  br i1 %23149, label %23150, label %23167

23150:                                            ; preds = %23145
  %23151 = load i32, ptr %703, align 4, !tbaa !5
  %23152 = call ptr @__errno_location() #12
  store i32 %23151, ptr %23152, align 4, !tbaa !5
  %23153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23154 = load i32, ptr @test_count, align 4, !tbaa !5
  %23155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23156 = load i32, ptr %23155, align 4, !tbaa !5
  %23157 = call ptr @s2n_strerror(i32 noundef %23156, ptr noundef @.str.4)
  %23158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23159 = load i32, ptr %23158, align 4, !tbaa !5
  %23160 = call ptr @s2n_strerror_debug(i32 noundef %23159, ptr noundef @.str.4)
  %23161 = call ptr @__errno_location() #12
  %23162 = load i32, ptr %23161, align 4, !tbaa !5
  %23163 = call ptr @strerror(i32 noundef %23162) #11
  %23164 = call ptr @__errno_location() #12
  %23165 = load i32, ptr %23164, align 4, !tbaa !5
  %23166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23153, ptr noundef @.str.2, i32 noundef %23154, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1374, ptr noundef %23157, ptr noundef %23160, ptr noundef %23163, i32 noundef %23165) #11
  br label %23184

23167:                                            ; preds = %23145, %23138
  %23168 = load i32, ptr %703, align 4, !tbaa !5
  %23169 = call ptr @__errno_location() #12
  store i32 %23168, ptr %23169, align 4, !tbaa !5
  %23170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23171 = load i32, ptr @test_count, align 4, !tbaa !5
  %23172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23173 = load i32, ptr %23172, align 4, !tbaa !5
  %23174 = call ptr @s2n_strerror(i32 noundef %23173, ptr noundef @.str.4)
  %23175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23176 = load i32, ptr %23175, align 4, !tbaa !5
  %23177 = call ptr @s2n_strerror_debug(i32 noundef %23176, ptr noundef @.str.4)
  %23178 = call ptr @__errno_location() #12
  %23179 = load i32, ptr %23178, align 4, !tbaa !5
  %23180 = call ptr @strerror(i32 noundef %23179) #11
  %23181 = call ptr @__errno_location() #12
  %23182 = load i32, ptr %23181, align 4, !tbaa !5
  %23183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23170, ptr noundef @.str.5, i32 noundef %23171, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1374, ptr noundef %23174, ptr noundef %23177, ptr noundef %23180, i32 noundef %23182) #11
  br label %23184

23184:                                            ; preds = %23167, %23150
  call void @llvm.lifetime.end.p0(i64 4, ptr %703) #11
  br label %23185

23185:                                            ; preds = %23184
  br label %23186

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

23187:                                            ; No predecessors!
  br label %23188

23188:                                            ; preds = %23187
  br label %23189

23189:                                            ; preds = %23188, %23130
  br label %23190

23190:                                            ; preds = %23189
  br label %23191

23191:                                            ; preds = %23190
  br label %23192

23192:                                            ; preds = %23191
  %23193 = load i32, ptr @test_count, align 4, !tbaa !5
  %23194 = add nsw i32 %23193, 1
  store i32 %23194, ptr @test_count, align 4, !tbaa !5
  %23195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23196 = load i32, ptr %23195, align 4, !tbaa !5
  %23197 = call ptr @s2n_strerror_debug(i32 noundef %23196, ptr noundef @.str.4)
  %23198 = icmp eq ptr %23197, null
  br i1 %23198, label %23199, label %23252

23199:                                            ; preds = %23192
  br label %23200

23200:                                            ; preds = %23199
  br label %23201

23201:                                            ; preds = %23200
  call void @llvm.lifetime.start.p0(i64 4, ptr %704) #11
  %23202 = call ptr @__errno_location() #12
  %23203 = load i32, ptr %23202, align 4, !tbaa !5
  store i32 %23203, ptr %704, align 4, !tbaa !5
  %23204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23205 = call i32 @s2n_print_stacktrace(ptr noundef %23204)
  %23206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23207 = trunc i8 %23206 to i1
  br i1 %23207, label %23208, label %23230

23208:                                            ; preds = %23201
  %23209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23210 = call i32 @fileno(ptr noundef %23209) #11
  %23211 = call i32 @isatty(i32 noundef %23210) #11
  %23212 = icmp ne i32 %23211, 0
  br i1 %23212, label %23213, label %23230

23213:                                            ; preds = %23208
  %23214 = load i32, ptr %704, align 4, !tbaa !5
  %23215 = call ptr @__errno_location() #12
  store i32 %23214, ptr %23215, align 4, !tbaa !5
  %23216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23217 = load i32, ptr @test_count, align 4, !tbaa !5
  %23218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23219 = load i32, ptr %23218, align 4, !tbaa !5
  %23220 = call ptr @s2n_strerror(i32 noundef %23219, ptr noundef @.str.4)
  %23221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23222 = load i32, ptr %23221, align 4, !tbaa !5
  %23223 = call ptr @s2n_strerror_debug(i32 noundef %23222, ptr noundef @.str.4)
  %23224 = call ptr @__errno_location() #12
  %23225 = load i32, ptr %23224, align 4, !tbaa !5
  %23226 = call ptr @strerror(i32 noundef %23225) #11
  %23227 = call ptr @__errno_location() #12
  %23228 = load i32, ptr %23227, align 4, !tbaa !5
  %23229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23216, ptr noundef @.str.2, i32 noundef %23217, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1374, ptr noundef %23220, ptr noundef %23223, ptr noundef %23226, i32 noundef %23228) #11
  br label %23247

23230:                                            ; preds = %23208, %23201
  %23231 = load i32, ptr %704, align 4, !tbaa !5
  %23232 = call ptr @__errno_location() #12
  store i32 %23231, ptr %23232, align 4, !tbaa !5
  %23233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23234 = load i32, ptr @test_count, align 4, !tbaa !5
  %23235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23236 = load i32, ptr %23235, align 4, !tbaa !5
  %23237 = call ptr @s2n_strerror(i32 noundef %23236, ptr noundef @.str.4)
  %23238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23239 = load i32, ptr %23238, align 4, !tbaa !5
  %23240 = call ptr @s2n_strerror_debug(i32 noundef %23239, ptr noundef @.str.4)
  %23241 = call ptr @__errno_location() #12
  %23242 = load i32, ptr %23241, align 4, !tbaa !5
  %23243 = call ptr @strerror(i32 noundef %23242) #11
  %23244 = call ptr @__errno_location() #12
  %23245 = load i32, ptr %23244, align 4, !tbaa !5
  %23246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23233, ptr noundef @.str.5, i32 noundef %23234, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1374, ptr noundef %23237, ptr noundef %23240, ptr noundef %23243, i32 noundef %23245) #11
  br label %23247

23247:                                            ; preds = %23230, %23213
  call void @llvm.lifetime.end.p0(i64 4, ptr %704) #11
  br label %23248

23248:                                            ; preds = %23247
  br label %23249

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

23250:                                            ; No predecessors!
  br label %23251

23251:                                            ; preds = %23250
  br label %23252

23252:                                            ; preds = %23251, %23192
  br label %23253

23253:                                            ; preds = %23252
  br label %23254

23254:                                            ; preds = %23253
  br label %23255

23255:                                            ; preds = %23254
  br label %23256

23256:                                            ; preds = %23255
  br label %23257

23257:                                            ; preds = %23256
  %23258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %23258, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %23259 = call ptr @__errno_location() #12
  store i32 0, ptr %23259, align 4, !tbaa !5
  br label %23260

23260:                                            ; preds = %23257
  br label %23261

23261:                                            ; preds = %23260
  br label %23262

23262:                                            ; preds = %23261
  br label %23263

23263:                                            ; preds = %23262
  %23264 = call i32 @s2n_stuffer_free(ptr noundef %696)
  %23265 = load ptr, ptr %680, align 8, !tbaa !9
  %23266 = call i32 @s2n_connection_free(ptr noundef %23265)
  %23267 = call i32 @s2n_pkey_free(ptr noundef %690)
  %23268 = call i32 @s2n_x509_validator_wipe(ptr noundef %679)
  call void @s2n_x509_trust_store_wipe(ptr noundef %677)
  call void @llvm.lifetime.end.p0(i64 8, ptr %700) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %698) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %696) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %692) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %690) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %688) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %687) #11
  %23269 = call i32 @s2n_stuffer_free(ptr noundef %684)
  call void @llvm.lifetime.end.p0(i64 40, ptr %684) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %682) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %680) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %679) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %677) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %705) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %705)
  br label %23270

23270:                                            ; preds = %23263
  %23271 = load i32, ptr @test_count, align 4, !tbaa !5
  %23272 = add nsw i32 %23271, 1
  store i32 %23272, ptr @test_count, align 4, !tbaa !5
  %23273 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %705, ptr noundef @.str.48, ptr noundef null)
  %23274 = icmp eq i32 %23273, -1
  br i1 %23274, label %23275, label %23328

23275:                                            ; preds = %23270
  br label %23276

23276:                                            ; preds = %23275
  br label %23277

23277:                                            ; preds = %23276
  call void @llvm.lifetime.start.p0(i64 4, ptr %706) #11
  %23278 = call ptr @__errno_location() #12
  %23279 = load i32, ptr %23278, align 4, !tbaa !5
  store i32 %23279, ptr %706, align 4, !tbaa !5
  %23280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23281 = call i32 @s2n_print_stacktrace(ptr noundef %23280)
  %23282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23283 = trunc i8 %23282 to i1
  br i1 %23283, label %23284, label %23306

23284:                                            ; preds = %23277
  %23285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23286 = call i32 @fileno(ptr noundef %23285) #11
  %23287 = call i32 @isatty(i32 noundef %23286) #11
  %23288 = icmp ne i32 %23287, 0
  br i1 %23288, label %23289, label %23306

23289:                                            ; preds = %23284
  %23290 = load i32, ptr %706, align 4, !tbaa !5
  %23291 = call ptr @__errno_location() #12
  store i32 %23290, ptr %23291, align 4, !tbaa !5
  %23292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23293 = load i32, ptr @test_count, align 4, !tbaa !5
  %23294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23295 = load i32, ptr %23294, align 4, !tbaa !5
  %23296 = call ptr @s2n_strerror(i32 noundef %23295, ptr noundef @.str.4)
  %23297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23298 = load i32, ptr %23297, align 4, !tbaa !5
  %23299 = call ptr @s2n_strerror_debug(i32 noundef %23298, ptr noundef @.str.4)
  %23300 = call ptr @__errno_location() #12
  %23301 = load i32, ptr %23300, align 4, !tbaa !5
  %23302 = call ptr @strerror(i32 noundef %23301) #11
  %23303 = call ptr @__errno_location() #12
  %23304 = load i32, ptr %23303, align 4, !tbaa !5
  %23305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23292, ptr noundef @.str.2, i32 noundef %23293, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1387, ptr noundef %23296, ptr noundef %23299, ptr noundef %23302, i32 noundef %23304) #11
  br label %23323

23306:                                            ; preds = %23284, %23277
  %23307 = load i32, ptr %706, align 4, !tbaa !5
  %23308 = call ptr @__errno_location() #12
  store i32 %23307, ptr %23308, align 4, !tbaa !5
  %23309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23310 = load i32, ptr @test_count, align 4, !tbaa !5
  %23311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23312 = load i32, ptr %23311, align 4, !tbaa !5
  %23313 = call ptr @s2n_strerror(i32 noundef %23312, ptr noundef @.str.4)
  %23314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23315 = load i32, ptr %23314, align 4, !tbaa !5
  %23316 = call ptr @s2n_strerror_debug(i32 noundef %23315, ptr noundef @.str.4)
  %23317 = call ptr @__errno_location() #12
  %23318 = load i32, ptr %23317, align 4, !tbaa !5
  %23319 = call ptr @strerror(i32 noundef %23318) #11
  %23320 = call ptr @__errno_location() #12
  %23321 = load i32, ptr %23320, align 4, !tbaa !5
  %23322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23309, ptr noundef @.str.5, i32 noundef %23310, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1387, ptr noundef %23313, ptr noundef %23316, ptr noundef %23319, i32 noundef %23321) #11
  br label %23323

23323:                                            ; preds = %23306, %23289
  call void @llvm.lifetime.end.p0(i64 4, ptr %706) #11
  br label %23324

23324:                                            ; preds = %23323
  br label %23325

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

23326:                                            ; No predecessors!
  br label %23327

23327:                                            ; preds = %23326
  br label %23328

23328:                                            ; preds = %23327, %23270
  br label %23329

23329:                                            ; preds = %23328
  br label %23330

23330:                                            ; preds = %23329
  call void @llvm.lifetime.start.p0(i64 56, ptr %707) #11
  %23331 = call i32 @s2n_x509_validator_init(ptr noundef %707, ptr noundef %705, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %708) #11
  %23332 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %23332, ptr %708, align 8, !tbaa !9
  br label %23333

23333:                                            ; preds = %23330
  %23334 = load i32, ptr @test_count, align 4, !tbaa !5
  %23335 = add nsw i32 %23334, 1
  store i32 %23335, ptr @test_count, align 4, !tbaa !5
  %23336 = load ptr, ptr %708, align 8, !tbaa !9
  %23337 = icmp eq ptr %23336, null
  br i1 %23337, label %23338, label %23391

23338:                                            ; preds = %23333
  br label %23339

23339:                                            ; preds = %23338
  br label %23340

23340:                                            ; preds = %23339
  call void @llvm.lifetime.start.p0(i64 4, ptr %709) #11
  %23341 = call ptr @__errno_location() #12
  %23342 = load i32, ptr %23341, align 4, !tbaa !5
  store i32 %23342, ptr %709, align 4, !tbaa !5
  %23343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23344 = call i32 @s2n_print_stacktrace(ptr noundef %23343)
  %23345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23346 = trunc i8 %23345 to i1
  br i1 %23346, label %23347, label %23369

23347:                                            ; preds = %23340
  %23348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23349 = call i32 @fileno(ptr noundef %23348) #11
  %23350 = call i32 @isatty(i32 noundef %23349) #11
  %23351 = icmp ne i32 %23350, 0
  br i1 %23351, label %23352, label %23369

23352:                                            ; preds = %23347
  %23353 = load i32, ptr %709, align 4, !tbaa !5
  %23354 = call ptr @__errno_location() #12
  store i32 %23353, ptr %23354, align 4, !tbaa !5
  %23355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23356 = load i32, ptr @test_count, align 4, !tbaa !5
  %23357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23358 = load i32, ptr %23357, align 4, !tbaa !5
  %23359 = call ptr @s2n_strerror(i32 noundef %23358, ptr noundef @.str.4)
  %23360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23361 = load i32, ptr %23360, align 4, !tbaa !5
  %23362 = call ptr @s2n_strerror_debug(i32 noundef %23361, ptr noundef @.str.4)
  %23363 = call ptr @__errno_location() #12
  %23364 = load i32, ptr %23363, align 4, !tbaa !5
  %23365 = call ptr @strerror(i32 noundef %23364) #11
  %23366 = call ptr @__errno_location() #12
  %23367 = load i32, ptr %23366, align 4, !tbaa !5
  %23368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23355, ptr noundef @.str.2, i32 noundef %23356, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1393, ptr noundef %23359, ptr noundef %23362, ptr noundef %23365, i32 noundef %23367) #11
  br label %23386

23369:                                            ; preds = %23347, %23340
  %23370 = load i32, ptr %709, align 4, !tbaa !5
  %23371 = call ptr @__errno_location() #12
  store i32 %23370, ptr %23371, align 4, !tbaa !5
  %23372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23373 = load i32, ptr @test_count, align 4, !tbaa !5
  %23374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23375 = load i32, ptr %23374, align 4, !tbaa !5
  %23376 = call ptr @s2n_strerror(i32 noundef %23375, ptr noundef @.str.4)
  %23377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23378 = load i32, ptr %23377, align 4, !tbaa !5
  %23379 = call ptr @s2n_strerror_debug(i32 noundef %23378, ptr noundef @.str.4)
  %23380 = call ptr @__errno_location() #12
  %23381 = load i32, ptr %23380, align 4, !tbaa !5
  %23382 = call ptr @strerror(i32 noundef %23381) #11
  %23383 = call ptr @__errno_location() #12
  %23384 = load i32, ptr %23383, align 4, !tbaa !5
  %23385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23372, ptr noundef @.str.5, i32 noundef %23373, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1393, ptr noundef %23376, ptr noundef %23379, ptr noundef %23382, i32 noundef %23384) #11
  br label %23386

23386:                                            ; preds = %23369, %23352
  call void @llvm.lifetime.end.p0(i64 4, ptr %709) #11
  br label %23387

23387:                                            ; preds = %23386
  br label %23388

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

23389:                                            ; No predecessors!
  br label %23390

23390:                                            ; preds = %23389
  br label %23391

23391:                                            ; preds = %23390, %23333
  br label %23392

23392:                                            ; preds = %23391
  br label %23393

23393:                                            ; preds = %23392
  call void @llvm.lifetime.start.p0(i64 16, ptr %710) #11
  call void @llvm.memset.p0.i64(ptr align 8 %710, i8 0, i64 16, i1 false)
  br label %23394

23394:                                            ; preds = %23393
  %23395 = load i32, ptr @test_count, align 4, !tbaa !5
  %23396 = add nsw i32 %23395, 1
  store i32 %23396, ptr @test_count, align 4, !tbaa !5
  %23397 = load ptr, ptr %708, align 8, !tbaa !9
  %23398 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %23397, ptr noundef @verify_host_accept_everything, ptr noundef %710)
  %23399 = icmp eq i32 %23398, -1
  br i1 %23399, label %23400, label %23453

23400:                                            ; preds = %23394
  br label %23401

23401:                                            ; preds = %23400
  br label %23402

23402:                                            ; preds = %23401
  call void @llvm.lifetime.start.p0(i64 4, ptr %711) #11
  %23403 = call ptr @__errno_location() #12
  %23404 = load i32, ptr %23403, align 4, !tbaa !5
  store i32 %23404, ptr %711, align 4, !tbaa !5
  %23405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23406 = call i32 @s2n_print_stacktrace(ptr noundef %23405)
  %23407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23408 = trunc i8 %23407 to i1
  br i1 %23408, label %23409, label %23431

23409:                                            ; preds = %23402
  %23410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23411 = call i32 @fileno(ptr noundef %23410) #11
  %23412 = call i32 @isatty(i32 noundef %23411) #11
  %23413 = icmp ne i32 %23412, 0
  br i1 %23413, label %23414, label %23431

23414:                                            ; preds = %23409
  %23415 = load i32, ptr %711, align 4, !tbaa !5
  %23416 = call ptr @__errno_location() #12
  store i32 %23415, ptr %23416, align 4, !tbaa !5
  %23417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23418 = load i32, ptr @test_count, align 4, !tbaa !5
  %23419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23420 = load i32, ptr %23419, align 4, !tbaa !5
  %23421 = call ptr @s2n_strerror(i32 noundef %23420, ptr noundef @.str.4)
  %23422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23423 = load i32, ptr %23422, align 4, !tbaa !5
  %23424 = call ptr @s2n_strerror_debug(i32 noundef %23423, ptr noundef @.str.4)
  %23425 = call ptr @__errno_location() #12
  %23426 = load i32, ptr %23425, align 4, !tbaa !5
  %23427 = call ptr @strerror(i32 noundef %23426) #11
  %23428 = call ptr @__errno_location() #12
  %23429 = load i32, ptr %23428, align 4, !tbaa !5
  %23430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23417, ptr noundef @.str.2, i32 noundef %23418, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1396, ptr noundef %23421, ptr noundef %23424, ptr noundef %23427, i32 noundef %23429) #11
  br label %23448

23431:                                            ; preds = %23409, %23402
  %23432 = load i32, ptr %711, align 4, !tbaa !5
  %23433 = call ptr @__errno_location() #12
  store i32 %23432, ptr %23433, align 4, !tbaa !5
  %23434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23435 = load i32, ptr @test_count, align 4, !tbaa !5
  %23436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23437 = load i32, ptr %23436, align 4, !tbaa !5
  %23438 = call ptr @s2n_strerror(i32 noundef %23437, ptr noundef @.str.4)
  %23439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23440 = load i32, ptr %23439, align 4, !tbaa !5
  %23441 = call ptr @s2n_strerror_debug(i32 noundef %23440, ptr noundef @.str.4)
  %23442 = call ptr @__errno_location() #12
  %23443 = load i32, ptr %23442, align 4, !tbaa !5
  %23444 = call ptr @strerror(i32 noundef %23443) #11
  %23445 = call ptr @__errno_location() #12
  %23446 = load i32, ptr %23445, align 4, !tbaa !5
  %23447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23434, ptr noundef @.str.5, i32 noundef %23435, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1396, ptr noundef %23438, ptr noundef %23441, ptr noundef %23444, i32 noundef %23446) #11
  br label %23448

23448:                                            ; preds = %23431, %23414
  call void @llvm.lifetime.end.p0(i64 4, ptr %711) #11
  br label %23449

23449:                                            ; preds = %23448
  br label %23450

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

23451:                                            ; No predecessors!
  br label %23452

23452:                                            ; preds = %23451
  br label %23453

23453:                                            ; preds = %23452, %23394
  br label %23454

23454:                                            ; preds = %23453
  br label %23455

23455:                                            ; preds = %23454
  call void @llvm.lifetime.start.p0(i64 40, ptr %712) #11
  call void @llvm.memset.p0.i64(ptr align 8 %712, i8 0, i64 40, i1 false)
  br label %23456

23456:                                            ; preds = %23455
  %23457 = load i32, ptr @test_count, align 4, !tbaa !5
  %23458 = add nsw i32 %23457, 1
  store i32 %23458, ptr @test_count, align 4, !tbaa !5
  %23459 = load ptr, ptr %708, align 8, !tbaa !9
  %23460 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %23459, ptr noundef @.str.72, ptr noundef %712)
  %23461 = getelementptr inbounds %struct.s2n_result, ptr %713, i32 0, i32 0
  store i32 %23460, ptr %23461, align 4
  %23462 = getelementptr inbounds %struct.s2n_result, ptr %713, i32 0, i32 0
  %23463 = load i32, ptr %23462, align 4
  %23464 = call zeroext i1 @s2n_result_is_ok(i32 %23463)
  br i1 %23464, label %23518, label %23465

23465:                                            ; preds = %23456
  br label %23466

23466:                                            ; preds = %23465
  br label %23467

23467:                                            ; preds = %23466
  call void @llvm.lifetime.start.p0(i64 4, ptr %714) #11
  %23468 = call ptr @__errno_location() #12
  %23469 = load i32, ptr %23468, align 4, !tbaa !5
  store i32 %23469, ptr %714, align 4, !tbaa !5
  %23470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23471 = call i32 @s2n_print_stacktrace(ptr noundef %23470)
  %23472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23473 = trunc i8 %23472 to i1
  br i1 %23473, label %23474, label %23496

23474:                                            ; preds = %23467
  %23475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23476 = call i32 @fileno(ptr noundef %23475) #11
  %23477 = call i32 @isatty(i32 noundef %23476) #11
  %23478 = icmp ne i32 %23477, 0
  br i1 %23478, label %23479, label %23496

23479:                                            ; preds = %23474
  %23480 = load i32, ptr %714, align 4, !tbaa !5
  %23481 = call ptr @__errno_location() #12
  store i32 %23480, ptr %23481, align 4, !tbaa !5
  %23482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23483 = load i32, ptr @test_count, align 4, !tbaa !5
  %23484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23485 = load i32, ptr %23484, align 4, !tbaa !5
  %23486 = call ptr @s2n_strerror(i32 noundef %23485, ptr noundef @.str.4)
  %23487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23488 = load i32, ptr %23487, align 4, !tbaa !5
  %23489 = call ptr @s2n_strerror_debug(i32 noundef %23488, ptr noundef @.str.4)
  %23490 = call ptr @__errno_location() #12
  %23491 = load i32, ptr %23490, align 4, !tbaa !5
  %23492 = call ptr @strerror(i32 noundef %23491) #11
  %23493 = call ptr @__errno_location() #12
  %23494 = load i32, ptr %23493, align 4, !tbaa !5
  %23495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23482, ptr noundef @.str.2, i32 noundef %23483, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1399, ptr noundef %23486, ptr noundef %23489, ptr noundef %23492, i32 noundef %23494) #11
  br label %23513

23496:                                            ; preds = %23474, %23467
  %23497 = load i32, ptr %714, align 4, !tbaa !5
  %23498 = call ptr @__errno_location() #12
  store i32 %23497, ptr %23498, align 4, !tbaa !5
  %23499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23500 = load i32, ptr @test_count, align 4, !tbaa !5
  %23501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23502 = load i32, ptr %23501, align 4, !tbaa !5
  %23503 = call ptr @s2n_strerror(i32 noundef %23502, ptr noundef @.str.4)
  %23504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23505 = load i32, ptr %23504, align 4, !tbaa !5
  %23506 = call ptr @s2n_strerror_debug(i32 noundef %23505, ptr noundef @.str.4)
  %23507 = call ptr @__errno_location() #12
  %23508 = load i32, ptr %23507, align 4, !tbaa !5
  %23509 = call ptr @strerror(i32 noundef %23508) #11
  %23510 = call ptr @__errno_location() #12
  %23511 = load i32, ptr %23510, align 4, !tbaa !5
  %23512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23499, ptr noundef @.str.5, i32 noundef %23500, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 1399, ptr noundef %23503, ptr noundef %23506, ptr noundef %23509, i32 noundef %23511) #11
  br label %23513

23513:                                            ; preds = %23496, %23479
  call void @llvm.lifetime.end.p0(i64 4, ptr %714) #11
  br label %23514

23514:                                            ; preds = %23513
  br label %23515

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

23516:                                            ; No predecessors!
  br label %23517

23517:                                            ; preds = %23516
  br label %23518

23518:                                            ; preds = %23517, %23456
  br label %23519

23519:                                            ; preds = %23518
  br label %23520

23520:                                            ; preds = %23519
  call void @llvm.lifetime.start.p0(i64 4, ptr %715) #11
  %23521 = getelementptr inbounds %struct.s2n_stuffer, ptr %712, i32 0, i32 2
  %23522 = load i32, ptr %23521, align 4, !tbaa !15
  %23523 = getelementptr inbounds %struct.s2n_stuffer, ptr %712, i32 0, i32 1
  %23524 = load i32, ptr %23523, align 8, !tbaa !18
  %23525 = sub i32 %23522, %23524
  store i32 %23525, ptr %715, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %716) #11
  %23526 = load i32, ptr %715, align 4, !tbaa !5
  %23527 = call ptr @s2n_stuffer_raw_read(ptr noundef %712, i32 noundef %23526)
  store ptr %23527, ptr %716, align 8, !tbaa !9
  br label %23528

23528:                                            ; preds = %23520
  %23529 = load i32, ptr @test_count, align 4, !tbaa !5
  %23530 = add nsw i32 %23529, 1
  store i32 %23530, ptr @test_count, align 4, !tbaa !5
  %23531 = load ptr, ptr %716, align 8, !tbaa !9
  %23532 = icmp eq ptr %23531, null
  br i1 %23532, label %23533, label %23586

23533:                                            ; preds = %23528
  br label %23534

23534:                                            ; preds = %23533
  br label %23535

23535:                                            ; preds = %23534
  call void @llvm.lifetime.start.p0(i64 4, ptr %717) #11
  %23536 = call ptr @__errno_location() #12
  %23537 = load i32, ptr %23536, align 4, !tbaa !5
  store i32 %23537, ptr %717, align 4, !tbaa !5
  %23538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23539 = call i32 @s2n_print_stacktrace(ptr noundef %23538)
  %23540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23541 = trunc i8 %23540 to i1
  br i1 %23541, label %23542, label %23564

23542:                                            ; preds = %23535
  %23543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23544 = call i32 @fileno(ptr noundef %23543) #11
  %23545 = call i32 @isatty(i32 noundef %23544) #11
  %23546 = icmp ne i32 %23545, 0
  br i1 %23546, label %23547, label %23564

23547:                                            ; preds = %23542
  %23548 = load i32, ptr %717, align 4, !tbaa !5
  %23549 = call ptr @__errno_location() #12
  store i32 %23548, ptr %23549, align 4, !tbaa !5
  %23550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23551 = load i32, ptr @test_count, align 4, !tbaa !5
  %23552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23553 = load i32, ptr %23552, align 4, !tbaa !5
  %23554 = call ptr @s2n_strerror(i32 noundef %23553, ptr noundef @.str.4)
  %23555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23556 = load i32, ptr %23555, align 4, !tbaa !5
  %23557 = call ptr @s2n_strerror_debug(i32 noundef %23556, ptr noundef @.str.4)
  %23558 = call ptr @__errno_location() #12
  %23559 = load i32, ptr %23558, align 4, !tbaa !5
  %23560 = call ptr @strerror(i32 noundef %23559) #11
  %23561 = call ptr @__errno_location() #12
  %23562 = load i32, ptr %23561, align 4, !tbaa !5
  %23563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23550, ptr noundef @.str.2, i32 noundef %23551, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1402, ptr noundef %23554, ptr noundef %23557, ptr noundef %23560, i32 noundef %23562) #11
  br label %23581

23564:                                            ; preds = %23542, %23535
  %23565 = load i32, ptr %717, align 4, !tbaa !5
  %23566 = call ptr @__errno_location() #12
  store i32 %23565, ptr %23566, align 4, !tbaa !5
  %23567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23568 = load i32, ptr @test_count, align 4, !tbaa !5
  %23569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23570 = load i32, ptr %23569, align 4, !tbaa !5
  %23571 = call ptr @s2n_strerror(i32 noundef %23570, ptr noundef @.str.4)
  %23572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23573 = load i32, ptr %23572, align 4, !tbaa !5
  %23574 = call ptr @s2n_strerror_debug(i32 noundef %23573, ptr noundef @.str.4)
  %23575 = call ptr @__errno_location() #12
  %23576 = load i32, ptr %23575, align 4, !tbaa !5
  %23577 = call ptr @strerror(i32 noundef %23576) #11
  %23578 = call ptr @__errno_location() #12
  %23579 = load i32, ptr %23578, align 4, !tbaa !5
  %23580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23567, ptr noundef @.str.5, i32 noundef %23568, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1402, ptr noundef %23571, ptr noundef %23574, ptr noundef %23577, i32 noundef %23579) #11
  br label %23581

23581:                                            ; preds = %23564, %23547
  call void @llvm.lifetime.end.p0(i64 4, ptr %717) #11
  br label %23582

23582:                                            ; preds = %23581
  br label %23583

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

23584:                                            ; No predecessors!
  br label %23585

23585:                                            ; preds = %23584
  br label %23586

23586:                                            ; preds = %23585, %23528
  br label %23587

23587:                                            ; preds = %23586
  br label %23588

23588:                                            ; preds = %23587
  call void @llvm.lifetime.start.p0(i64 48, ptr %718) #11
  br label %23589

23589:                                            ; preds = %23588
  %23590 = load i32, ptr @test_count, align 4, !tbaa !5
  %23591 = add nsw i32 %23590, 1
  store i32 %23591, ptr @test_count, align 4, !tbaa !5
  %23592 = call i32 @s2n_pkey_zero_init(ptr noundef %718)
  %23593 = icmp eq i32 %23592, -1
  br i1 %23593, label %23594, label %23647

23594:                                            ; preds = %23589
  br label %23595

23595:                                            ; preds = %23594
  br label %23596

23596:                                            ; preds = %23595
  call void @llvm.lifetime.start.p0(i64 4, ptr %719) #11
  %23597 = call ptr @__errno_location() #12
  %23598 = load i32, ptr %23597, align 4, !tbaa !5
  store i32 %23598, ptr %719, align 4, !tbaa !5
  %23599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23600 = call i32 @s2n_print_stacktrace(ptr noundef %23599)
  %23601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23602 = trunc i8 %23601 to i1
  br i1 %23602, label %23603, label %23625

23603:                                            ; preds = %23596
  %23604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23605 = call i32 @fileno(ptr noundef %23604) #11
  %23606 = call i32 @isatty(i32 noundef %23605) #11
  %23607 = icmp ne i32 %23606, 0
  br i1 %23607, label %23608, label %23625

23608:                                            ; preds = %23603
  %23609 = load i32, ptr %719, align 4, !tbaa !5
  %23610 = call ptr @__errno_location() #12
  store i32 %23609, ptr %23610, align 4, !tbaa !5
  %23611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23612 = load i32, ptr @test_count, align 4, !tbaa !5
  %23613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23614 = load i32, ptr %23613, align 4, !tbaa !5
  %23615 = call ptr @s2n_strerror(i32 noundef %23614, ptr noundef @.str.4)
  %23616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23617 = load i32, ptr %23616, align 4, !tbaa !5
  %23618 = call ptr @s2n_strerror_debug(i32 noundef %23617, ptr noundef @.str.4)
  %23619 = call ptr @__errno_location() #12
  %23620 = load i32, ptr %23619, align 4, !tbaa !5
  %23621 = call ptr @strerror(i32 noundef %23620) #11
  %23622 = call ptr @__errno_location() #12
  %23623 = load i32, ptr %23622, align 4, !tbaa !5
  %23624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23611, ptr noundef @.str.2, i32 noundef %23612, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1405, ptr noundef %23615, ptr noundef %23618, ptr noundef %23621, i32 noundef %23623) #11
  br label %23642

23625:                                            ; preds = %23603, %23596
  %23626 = load i32, ptr %719, align 4, !tbaa !5
  %23627 = call ptr @__errno_location() #12
  store i32 %23626, ptr %23627, align 4, !tbaa !5
  %23628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23629 = load i32, ptr @test_count, align 4, !tbaa !5
  %23630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23631 = load i32, ptr %23630, align 4, !tbaa !5
  %23632 = call ptr @s2n_strerror(i32 noundef %23631, ptr noundef @.str.4)
  %23633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23634 = load i32, ptr %23633, align 4, !tbaa !5
  %23635 = call ptr @s2n_strerror_debug(i32 noundef %23634, ptr noundef @.str.4)
  %23636 = call ptr @__errno_location() #12
  %23637 = load i32, ptr %23636, align 4, !tbaa !5
  %23638 = call ptr @strerror(i32 noundef %23637) #11
  %23639 = call ptr @__errno_location() #12
  %23640 = load i32, ptr %23639, align 4, !tbaa !5
  %23641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23628, ptr noundef @.str.5, i32 noundef %23629, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1405, ptr noundef %23632, ptr noundef %23635, ptr noundef %23638, i32 noundef %23640) #11
  br label %23642

23642:                                            ; preds = %23625, %23608
  call void @llvm.lifetime.end.p0(i64 4, ptr %719) #11
  br label %23643

23643:                                            ; preds = %23642
  br label %23644

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

23645:                                            ; No predecessors!
  br label %23646

23646:                                            ; preds = %23645
  br label %23647

23647:                                            ; preds = %23646, %23589
  br label %23648

23648:                                            ; preds = %23647
  br label %23649

23649:                                            ; preds = %23648
  call void @llvm.lifetime.start.p0(i64 4, ptr %720) #11
  store i32 -1, ptr %720, align 4, !tbaa !5
  br label %23650

23650:                                            ; preds = %23649
  %23651 = load i32, ptr @test_count, align 4, !tbaa !5
  %23652 = add nsw i32 %23651, 1
  store i32 %23652, ptr @test_count, align 4, !tbaa !5
  %23653 = load ptr, ptr %708, align 8, !tbaa !9
  %23654 = load ptr, ptr %716, align 8, !tbaa !9
  %23655 = load i32, ptr %715, align 4, !tbaa !5
  %23656 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %707, ptr noundef %23653, ptr noundef %23654, i32 noundef %23655, ptr noundef %720, ptr noundef %718)
  %23657 = getelementptr inbounds %struct.s2n_result, ptr %721, i32 0, i32 0
  store i32 %23656, ptr %23657, align 4
  %23658 = getelementptr inbounds %struct.s2n_result, ptr %721, i32 0, i32 0
  %23659 = load i32, ptr %23658, align 4
  %23660 = call zeroext i1 @s2n_result_is_ok(i32 %23659)
  br i1 %23660, label %23714, label %23661

23661:                                            ; preds = %23650
  br label %23662

23662:                                            ; preds = %23661
  br label %23663

23663:                                            ; preds = %23662
  call void @llvm.lifetime.start.p0(i64 4, ptr %722) #11
  %23664 = call ptr @__errno_location() #12
  %23665 = load i32, ptr %23664, align 4, !tbaa !5
  store i32 %23665, ptr %722, align 4, !tbaa !5
  %23666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23667 = call i32 @s2n_print_stacktrace(ptr noundef %23666)
  %23668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23669 = trunc i8 %23668 to i1
  br i1 %23669, label %23670, label %23692

23670:                                            ; preds = %23663
  %23671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23672 = call i32 @fileno(ptr noundef %23671) #11
  %23673 = call i32 @isatty(i32 noundef %23672) #11
  %23674 = icmp ne i32 %23673, 0
  br i1 %23674, label %23675, label %23692

23675:                                            ; preds = %23670
  %23676 = load i32, ptr %722, align 4, !tbaa !5
  %23677 = call ptr @__errno_location() #12
  store i32 %23676, ptr %23677, align 4, !tbaa !5
  %23678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23679 = load i32, ptr @test_count, align 4, !tbaa !5
  %23680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23681 = load i32, ptr %23680, align 4, !tbaa !5
  %23682 = call ptr @s2n_strerror(i32 noundef %23681, ptr noundef @.str.4)
  %23683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23684 = load i32, ptr %23683, align 4, !tbaa !5
  %23685 = call ptr @s2n_strerror_debug(i32 noundef %23684, ptr noundef @.str.4)
  %23686 = call ptr @__errno_location() #12
  %23687 = load i32, ptr %23686, align 4, !tbaa !5
  %23688 = call ptr @strerror(i32 noundef %23687) #11
  %23689 = call ptr @__errno_location() #12
  %23690 = load i32, ptr %23689, align 4, !tbaa !5
  %23691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23678, ptr noundef @.str.2, i32 noundef %23679, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1407, ptr noundef %23682, ptr noundef %23685, ptr noundef %23688, i32 noundef %23690) #11
  br label %23709

23692:                                            ; preds = %23670, %23663
  %23693 = load i32, ptr %722, align 4, !tbaa !5
  %23694 = call ptr @__errno_location() #12
  store i32 %23693, ptr %23694, align 4, !tbaa !5
  %23695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23696 = load i32, ptr @test_count, align 4, !tbaa !5
  %23697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23698 = load i32, ptr %23697, align 4, !tbaa !5
  %23699 = call ptr @s2n_strerror(i32 noundef %23698, ptr noundef @.str.4)
  %23700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23701 = load i32, ptr %23700, align 4, !tbaa !5
  %23702 = call ptr @s2n_strerror_debug(i32 noundef %23701, ptr noundef @.str.4)
  %23703 = call ptr @__errno_location() #12
  %23704 = load i32, ptr %23703, align 4, !tbaa !5
  %23705 = call ptr @strerror(i32 noundef %23704) #11
  %23706 = call ptr @__errno_location() #12
  %23707 = load i32, ptr %23706, align 4, !tbaa !5
  %23708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23695, ptr noundef @.str.5, i32 noundef %23696, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1407, ptr noundef %23699, ptr noundef %23702, ptr noundef %23705, i32 noundef %23707) #11
  br label %23709

23709:                                            ; preds = %23692, %23675
  call void @llvm.lifetime.end.p0(i64 4, ptr %722) #11
  br label %23710

23710:                                            ; preds = %23709
  br label %23711

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

23712:                                            ; No predecessors!
  br label %23713

23713:                                            ; preds = %23712
  br label %23714

23714:                                            ; preds = %23713, %23650
  br label %23715

23715:                                            ; preds = %23714
  br label %23716

23716:                                            ; preds = %23715
  br label %23717

23717:                                            ; preds = %23716
  %23718 = load i32, ptr @test_count, align 4, !tbaa !5
  %23719 = add nsw i32 %23718, 1
  store i32 %23719, ptr @test_count, align 4, !tbaa !5
  %23720 = getelementptr inbounds %struct.host_verify_data, ptr %710, i32 0, i32 2
  %23721 = load i8, ptr %23720, align 1, !tbaa !19
  %23722 = zext i8 %23721 to i32
  %23723 = icmp eq i32 1, %23722
  br i1 %23723, label %23777, label %23724

23724:                                            ; preds = %23717
  br label %23725

23725:                                            ; preds = %23724
  br label %23726

23726:                                            ; preds = %23725
  call void @llvm.lifetime.start.p0(i64 4, ptr %723) #11
  %23727 = call ptr @__errno_location() #12
  %23728 = load i32, ptr %23727, align 4, !tbaa !5
  store i32 %23728, ptr %723, align 4, !tbaa !5
  %23729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23730 = call i32 @s2n_print_stacktrace(ptr noundef %23729)
  %23731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23732 = trunc i8 %23731 to i1
  br i1 %23732, label %23733, label %23755

23733:                                            ; preds = %23726
  %23734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23735 = call i32 @fileno(ptr noundef %23734) #11
  %23736 = call i32 @isatty(i32 noundef %23735) #11
  %23737 = icmp ne i32 %23736, 0
  br i1 %23737, label %23738, label %23755

23738:                                            ; preds = %23733
  %23739 = load i32, ptr %723, align 4, !tbaa !5
  %23740 = call ptr @__errno_location() #12
  store i32 %23739, ptr %23740, align 4, !tbaa !5
  %23741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23742 = load i32, ptr @test_count, align 4, !tbaa !5
  %23743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23744 = load i32, ptr %23743, align 4, !tbaa !5
  %23745 = call ptr @s2n_strerror(i32 noundef %23744, ptr noundef @.str.4)
  %23746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23747 = load i32, ptr %23746, align 4, !tbaa !5
  %23748 = call ptr @s2n_strerror_debug(i32 noundef %23747, ptr noundef @.str.4)
  %23749 = call ptr @__errno_location() #12
  %23750 = load i32, ptr %23749, align 4, !tbaa !5
  %23751 = call ptr @strerror(i32 noundef %23750) #11
  %23752 = call ptr @__errno_location() #12
  %23753 = load i32, ptr %23752, align 4, !tbaa !5
  %23754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23741, ptr noundef @.str.2, i32 noundef %23742, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1409, ptr noundef %23745, ptr noundef %23748, ptr noundef %23751, i32 noundef %23753) #11
  br label %23772

23755:                                            ; preds = %23733, %23726
  %23756 = load i32, ptr %723, align 4, !tbaa !5
  %23757 = call ptr @__errno_location() #12
  store i32 %23756, ptr %23757, align 4, !tbaa !5
  %23758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23759 = load i32, ptr @test_count, align 4, !tbaa !5
  %23760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23761 = load i32, ptr %23760, align 4, !tbaa !5
  %23762 = call ptr @s2n_strerror(i32 noundef %23761, ptr noundef @.str.4)
  %23763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23764 = load i32, ptr %23763, align 4, !tbaa !5
  %23765 = call ptr @s2n_strerror_debug(i32 noundef %23764, ptr noundef @.str.4)
  %23766 = call ptr @__errno_location() #12
  %23767 = load i32, ptr %23766, align 4, !tbaa !5
  %23768 = call ptr @strerror(i32 noundef %23767) #11
  %23769 = call ptr @__errno_location() #12
  %23770 = load i32, ptr %23769, align 4, !tbaa !5
  %23771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23758, ptr noundef @.str.5, i32 noundef %23759, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 1409, ptr noundef %23762, ptr noundef %23765, ptr noundef %23768, i32 noundef %23770) #11
  br label %23772

23772:                                            ; preds = %23755, %23738
  call void @llvm.lifetime.end.p0(i64 4, ptr %723) #11
  br label %23773

23773:                                            ; preds = %23772
  br label %23774

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

23775:                                            ; No predecessors!
  br label %23776

23776:                                            ; preds = %23775
  br label %23777

23777:                                            ; preds = %23776, %23717
  br label %23778

23778:                                            ; preds = %23777
  br label %23779

23779:                                            ; preds = %23778
  call void @llvm.lifetime.start.p0(i64 40, ptr %724) #11
  call void @llvm.memset.p0.i64(ptr align 8 %724, i8 0, i64 40, i1 false)
  br label %23780

23780:                                            ; preds = %23779
  %23781 = load i32, ptr @test_count, align 4, !tbaa !5
  %23782 = add nsw i32 %23781, 1
  store i32 %23782, ptr @test_count, align 4, !tbaa !5
  %23783 = call i32 @read_file(ptr noundef %724, ptr noundef @.str.95, i32 noundef 12000)
  %23784 = icmp eq i32 %23783, -1
  br i1 %23784, label %23785, label %23838

23785:                                            ; preds = %23780
  br label %23786

23786:                                            ; preds = %23785
  br label %23787

23787:                                            ; preds = %23786
  call void @llvm.lifetime.start.p0(i64 4, ptr %725) #11
  %23788 = call ptr @__errno_location() #12
  %23789 = load i32, ptr %23788, align 4, !tbaa !5
  store i32 %23789, ptr %725, align 4, !tbaa !5
  %23790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23791 = call i32 @s2n_print_stacktrace(ptr noundef %23790)
  %23792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23793 = trunc i8 %23792 to i1
  br i1 %23793, label %23794, label %23816

23794:                                            ; preds = %23787
  %23795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23796 = call i32 @fileno(ptr noundef %23795) #11
  %23797 = call i32 @isatty(i32 noundef %23796) #11
  %23798 = icmp ne i32 %23797, 0
  br i1 %23798, label %23799, label %23816

23799:                                            ; preds = %23794
  %23800 = load i32, ptr %725, align 4, !tbaa !5
  %23801 = call ptr @__errno_location() #12
  store i32 %23800, ptr %23801, align 4, !tbaa !5
  %23802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23803 = load i32, ptr @test_count, align 4, !tbaa !5
  %23804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23805 = load i32, ptr %23804, align 4, !tbaa !5
  %23806 = call ptr @s2n_strerror(i32 noundef %23805, ptr noundef @.str.4)
  %23807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23808 = load i32, ptr %23807, align 4, !tbaa !5
  %23809 = call ptr @s2n_strerror_debug(i32 noundef %23808, ptr noundef @.str.4)
  %23810 = call ptr @__errno_location() #12
  %23811 = load i32, ptr %23810, align 4, !tbaa !5
  %23812 = call ptr @strerror(i32 noundef %23811) #11
  %23813 = call ptr @__errno_location() #12
  %23814 = load i32, ptr %23813, align 4, !tbaa !5
  %23815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23802, ptr noundef @.str.2, i32 noundef %23803, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 1411, ptr noundef %23806, ptr noundef %23809, ptr noundef %23812, i32 noundef %23814) #11
  br label %23833

23816:                                            ; preds = %23794, %23787
  %23817 = load i32, ptr %725, align 4, !tbaa !5
  %23818 = call ptr @__errno_location() #12
  store i32 %23817, ptr %23818, align 4, !tbaa !5
  %23819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23820 = load i32, ptr @test_count, align 4, !tbaa !5
  %23821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23822 = load i32, ptr %23821, align 4, !tbaa !5
  %23823 = call ptr @s2n_strerror(i32 noundef %23822, ptr noundef @.str.4)
  %23824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23825 = load i32, ptr %23824, align 4, !tbaa !5
  %23826 = call ptr @s2n_strerror_debug(i32 noundef %23825, ptr noundef @.str.4)
  %23827 = call ptr @__errno_location() #12
  %23828 = load i32, ptr %23827, align 4, !tbaa !5
  %23829 = call ptr @strerror(i32 noundef %23828) #11
  %23830 = call ptr @__errno_location() #12
  %23831 = load i32, ptr %23830, align 4, !tbaa !5
  %23832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23819, ptr noundef @.str.5, i32 noundef %23820, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 1411, ptr noundef %23823, ptr noundef %23826, ptr noundef %23829, i32 noundef %23831) #11
  br label %23833

23833:                                            ; preds = %23816, %23799
  call void @llvm.lifetime.end.p0(i64 4, ptr %725) #11
  br label %23834

23834:                                            ; preds = %23833
  br label %23835

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

23836:                                            ; No predecessors!
  br label %23837

23837:                                            ; preds = %23836
  br label %23838

23838:                                            ; preds = %23837, %23780
  br label %23839

23839:                                            ; preds = %23838
  br label %23840

23840:                                            ; preds = %23839
  call void @llvm.lifetime.start.p0(i64 4, ptr %726) #11
  %23841 = getelementptr inbounds %struct.s2n_stuffer, ptr %724, i32 0, i32 2
  %23842 = load i32, ptr %23841, align 4, !tbaa !15
  %23843 = getelementptr inbounds %struct.s2n_stuffer, ptr %724, i32 0, i32 1
  %23844 = load i32, ptr %23843, align 8, !tbaa !18
  %23845 = sub i32 %23842, %23844
  store i32 %23845, ptr %726, align 4, !tbaa !5
  br label %23846

23846:                                            ; preds = %23840
  %23847 = load i32, ptr @test_count, align 4, !tbaa !5
  %23848 = add nsw i32 %23847, 1
  store i32 %23848, ptr @test_count, align 4, !tbaa !5
  %23849 = load i32, ptr %726, align 4, !tbaa !5
  %23850 = icmp ugt i32 %23849, 0
  br i1 %23850, label %23904, label %23851

23851:                                            ; preds = %23846
  br label %23852

23852:                                            ; preds = %23851
  br label %23853

23853:                                            ; preds = %23852
  call void @llvm.lifetime.start.p0(i64 4, ptr %727) #11
  %23854 = call ptr @__errno_location() #12
  %23855 = load i32, ptr %23854, align 4, !tbaa !5
  store i32 %23855, ptr %727, align 4, !tbaa !5
  %23856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23857 = call i32 @s2n_print_stacktrace(ptr noundef %23856)
  %23858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23859 = trunc i8 %23858 to i1
  br i1 %23859, label %23860, label %23882

23860:                                            ; preds = %23853
  %23861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23862 = call i32 @fileno(ptr noundef %23861) #11
  %23863 = call i32 @isatty(i32 noundef %23862) #11
  %23864 = icmp ne i32 %23863, 0
  br i1 %23864, label %23865, label %23882

23865:                                            ; preds = %23860
  %23866 = load i32, ptr %727, align 4, !tbaa !5
  %23867 = call ptr @__errno_location() #12
  store i32 %23866, ptr %23867, align 4, !tbaa !5
  %23868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23869 = load i32, ptr @test_count, align 4, !tbaa !5
  %23870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23871 = load i32, ptr %23870, align 4, !tbaa !5
  %23872 = call ptr @s2n_strerror(i32 noundef %23871, ptr noundef @.str.4)
  %23873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23874 = load i32, ptr %23873, align 4, !tbaa !5
  %23875 = call ptr @s2n_strerror_debug(i32 noundef %23874, ptr noundef @.str.4)
  %23876 = call ptr @__errno_location() #12
  %23877 = load i32, ptr %23876, align 4, !tbaa !5
  %23878 = call ptr @strerror(i32 noundef %23877) #11
  %23879 = call ptr @__errno_location() #12
  %23880 = load i32, ptr %23879, align 4, !tbaa !5
  %23881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23868, ptr noundef @.str.2, i32 noundef %23869, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1413, ptr noundef %23872, ptr noundef %23875, ptr noundef %23878, i32 noundef %23880) #11
  br label %23899

23882:                                            ; preds = %23860, %23853
  %23883 = load i32, ptr %727, align 4, !tbaa !5
  %23884 = call ptr @__errno_location() #12
  store i32 %23883, ptr %23884, align 4, !tbaa !5
  %23885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23886 = load i32, ptr @test_count, align 4, !tbaa !5
  %23887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23888 = load i32, ptr %23887, align 4, !tbaa !5
  %23889 = call ptr @s2n_strerror(i32 noundef %23888, ptr noundef @.str.4)
  %23890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23891 = load i32, ptr %23890, align 4, !tbaa !5
  %23892 = call ptr @s2n_strerror_debug(i32 noundef %23891, ptr noundef @.str.4)
  %23893 = call ptr @__errno_location() #12
  %23894 = load i32, ptr %23893, align 4, !tbaa !5
  %23895 = call ptr @strerror(i32 noundef %23894) #11
  %23896 = call ptr @__errno_location() #12
  %23897 = load i32, ptr %23896, align 4, !tbaa !5
  %23898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23885, ptr noundef @.str.5, i32 noundef %23886, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1413, ptr noundef %23889, ptr noundef %23892, ptr noundef %23895, i32 noundef %23897) #11
  br label %23899

23899:                                            ; preds = %23882, %23865
  call void @llvm.lifetime.end.p0(i64 4, ptr %727) #11
  br label %23900

23900:                                            ; preds = %23899
  br label %23901

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

23902:                                            ; No predecessors!
  br label %23903

23903:                                            ; preds = %23902
  br label %23904

23904:                                            ; preds = %23903, %23846
  br label %23905

23905:                                            ; preds = %23904
  br label %23906

23906:                                            ; preds = %23905
  br label %23907

23907:                                            ; preds = %23906
  br label %23908

23908:                                            ; preds = %23907
  br label %23909

23909:                                            ; preds = %23908
  %23910 = load i32, ptr @test_count, align 4, !tbaa !5
  %23911 = add nsw i32 %23910, 1
  store i32 %23911, ptr @test_count, align 4, !tbaa !5
  %23912 = load ptr, ptr %708, align 8, !tbaa !9
  %23913 = load i32, ptr %726, align 4, !tbaa !5
  %23914 = call ptr @s2n_stuffer_raw_read(ptr noundef %724, i32 noundef %23913)
  %23915 = load i32, ptr %726, align 4, !tbaa !5
  %23916 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %707, ptr noundef %23912, ptr noundef %23914, i32 noundef %23915)
  %23917 = getelementptr inbounds %struct.s2n_result, ptr %728, i32 0, i32 0
  store i32 %23916, ptr %23917, align 4
  %23918 = getelementptr inbounds %struct.s2n_result, ptr %728, i32 0, i32 0
  %23919 = load i32, ptr %23918, align 4
  %23920 = call zeroext i1 @s2n_result_is_error(i32 %23919)
  br i1 %23920, label %23974, label %23921

23921:                                            ; preds = %23909
  br label %23922

23922:                                            ; preds = %23921
  br label %23923

23923:                                            ; preds = %23922
  call void @llvm.lifetime.start.p0(i64 4, ptr %729) #11
  %23924 = call ptr @__errno_location() #12
  %23925 = load i32, ptr %23924, align 4, !tbaa !5
  store i32 %23925, ptr %729, align 4, !tbaa !5
  %23926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23927 = call i32 @s2n_print_stacktrace(ptr noundef %23926)
  %23928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23929 = trunc i8 %23928 to i1
  br i1 %23929, label %23930, label %23952

23930:                                            ; preds = %23923
  %23931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23932 = call i32 @fileno(ptr noundef %23931) #11
  %23933 = call i32 @isatty(i32 noundef %23932) #11
  %23934 = icmp ne i32 %23933, 0
  br i1 %23934, label %23935, label %23952

23935:                                            ; preds = %23930
  %23936 = load i32, ptr %729, align 4, !tbaa !5
  %23937 = call ptr @__errno_location() #12
  store i32 %23936, ptr %23937, align 4, !tbaa !5
  %23938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23939 = load i32, ptr @test_count, align 4, !tbaa !5
  %23940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23941 = load i32, ptr %23940, align 4, !tbaa !5
  %23942 = call ptr @s2n_strerror(i32 noundef %23941, ptr noundef @.str.4)
  %23943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23944 = load i32, ptr %23943, align 4, !tbaa !5
  %23945 = call ptr @s2n_strerror_debug(i32 noundef %23944, ptr noundef @.str.4)
  %23946 = call ptr @__errno_location() #12
  %23947 = load i32, ptr %23946, align 4, !tbaa !5
  %23948 = call ptr @strerror(i32 noundef %23947) #11
  %23949 = call ptr @__errno_location() #12
  %23950 = load i32, ptr %23949, align 4, !tbaa !5
  %23951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23938, ptr noundef @.str.2, i32 noundef %23939, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1416, ptr noundef %23942, ptr noundef %23945, ptr noundef %23948, i32 noundef %23950) #11
  br label %23969

23952:                                            ; preds = %23930, %23923
  %23953 = load i32, ptr %729, align 4, !tbaa !5
  %23954 = call ptr @__errno_location() #12
  store i32 %23953, ptr %23954, align 4, !tbaa !5
  %23955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23956 = load i32, ptr @test_count, align 4, !tbaa !5
  %23957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23958 = load i32, ptr %23957, align 4, !tbaa !5
  %23959 = call ptr @s2n_strerror(i32 noundef %23958, ptr noundef @.str.4)
  %23960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23961 = load i32, ptr %23960, align 4, !tbaa !5
  %23962 = call ptr @s2n_strerror_debug(i32 noundef %23961, ptr noundef @.str.4)
  %23963 = call ptr @__errno_location() #12
  %23964 = load i32, ptr %23963, align 4, !tbaa !5
  %23965 = call ptr @strerror(i32 noundef %23964) #11
  %23966 = call ptr @__errno_location() #12
  %23967 = load i32, ptr %23966, align 4, !tbaa !5
  %23968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23955, ptr noundef @.str.5, i32 noundef %23956, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1416, ptr noundef %23959, ptr noundef %23962, ptr noundef %23965, i32 noundef %23967) #11
  br label %23969

23969:                                            ; preds = %23952, %23935
  call void @llvm.lifetime.end.p0(i64 4, ptr %729) #11
  br label %23970

23970:                                            ; preds = %23969
  br label %23971

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

23972:                                            ; No predecessors!
  br label %23973

23973:                                            ; preds = %23972
  br label %23974

23974:                                            ; preds = %23973, %23909
  br label %23975

23975:                                            ; preds = %23974
  br label %23976

23976:                                            ; preds = %23975
  br label %23977

23977:                                            ; preds = %23976
  %23978 = load i32, ptr @test_count, align 4, !tbaa !5
  %23979 = add nsw i32 %23978, 1
  store i32 %23979, ptr @test_count, align 4, !tbaa !5
  %23980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23981 = load i32, ptr %23980, align 4, !tbaa !5
  %23982 = icmp eq i32 %23981, 335544367
  br i1 %23982, label %24036, label %23983

23983:                                            ; preds = %23977
  br label %23984

23984:                                            ; preds = %23983
  br label %23985

23985:                                            ; preds = %23984
  call void @llvm.lifetime.start.p0(i64 4, ptr %730) #11
  %23986 = call ptr @__errno_location() #12
  %23987 = load i32, ptr %23986, align 4, !tbaa !5
  store i32 %23987, ptr %730, align 4, !tbaa !5
  %23988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23989 = call i32 @s2n_print_stacktrace(ptr noundef %23988)
  %23990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23991 = trunc i8 %23990 to i1
  br i1 %23991, label %23992, label %24014

23992:                                            ; preds = %23985
  %23993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23994 = call i32 @fileno(ptr noundef %23993) #11
  %23995 = call i32 @isatty(i32 noundef %23994) #11
  %23996 = icmp ne i32 %23995, 0
  br i1 %23996, label %23997, label %24014

23997:                                            ; preds = %23992
  %23998 = load i32, ptr %730, align 4, !tbaa !5
  %23999 = call ptr @__errno_location() #12
  store i32 %23998, ptr %23999, align 4, !tbaa !5
  %24000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24001 = load i32, ptr @test_count, align 4, !tbaa !5
  %24002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24003 = load i32, ptr %24002, align 4, !tbaa !5
  %24004 = call ptr @s2n_strerror(i32 noundef %24003, ptr noundef @.str.4)
  %24005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24006 = load i32, ptr %24005, align 4, !tbaa !5
  %24007 = call ptr @s2n_strerror_debug(i32 noundef %24006, ptr noundef @.str.4)
  %24008 = call ptr @__errno_location() #12
  %24009 = load i32, ptr %24008, align 4, !tbaa !5
  %24010 = call ptr @strerror(i32 noundef %24009) #11
  %24011 = call ptr @__errno_location() #12
  %24012 = load i32, ptr %24011, align 4, !tbaa !5
  %24013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24000, ptr noundef @.str.2, i32 noundef %24001, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 1416, ptr noundef %24004, ptr noundef %24007, ptr noundef %24010, i32 noundef %24012) #11
  br label %24031

24014:                                            ; preds = %23992, %23985
  %24015 = load i32, ptr %730, align 4, !tbaa !5
  %24016 = call ptr @__errno_location() #12
  store i32 %24015, ptr %24016, align 4, !tbaa !5
  %24017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24018 = load i32, ptr @test_count, align 4, !tbaa !5
  %24019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24020 = load i32, ptr %24019, align 4, !tbaa !5
  %24021 = call ptr @s2n_strerror(i32 noundef %24020, ptr noundef @.str.4)
  %24022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24023 = load i32, ptr %24022, align 4, !tbaa !5
  %24024 = call ptr @s2n_strerror_debug(i32 noundef %24023, ptr noundef @.str.4)
  %24025 = call ptr @__errno_location() #12
  %24026 = load i32, ptr %24025, align 4, !tbaa !5
  %24027 = call ptr @strerror(i32 noundef %24026) #11
  %24028 = call ptr @__errno_location() #12
  %24029 = load i32, ptr %24028, align 4, !tbaa !5
  %24030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24017, ptr noundef @.str.5, i32 noundef %24018, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 1416, ptr noundef %24021, ptr noundef %24024, ptr noundef %24027, i32 noundef %24029) #11
  br label %24031

24031:                                            ; preds = %24014, %23997
  call void @llvm.lifetime.end.p0(i64 4, ptr %730) #11
  br label %24032

24032:                                            ; preds = %24031
  br label %24033

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

24034:                                            ; No predecessors!
  br label %24035

24035:                                            ; preds = %24034
  br label %24036

24036:                                            ; preds = %24035, %23977
  br label %24037

24037:                                            ; preds = %24036
  br label %24038

24038:                                            ; preds = %24037
  br label %24039

24039:                                            ; preds = %24038
  %24040 = load i32, ptr @test_count, align 4, !tbaa !5
  %24041 = add nsw i32 %24040, 1
  store i32 %24041, ptr @test_count, align 4, !tbaa !5
  %24042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24043 = load i32, ptr %24042, align 4, !tbaa !5
  %24044 = call ptr @s2n_strerror_debug(i32 noundef %24043, ptr noundef @.str.4)
  %24045 = icmp eq ptr %24044, null
  br i1 %24045, label %24046, label %24099

24046:                                            ; preds = %24039
  br label %24047

24047:                                            ; preds = %24046
  br label %24048

24048:                                            ; preds = %24047
  call void @llvm.lifetime.start.p0(i64 4, ptr %731) #11
  %24049 = call ptr @__errno_location() #12
  %24050 = load i32, ptr %24049, align 4, !tbaa !5
  store i32 %24050, ptr %731, align 4, !tbaa !5
  %24051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24052 = call i32 @s2n_print_stacktrace(ptr noundef %24051)
  %24053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24054 = trunc i8 %24053 to i1
  br i1 %24054, label %24055, label %24077

24055:                                            ; preds = %24048
  %24056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24057 = call i32 @fileno(ptr noundef %24056) #11
  %24058 = call i32 @isatty(i32 noundef %24057) #11
  %24059 = icmp ne i32 %24058, 0
  br i1 %24059, label %24060, label %24077

24060:                                            ; preds = %24055
  %24061 = load i32, ptr %731, align 4, !tbaa !5
  %24062 = call ptr @__errno_location() #12
  store i32 %24061, ptr %24062, align 4, !tbaa !5
  %24063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24064 = load i32, ptr @test_count, align 4, !tbaa !5
  %24065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24066 = load i32, ptr %24065, align 4, !tbaa !5
  %24067 = call ptr @s2n_strerror(i32 noundef %24066, ptr noundef @.str.4)
  %24068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24069 = load i32, ptr %24068, align 4, !tbaa !5
  %24070 = call ptr @s2n_strerror_debug(i32 noundef %24069, ptr noundef @.str.4)
  %24071 = call ptr @__errno_location() #12
  %24072 = load i32, ptr %24071, align 4, !tbaa !5
  %24073 = call ptr @strerror(i32 noundef %24072) #11
  %24074 = call ptr @__errno_location() #12
  %24075 = load i32, ptr %24074, align 4, !tbaa !5
  %24076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24063, ptr noundef @.str.2, i32 noundef %24064, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1416, ptr noundef %24067, ptr noundef %24070, ptr noundef %24073, i32 noundef %24075) #11
  br label %24094

24077:                                            ; preds = %24055, %24048
  %24078 = load i32, ptr %731, align 4, !tbaa !5
  %24079 = call ptr @__errno_location() #12
  store i32 %24078, ptr %24079, align 4, !tbaa !5
  %24080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24081 = load i32, ptr @test_count, align 4, !tbaa !5
  %24082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24083 = load i32, ptr %24082, align 4, !tbaa !5
  %24084 = call ptr @s2n_strerror(i32 noundef %24083, ptr noundef @.str.4)
  %24085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24086 = load i32, ptr %24085, align 4, !tbaa !5
  %24087 = call ptr @s2n_strerror_debug(i32 noundef %24086, ptr noundef @.str.4)
  %24088 = call ptr @__errno_location() #12
  %24089 = load i32, ptr %24088, align 4, !tbaa !5
  %24090 = call ptr @strerror(i32 noundef %24089) #11
  %24091 = call ptr @__errno_location() #12
  %24092 = load i32, ptr %24091, align 4, !tbaa !5
  %24093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24080, ptr noundef @.str.5, i32 noundef %24081, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1416, ptr noundef %24084, ptr noundef %24087, ptr noundef %24090, i32 noundef %24092) #11
  br label %24094

24094:                                            ; preds = %24077, %24060
  call void @llvm.lifetime.end.p0(i64 4, ptr %731) #11
  br label %24095

24095:                                            ; preds = %24094
  br label %24096

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

24097:                                            ; No predecessors!
  br label %24098

24098:                                            ; preds = %24097
  br label %24099

24099:                                            ; preds = %24098, %24039
  br label %24100

24100:                                            ; preds = %24099
  br label %24101

24101:                                            ; preds = %24100
  br label %24102

24102:                                            ; preds = %24101
  br label %24103

24103:                                            ; preds = %24102
  br label %24104

24104:                                            ; preds = %24103
  %24105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %24105, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %24106 = call ptr @__errno_location() #12
  store i32 0, ptr %24106, align 4, !tbaa !5
  br label %24107

24107:                                            ; preds = %24104
  br label %24108

24108:                                            ; preds = %24107
  br label %24109

24109:                                            ; preds = %24108
  br label %24110

24110:                                            ; preds = %24109
  %24111 = call i32 @s2n_stuffer_free(ptr noundef %724)
  %24112 = load ptr, ptr %708, align 8, !tbaa !9
  %24113 = call i32 @s2n_connection_free(ptr noundef %24112)
  %24114 = call i32 @s2n_pkey_free(ptr noundef %718)
  %24115 = call i32 @s2n_x509_validator_wipe(ptr noundef %707)
  call void @s2n_x509_trust_store_wipe(ptr noundef %705)
  call void @llvm.lifetime.end.p0(i64 4, ptr %726) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %724) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %720) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %718) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %716) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %715) #11
  %24116 = call i32 @s2n_stuffer_free(ptr noundef %712)
  call void @llvm.lifetime.end.p0(i64 40, ptr %712) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %710) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %708) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %707) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %705) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %732) #11
  store i64 1682719916000000000, ptr %732, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %733) #11
  store i64 2082838316000000000, ptr %733, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %734) #11
  store i64 3600000000000, ptr %734, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %735) #11
  %24117 = load i64, ptr %734, align 8, !tbaa !51
  %24118 = mul i64 24, %24117
  store i64 %24118, ptr %735, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 128, ptr %736) #11
  %24119 = getelementptr inbounds %struct.anon, ptr %736, i32 0, i32 0
  %24120 = load i64, ptr %732, align 8, !tbaa !51
  %24121 = load i64, ptr %735, align 8, !tbaa !51
  %24122 = load i64, ptr %734, align 8, !tbaa !51
  %24123 = add i64 %24121, %24122
  %24124 = sub i64 %24120, %24123
  store i64 %24124, ptr %24119, align 16, !tbaa !53
  %24125 = getelementptr inbounds %struct.anon, ptr %736, i32 0, i32 1
  store i32 335544371, ptr %24125, align 8, !tbaa !55
  %24126 = getelementptr inbounds %struct.anon, ptr %736, i64 1
  %24127 = getelementptr inbounds %struct.anon, ptr %24126, i32 0, i32 0
  %24128 = load i64, ptr %732, align 8, !tbaa !51
  %24129 = load i64, ptr %734, align 8, !tbaa !51
  %24130 = sub i64 %24128, %24129
  store i64 %24130, ptr %24127, align 16, !tbaa !53
  %24131 = getelementptr inbounds %struct.anon, ptr %24126, i32 0, i32 1
  store i32 335544371, ptr %24131, align 8, !tbaa !55
  %24132 = getelementptr inbounds %struct.anon, ptr %736, i64 2
  %24133 = getelementptr inbounds %struct.anon, ptr %24132, i32 0, i32 0
  %24134 = load i64, ptr %732, align 8, !tbaa !51
  %24135 = load i64, ptr %734, align 8, !tbaa !51
  %24136 = add i64 %24134, %24135
  store i64 %24136, ptr %24133, align 16, !tbaa !53
  %24137 = getelementptr inbounds %struct.anon, ptr %24132, i32 0, i32 1
  store i32 0, ptr %24137, align 8, !tbaa !55
  %24138 = getelementptr inbounds %struct.anon, ptr %736, i64 3
  %24139 = getelementptr inbounds %struct.anon, ptr %24138, i32 0, i32 0
  %24140 = load i64, ptr %732, align 8, !tbaa !51
  %24141 = load i64, ptr %735, align 8, !tbaa !51
  %24142 = load i64, ptr %734, align 8, !tbaa !51
  %24143 = add i64 %24141, %24142
  %24144 = add i64 %24140, %24143
  store i64 %24144, ptr %24139, align 16, !tbaa !53
  %24145 = getelementptr inbounds %struct.anon, ptr %24138, i32 0, i32 1
  store i32 0, ptr %24145, align 8, !tbaa !55
  %24146 = getelementptr inbounds %struct.anon, ptr %736, i64 4
  %24147 = getelementptr inbounds %struct.anon, ptr %24146, i32 0, i32 0
  %24148 = load i64, ptr %733, align 8, !tbaa !51
  %24149 = load i64, ptr %735, align 8, !tbaa !51
  %24150 = load i64, ptr %734, align 8, !tbaa !51
  %24151 = add i64 %24149, %24150
  %24152 = sub i64 %24148, %24151
  store i64 %24152, ptr %24147, align 16, !tbaa !53
  %24153 = getelementptr inbounds %struct.anon, ptr %24146, i32 0, i32 1
  store i32 0, ptr %24153, align 8, !tbaa !55
  %24154 = getelementptr inbounds %struct.anon, ptr %736, i64 5
  %24155 = getelementptr inbounds %struct.anon, ptr %24154, i32 0, i32 0
  %24156 = load i64, ptr %733, align 8, !tbaa !51
  %24157 = load i64, ptr %734, align 8, !tbaa !51
  %24158 = sub i64 %24156, %24157
  store i64 %24158, ptr %24155, align 16, !tbaa !53
  %24159 = getelementptr inbounds %struct.anon, ptr %24154, i32 0, i32 1
  store i32 0, ptr %24159, align 8, !tbaa !55
  %24160 = getelementptr inbounds %struct.anon, ptr %736, i64 6
  %24161 = getelementptr inbounds %struct.anon, ptr %24160, i32 0, i32 0
  %24162 = load i64, ptr %733, align 8, !tbaa !51
  %24163 = load i64, ptr %734, align 8, !tbaa !51
  %24164 = add i64 %24162, %24163
  store i64 %24164, ptr %24161, align 16, !tbaa !53
  %24165 = getelementptr inbounds %struct.anon, ptr %24160, i32 0, i32 1
  store i32 335544369, ptr %24165, align 8, !tbaa !55
  %24166 = getelementptr inbounds %struct.anon, ptr %736, i64 7
  %24167 = getelementptr inbounds %struct.anon, ptr %24166, i32 0, i32 0
  %24168 = load i64, ptr %733, align 8, !tbaa !51
  %24169 = load i64, ptr %735, align 8, !tbaa !51
  %24170 = load i64, ptr %734, align 8, !tbaa !51
  %24171 = add i64 %24169, %24170
  %24172 = add i64 %24168, %24171
  store i64 %24172, ptr %24167, align 16, !tbaa !53
  %24173 = getelementptr inbounds %struct.anon, ptr %24166, i32 0, i32 1
  store i32 335544369, ptr %24173, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 4, ptr %737) #11
  store i32 0, ptr %737, align 4, !tbaa !5
  br label %24174

24174:                                            ; preds = %25245, %24110
  %24175 = load i32, ptr %737, align 4, !tbaa !5
  %24176 = sext i32 %24175 to i64
  %24177 = icmp ult i64 %24176, 8
  br i1 %24177, label %24179, label %24178

24178:                                            ; preds = %24174
  call void @llvm.lifetime.end.p0(i64 4, ptr %737) #11
  br label %25248

24179:                                            ; preds = %24174
  call void @llvm.lifetime.start.p0(i64 16, ptr %738) #11
  call void @llvm.memset.p0.i64(ptr align 8 %738, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef %738)
  br label %24180

24180:                                            ; preds = %24179
  %24181 = load i32, ptr @test_count, align 4, !tbaa !5
  %24182 = add nsw i32 %24181, 1
  store i32 %24182, ptr @test_count, align 4, !tbaa !5
  %24183 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %738, ptr noundef @.str.48, ptr noundef null)
  %24184 = icmp eq i32 %24183, -1
  br i1 %24184, label %24185, label %24238

24185:                                            ; preds = %24180
  br label %24186

24186:                                            ; preds = %24185
  br label %24187

24187:                                            ; preds = %24186
  call void @llvm.lifetime.start.p0(i64 4, ptr %739) #11
  %24188 = call ptr @__errno_location() #12
  %24189 = load i32, ptr %24188, align 4, !tbaa !5
  store i32 %24189, ptr %739, align 4, !tbaa !5
  %24190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24191 = call i32 @s2n_print_stacktrace(ptr noundef %24190)
  %24192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24193 = trunc i8 %24192 to i1
  br i1 %24193, label %24194, label %24216

24194:                                            ; preds = %24187
  %24195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24196 = call i32 @fileno(ptr noundef %24195) #11
  %24197 = call i32 @isatty(i32 noundef %24196) #11
  %24198 = icmp ne i32 %24197, 0
  br i1 %24198, label %24199, label %24216

24199:                                            ; preds = %24194
  %24200 = load i32, ptr %739, align 4, !tbaa !5
  %24201 = call ptr @__errno_location() #12
  store i32 %24200, ptr %24201, align 4, !tbaa !5
  %24202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24203 = load i32, ptr @test_count, align 4, !tbaa !5
  %24204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24205 = load i32, ptr %24204, align 4, !tbaa !5
  %24206 = call ptr @s2n_strerror(i32 noundef %24205, ptr noundef @.str.4)
  %24207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24208 = load i32, ptr %24207, align 4, !tbaa !5
  %24209 = call ptr @s2n_strerror_debug(i32 noundef %24208, ptr noundef @.str.4)
  %24210 = call ptr @__errno_location() #12
  %24211 = load i32, ptr %24210, align 4, !tbaa !5
  %24212 = call ptr @strerror(i32 noundef %24211) #11
  %24213 = call ptr @__errno_location() #12
  %24214 = load i32, ptr %24213, align 4, !tbaa !5
  %24215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24202, ptr noundef @.str.2, i32 noundef %24203, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1500, ptr noundef %24206, ptr noundef %24209, ptr noundef %24212, i32 noundef %24214) #11
  br label %24233

24216:                                            ; preds = %24194, %24187
  %24217 = load i32, ptr %739, align 4, !tbaa !5
  %24218 = call ptr @__errno_location() #12
  store i32 %24217, ptr %24218, align 4, !tbaa !5
  %24219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24220 = load i32, ptr @test_count, align 4, !tbaa !5
  %24221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24222 = load i32, ptr %24221, align 4, !tbaa !5
  %24223 = call ptr @s2n_strerror(i32 noundef %24222, ptr noundef @.str.4)
  %24224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24225 = load i32, ptr %24224, align 4, !tbaa !5
  %24226 = call ptr @s2n_strerror_debug(i32 noundef %24225, ptr noundef @.str.4)
  %24227 = call ptr @__errno_location() #12
  %24228 = load i32, ptr %24227, align 4, !tbaa !5
  %24229 = call ptr @strerror(i32 noundef %24228) #11
  %24230 = call ptr @__errno_location() #12
  %24231 = load i32, ptr %24230, align 4, !tbaa !5
  %24232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24219, ptr noundef @.str.5, i32 noundef %24220, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 1500, ptr noundef %24223, ptr noundef %24226, ptr noundef %24229, i32 noundef %24231) #11
  br label %24233

24233:                                            ; preds = %24216, %24199
  call void @llvm.lifetime.end.p0(i64 4, ptr %739) #11
  br label %24234

24234:                                            ; preds = %24233
  br label %24235

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

24236:                                            ; No predecessors!
  br label %24237

24237:                                            ; preds = %24236
  br label %24238

24238:                                            ; preds = %24237, %24180
  br label %24239

24239:                                            ; preds = %24238
  br label %24240

24240:                                            ; preds = %24239
  call void @llvm.lifetime.start.p0(i64 56, ptr %740) #11
  call void @llvm.memset.p0.i64(ptr align 8 %740, i8 0, i64 56, i1 false)
  br label %24241

24241:                                            ; preds = %24240
  %24242 = load i32, ptr @test_count, align 4, !tbaa !5
  %24243 = add nsw i32 %24242, 1
  store i32 %24243, ptr @test_count, align 4, !tbaa !5
  %24244 = call i32 @s2n_x509_validator_init(ptr noundef %740, ptr noundef %738, i8 noundef zeroext 1)
  %24245 = icmp eq i32 %24244, -1
  br i1 %24245, label %24246, label %24299

24246:                                            ; preds = %24241
  br label %24247

24247:                                            ; preds = %24246
  br label %24248

24248:                                            ; preds = %24247
  call void @llvm.lifetime.start.p0(i64 4, ptr %741) #11
  %24249 = call ptr @__errno_location() #12
  %24250 = load i32, ptr %24249, align 4, !tbaa !5
  store i32 %24250, ptr %741, align 4, !tbaa !5
  %24251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24252 = call i32 @s2n_print_stacktrace(ptr noundef %24251)
  %24253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24254 = trunc i8 %24253 to i1
  br i1 %24254, label %24255, label %24277

24255:                                            ; preds = %24248
  %24256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24257 = call i32 @fileno(ptr noundef %24256) #11
  %24258 = call i32 @isatty(i32 noundef %24257) #11
  %24259 = icmp ne i32 %24258, 0
  br i1 %24259, label %24260, label %24277

24260:                                            ; preds = %24255
  %24261 = load i32, ptr %741, align 4, !tbaa !5
  %24262 = call ptr @__errno_location() #12
  store i32 %24261, ptr %24262, align 4, !tbaa !5
  %24263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24264 = load i32, ptr @test_count, align 4, !tbaa !5
  %24265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24266 = load i32, ptr %24265, align 4, !tbaa !5
  %24267 = call ptr @s2n_strerror(i32 noundef %24266, ptr noundef @.str.4)
  %24268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24269 = load i32, ptr %24268, align 4, !tbaa !5
  %24270 = call ptr @s2n_strerror_debug(i32 noundef %24269, ptr noundef @.str.4)
  %24271 = call ptr @__errno_location() #12
  %24272 = load i32, ptr %24271, align 4, !tbaa !5
  %24273 = call ptr @strerror(i32 noundef %24272) #11
  %24274 = call ptr @__errno_location() #12
  %24275 = load i32, ptr %24274, align 4, !tbaa !5
  %24276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24263, ptr noundef @.str.2, i32 noundef %24264, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1503, ptr noundef %24267, ptr noundef %24270, ptr noundef %24273, i32 noundef %24275) #11
  br label %24294

24277:                                            ; preds = %24255, %24248
  %24278 = load i32, ptr %741, align 4, !tbaa !5
  %24279 = call ptr @__errno_location() #12
  store i32 %24278, ptr %24279, align 4, !tbaa !5
  %24280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24281 = load i32, ptr @test_count, align 4, !tbaa !5
  %24282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24283 = load i32, ptr %24282, align 4, !tbaa !5
  %24284 = call ptr @s2n_strerror(i32 noundef %24283, ptr noundef @.str.4)
  %24285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24286 = load i32, ptr %24285, align 4, !tbaa !5
  %24287 = call ptr @s2n_strerror_debug(i32 noundef %24286, ptr noundef @.str.4)
  %24288 = call ptr @__errno_location() #12
  %24289 = load i32, ptr %24288, align 4, !tbaa !5
  %24290 = call ptr @strerror(i32 noundef %24289) #11
  %24291 = call ptr @__errno_location() #12
  %24292 = load i32, ptr %24291, align 4, !tbaa !5
  %24293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24280, ptr noundef @.str.5, i32 noundef %24281, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 1503, ptr noundef %24284, ptr noundef %24287, ptr noundef %24290, i32 noundef %24292) #11
  br label %24294

24294:                                            ; preds = %24277, %24260
  call void @llvm.lifetime.end.p0(i64 4, ptr %741) #11
  br label %24295

24295:                                            ; preds = %24294
  br label %24296

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

24297:                                            ; No predecessors!
  br label %24298

24298:                                            ; preds = %24297
  br label %24299

24299:                                            ; preds = %24298, %24241
  br label %24300

24300:                                            ; preds = %24299
  br label %24301

24301:                                            ; preds = %24300
  call void @llvm.lifetime.start.p0(i64 8, ptr %742) #11
  %24302 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %24302, ptr %742, align 8, !tbaa !9
  br label %24303

24303:                                            ; preds = %24301
  %24304 = load i32, ptr @test_count, align 4, !tbaa !5
  %24305 = add nsw i32 %24304, 1
  store i32 %24305, ptr @test_count, align 4, !tbaa !5
  %24306 = load ptr, ptr %742, align 8, !tbaa !9
  %24307 = icmp eq ptr %24306, null
  br i1 %24307, label %24308, label %24361

24308:                                            ; preds = %24303
  br label %24309

24309:                                            ; preds = %24308
  br label %24310

24310:                                            ; preds = %24309
  call void @llvm.lifetime.start.p0(i64 4, ptr %743) #11
  %24311 = call ptr @__errno_location() #12
  %24312 = load i32, ptr %24311, align 4, !tbaa !5
  store i32 %24312, ptr %743, align 4, !tbaa !5
  %24313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24314 = call i32 @s2n_print_stacktrace(ptr noundef %24313)
  %24315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24316 = trunc i8 %24315 to i1
  br i1 %24316, label %24317, label %24339

24317:                                            ; preds = %24310
  %24318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24319 = call i32 @fileno(ptr noundef %24318) #11
  %24320 = call i32 @isatty(i32 noundef %24319) #11
  %24321 = icmp ne i32 %24320, 0
  br i1 %24321, label %24322, label %24339

24322:                                            ; preds = %24317
  %24323 = load i32, ptr %743, align 4, !tbaa !5
  %24324 = call ptr @__errno_location() #12
  store i32 %24323, ptr %24324, align 4, !tbaa !5
  %24325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24326 = load i32, ptr @test_count, align 4, !tbaa !5
  %24327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24328 = load i32, ptr %24327, align 4, !tbaa !5
  %24329 = call ptr @s2n_strerror(i32 noundef %24328, ptr noundef @.str.4)
  %24330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24331 = load i32, ptr %24330, align 4, !tbaa !5
  %24332 = call ptr @s2n_strerror_debug(i32 noundef %24331, ptr noundef @.str.4)
  %24333 = call ptr @__errno_location() #12
  %24334 = load i32, ptr %24333, align 4, !tbaa !5
  %24335 = call ptr @strerror(i32 noundef %24334) #11
  %24336 = call ptr @__errno_location() #12
  %24337 = load i32, ptr %24336, align 4, !tbaa !5
  %24338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24325, ptr noundef @.str.2, i32 noundef %24326, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1506, ptr noundef %24329, ptr noundef %24332, ptr noundef %24335, i32 noundef %24337) #11
  br label %24356

24339:                                            ; preds = %24317, %24310
  %24340 = load i32, ptr %743, align 4, !tbaa !5
  %24341 = call ptr @__errno_location() #12
  store i32 %24340, ptr %24341, align 4, !tbaa !5
  %24342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24343 = load i32, ptr @test_count, align 4, !tbaa !5
  %24344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24345 = load i32, ptr %24344, align 4, !tbaa !5
  %24346 = call ptr @s2n_strerror(i32 noundef %24345, ptr noundef @.str.4)
  %24347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24348 = load i32, ptr %24347, align 4, !tbaa !5
  %24349 = call ptr @s2n_strerror_debug(i32 noundef %24348, ptr noundef @.str.4)
  %24350 = call ptr @__errno_location() #12
  %24351 = load i32, ptr %24350, align 4, !tbaa !5
  %24352 = call ptr @strerror(i32 noundef %24351) #11
  %24353 = call ptr @__errno_location() #12
  %24354 = load i32, ptr %24353, align 4, !tbaa !5
  %24355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24342, ptr noundef @.str.5, i32 noundef %24343, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1506, ptr noundef %24346, ptr noundef %24349, ptr noundef %24352, i32 noundef %24354) #11
  br label %24356

24356:                                            ; preds = %24339, %24322
  call void @llvm.lifetime.end.p0(i64 4, ptr %743) #11
  br label %24357

24357:                                            ; preds = %24356
  br label %24358

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

24359:                                            ; No predecessors!
  br label %24360

24360:                                            ; preds = %24359
  br label %24361

24361:                                            ; preds = %24360, %24303
  br label %24362

24362:                                            ; preds = %24361
  br label %24363

24363:                                            ; preds = %24362
  call void @llvm.lifetime.start.p0(i64 16, ptr %744) #11
  call void @llvm.memset.p0.i64(ptr align 8 %744, i8 0, i64 16, i1 false)
  br label %24364

24364:                                            ; preds = %24363
  %24365 = load i32, ptr @test_count, align 4, !tbaa !5
  %24366 = add nsw i32 %24365, 1
  store i32 %24366, ptr @test_count, align 4, !tbaa !5
  %24367 = load ptr, ptr %742, align 8, !tbaa !9
  %24368 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %24367, ptr noundef @verify_host_accept_everything, ptr noundef %744)
  %24369 = icmp eq i32 %24368, -1
  br i1 %24369, label %24370, label %24423

24370:                                            ; preds = %24364
  br label %24371

24371:                                            ; preds = %24370
  br label %24372

24372:                                            ; preds = %24371
  call void @llvm.lifetime.start.p0(i64 4, ptr %745) #11
  %24373 = call ptr @__errno_location() #12
  %24374 = load i32, ptr %24373, align 4, !tbaa !5
  store i32 %24374, ptr %745, align 4, !tbaa !5
  %24375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24376 = call i32 @s2n_print_stacktrace(ptr noundef %24375)
  %24377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24378 = trunc i8 %24377 to i1
  br i1 %24378, label %24379, label %24401

24379:                                            ; preds = %24372
  %24380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24381 = call i32 @fileno(ptr noundef %24380) #11
  %24382 = call i32 @isatty(i32 noundef %24381) #11
  %24383 = icmp ne i32 %24382, 0
  br i1 %24383, label %24384, label %24401

24384:                                            ; preds = %24379
  %24385 = load i32, ptr %745, align 4, !tbaa !5
  %24386 = call ptr @__errno_location() #12
  store i32 %24385, ptr %24386, align 4, !tbaa !5
  %24387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24388 = load i32, ptr @test_count, align 4, !tbaa !5
  %24389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24390 = load i32, ptr %24389, align 4, !tbaa !5
  %24391 = call ptr @s2n_strerror(i32 noundef %24390, ptr noundef @.str.4)
  %24392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24393 = load i32, ptr %24392, align 4, !tbaa !5
  %24394 = call ptr @s2n_strerror_debug(i32 noundef %24393, ptr noundef @.str.4)
  %24395 = call ptr @__errno_location() #12
  %24396 = load i32, ptr %24395, align 4, !tbaa !5
  %24397 = call ptr @strerror(i32 noundef %24396) #11
  %24398 = call ptr @__errno_location() #12
  %24399 = load i32, ptr %24398, align 4, !tbaa !5
  %24400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24387, ptr noundef @.str.2, i32 noundef %24388, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1509, ptr noundef %24391, ptr noundef %24394, ptr noundef %24397, i32 noundef %24399) #11
  br label %24418

24401:                                            ; preds = %24379, %24372
  %24402 = load i32, ptr %745, align 4, !tbaa !5
  %24403 = call ptr @__errno_location() #12
  store i32 %24402, ptr %24403, align 4, !tbaa !5
  %24404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24405 = load i32, ptr @test_count, align 4, !tbaa !5
  %24406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24407 = load i32, ptr %24406, align 4, !tbaa !5
  %24408 = call ptr @s2n_strerror(i32 noundef %24407, ptr noundef @.str.4)
  %24409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24410 = load i32, ptr %24409, align 4, !tbaa !5
  %24411 = call ptr @s2n_strerror_debug(i32 noundef %24410, ptr noundef @.str.4)
  %24412 = call ptr @__errno_location() #12
  %24413 = load i32, ptr %24412, align 4, !tbaa !5
  %24414 = call ptr @strerror(i32 noundef %24413) #11
  %24415 = call ptr @__errno_location() #12
  %24416 = load i32, ptr %24415, align 4, !tbaa !5
  %24417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24404, ptr noundef @.str.5, i32 noundef %24405, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1509, ptr noundef %24408, ptr noundef %24411, ptr noundef %24414, i32 noundef %24416) #11
  br label %24418

24418:                                            ; preds = %24401, %24384
  call void @llvm.lifetime.end.p0(i64 4, ptr %745) #11
  br label %24419

24419:                                            ; preds = %24418
  br label %24420

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

24421:                                            ; No predecessors!
  br label %24422

24422:                                            ; preds = %24421
  br label %24423

24423:                                            ; preds = %24422, %24364
  br label %24424

24424:                                            ; preds = %24423
  br label %24425

24425:                                            ; preds = %24424
  call void @llvm.lifetime.start.p0(i64 40, ptr %746) #11
  call void @llvm.memset.p0.i64(ptr align 8 %746, i8 0, i64 40, i1 false)
  br label %24426

24426:                                            ; preds = %24425
  %24427 = load i32, ptr @test_count, align 4, !tbaa !5
  %24428 = add nsw i32 %24427, 1
  store i32 %24428, ptr @test_count, align 4, !tbaa !5
  %24429 = load ptr, ptr %742, align 8, !tbaa !9
  %24430 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %24429, ptr noundef @.str.51, ptr noundef %746)
  %24431 = getelementptr inbounds %struct.s2n_result, ptr %747, i32 0, i32 0
  store i32 %24430, ptr %24431, align 4
  %24432 = getelementptr inbounds %struct.s2n_result, ptr %747, i32 0, i32 0
  %24433 = load i32, ptr %24432, align 4
  %24434 = call zeroext i1 @s2n_result_is_ok(i32 %24433)
  br i1 %24434, label %24488, label %24435

24435:                                            ; preds = %24426
  br label %24436

24436:                                            ; preds = %24435
  br label %24437

24437:                                            ; preds = %24436
  call void @llvm.lifetime.start.p0(i64 4, ptr %748) #11
  %24438 = call ptr @__errno_location() #12
  %24439 = load i32, ptr %24438, align 4, !tbaa !5
  store i32 %24439, ptr %748, align 4, !tbaa !5
  %24440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24441 = call i32 @s2n_print_stacktrace(ptr noundef %24440)
  %24442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24443 = trunc i8 %24442 to i1
  br i1 %24443, label %24444, label %24466

24444:                                            ; preds = %24437
  %24445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24446 = call i32 @fileno(ptr noundef %24445) #11
  %24447 = call i32 @isatty(i32 noundef %24446) #11
  %24448 = icmp ne i32 %24447, 0
  br i1 %24448, label %24449, label %24466

24449:                                            ; preds = %24444
  %24450 = load i32, ptr %748, align 4, !tbaa !5
  %24451 = call ptr @__errno_location() #12
  store i32 %24450, ptr %24451, align 4, !tbaa !5
  %24452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24453 = load i32, ptr @test_count, align 4, !tbaa !5
  %24454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24455 = load i32, ptr %24454, align 4, !tbaa !5
  %24456 = call ptr @s2n_strerror(i32 noundef %24455, ptr noundef @.str.4)
  %24457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24458 = load i32, ptr %24457, align 4, !tbaa !5
  %24459 = call ptr @s2n_strerror_debug(i32 noundef %24458, ptr noundef @.str.4)
  %24460 = call ptr @__errno_location() #12
  %24461 = load i32, ptr %24460, align 4, !tbaa !5
  %24462 = call ptr @strerror(i32 noundef %24461) #11
  %24463 = call ptr @__errno_location() #12
  %24464 = load i32, ptr %24463, align 4, !tbaa !5
  %24465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24452, ptr noundef @.str.2, i32 noundef %24453, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1512, ptr noundef %24456, ptr noundef %24459, ptr noundef %24462, i32 noundef %24464) #11
  br label %24483

24466:                                            ; preds = %24444, %24437
  %24467 = load i32, ptr %748, align 4, !tbaa !5
  %24468 = call ptr @__errno_location() #12
  store i32 %24467, ptr %24468, align 4, !tbaa !5
  %24469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24470 = load i32, ptr @test_count, align 4, !tbaa !5
  %24471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24472 = load i32, ptr %24471, align 4, !tbaa !5
  %24473 = call ptr @s2n_strerror(i32 noundef %24472, ptr noundef @.str.4)
  %24474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24475 = load i32, ptr %24474, align 4, !tbaa !5
  %24476 = call ptr @s2n_strerror_debug(i32 noundef %24475, ptr noundef @.str.4)
  %24477 = call ptr @__errno_location() #12
  %24478 = load i32, ptr %24477, align 4, !tbaa !5
  %24479 = call ptr @strerror(i32 noundef %24478) #11
  %24480 = call ptr @__errno_location() #12
  %24481 = load i32, ptr %24480, align 4, !tbaa !5
  %24482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24469, ptr noundef @.str.5, i32 noundef %24470, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 1512, ptr noundef %24473, ptr noundef %24476, ptr noundef %24479, i32 noundef %24481) #11
  br label %24483

24483:                                            ; preds = %24466, %24449
  call void @llvm.lifetime.end.p0(i64 4, ptr %748) #11
  br label %24484

24484:                                            ; preds = %24483
  br label %24485

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

24486:                                            ; No predecessors!
  br label %24487

24487:                                            ; preds = %24486
  br label %24488

24488:                                            ; preds = %24487, %24426
  br label %24489

24489:                                            ; preds = %24488
  br label %24490

24490:                                            ; preds = %24489
  call void @llvm.lifetime.start.p0(i64 4, ptr %749) #11
  %24491 = getelementptr inbounds %struct.s2n_stuffer, ptr %746, i32 0, i32 2
  %24492 = load i32, ptr %24491, align 4, !tbaa !15
  %24493 = getelementptr inbounds %struct.s2n_stuffer, ptr %746, i32 0, i32 1
  %24494 = load i32, ptr %24493, align 8, !tbaa !18
  %24495 = sub i32 %24492, %24494
  store i32 %24495, ptr %749, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %750) #11
  %24496 = load i32, ptr %749, align 4, !tbaa !5
  %24497 = call ptr @s2n_stuffer_raw_read(ptr noundef %746, i32 noundef %24496)
  store ptr %24497, ptr %750, align 8, !tbaa !9
  br label %24498

24498:                                            ; preds = %24490
  %24499 = load i32, ptr @test_count, align 4, !tbaa !5
  %24500 = add nsw i32 %24499, 1
  store i32 %24500, ptr @test_count, align 4, !tbaa !5
  %24501 = load ptr, ptr %750, align 8, !tbaa !9
  %24502 = icmp eq ptr %24501, null
  br i1 %24502, label %24503, label %24556

24503:                                            ; preds = %24498
  br label %24504

24504:                                            ; preds = %24503
  br label %24505

24505:                                            ; preds = %24504
  call void @llvm.lifetime.start.p0(i64 4, ptr %751) #11
  %24506 = call ptr @__errno_location() #12
  %24507 = load i32, ptr %24506, align 4, !tbaa !5
  store i32 %24507, ptr %751, align 4, !tbaa !5
  %24508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24509 = call i32 @s2n_print_stacktrace(ptr noundef %24508)
  %24510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24511 = trunc i8 %24510 to i1
  br i1 %24511, label %24512, label %24534

24512:                                            ; preds = %24505
  %24513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24514 = call i32 @fileno(ptr noundef %24513) #11
  %24515 = call i32 @isatty(i32 noundef %24514) #11
  %24516 = icmp ne i32 %24515, 0
  br i1 %24516, label %24517, label %24534

24517:                                            ; preds = %24512
  %24518 = load i32, ptr %751, align 4, !tbaa !5
  %24519 = call ptr @__errno_location() #12
  store i32 %24518, ptr %24519, align 4, !tbaa !5
  %24520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24521 = load i32, ptr @test_count, align 4, !tbaa !5
  %24522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24523 = load i32, ptr %24522, align 4, !tbaa !5
  %24524 = call ptr @s2n_strerror(i32 noundef %24523, ptr noundef @.str.4)
  %24525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24526 = load i32, ptr %24525, align 4, !tbaa !5
  %24527 = call ptr @s2n_strerror_debug(i32 noundef %24526, ptr noundef @.str.4)
  %24528 = call ptr @__errno_location() #12
  %24529 = load i32, ptr %24528, align 4, !tbaa !5
  %24530 = call ptr @strerror(i32 noundef %24529) #11
  %24531 = call ptr @__errno_location() #12
  %24532 = load i32, ptr %24531, align 4, !tbaa !5
  %24533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24520, ptr noundef @.str.2, i32 noundef %24521, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1515, ptr noundef %24524, ptr noundef %24527, ptr noundef %24530, i32 noundef %24532) #11
  br label %24551

24534:                                            ; preds = %24512, %24505
  %24535 = load i32, ptr %751, align 4, !tbaa !5
  %24536 = call ptr @__errno_location() #12
  store i32 %24535, ptr %24536, align 4, !tbaa !5
  %24537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24538 = load i32, ptr @test_count, align 4, !tbaa !5
  %24539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24540 = load i32, ptr %24539, align 4, !tbaa !5
  %24541 = call ptr @s2n_strerror(i32 noundef %24540, ptr noundef @.str.4)
  %24542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24543 = load i32, ptr %24542, align 4, !tbaa !5
  %24544 = call ptr @s2n_strerror_debug(i32 noundef %24543, ptr noundef @.str.4)
  %24545 = call ptr @__errno_location() #12
  %24546 = load i32, ptr %24545, align 4, !tbaa !5
  %24547 = call ptr @strerror(i32 noundef %24546) #11
  %24548 = call ptr @__errno_location() #12
  %24549 = load i32, ptr %24548, align 4, !tbaa !5
  %24550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24537, ptr noundef @.str.5, i32 noundef %24538, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1515, ptr noundef %24541, ptr noundef %24544, ptr noundef %24547, i32 noundef %24549) #11
  br label %24551

24551:                                            ; preds = %24534, %24517
  call void @llvm.lifetime.end.p0(i64 4, ptr %751) #11
  br label %24552

24552:                                            ; preds = %24551
  br label %24553

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

24554:                                            ; No predecessors!
  br label %24555

24555:                                            ; preds = %24554
  br label %24556

24556:                                            ; preds = %24555, %24498
  br label %24557

24557:                                            ; preds = %24556
  br label %24558

24558:                                            ; preds = %24557
  call void @llvm.lifetime.start.p0(i64 48, ptr %752) #11
  call void @llvm.memset.p0.i64(ptr align 8 %752, i8 0, i64 48, i1 false)
  br label %24559

24559:                                            ; preds = %24558
  %24560 = load i32, ptr @test_count, align 4, !tbaa !5
  %24561 = add nsw i32 %24560, 1
  store i32 %24561, ptr @test_count, align 4, !tbaa !5
  %24562 = call i32 @s2n_pkey_zero_init(ptr noundef %752)
  %24563 = icmp eq i32 %24562, -1
  br i1 %24563, label %24564, label %24617

24564:                                            ; preds = %24559
  br label %24565

24565:                                            ; preds = %24564
  br label %24566

24566:                                            ; preds = %24565
  call void @llvm.lifetime.start.p0(i64 4, ptr %753) #11
  %24567 = call ptr @__errno_location() #12
  %24568 = load i32, ptr %24567, align 4, !tbaa !5
  store i32 %24568, ptr %753, align 4, !tbaa !5
  %24569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24570 = call i32 @s2n_print_stacktrace(ptr noundef %24569)
  %24571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24572 = trunc i8 %24571 to i1
  br i1 %24572, label %24573, label %24595

24573:                                            ; preds = %24566
  %24574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24575 = call i32 @fileno(ptr noundef %24574) #11
  %24576 = call i32 @isatty(i32 noundef %24575) #11
  %24577 = icmp ne i32 %24576, 0
  br i1 %24577, label %24578, label %24595

24578:                                            ; preds = %24573
  %24579 = load i32, ptr %753, align 4, !tbaa !5
  %24580 = call ptr @__errno_location() #12
  store i32 %24579, ptr %24580, align 4, !tbaa !5
  %24581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24582 = load i32, ptr @test_count, align 4, !tbaa !5
  %24583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24584 = load i32, ptr %24583, align 4, !tbaa !5
  %24585 = call ptr @s2n_strerror(i32 noundef %24584, ptr noundef @.str.4)
  %24586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24587 = load i32, ptr %24586, align 4, !tbaa !5
  %24588 = call ptr @s2n_strerror_debug(i32 noundef %24587, ptr noundef @.str.4)
  %24589 = call ptr @__errno_location() #12
  %24590 = load i32, ptr %24589, align 4, !tbaa !5
  %24591 = call ptr @strerror(i32 noundef %24590) #11
  %24592 = call ptr @__errno_location() #12
  %24593 = load i32, ptr %24592, align 4, !tbaa !5
  %24594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24581, ptr noundef @.str.2, i32 noundef %24582, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1518, ptr noundef %24585, ptr noundef %24588, ptr noundef %24591, i32 noundef %24593) #11
  br label %24612

24595:                                            ; preds = %24573, %24566
  %24596 = load i32, ptr %753, align 4, !tbaa !5
  %24597 = call ptr @__errno_location() #12
  store i32 %24596, ptr %24597, align 4, !tbaa !5
  %24598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24599 = load i32, ptr @test_count, align 4, !tbaa !5
  %24600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24601 = load i32, ptr %24600, align 4, !tbaa !5
  %24602 = call ptr @s2n_strerror(i32 noundef %24601, ptr noundef @.str.4)
  %24603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24604 = load i32, ptr %24603, align 4, !tbaa !5
  %24605 = call ptr @s2n_strerror_debug(i32 noundef %24604, ptr noundef @.str.4)
  %24606 = call ptr @__errno_location() #12
  %24607 = load i32, ptr %24606, align 4, !tbaa !5
  %24608 = call ptr @strerror(i32 noundef %24607) #11
  %24609 = call ptr @__errno_location() #12
  %24610 = load i32, ptr %24609, align 4, !tbaa !5
  %24611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24598, ptr noundef @.str.5, i32 noundef %24599, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1518, ptr noundef %24602, ptr noundef %24605, ptr noundef %24608, i32 noundef %24610) #11
  br label %24612

24612:                                            ; preds = %24595, %24578
  call void @llvm.lifetime.end.p0(i64 4, ptr %753) #11
  br label %24613

24613:                                            ; preds = %24612
  br label %24614

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

24615:                                            ; No predecessors!
  br label %24616

24616:                                            ; preds = %24615
  br label %24617

24617:                                            ; preds = %24616, %24559
  br label %24618

24618:                                            ; preds = %24617
  br label %24619

24619:                                            ; preds = %24618
  call void @llvm.lifetime.start.p0(i64 4, ptr %754) #11
  store i32 -1, ptr %754, align 4, !tbaa !5
  br label %24620

24620:                                            ; preds = %24619
  %24621 = load i32, ptr @test_count, align 4, !tbaa !5
  %24622 = add nsw i32 %24621, 1
  store i32 %24622, ptr @test_count, align 4, !tbaa !5
  %24623 = load ptr, ptr %742, align 8, !tbaa !9
  %24624 = load ptr, ptr %750, align 8, !tbaa !9
  %24625 = load i32, ptr %749, align 4, !tbaa !5
  %24626 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %740, ptr noundef %24623, ptr noundef %24624, i32 noundef %24625, ptr noundef %754, ptr noundef %752)
  %24627 = getelementptr inbounds %struct.s2n_result, ptr %755, i32 0, i32 0
  store i32 %24626, ptr %24627, align 4
  %24628 = getelementptr inbounds %struct.s2n_result, ptr %755, i32 0, i32 0
  %24629 = load i32, ptr %24628, align 4
  %24630 = call zeroext i1 @s2n_result_is_ok(i32 %24629)
  br i1 %24630, label %24684, label %24631

24631:                                            ; preds = %24620
  br label %24632

24632:                                            ; preds = %24631
  br label %24633

24633:                                            ; preds = %24632
  call void @llvm.lifetime.start.p0(i64 4, ptr %756) #11
  %24634 = call ptr @__errno_location() #12
  %24635 = load i32, ptr %24634, align 4, !tbaa !5
  store i32 %24635, ptr %756, align 4, !tbaa !5
  %24636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24637 = call i32 @s2n_print_stacktrace(ptr noundef %24636)
  %24638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24639 = trunc i8 %24638 to i1
  br i1 %24639, label %24640, label %24662

24640:                                            ; preds = %24633
  %24641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24642 = call i32 @fileno(ptr noundef %24641) #11
  %24643 = call i32 @isatty(i32 noundef %24642) #11
  %24644 = icmp ne i32 %24643, 0
  br i1 %24644, label %24645, label %24662

24645:                                            ; preds = %24640
  %24646 = load i32, ptr %756, align 4, !tbaa !5
  %24647 = call ptr @__errno_location() #12
  store i32 %24646, ptr %24647, align 4, !tbaa !5
  %24648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24649 = load i32, ptr @test_count, align 4, !tbaa !5
  %24650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24651 = load i32, ptr %24650, align 4, !tbaa !5
  %24652 = call ptr @s2n_strerror(i32 noundef %24651, ptr noundef @.str.4)
  %24653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24654 = load i32, ptr %24653, align 4, !tbaa !5
  %24655 = call ptr @s2n_strerror_debug(i32 noundef %24654, ptr noundef @.str.4)
  %24656 = call ptr @__errno_location() #12
  %24657 = load i32, ptr %24656, align 4, !tbaa !5
  %24658 = call ptr @strerror(i32 noundef %24657) #11
  %24659 = call ptr @__errno_location() #12
  %24660 = load i32, ptr %24659, align 4, !tbaa !5
  %24661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24648, ptr noundef @.str.2, i32 noundef %24649, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1520, ptr noundef %24652, ptr noundef %24655, ptr noundef %24658, i32 noundef %24660) #11
  br label %24679

24662:                                            ; preds = %24640, %24633
  %24663 = load i32, ptr %756, align 4, !tbaa !5
  %24664 = call ptr @__errno_location() #12
  store i32 %24663, ptr %24664, align 4, !tbaa !5
  %24665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24666 = load i32, ptr @test_count, align 4, !tbaa !5
  %24667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24668 = load i32, ptr %24667, align 4, !tbaa !5
  %24669 = call ptr @s2n_strerror(i32 noundef %24668, ptr noundef @.str.4)
  %24670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24671 = load i32, ptr %24670, align 4, !tbaa !5
  %24672 = call ptr @s2n_strerror_debug(i32 noundef %24671, ptr noundef @.str.4)
  %24673 = call ptr @__errno_location() #12
  %24674 = load i32, ptr %24673, align 4, !tbaa !5
  %24675 = call ptr @strerror(i32 noundef %24674) #11
  %24676 = call ptr @__errno_location() #12
  %24677 = load i32, ptr %24676, align 4, !tbaa !5
  %24678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24665, ptr noundef @.str.5, i32 noundef %24666, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1520, ptr noundef %24669, ptr noundef %24672, ptr noundef %24675, i32 noundef %24677) #11
  br label %24679

24679:                                            ; preds = %24662, %24645
  call void @llvm.lifetime.end.p0(i64 4, ptr %756) #11
  br label %24680

24680:                                            ; preds = %24679
  br label %24681

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

24682:                                            ; No predecessors!
  br label %24683

24683:                                            ; preds = %24682
  br label %24684

24684:                                            ; preds = %24683, %24620
  br label %24685

24685:                                            ; preds = %24684
  br label %24686

24686:                                            ; preds = %24685
  call void @llvm.lifetime.start.p0(i64 8, ptr %757) #11
  %24687 = load ptr, ptr %742, align 8, !tbaa !9
  %24688 = getelementptr inbounds %struct.s2n_connection, ptr %24687, i32 0, i32 1
  %24689 = load ptr, ptr %24688, align 8, !tbaa !22
  %24690 = getelementptr inbounds %struct.s2n_config, ptr %24689, i32 0, i32 5
  %24691 = load ptr, ptr %24690, align 8, !tbaa !47
  store ptr %24691, ptr %757, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %758) #11
  %24692 = load i32, ptr %737, align 4, !tbaa !5
  %24693 = sext i32 %24692 to i64
  %24694 = getelementptr inbounds [8 x %struct.anon], ptr %736, i64 0, i64 %24693
  %24695 = getelementptr inbounds %struct.anon, ptr %24694, i32 0, i32 0
  %24696 = load i64, ptr %24695, align 16, !tbaa !53
  store i64 %24696, ptr %758, align 8, !tbaa !51
  br label %24697

24697:                                            ; preds = %24686
  %24698 = load i32, ptr @test_count, align 4, !tbaa !5
  %24699 = add nsw i32 %24698, 1
  store i32 %24699, ptr @test_count, align 4, !tbaa !5
  %24700 = load ptr, ptr %742, align 8, !tbaa !9
  %24701 = getelementptr inbounds %struct.s2n_connection, ptr %24700, i32 0, i32 1
  %24702 = load ptr, ptr %24701, align 8, !tbaa !22
  %24703 = call i32 @s2n_config_set_wall_clock(ptr noundef %24702, ptr noundef @mock_time, ptr noundef %758)
  %24704 = icmp eq i32 %24703, -1
  br i1 %24704, label %24705, label %24758

24705:                                            ; preds = %24697
  br label %24706

24706:                                            ; preds = %24705
  br label %24707

24707:                                            ; preds = %24706
  call void @llvm.lifetime.start.p0(i64 4, ptr %759) #11
  %24708 = call ptr @__errno_location() #12
  %24709 = load i32, ptr %24708, align 4, !tbaa !5
  store i32 %24709, ptr %759, align 4, !tbaa !5
  %24710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24711 = call i32 @s2n_print_stacktrace(ptr noundef %24710)
  %24712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24713 = trunc i8 %24712 to i1
  br i1 %24713, label %24714, label %24736

24714:                                            ; preds = %24707
  %24715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24716 = call i32 @fileno(ptr noundef %24715) #11
  %24717 = call i32 @isatty(i32 noundef %24716) #11
  %24718 = icmp ne i32 %24717, 0
  br i1 %24718, label %24719, label %24736

24719:                                            ; preds = %24714
  %24720 = load i32, ptr %759, align 4, !tbaa !5
  %24721 = call ptr @__errno_location() #12
  store i32 %24720, ptr %24721, align 4, !tbaa !5
  %24722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24723 = load i32, ptr @test_count, align 4, !tbaa !5
  %24724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24725 = load i32, ptr %24724, align 4, !tbaa !5
  %24726 = call ptr @s2n_strerror(i32 noundef %24725, ptr noundef @.str.4)
  %24727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24728 = load i32, ptr %24727, align 4, !tbaa !5
  %24729 = call ptr @s2n_strerror_debug(i32 noundef %24728, ptr noundef @.str.4)
  %24730 = call ptr @__errno_location() #12
  %24731 = load i32, ptr %24730, align 4, !tbaa !5
  %24732 = call ptr @strerror(i32 noundef %24731) #11
  %24733 = call ptr @__errno_location() #12
  %24734 = load i32, ptr %24733, align 4, !tbaa !5
  %24735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24722, ptr noundef @.str.2, i32 noundef %24723, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 1528, ptr noundef %24726, ptr noundef %24729, ptr noundef %24732, i32 noundef %24734) #11
  br label %24753

24736:                                            ; preds = %24714, %24707
  %24737 = load i32, ptr %759, align 4, !tbaa !5
  %24738 = call ptr @__errno_location() #12
  store i32 %24737, ptr %24738, align 4, !tbaa !5
  %24739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24740 = load i32, ptr @test_count, align 4, !tbaa !5
  %24741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24742 = load i32, ptr %24741, align 4, !tbaa !5
  %24743 = call ptr @s2n_strerror(i32 noundef %24742, ptr noundef @.str.4)
  %24744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24745 = load i32, ptr %24744, align 4, !tbaa !5
  %24746 = call ptr @s2n_strerror_debug(i32 noundef %24745, ptr noundef @.str.4)
  %24747 = call ptr @__errno_location() #12
  %24748 = load i32, ptr %24747, align 4, !tbaa !5
  %24749 = call ptr @strerror(i32 noundef %24748) #11
  %24750 = call ptr @__errno_location() #12
  %24751 = load i32, ptr %24750, align 4, !tbaa !5
  %24752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24739, ptr noundef @.str.5, i32 noundef %24740, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 1528, ptr noundef %24743, ptr noundef %24746, ptr noundef %24749, i32 noundef %24751) #11
  br label %24753

24753:                                            ; preds = %24736, %24719
  call void @llvm.lifetime.end.p0(i64 4, ptr %759) #11
  br label %24754

24754:                                            ; preds = %24753
  br label %24755

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

24756:                                            ; No predecessors!
  br label %24757

24757:                                            ; preds = %24756
  br label %24758

24758:                                            ; preds = %24757, %24697
  br label %24759

24759:                                            ; preds = %24758
  br label %24760

24760:                                            ; preds = %24759
  call void @llvm.lifetime.start.p0(i64 40, ptr %760) #11
  call void @llvm.memset.p0.i64(ptr align 8 %760, i8 0, i64 40, i1 false)
  br label %24761

24761:                                            ; preds = %24760
  %24762 = load i32, ptr @test_count, align 4, !tbaa !5
  %24763 = add nsw i32 %24762, 1
  store i32 %24763, ptr @test_count, align 4, !tbaa !5
  %24764 = call i32 @read_file(ptr noundef %760, ptr noundef @.str.84, i32 noundef 12000)
  %24765 = icmp eq i32 %24764, -1
  br i1 %24765, label %24766, label %24819

24766:                                            ; preds = %24761
  br label %24767

24767:                                            ; preds = %24766
  br label %24768

24768:                                            ; preds = %24767
  call void @llvm.lifetime.start.p0(i64 4, ptr %761) #11
  %24769 = call ptr @__errno_location() #12
  %24770 = load i32, ptr %24769, align 4, !tbaa !5
  store i32 %24770, ptr %761, align 4, !tbaa !5
  %24771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24772 = call i32 @s2n_print_stacktrace(ptr noundef %24771)
  %24773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24774 = trunc i8 %24773 to i1
  br i1 %24774, label %24775, label %24797

24775:                                            ; preds = %24768
  %24776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24777 = call i32 @fileno(ptr noundef %24776) #11
  %24778 = call i32 @isatty(i32 noundef %24777) #11
  %24779 = icmp ne i32 %24778, 0
  br i1 %24779, label %24780, label %24797

24780:                                            ; preds = %24775
  %24781 = load i32, ptr %761, align 4, !tbaa !5
  %24782 = call ptr @__errno_location() #12
  store i32 %24781, ptr %24782, align 4, !tbaa !5
  %24783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24784 = load i32, ptr @test_count, align 4, !tbaa !5
  %24785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24786 = load i32, ptr %24785, align 4, !tbaa !5
  %24787 = call ptr @s2n_strerror(i32 noundef %24786, ptr noundef @.str.4)
  %24788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24789 = load i32, ptr %24788, align 4, !tbaa !5
  %24790 = call ptr @s2n_strerror_debug(i32 noundef %24789, ptr noundef @.str.4)
  %24791 = call ptr @__errno_location() #12
  %24792 = load i32, ptr %24791, align 4, !tbaa !5
  %24793 = call ptr @strerror(i32 noundef %24792) #11
  %24794 = call ptr @__errno_location() #12
  %24795 = load i32, ptr %24794, align 4, !tbaa !5
  %24796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24783, ptr noundef @.str.2, i32 noundef %24784, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1531, ptr noundef %24787, ptr noundef %24790, ptr noundef %24793, i32 noundef %24795) #11
  br label %24814

24797:                                            ; preds = %24775, %24768
  %24798 = load i32, ptr %761, align 4, !tbaa !5
  %24799 = call ptr @__errno_location() #12
  store i32 %24798, ptr %24799, align 4, !tbaa !5
  %24800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24801 = load i32, ptr @test_count, align 4, !tbaa !5
  %24802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24803 = load i32, ptr %24802, align 4, !tbaa !5
  %24804 = call ptr @s2n_strerror(i32 noundef %24803, ptr noundef @.str.4)
  %24805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24806 = load i32, ptr %24805, align 4, !tbaa !5
  %24807 = call ptr @s2n_strerror_debug(i32 noundef %24806, ptr noundef @.str.4)
  %24808 = call ptr @__errno_location() #12
  %24809 = load i32, ptr %24808, align 4, !tbaa !5
  %24810 = call ptr @strerror(i32 noundef %24809) #11
  %24811 = call ptr @__errno_location() #12
  %24812 = load i32, ptr %24811, align 4, !tbaa !5
  %24813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24800, ptr noundef @.str.5, i32 noundef %24801, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 1531, ptr noundef %24804, ptr noundef %24807, ptr noundef %24810, i32 noundef %24812) #11
  br label %24814

24814:                                            ; preds = %24797, %24780
  call void @llvm.lifetime.end.p0(i64 4, ptr %761) #11
  br label %24815

24815:                                            ; preds = %24814
  br label %24816

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

24817:                                            ; No predecessors!
  br label %24818

24818:                                            ; preds = %24817
  br label %24819

24819:                                            ; preds = %24818, %24761
  br label %24820

24820:                                            ; preds = %24819
  br label %24821

24821:                                            ; preds = %24820
  call void @llvm.lifetime.start.p0(i64 4, ptr %762) #11
  %24822 = getelementptr inbounds %struct.s2n_stuffer, ptr %760, i32 0, i32 2
  %24823 = load i32, ptr %24822, align 4, !tbaa !15
  %24824 = getelementptr inbounds %struct.s2n_stuffer, ptr %760, i32 0, i32 1
  %24825 = load i32, ptr %24824, align 8, !tbaa !18
  %24826 = sub i32 %24823, %24825
  store i32 %24826, ptr %762, align 4, !tbaa !5
  br label %24827

24827:                                            ; preds = %24821
  %24828 = load i32, ptr @test_count, align 4, !tbaa !5
  %24829 = add nsw i32 %24828, 1
  store i32 %24829, ptr @test_count, align 4, !tbaa !5
  %24830 = load i32, ptr %762, align 4, !tbaa !5
  %24831 = icmp ugt i32 %24830, 0
  br i1 %24831, label %24885, label %24832

24832:                                            ; preds = %24827
  br label %24833

24833:                                            ; preds = %24832
  br label %24834

24834:                                            ; preds = %24833
  call void @llvm.lifetime.start.p0(i64 4, ptr %763) #11
  %24835 = call ptr @__errno_location() #12
  %24836 = load i32, ptr %24835, align 4, !tbaa !5
  store i32 %24836, ptr %763, align 4, !tbaa !5
  %24837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24838 = call i32 @s2n_print_stacktrace(ptr noundef %24837)
  %24839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24840 = trunc i8 %24839 to i1
  br i1 %24840, label %24841, label %24863

24841:                                            ; preds = %24834
  %24842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24843 = call i32 @fileno(ptr noundef %24842) #11
  %24844 = call i32 @isatty(i32 noundef %24843) #11
  %24845 = icmp ne i32 %24844, 0
  br i1 %24845, label %24846, label %24863

24846:                                            ; preds = %24841
  %24847 = load i32, ptr %763, align 4, !tbaa !5
  %24848 = call ptr @__errno_location() #12
  store i32 %24847, ptr %24848, align 4, !tbaa !5
  %24849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24850 = load i32, ptr @test_count, align 4, !tbaa !5
  %24851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24852 = load i32, ptr %24851, align 4, !tbaa !5
  %24853 = call ptr @s2n_strerror(i32 noundef %24852, ptr noundef @.str.4)
  %24854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24855 = load i32, ptr %24854, align 4, !tbaa !5
  %24856 = call ptr @s2n_strerror_debug(i32 noundef %24855, ptr noundef @.str.4)
  %24857 = call ptr @__errno_location() #12
  %24858 = load i32, ptr %24857, align 4, !tbaa !5
  %24859 = call ptr @strerror(i32 noundef %24858) #11
  %24860 = call ptr @__errno_location() #12
  %24861 = load i32, ptr %24860, align 4, !tbaa !5
  %24862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24849, ptr noundef @.str.2, i32 noundef %24850, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1533, ptr noundef %24853, ptr noundef %24856, ptr noundef %24859, i32 noundef %24861) #11
  br label %24880

24863:                                            ; preds = %24841, %24834
  %24864 = load i32, ptr %763, align 4, !tbaa !5
  %24865 = call ptr @__errno_location() #12
  store i32 %24864, ptr %24865, align 4, !tbaa !5
  %24866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24867 = load i32, ptr @test_count, align 4, !tbaa !5
  %24868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24869 = load i32, ptr %24868, align 4, !tbaa !5
  %24870 = call ptr @s2n_strerror(i32 noundef %24869, ptr noundef @.str.4)
  %24871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24872 = load i32, ptr %24871, align 4, !tbaa !5
  %24873 = call ptr @s2n_strerror_debug(i32 noundef %24872, ptr noundef @.str.4)
  %24874 = call ptr @__errno_location() #12
  %24875 = load i32, ptr %24874, align 4, !tbaa !5
  %24876 = call ptr @strerror(i32 noundef %24875) #11
  %24877 = call ptr @__errno_location() #12
  %24878 = load i32, ptr %24877, align 4, !tbaa !5
  %24879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24866, ptr noundef @.str.5, i32 noundef %24867, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 1533, ptr noundef %24870, ptr noundef %24873, ptr noundef %24876, i32 noundef %24878) #11
  br label %24880

24880:                                            ; preds = %24863, %24846
  call void @llvm.lifetime.end.p0(i64 4, ptr %763) #11
  br label %24881

24881:                                            ; preds = %24880
  br label %24882

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

24883:                                            ; No predecessors!
  br label %24884

24884:                                            ; preds = %24883
  br label %24885

24885:                                            ; preds = %24884, %24827
  br label %24886

24886:                                            ; preds = %24885
  br label %24887

24887:                                            ; preds = %24886
  %24888 = load i32, ptr %737, align 4, !tbaa !5
  %24889 = sext i32 %24888 to i64
  %24890 = getelementptr inbounds [8 x %struct.anon], ptr %736, i64 0, i64 %24889
  %24891 = getelementptr inbounds %struct.anon, ptr %24890, i32 0, i32 1
  %24892 = load i32, ptr %24891, align 8, !tbaa !55
  %24893 = icmp ne i32 %24892, 0
  br i1 %24893, label %24894, label %25104

24894:                                            ; preds = %24887
  br label %24895

24895:                                            ; preds = %24894
  br label %24896

24896:                                            ; preds = %24895
  br label %24897

24897:                                            ; preds = %24896
  %24898 = load i32, ptr @test_count, align 4, !tbaa !5
  %24899 = add nsw i32 %24898, 1
  store i32 %24899, ptr @test_count, align 4, !tbaa !5
  %24900 = load ptr, ptr %742, align 8, !tbaa !9
  %24901 = load i32, ptr %762, align 4, !tbaa !5
  %24902 = call ptr @s2n_stuffer_raw_read(ptr noundef %760, i32 noundef %24901)
  %24903 = load i32, ptr %762, align 4, !tbaa !5
  %24904 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %740, ptr noundef %24900, ptr noundef %24902, i32 noundef %24903)
  %24905 = getelementptr inbounds %struct.s2n_result, ptr %764, i32 0, i32 0
  store i32 %24904, ptr %24905, align 4
  %24906 = getelementptr inbounds %struct.s2n_result, ptr %764, i32 0, i32 0
  %24907 = load i32, ptr %24906, align 4
  %24908 = call zeroext i1 @s2n_result_is_error(i32 %24907)
  br i1 %24908, label %24962, label %24909

24909:                                            ; preds = %24897
  br label %24910

24910:                                            ; preds = %24909
  br label %24911

24911:                                            ; preds = %24910
  call void @llvm.lifetime.start.p0(i64 4, ptr %765) #11
  %24912 = call ptr @__errno_location() #12
  %24913 = load i32, ptr %24912, align 4, !tbaa !5
  store i32 %24913, ptr %765, align 4, !tbaa !5
  %24914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24915 = call i32 @s2n_print_stacktrace(ptr noundef %24914)
  %24916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24917 = trunc i8 %24916 to i1
  br i1 %24917, label %24918, label %24940

24918:                                            ; preds = %24911
  %24919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24920 = call i32 @fileno(ptr noundef %24919) #11
  %24921 = call i32 @isatty(i32 noundef %24920) #11
  %24922 = icmp ne i32 %24921, 0
  br i1 %24922, label %24923, label %24940

24923:                                            ; preds = %24918
  %24924 = load i32, ptr %765, align 4, !tbaa !5
  %24925 = call ptr @__errno_location() #12
  store i32 %24924, ptr %24925, align 4, !tbaa !5
  %24926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24927 = load i32, ptr @test_count, align 4, !tbaa !5
  %24928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24929 = load i32, ptr %24928, align 4, !tbaa !5
  %24930 = call ptr @s2n_strerror(i32 noundef %24929, ptr noundef @.str.4)
  %24931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24932 = load i32, ptr %24931, align 4, !tbaa !5
  %24933 = call ptr @s2n_strerror_debug(i32 noundef %24932, ptr noundef @.str.4)
  %24934 = call ptr @__errno_location() #12
  %24935 = load i32, ptr %24934, align 4, !tbaa !5
  %24936 = call ptr @strerror(i32 noundef %24935) #11
  %24937 = call ptr @__errno_location() #12
  %24938 = load i32, ptr %24937, align 4, !tbaa !5
  %24939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24926, ptr noundef @.str.2, i32 noundef %24927, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1538, ptr noundef %24930, ptr noundef %24933, ptr noundef %24936, i32 noundef %24938) #11
  br label %24957

24940:                                            ; preds = %24918, %24911
  %24941 = load i32, ptr %765, align 4, !tbaa !5
  %24942 = call ptr @__errno_location() #12
  store i32 %24941, ptr %24942, align 4, !tbaa !5
  %24943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24944 = load i32, ptr @test_count, align 4, !tbaa !5
  %24945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24946 = load i32, ptr %24945, align 4, !tbaa !5
  %24947 = call ptr @s2n_strerror(i32 noundef %24946, ptr noundef @.str.4)
  %24948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24949 = load i32, ptr %24948, align 4, !tbaa !5
  %24950 = call ptr @s2n_strerror_debug(i32 noundef %24949, ptr noundef @.str.4)
  %24951 = call ptr @__errno_location() #12
  %24952 = load i32, ptr %24951, align 4, !tbaa !5
  %24953 = call ptr @strerror(i32 noundef %24952) #11
  %24954 = call ptr @__errno_location() #12
  %24955 = load i32, ptr %24954, align 4, !tbaa !5
  %24956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24943, ptr noundef @.str.5, i32 noundef %24944, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 1538, ptr noundef %24947, ptr noundef %24950, ptr noundef %24953, i32 noundef %24955) #11
  br label %24957

24957:                                            ; preds = %24940, %24923
  call void @llvm.lifetime.end.p0(i64 4, ptr %765) #11
  br label %24958

24958:                                            ; preds = %24957
  br label %24959

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

24960:                                            ; No predecessors!
  br label %24961

24961:                                            ; preds = %24960
  br label %24962

24962:                                            ; preds = %24961, %24897
  br label %24963

24963:                                            ; preds = %24962
  br label %24964

24964:                                            ; preds = %24963
  br label %24965

24965:                                            ; preds = %24964
  %24966 = load i32, ptr @test_count, align 4, !tbaa !5
  %24967 = add nsw i32 %24966, 1
  store i32 %24967, ptr @test_count, align 4, !tbaa !5
  %24968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24969 = load i32, ptr %24968, align 4, !tbaa !5
  %24970 = load i32, ptr %737, align 4, !tbaa !5
  %24971 = sext i32 %24970 to i64
  %24972 = getelementptr inbounds [8 x %struct.anon], ptr %736, i64 0, i64 %24971
  %24973 = getelementptr inbounds %struct.anon, ptr %24972, i32 0, i32 1
  %24974 = load i32, ptr %24973, align 8, !tbaa !55
  %24975 = icmp eq i32 %24969, %24974
  br i1 %24975, label %25029, label %24976

24976:                                            ; preds = %24965
  br label %24977

24977:                                            ; preds = %24976
  br label %24978

24978:                                            ; preds = %24977
  call void @llvm.lifetime.start.p0(i64 4, ptr %766) #11
  %24979 = call ptr @__errno_location() #12
  %24980 = load i32, ptr %24979, align 4, !tbaa !5
  store i32 %24980, ptr %766, align 4, !tbaa !5
  %24981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24982 = call i32 @s2n_print_stacktrace(ptr noundef %24981)
  %24983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24984 = trunc i8 %24983 to i1
  br i1 %24984, label %24985, label %25007

24985:                                            ; preds = %24978
  %24986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24987 = call i32 @fileno(ptr noundef %24986) #11
  %24988 = call i32 @isatty(i32 noundef %24987) #11
  %24989 = icmp ne i32 %24988, 0
  br i1 %24989, label %24990, label %25007

24990:                                            ; preds = %24985
  %24991 = load i32, ptr %766, align 4, !tbaa !5
  %24992 = call ptr @__errno_location() #12
  store i32 %24991, ptr %24992, align 4, !tbaa !5
  %24993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24994 = load i32, ptr @test_count, align 4, !tbaa !5
  %24995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24996 = load i32, ptr %24995, align 4, !tbaa !5
  %24997 = call ptr @s2n_strerror(i32 noundef %24996, ptr noundef @.str.4)
  %24998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24999 = load i32, ptr %24998, align 4, !tbaa !5
  %25000 = call ptr @s2n_strerror_debug(i32 noundef %24999, ptr noundef @.str.4)
  %25001 = call ptr @__errno_location() #12
  %25002 = load i32, ptr %25001, align 4, !tbaa !5
  %25003 = call ptr @strerror(i32 noundef %25002) #11
  %25004 = call ptr @__errno_location() #12
  %25005 = load i32, ptr %25004, align 4, !tbaa !5
  %25006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24993, ptr noundef @.str.2, i32 noundef %24994, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 1538, ptr noundef %24997, ptr noundef %25000, ptr noundef %25003, i32 noundef %25005) #11
  br label %25024

25007:                                            ; preds = %24985, %24978
  %25008 = load i32, ptr %766, align 4, !tbaa !5
  %25009 = call ptr @__errno_location() #12
  store i32 %25008, ptr %25009, align 4, !tbaa !5
  %25010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25011 = load i32, ptr @test_count, align 4, !tbaa !5
  %25012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25013 = load i32, ptr %25012, align 4, !tbaa !5
  %25014 = call ptr @s2n_strerror(i32 noundef %25013, ptr noundef @.str.4)
  %25015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25016 = load i32, ptr %25015, align 4, !tbaa !5
  %25017 = call ptr @s2n_strerror_debug(i32 noundef %25016, ptr noundef @.str.4)
  %25018 = call ptr @__errno_location() #12
  %25019 = load i32, ptr %25018, align 4, !tbaa !5
  %25020 = call ptr @strerror(i32 noundef %25019) #11
  %25021 = call ptr @__errno_location() #12
  %25022 = load i32, ptr %25021, align 4, !tbaa !5
  %25023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25010, ptr noundef @.str.5, i32 noundef %25011, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 1538, ptr noundef %25014, ptr noundef %25017, ptr noundef %25020, i32 noundef %25022) #11
  br label %25024

25024:                                            ; preds = %25007, %24990
  call void @llvm.lifetime.end.p0(i64 4, ptr %766) #11
  br label %25025

25025:                                            ; preds = %25024
  br label %25026

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

25027:                                            ; No predecessors!
  br label %25028

25028:                                            ; preds = %25027
  br label %25029

25029:                                            ; preds = %25028, %24965
  br label %25030

25030:                                            ; preds = %25029
  br label %25031

25031:                                            ; preds = %25030
  br label %25032

25032:                                            ; preds = %25031
  %25033 = load i32, ptr @test_count, align 4, !tbaa !5
  %25034 = add nsw i32 %25033, 1
  store i32 %25034, ptr @test_count, align 4, !tbaa !5
  %25035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25036 = load i32, ptr %25035, align 4, !tbaa !5
  %25037 = call ptr @s2n_strerror_debug(i32 noundef %25036, ptr noundef @.str.4)
  %25038 = icmp eq ptr %25037, null
  br i1 %25038, label %25039, label %25092

25039:                                            ; preds = %25032
  br label %25040

25040:                                            ; preds = %25039
  br label %25041

25041:                                            ; preds = %25040
  call void @llvm.lifetime.start.p0(i64 4, ptr %767) #11
  %25042 = call ptr @__errno_location() #12
  %25043 = load i32, ptr %25042, align 4, !tbaa !5
  store i32 %25043, ptr %767, align 4, !tbaa !5
  %25044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25045 = call i32 @s2n_print_stacktrace(ptr noundef %25044)
  %25046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25047 = trunc i8 %25046 to i1
  br i1 %25047, label %25048, label %25070

25048:                                            ; preds = %25041
  %25049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25050 = call i32 @fileno(ptr noundef %25049) #11
  %25051 = call i32 @isatty(i32 noundef %25050) #11
  %25052 = icmp ne i32 %25051, 0
  br i1 %25052, label %25053, label %25070

25053:                                            ; preds = %25048
  %25054 = load i32, ptr %767, align 4, !tbaa !5
  %25055 = call ptr @__errno_location() #12
  store i32 %25054, ptr %25055, align 4, !tbaa !5
  %25056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25057 = load i32, ptr @test_count, align 4, !tbaa !5
  %25058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25059 = load i32, ptr %25058, align 4, !tbaa !5
  %25060 = call ptr @s2n_strerror(i32 noundef %25059, ptr noundef @.str.4)
  %25061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25062 = load i32, ptr %25061, align 4, !tbaa !5
  %25063 = call ptr @s2n_strerror_debug(i32 noundef %25062, ptr noundef @.str.4)
  %25064 = call ptr @__errno_location() #12
  %25065 = load i32, ptr %25064, align 4, !tbaa !5
  %25066 = call ptr @strerror(i32 noundef %25065) #11
  %25067 = call ptr @__errno_location() #12
  %25068 = load i32, ptr %25067, align 4, !tbaa !5
  %25069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25056, ptr noundef @.str.2, i32 noundef %25057, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1538, ptr noundef %25060, ptr noundef %25063, ptr noundef %25066, i32 noundef %25068) #11
  br label %25087

25070:                                            ; preds = %25048, %25041
  %25071 = load i32, ptr %767, align 4, !tbaa !5
  %25072 = call ptr @__errno_location() #12
  store i32 %25071, ptr %25072, align 4, !tbaa !5
  %25073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25074 = load i32, ptr @test_count, align 4, !tbaa !5
  %25075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25076 = load i32, ptr %25075, align 4, !tbaa !5
  %25077 = call ptr @s2n_strerror(i32 noundef %25076, ptr noundef @.str.4)
  %25078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25079 = load i32, ptr %25078, align 4, !tbaa !5
  %25080 = call ptr @s2n_strerror_debug(i32 noundef %25079, ptr noundef @.str.4)
  %25081 = call ptr @__errno_location() #12
  %25082 = load i32, ptr %25081, align 4, !tbaa !5
  %25083 = call ptr @strerror(i32 noundef %25082) #11
  %25084 = call ptr @__errno_location() #12
  %25085 = load i32, ptr %25084, align 4, !tbaa !5
  %25086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25073, ptr noundef @.str.5, i32 noundef %25074, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1538, ptr noundef %25077, ptr noundef %25080, ptr noundef %25083, i32 noundef %25085) #11
  br label %25087

25087:                                            ; preds = %25070, %25053
  call void @llvm.lifetime.end.p0(i64 4, ptr %767) #11
  br label %25088

25088:                                            ; preds = %25087
  br label %25089

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

25090:                                            ; No predecessors!
  br label %25091

25091:                                            ; preds = %25090
  br label %25092

25092:                                            ; preds = %25091, %25032
  br label %25093

25093:                                            ; preds = %25092
  br label %25094

25094:                                            ; preds = %25093
  br label %25095

25095:                                            ; preds = %25094
  br label %25096

25096:                                            ; preds = %25095
  br label %25097

25097:                                            ; preds = %25096
  %25098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %25098, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %25099 = call ptr @__errno_location() #12
  store i32 0, ptr %25099, align 4, !tbaa !5
  br label %25100

25100:                                            ; preds = %25097
  br label %25101

25101:                                            ; preds = %25100
  br label %25102

25102:                                            ; preds = %25101
  br label %25103

25103:                                            ; preds = %25102
  br label %25173

25104:                                            ; preds = %24887
  br label %25105

25105:                                            ; preds = %25104
  %25106 = load i32, ptr @test_count, align 4, !tbaa !5
  %25107 = add nsw i32 %25106, 1
  store i32 %25107, ptr @test_count, align 4, !tbaa !5
  %25108 = load ptr, ptr %742, align 8, !tbaa !9
  %25109 = load i32, ptr %762, align 4, !tbaa !5
  %25110 = call ptr @s2n_stuffer_raw_read(ptr noundef %760, i32 noundef %25109)
  %25111 = load i32, ptr %762, align 4, !tbaa !5
  %25112 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef %740, ptr noundef %25108, ptr noundef %25110, i32 noundef %25111)
  %25113 = getelementptr inbounds %struct.s2n_result, ptr %768, i32 0, i32 0
  store i32 %25112, ptr %25113, align 4
  %25114 = getelementptr inbounds %struct.s2n_result, ptr %768, i32 0, i32 0
  %25115 = load i32, ptr %25114, align 4
  %25116 = call zeroext i1 @s2n_result_is_ok(i32 %25115)
  br i1 %25116, label %25170, label %25117

25117:                                            ; preds = %25105
  br label %25118

25118:                                            ; preds = %25117
  br label %25119

25119:                                            ; preds = %25118
  call void @llvm.lifetime.start.p0(i64 4, ptr %769) #11
  %25120 = call ptr @__errno_location() #12
  %25121 = load i32, ptr %25120, align 4, !tbaa !5
  store i32 %25121, ptr %769, align 4, !tbaa !5
  %25122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25123 = call i32 @s2n_print_stacktrace(ptr noundef %25122)
  %25124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25125 = trunc i8 %25124 to i1
  br i1 %25125, label %25126, label %25148

25126:                                            ; preds = %25119
  %25127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25128 = call i32 @fileno(ptr noundef %25127) #11
  %25129 = call i32 @isatty(i32 noundef %25128) #11
  %25130 = icmp ne i32 %25129, 0
  br i1 %25130, label %25131, label %25148

25131:                                            ; preds = %25126
  %25132 = load i32, ptr %769, align 4, !tbaa !5
  %25133 = call ptr @__errno_location() #12
  store i32 %25132, ptr %25133, align 4, !tbaa !5
  %25134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25135 = load i32, ptr @test_count, align 4, !tbaa !5
  %25136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25137 = load i32, ptr %25136, align 4, !tbaa !5
  %25138 = call ptr @s2n_strerror(i32 noundef %25137, ptr noundef @.str.4)
  %25139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25140 = load i32, ptr %25139, align 4, !tbaa !5
  %25141 = call ptr @s2n_strerror_debug(i32 noundef %25140, ptr noundef @.str.4)
  %25142 = call ptr @__errno_location() #12
  %25143 = load i32, ptr %25142, align 4, !tbaa !5
  %25144 = call ptr @strerror(i32 noundef %25143) #11
  %25145 = call ptr @__errno_location() #12
  %25146 = load i32, ptr %25145, align 4, !tbaa !5
  %25147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25134, ptr noundef @.str.2, i32 noundef %25135, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 1541, ptr noundef %25138, ptr noundef %25141, ptr noundef %25144, i32 noundef %25146) #11
  br label %25165

25148:                                            ; preds = %25126, %25119
  %25149 = load i32, ptr %769, align 4, !tbaa !5
  %25150 = call ptr @__errno_location() #12
  store i32 %25149, ptr %25150, align 4, !tbaa !5
  %25151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25152 = load i32, ptr @test_count, align 4, !tbaa !5
  %25153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25154 = load i32, ptr %25153, align 4, !tbaa !5
  %25155 = call ptr @s2n_strerror(i32 noundef %25154, ptr noundef @.str.4)
  %25156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25157 = load i32, ptr %25156, align 4, !tbaa !5
  %25158 = call ptr @s2n_strerror_debug(i32 noundef %25157, ptr noundef @.str.4)
  %25159 = call ptr @__errno_location() #12
  %25160 = load i32, ptr %25159, align 4, !tbaa !5
  %25161 = call ptr @strerror(i32 noundef %25160) #11
  %25162 = call ptr @__errno_location() #12
  %25163 = load i32, ptr %25162, align 4, !tbaa !5
  %25164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25151, ptr noundef @.str.5, i32 noundef %25152, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 1541, ptr noundef %25155, ptr noundef %25158, ptr noundef %25161, i32 noundef %25163) #11
  br label %25165

25165:                                            ; preds = %25148, %25131
  call void @llvm.lifetime.end.p0(i64 4, ptr %769) #11
  br label %25166

25166:                                            ; preds = %25165
  br label %25167

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

25168:                                            ; No predecessors!
  br label %25169

25169:                                            ; preds = %25168
  br label %25170

25170:                                            ; preds = %25169, %25105
  br label %25171

25171:                                            ; preds = %25170
  br label %25172

25172:                                            ; preds = %25171
  br label %25173

25173:                                            ; preds = %25172, %25103
  br label %25174

25174:                                            ; preds = %25173
  %25175 = load i32, ptr @test_count, align 4, !tbaa !5
  %25176 = add nsw i32 %25175, 1
  store i32 %25176, ptr @test_count, align 4, !tbaa !5
  %25177 = load ptr, ptr %742, align 8, !tbaa !9
  %25178 = getelementptr inbounds %struct.s2n_connection, ptr %25177, i32 0, i32 1
  %25179 = load ptr, ptr %25178, align 8, !tbaa !22
  %25180 = load ptr, ptr %757, align 8, !tbaa !9
  %25181 = call i32 @s2n_config_set_wall_clock(ptr noundef %25179, ptr noundef %25180, ptr noundef null)
  %25182 = icmp eq i32 %25181, -1
  br i1 %25182, label %25183, label %25236

25183:                                            ; preds = %25174
  br label %25184

25184:                                            ; preds = %25183
  br label %25185

25185:                                            ; preds = %25184
  call void @llvm.lifetime.start.p0(i64 4, ptr %770) #11
  %25186 = call ptr @__errno_location() #12
  %25187 = load i32, ptr %25186, align 4, !tbaa !5
  store i32 %25187, ptr %770, align 4, !tbaa !5
  %25188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25189 = call i32 @s2n_print_stacktrace(ptr noundef %25188)
  %25190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25191 = trunc i8 %25190 to i1
  br i1 %25191, label %25192, label %25214

25192:                                            ; preds = %25185
  %25193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25194 = call i32 @fileno(ptr noundef %25193) #11
  %25195 = call i32 @isatty(i32 noundef %25194) #11
  %25196 = icmp ne i32 %25195, 0
  br i1 %25196, label %25197, label %25214

25197:                                            ; preds = %25192
  %25198 = load i32, ptr %770, align 4, !tbaa !5
  %25199 = call ptr @__errno_location() #12
  store i32 %25198, ptr %25199, align 4, !tbaa !5
  %25200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25201 = load i32, ptr @test_count, align 4, !tbaa !5
  %25202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25203 = load i32, ptr %25202, align 4, !tbaa !5
  %25204 = call ptr @s2n_strerror(i32 noundef %25203, ptr noundef @.str.4)
  %25205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25206 = load i32, ptr %25205, align 4, !tbaa !5
  %25207 = call ptr @s2n_strerror_debug(i32 noundef %25206, ptr noundef @.str.4)
  %25208 = call ptr @__errno_location() #12
  %25209 = load i32, ptr %25208, align 4, !tbaa !5
  %25210 = call ptr @strerror(i32 noundef %25209) #11
  %25211 = call ptr @__errno_location() #12
  %25212 = load i32, ptr %25211, align 4, !tbaa !5
  %25213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25200, ptr noundef @.str.2, i32 noundef %25201, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 1544, ptr noundef %25204, ptr noundef %25207, ptr noundef %25210, i32 noundef %25212) #11
  br label %25231

25214:                                            ; preds = %25192, %25185
  %25215 = load i32, ptr %770, align 4, !tbaa !5
  %25216 = call ptr @__errno_location() #12
  store i32 %25215, ptr %25216, align 4, !tbaa !5
  %25217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25218 = load i32, ptr @test_count, align 4, !tbaa !5
  %25219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25220 = load i32, ptr %25219, align 4, !tbaa !5
  %25221 = call ptr @s2n_strerror(i32 noundef %25220, ptr noundef @.str.4)
  %25222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25223 = load i32, ptr %25222, align 4, !tbaa !5
  %25224 = call ptr @s2n_strerror_debug(i32 noundef %25223, ptr noundef @.str.4)
  %25225 = call ptr @__errno_location() #12
  %25226 = load i32, ptr %25225, align 4, !tbaa !5
  %25227 = call ptr @strerror(i32 noundef %25226) #11
  %25228 = call ptr @__errno_location() #12
  %25229 = load i32, ptr %25228, align 4, !tbaa !5
  %25230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25217, ptr noundef @.str.5, i32 noundef %25218, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 1544, ptr noundef %25221, ptr noundef %25224, ptr noundef %25227, i32 noundef %25229) #11
  br label %25231

25231:                                            ; preds = %25214, %25197
  call void @llvm.lifetime.end.p0(i64 4, ptr %770) #11
  br label %25232

25232:                                            ; preds = %25231
  br label %25233

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

25234:                                            ; No predecessors!
  br label %25235

25235:                                            ; preds = %25234
  br label %25236

25236:                                            ; preds = %25235, %25174
  br label %25237

25237:                                            ; preds = %25236
  br label %25238

25238:                                            ; preds = %25237
  call void @llvm.lifetime.end.p0(i64 4, ptr %762) #11
  %25239 = call i32 @s2n_stuffer_free(ptr noundef %760)
  call void @llvm.lifetime.end.p0(i64 40, ptr %760) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %758) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %757) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %754) #11
  %25240 = call i32 @s2n_pkey_free(ptr noundef %752)
  call void @llvm.lifetime.end.p0(i64 48, ptr %752) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %750) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %749) #11
  %25241 = call i32 @s2n_stuffer_free(ptr noundef %746)
  call void @llvm.lifetime.end.p0(i64 40, ptr %746) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %744) #11
  %25242 = call i32 @s2n_connection_ptr_free(ptr noundef %742)
  %25243 = getelementptr inbounds %struct.s2n_result, ptr %771, i32 0, i32 0
  store i32 %25242, ptr %25243, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %742) #11
  %25244 = call i32 @s2n_x509_validator_wipe(ptr noundef %740)
  call void @llvm.lifetime.end.p0(i64 56, ptr %740) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef %738)
  call void @llvm.lifetime.end.p0(i64 16, ptr %738) #11
  br label %25245

25245:                                            ; preds = %25238
  %25246 = load i32, ptr %737, align 4, !tbaa !5
  %25247 = add nsw i32 %25246, 1
  store i32 %25247, ptr %737, align 4, !tbaa !5
  br label %24174, !llvm.loop !56

25248:                                            ; preds = %24178
  call void @llvm.lifetime.end.p0(i64 128, ptr %736) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %735) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %734) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %733) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %732) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %772) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %772)
  br label %25249

25249:                                            ; preds = %25248
  %25250 = load i32, ptr @test_count, align 4, !tbaa !5
  %25251 = add nsw i32 %25250, 1
  store i32 %25251, ptr @test_count, align 4, !tbaa !5
  %25252 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %772, ptr noundef @.str.88, ptr noundef null)
  %25253 = icmp eq i32 0, %25252
  br i1 %25253, label %25307, label %25254

25254:                                            ; preds = %25249
  br label %25255

25255:                                            ; preds = %25254
  br label %25256

25256:                                            ; preds = %25255
  call void @llvm.lifetime.start.p0(i64 4, ptr %773) #11
  %25257 = call ptr @__errno_location() #12
  %25258 = load i32, ptr %25257, align 4, !tbaa !5
  store i32 %25258, ptr %773, align 4, !tbaa !5
  %25259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25260 = call i32 @s2n_print_stacktrace(ptr noundef %25259)
  %25261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25262 = trunc i8 %25261 to i1
  br i1 %25262, label %25263, label %25285

25263:                                            ; preds = %25256
  %25264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25265 = call i32 @fileno(ptr noundef %25264) #11
  %25266 = call i32 @isatty(i32 noundef %25265) #11
  %25267 = icmp ne i32 %25266, 0
  br i1 %25267, label %25268, label %25285

25268:                                            ; preds = %25263
  %25269 = load i32, ptr %773, align 4, !tbaa !5
  %25270 = call ptr @__errno_location() #12
  store i32 %25269, ptr %25270, align 4, !tbaa !5
  %25271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25272 = load i32, ptr @test_count, align 4, !tbaa !5
  %25273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25274 = load i32, ptr %25273, align 4, !tbaa !5
  %25275 = call ptr @s2n_strerror(i32 noundef %25274, ptr noundef @.str.4)
  %25276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25277 = load i32, ptr %25276, align 4, !tbaa !5
  %25278 = call ptr @s2n_strerror_debug(i32 noundef %25277, ptr noundef @.str.4)
  %25279 = call ptr @__errno_location() #12
  %25280 = load i32, ptr %25279, align 4, !tbaa !5
  %25281 = call ptr @strerror(i32 noundef %25280) #11
  %25282 = call ptr @__errno_location() #12
  %25283 = load i32, ptr %25282, align 4, !tbaa !5
  %25284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25271, ptr noundef @.str.2, i32 noundef %25272, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1552, ptr noundef %25275, ptr noundef %25278, ptr noundef %25281, i32 noundef %25283) #11
  br label %25302

25285:                                            ; preds = %25263, %25256
  %25286 = load i32, ptr %773, align 4, !tbaa !5
  %25287 = call ptr @__errno_location() #12
  store i32 %25286, ptr %25287, align 4, !tbaa !5
  %25288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25289 = load i32, ptr @test_count, align 4, !tbaa !5
  %25290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25291 = load i32, ptr %25290, align 4, !tbaa !5
  %25292 = call ptr @s2n_strerror(i32 noundef %25291, ptr noundef @.str.4)
  %25293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25294 = load i32, ptr %25293, align 4, !tbaa !5
  %25295 = call ptr @s2n_strerror_debug(i32 noundef %25294, ptr noundef @.str.4)
  %25296 = call ptr @__errno_location() #12
  %25297 = load i32, ptr %25296, align 4, !tbaa !5
  %25298 = call ptr @strerror(i32 noundef %25297) #11
  %25299 = call ptr @__errno_location() #12
  %25300 = load i32, ptr %25299, align 4, !tbaa !5
  %25301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25288, ptr noundef @.str.5, i32 noundef %25289, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1552, ptr noundef %25292, ptr noundef %25295, ptr noundef %25298, i32 noundef %25300) #11
  br label %25302

25302:                                            ; preds = %25285, %25268
  call void @llvm.lifetime.end.p0(i64 4, ptr %773) #11
  br label %25303

25303:                                            ; preds = %25302
  br label %25304

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

25305:                                            ; No predecessors!
  br label %25306

25306:                                            ; preds = %25305
  br label %25307

25307:                                            ; preds = %25306, %25249
  br label %25308

25308:                                            ; preds = %25307
  br label %25309

25309:                                            ; preds = %25308
  call void @llvm.lifetime.start.p0(i64 56, ptr %774) #11
  %25310 = call i32 @s2n_x509_validator_init(ptr noundef %774, ptr noundef %772, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %775) #11
  %25311 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %25311, ptr %775, align 8, !tbaa !9
  br label %25312

25312:                                            ; preds = %25309
  %25313 = load i32, ptr @test_count, align 4, !tbaa !5
  %25314 = add nsw i32 %25313, 1
  store i32 %25314, ptr @test_count, align 4, !tbaa !5
  %25315 = load ptr, ptr %775, align 8, !tbaa !9
  %25316 = icmp eq ptr %25315, null
  br i1 %25316, label %25317, label %25370

25317:                                            ; preds = %25312
  br label %25318

25318:                                            ; preds = %25317
  br label %25319

25319:                                            ; preds = %25318
  call void @llvm.lifetime.start.p0(i64 4, ptr %776) #11
  %25320 = call ptr @__errno_location() #12
  %25321 = load i32, ptr %25320, align 4, !tbaa !5
  store i32 %25321, ptr %776, align 4, !tbaa !5
  %25322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25323 = call i32 @s2n_print_stacktrace(ptr noundef %25322)
  %25324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25325 = trunc i8 %25324 to i1
  br i1 %25325, label %25326, label %25348

25326:                                            ; preds = %25319
  %25327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25328 = call i32 @fileno(ptr noundef %25327) #11
  %25329 = call i32 @isatty(i32 noundef %25328) #11
  %25330 = icmp ne i32 %25329, 0
  br i1 %25330, label %25331, label %25348

25331:                                            ; preds = %25326
  %25332 = load i32, ptr %776, align 4, !tbaa !5
  %25333 = call ptr @__errno_location() #12
  store i32 %25332, ptr %25333, align 4, !tbaa !5
  %25334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25335 = load i32, ptr @test_count, align 4, !tbaa !5
  %25336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25337 = load i32, ptr %25336, align 4, !tbaa !5
  %25338 = call ptr @s2n_strerror(i32 noundef %25337, ptr noundef @.str.4)
  %25339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25340 = load i32, ptr %25339, align 4, !tbaa !5
  %25341 = call ptr @s2n_strerror_debug(i32 noundef %25340, ptr noundef @.str.4)
  %25342 = call ptr @__errno_location() #12
  %25343 = load i32, ptr %25342, align 4, !tbaa !5
  %25344 = call ptr @strerror(i32 noundef %25343) #11
  %25345 = call ptr @__errno_location() #12
  %25346 = load i32, ptr %25345, align 4, !tbaa !5
  %25347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25334, ptr noundef @.str.2, i32 noundef %25335, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1558, ptr noundef %25338, ptr noundef %25341, ptr noundef %25344, i32 noundef %25346) #11
  br label %25365

25348:                                            ; preds = %25326, %25319
  %25349 = load i32, ptr %776, align 4, !tbaa !5
  %25350 = call ptr @__errno_location() #12
  store i32 %25349, ptr %25350, align 4, !tbaa !5
  %25351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25352 = load i32, ptr @test_count, align 4, !tbaa !5
  %25353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25354 = load i32, ptr %25353, align 4, !tbaa !5
  %25355 = call ptr @s2n_strerror(i32 noundef %25354, ptr noundef @.str.4)
  %25356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25357 = load i32, ptr %25356, align 4, !tbaa !5
  %25358 = call ptr @s2n_strerror_debug(i32 noundef %25357, ptr noundef @.str.4)
  %25359 = call ptr @__errno_location() #12
  %25360 = load i32, ptr %25359, align 4, !tbaa !5
  %25361 = call ptr @strerror(i32 noundef %25360) #11
  %25362 = call ptr @__errno_location() #12
  %25363 = load i32, ptr %25362, align 4, !tbaa !5
  %25364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25351, ptr noundef @.str.5, i32 noundef %25352, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1558, ptr noundef %25355, ptr noundef %25358, ptr noundef %25361, i32 noundef %25363) #11
  br label %25365

25365:                                            ; preds = %25348, %25331
  call void @llvm.lifetime.end.p0(i64 4, ptr %776) #11
  br label %25366

25366:                                            ; preds = %25365
  br label %25367

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

25368:                                            ; No predecessors!
  br label %25369

25369:                                            ; preds = %25368
  br label %25370

25370:                                            ; preds = %25369, %25312
  br label %25371

25371:                                            ; preds = %25370
  br label %25372

25372:                                            ; preds = %25371
  br label %25373

25373:                                            ; preds = %25372
  %25374 = load i32, ptr @test_count, align 4, !tbaa !5
  %25375 = add nsw i32 %25374, 1
  store i32 %25375, ptr @test_count, align 4, !tbaa !5
  %25376 = load ptr, ptr %775, align 8, !tbaa !9
  %25377 = call i32 @s2n_set_server_name(ptr noundef %25376, ptr noundef @.str.66)
  %25378 = icmp eq i32 %25377, -1
  br i1 %25378, label %25379, label %25432

25379:                                            ; preds = %25373
  br label %25380

25380:                                            ; preds = %25379
  br label %25381

25381:                                            ; preds = %25380
  call void @llvm.lifetime.start.p0(i64 4, ptr %777) #11
  %25382 = call ptr @__errno_location() #12
  %25383 = load i32, ptr %25382, align 4, !tbaa !5
  store i32 %25383, ptr %777, align 4, !tbaa !5
  %25384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25385 = call i32 @s2n_print_stacktrace(ptr noundef %25384)
  %25386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25387 = trunc i8 %25386 to i1
  br i1 %25387, label %25388, label %25410

25388:                                            ; preds = %25381
  %25389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25390 = call i32 @fileno(ptr noundef %25389) #11
  %25391 = call i32 @isatty(i32 noundef %25390) #11
  %25392 = icmp ne i32 %25391, 0
  br i1 %25392, label %25393, label %25410

25393:                                            ; preds = %25388
  %25394 = load i32, ptr %777, align 4, !tbaa !5
  %25395 = call ptr @__errno_location() #12
  store i32 %25394, ptr %25395, align 4, !tbaa !5
  %25396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25397 = load i32, ptr @test_count, align 4, !tbaa !5
  %25398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25399 = load i32, ptr %25398, align 4, !tbaa !5
  %25400 = call ptr @s2n_strerror(i32 noundef %25399, ptr noundef @.str.4)
  %25401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25402 = load i32, ptr %25401, align 4, !tbaa !5
  %25403 = call ptr @s2n_strerror_debug(i32 noundef %25402, ptr noundef @.str.4)
  %25404 = call ptr @__errno_location() #12
  %25405 = load i32, ptr %25404, align 4, !tbaa !5
  %25406 = call ptr @strerror(i32 noundef %25405) #11
  %25407 = call ptr @__errno_location() #12
  %25408 = load i32, ptr %25407, align 4, !tbaa !5
  %25409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25396, ptr noundef @.str.2, i32 noundef %25397, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 1560, ptr noundef %25400, ptr noundef %25403, ptr noundef %25406, i32 noundef %25408) #11
  br label %25427

25410:                                            ; preds = %25388, %25381
  %25411 = load i32, ptr %777, align 4, !tbaa !5
  %25412 = call ptr @__errno_location() #12
  store i32 %25411, ptr %25412, align 4, !tbaa !5
  %25413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25414 = load i32, ptr @test_count, align 4, !tbaa !5
  %25415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25416 = load i32, ptr %25415, align 4, !tbaa !5
  %25417 = call ptr @s2n_strerror(i32 noundef %25416, ptr noundef @.str.4)
  %25418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25419 = load i32, ptr %25418, align 4, !tbaa !5
  %25420 = call ptr @s2n_strerror_debug(i32 noundef %25419, ptr noundef @.str.4)
  %25421 = call ptr @__errno_location() #12
  %25422 = load i32, ptr %25421, align 4, !tbaa !5
  %25423 = call ptr @strerror(i32 noundef %25422) #11
  %25424 = call ptr @__errno_location() #12
  %25425 = load i32, ptr %25424, align 4, !tbaa !5
  %25426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25413, ptr noundef @.str.5, i32 noundef %25414, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 1560, ptr noundef %25417, ptr noundef %25420, ptr noundef %25423, i32 noundef %25425) #11
  br label %25427

25427:                                            ; preds = %25410, %25393
  call void @llvm.lifetime.end.p0(i64 4, ptr %777) #11
  br label %25428

25428:                                            ; preds = %25427
  br label %25429

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

25430:                                            ; No predecessors!
  br label %25431

25431:                                            ; preds = %25430
  br label %25432

25432:                                            ; preds = %25431, %25373
  br label %25433

25433:                                            ; preds = %25432
  br label %25434

25434:                                            ; preds = %25433
  call void @llvm.lifetime.start.p0(i64 40, ptr %778) #11
  call void @llvm.memset.p0.i64(ptr align 8 %778, i8 0, i64 40, i1 false)
  br label %25435

25435:                                            ; preds = %25434
  %25436 = load i32, ptr @test_count, align 4, !tbaa !5
  %25437 = add nsw i32 %25436, 1
  store i32 %25437, ptr @test_count, align 4, !tbaa !5
  %25438 = load ptr, ptr %775, align 8, !tbaa !9
  %25439 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %25438, ptr noundef @.str.88, ptr noundef %778)
  %25440 = getelementptr inbounds %struct.s2n_result, ptr %779, i32 0, i32 0
  store i32 %25439, ptr %25440, align 4
  %25441 = getelementptr inbounds %struct.s2n_result, ptr %779, i32 0, i32 0
  %25442 = load i32, ptr %25441, align 4
  %25443 = call zeroext i1 @s2n_result_is_ok(i32 %25442)
  br i1 %25443, label %25497, label %25444

25444:                                            ; preds = %25435
  br label %25445

25445:                                            ; preds = %25444
  br label %25446

25446:                                            ; preds = %25445
  call void @llvm.lifetime.start.p0(i64 4, ptr %780) #11
  %25447 = call ptr @__errno_location() #12
  %25448 = load i32, ptr %25447, align 4, !tbaa !5
  store i32 %25448, ptr %780, align 4, !tbaa !5
  %25449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25450 = call i32 @s2n_print_stacktrace(ptr noundef %25449)
  %25451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25452 = trunc i8 %25451 to i1
  br i1 %25452, label %25453, label %25475

25453:                                            ; preds = %25446
  %25454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25455 = call i32 @fileno(ptr noundef %25454) #11
  %25456 = call i32 @isatty(i32 noundef %25455) #11
  %25457 = icmp ne i32 %25456, 0
  br i1 %25457, label %25458, label %25475

25458:                                            ; preds = %25453
  %25459 = load i32, ptr %780, align 4, !tbaa !5
  %25460 = call ptr @__errno_location() #12
  store i32 %25459, ptr %25460, align 4, !tbaa !5
  %25461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25462 = load i32, ptr @test_count, align 4, !tbaa !5
  %25463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25464 = load i32, ptr %25463, align 4, !tbaa !5
  %25465 = call ptr @s2n_strerror(i32 noundef %25464, ptr noundef @.str.4)
  %25466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25467 = load i32, ptr %25466, align 4, !tbaa !5
  %25468 = call ptr @s2n_strerror_debug(i32 noundef %25467, ptr noundef @.str.4)
  %25469 = call ptr @__errno_location() #12
  %25470 = load i32, ptr %25469, align 4, !tbaa !5
  %25471 = call ptr @strerror(i32 noundef %25470) #11
  %25472 = call ptr @__errno_location() #12
  %25473 = load i32, ptr %25472, align 4, !tbaa !5
  %25474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25461, ptr noundef @.str.2, i32 noundef %25462, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1564, ptr noundef %25465, ptr noundef %25468, ptr noundef %25471, i32 noundef %25473) #11
  br label %25492

25475:                                            ; preds = %25453, %25446
  %25476 = load i32, ptr %780, align 4, !tbaa !5
  %25477 = call ptr @__errno_location() #12
  store i32 %25476, ptr %25477, align 4, !tbaa !5
  %25478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25479 = load i32, ptr @test_count, align 4, !tbaa !5
  %25480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25481 = load i32, ptr %25480, align 4, !tbaa !5
  %25482 = call ptr @s2n_strerror(i32 noundef %25481, ptr noundef @.str.4)
  %25483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25484 = load i32, ptr %25483, align 4, !tbaa !5
  %25485 = call ptr @s2n_strerror_debug(i32 noundef %25484, ptr noundef @.str.4)
  %25486 = call ptr @__errno_location() #12
  %25487 = load i32, ptr %25486, align 4, !tbaa !5
  %25488 = call ptr @strerror(i32 noundef %25487) #11
  %25489 = call ptr @__errno_location() #12
  %25490 = load i32, ptr %25489, align 4, !tbaa !5
  %25491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25478, ptr noundef @.str.5, i32 noundef %25479, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1564, ptr noundef %25482, ptr noundef %25485, ptr noundef %25488, i32 noundef %25490) #11
  br label %25492

25492:                                            ; preds = %25475, %25458
  call void @llvm.lifetime.end.p0(i64 4, ptr %780) #11
  br label %25493

25493:                                            ; preds = %25492
  br label %25494

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

25495:                                            ; No predecessors!
  br label %25496

25496:                                            ; preds = %25495
  br label %25497

25497:                                            ; preds = %25496, %25435
  br label %25498

25498:                                            ; preds = %25497
  br label %25499

25499:                                            ; preds = %25498
  call void @llvm.lifetime.start.p0(i64 4, ptr %781) #11
  %25500 = getelementptr inbounds %struct.s2n_stuffer, ptr %778, i32 0, i32 2
  %25501 = load i32, ptr %25500, align 4, !tbaa !15
  %25502 = getelementptr inbounds %struct.s2n_stuffer, ptr %778, i32 0, i32 1
  %25503 = load i32, ptr %25502, align 8, !tbaa !18
  %25504 = sub i32 %25501, %25503
  store i32 %25504, ptr %781, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %782) #11
  %25505 = load i32, ptr %781, align 4, !tbaa !5
  %25506 = call ptr @s2n_stuffer_raw_read(ptr noundef %778, i32 noundef %25505)
  store ptr %25506, ptr %782, align 8, !tbaa !9
  br label %25507

25507:                                            ; preds = %25499
  %25508 = load i32, ptr @test_count, align 4, !tbaa !5
  %25509 = add nsw i32 %25508, 1
  store i32 %25509, ptr @test_count, align 4, !tbaa !5
  %25510 = load ptr, ptr %782, align 8, !tbaa !9
  %25511 = icmp eq ptr %25510, null
  br i1 %25511, label %25512, label %25565

25512:                                            ; preds = %25507
  br label %25513

25513:                                            ; preds = %25512
  br label %25514

25514:                                            ; preds = %25513
  call void @llvm.lifetime.start.p0(i64 4, ptr %783) #11
  %25515 = call ptr @__errno_location() #12
  %25516 = load i32, ptr %25515, align 4, !tbaa !5
  store i32 %25516, ptr %783, align 4, !tbaa !5
  %25517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25518 = call i32 @s2n_print_stacktrace(ptr noundef %25517)
  %25519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25520 = trunc i8 %25519 to i1
  br i1 %25520, label %25521, label %25543

25521:                                            ; preds = %25514
  %25522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25523 = call i32 @fileno(ptr noundef %25522) #11
  %25524 = call i32 @isatty(i32 noundef %25523) #11
  %25525 = icmp ne i32 %25524, 0
  br i1 %25525, label %25526, label %25543

25526:                                            ; preds = %25521
  %25527 = load i32, ptr %783, align 4, !tbaa !5
  %25528 = call ptr @__errno_location() #12
  store i32 %25527, ptr %25528, align 4, !tbaa !5
  %25529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25530 = load i32, ptr @test_count, align 4, !tbaa !5
  %25531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25532 = load i32, ptr %25531, align 4, !tbaa !5
  %25533 = call ptr @s2n_strerror(i32 noundef %25532, ptr noundef @.str.4)
  %25534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25535 = load i32, ptr %25534, align 4, !tbaa !5
  %25536 = call ptr @s2n_strerror_debug(i32 noundef %25535, ptr noundef @.str.4)
  %25537 = call ptr @__errno_location() #12
  %25538 = load i32, ptr %25537, align 4, !tbaa !5
  %25539 = call ptr @strerror(i32 noundef %25538) #11
  %25540 = call ptr @__errno_location() #12
  %25541 = load i32, ptr %25540, align 4, !tbaa !5
  %25542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25529, ptr noundef @.str.2, i32 noundef %25530, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1567, ptr noundef %25533, ptr noundef %25536, ptr noundef %25539, i32 noundef %25541) #11
  br label %25560

25543:                                            ; preds = %25521, %25514
  %25544 = load i32, ptr %783, align 4, !tbaa !5
  %25545 = call ptr @__errno_location() #12
  store i32 %25544, ptr %25545, align 4, !tbaa !5
  %25546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25547 = load i32, ptr @test_count, align 4, !tbaa !5
  %25548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25549 = load i32, ptr %25548, align 4, !tbaa !5
  %25550 = call ptr @s2n_strerror(i32 noundef %25549, ptr noundef @.str.4)
  %25551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25552 = load i32, ptr %25551, align 4, !tbaa !5
  %25553 = call ptr @s2n_strerror_debug(i32 noundef %25552, ptr noundef @.str.4)
  %25554 = call ptr @__errno_location() #12
  %25555 = load i32, ptr %25554, align 4, !tbaa !5
  %25556 = call ptr @strerror(i32 noundef %25555) #11
  %25557 = call ptr @__errno_location() #12
  %25558 = load i32, ptr %25557, align 4, !tbaa !5
  %25559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25546, ptr noundef @.str.5, i32 noundef %25547, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1567, ptr noundef %25550, ptr noundef %25553, ptr noundef %25556, i32 noundef %25558) #11
  br label %25560

25560:                                            ; preds = %25543, %25526
  call void @llvm.lifetime.end.p0(i64 4, ptr %783) #11
  br label %25561

25561:                                            ; preds = %25560
  br label %25562

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

25563:                                            ; No predecessors!
  br label %25564

25564:                                            ; preds = %25563
  br label %25565

25565:                                            ; preds = %25564, %25507
  br label %25566

25566:                                            ; preds = %25565
  br label %25567

25567:                                            ; preds = %25566
  call void @llvm.lifetime.start.p0(i64 48, ptr %784) #11
  br label %25568

25568:                                            ; preds = %25567
  %25569 = load i32, ptr @test_count, align 4, !tbaa !5
  %25570 = add nsw i32 %25569, 1
  store i32 %25570, ptr @test_count, align 4, !tbaa !5
  %25571 = call i32 @s2n_pkey_zero_init(ptr noundef %784)
  %25572 = icmp eq i32 %25571, -1
  br i1 %25572, label %25573, label %25626

25573:                                            ; preds = %25568
  br label %25574

25574:                                            ; preds = %25573
  br label %25575

25575:                                            ; preds = %25574
  call void @llvm.lifetime.start.p0(i64 4, ptr %785) #11
  %25576 = call ptr @__errno_location() #12
  %25577 = load i32, ptr %25576, align 4, !tbaa !5
  store i32 %25577, ptr %785, align 4, !tbaa !5
  %25578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25579 = call i32 @s2n_print_stacktrace(ptr noundef %25578)
  %25580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25581 = trunc i8 %25580 to i1
  br i1 %25581, label %25582, label %25604

25582:                                            ; preds = %25575
  %25583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25584 = call i32 @fileno(ptr noundef %25583) #11
  %25585 = call i32 @isatty(i32 noundef %25584) #11
  %25586 = icmp ne i32 %25585, 0
  br i1 %25586, label %25587, label %25604

25587:                                            ; preds = %25582
  %25588 = load i32, ptr %785, align 4, !tbaa !5
  %25589 = call ptr @__errno_location() #12
  store i32 %25588, ptr %25589, align 4, !tbaa !5
  %25590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25591 = load i32, ptr @test_count, align 4, !tbaa !5
  %25592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25593 = load i32, ptr %25592, align 4, !tbaa !5
  %25594 = call ptr @s2n_strerror(i32 noundef %25593, ptr noundef @.str.4)
  %25595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25596 = load i32, ptr %25595, align 4, !tbaa !5
  %25597 = call ptr @s2n_strerror_debug(i32 noundef %25596, ptr noundef @.str.4)
  %25598 = call ptr @__errno_location() #12
  %25599 = load i32, ptr %25598, align 4, !tbaa !5
  %25600 = call ptr @strerror(i32 noundef %25599) #11
  %25601 = call ptr @__errno_location() #12
  %25602 = load i32, ptr %25601, align 4, !tbaa !5
  %25603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25590, ptr noundef @.str.2, i32 noundef %25591, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1570, ptr noundef %25594, ptr noundef %25597, ptr noundef %25600, i32 noundef %25602) #11
  br label %25621

25604:                                            ; preds = %25582, %25575
  %25605 = load i32, ptr %785, align 4, !tbaa !5
  %25606 = call ptr @__errno_location() #12
  store i32 %25605, ptr %25606, align 4, !tbaa !5
  %25607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25608 = load i32, ptr @test_count, align 4, !tbaa !5
  %25609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25610 = load i32, ptr %25609, align 4, !tbaa !5
  %25611 = call ptr @s2n_strerror(i32 noundef %25610, ptr noundef @.str.4)
  %25612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25613 = load i32, ptr %25612, align 4, !tbaa !5
  %25614 = call ptr @s2n_strerror_debug(i32 noundef %25613, ptr noundef @.str.4)
  %25615 = call ptr @__errno_location() #12
  %25616 = load i32, ptr %25615, align 4, !tbaa !5
  %25617 = call ptr @strerror(i32 noundef %25616) #11
  %25618 = call ptr @__errno_location() #12
  %25619 = load i32, ptr %25618, align 4, !tbaa !5
  %25620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25607, ptr noundef @.str.5, i32 noundef %25608, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1570, ptr noundef %25611, ptr noundef %25614, ptr noundef %25617, i32 noundef %25619) #11
  br label %25621

25621:                                            ; preds = %25604, %25587
  call void @llvm.lifetime.end.p0(i64 4, ptr %785) #11
  br label %25622

25622:                                            ; preds = %25621
  br label %25623

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

25624:                                            ; No predecessors!
  br label %25625

25625:                                            ; preds = %25624
  br label %25626

25626:                                            ; preds = %25625, %25568
  br label %25627

25627:                                            ; preds = %25626
  br label %25628

25628:                                            ; preds = %25627
  call void @llvm.lifetime.start.p0(i64 4, ptr %786) #11
  store i32 -1, ptr %786, align 4, !tbaa !5
  br label %25629

25629:                                            ; preds = %25628
  %25630 = load i32, ptr @test_count, align 4, !tbaa !5
  %25631 = add nsw i32 %25630, 1
  store i32 %25631, ptr @test_count, align 4, !tbaa !5
  %25632 = load ptr, ptr %775, align 8, !tbaa !9
  %25633 = load ptr, ptr %782, align 8, !tbaa !9
  %25634 = load i32, ptr %781, align 4, !tbaa !5
  %25635 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %774, ptr noundef %25632, ptr noundef %25633, i32 noundef %25634, ptr noundef %786, ptr noundef %784)
  %25636 = getelementptr inbounds %struct.s2n_result, ptr %787, i32 0, i32 0
  store i32 %25635, ptr %25636, align 4
  %25637 = getelementptr inbounds %struct.s2n_result, ptr %787, i32 0, i32 0
  %25638 = load i32, ptr %25637, align 4
  %25639 = call zeroext i1 @s2n_result_is_ok(i32 %25638)
  br i1 %25639, label %25693, label %25640

25640:                                            ; preds = %25629
  br label %25641

25641:                                            ; preds = %25640
  br label %25642

25642:                                            ; preds = %25641
  call void @llvm.lifetime.start.p0(i64 4, ptr %788) #11
  %25643 = call ptr @__errno_location() #12
  %25644 = load i32, ptr %25643, align 4, !tbaa !5
  store i32 %25644, ptr %788, align 4, !tbaa !5
  %25645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25646 = call i32 @s2n_print_stacktrace(ptr noundef %25645)
  %25647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25648 = trunc i8 %25647 to i1
  br i1 %25648, label %25649, label %25671

25649:                                            ; preds = %25642
  %25650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25651 = call i32 @fileno(ptr noundef %25650) #11
  %25652 = call i32 @isatty(i32 noundef %25651) #11
  %25653 = icmp ne i32 %25652, 0
  br i1 %25653, label %25654, label %25671

25654:                                            ; preds = %25649
  %25655 = load i32, ptr %788, align 4, !tbaa !5
  %25656 = call ptr @__errno_location() #12
  store i32 %25655, ptr %25656, align 4, !tbaa !5
  %25657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25658 = load i32, ptr @test_count, align 4, !tbaa !5
  %25659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25660 = load i32, ptr %25659, align 4, !tbaa !5
  %25661 = call ptr @s2n_strerror(i32 noundef %25660, ptr noundef @.str.4)
  %25662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25663 = load i32, ptr %25662, align 4, !tbaa !5
  %25664 = call ptr @s2n_strerror_debug(i32 noundef %25663, ptr noundef @.str.4)
  %25665 = call ptr @__errno_location() #12
  %25666 = load i32, ptr %25665, align 4, !tbaa !5
  %25667 = call ptr @strerror(i32 noundef %25666) #11
  %25668 = call ptr @__errno_location() #12
  %25669 = load i32, ptr %25668, align 4, !tbaa !5
  %25670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25657, ptr noundef @.str.2, i32 noundef %25658, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1572, ptr noundef %25661, ptr noundef %25664, ptr noundef %25667, i32 noundef %25669) #11
  br label %25688

25671:                                            ; preds = %25649, %25642
  %25672 = load i32, ptr %788, align 4, !tbaa !5
  %25673 = call ptr @__errno_location() #12
  store i32 %25672, ptr %25673, align 4, !tbaa !5
  %25674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25675 = load i32, ptr @test_count, align 4, !tbaa !5
  %25676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25677 = load i32, ptr %25676, align 4, !tbaa !5
  %25678 = call ptr @s2n_strerror(i32 noundef %25677, ptr noundef @.str.4)
  %25679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25680 = load i32, ptr %25679, align 4, !tbaa !5
  %25681 = call ptr @s2n_strerror_debug(i32 noundef %25680, ptr noundef @.str.4)
  %25682 = call ptr @__errno_location() #12
  %25683 = load i32, ptr %25682, align 4, !tbaa !5
  %25684 = call ptr @strerror(i32 noundef %25683) #11
  %25685 = call ptr @__errno_location() #12
  %25686 = load i32, ptr %25685, align 4, !tbaa !5
  %25687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25674, ptr noundef @.str.5, i32 noundef %25675, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1572, ptr noundef %25678, ptr noundef %25681, ptr noundef %25684, i32 noundef %25686) #11
  br label %25688

25688:                                            ; preds = %25671, %25654
  call void @llvm.lifetime.end.p0(i64 4, ptr %788) #11
  br label %25689

25689:                                            ; preds = %25688
  br label %25690

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

25691:                                            ; No predecessors!
  br label %25692

25692:                                            ; preds = %25691
  br label %25693

25693:                                            ; preds = %25692, %25629
  br label %25694

25694:                                            ; preds = %25693
  br label %25695

25695:                                            ; preds = %25694
  br label %25696

25696:                                            ; preds = %25695
  %25697 = load i32, ptr @test_count, align 4, !tbaa !5
  %25698 = add nsw i32 %25697, 1
  store i32 %25698, ptr @test_count, align 4, !tbaa !5
  %25699 = load i32, ptr %786, align 4, !tbaa !5
  %25700 = icmp eq i32 0, %25699
  br i1 %25700, label %25754, label %25701

25701:                                            ; preds = %25696
  br label %25702

25702:                                            ; preds = %25701
  br label %25703

25703:                                            ; preds = %25702
  call void @llvm.lifetime.start.p0(i64 4, ptr %789) #11
  %25704 = call ptr @__errno_location() #12
  %25705 = load i32, ptr %25704, align 4, !tbaa !5
  store i32 %25705, ptr %789, align 4, !tbaa !5
  %25706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25707 = call i32 @s2n_print_stacktrace(ptr noundef %25706)
  %25708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25709 = trunc i8 %25708 to i1
  br i1 %25709, label %25710, label %25732

25710:                                            ; preds = %25703
  %25711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25712 = call i32 @fileno(ptr noundef %25711) #11
  %25713 = call i32 @isatty(i32 noundef %25712) #11
  %25714 = icmp ne i32 %25713, 0
  br i1 %25714, label %25715, label %25732

25715:                                            ; preds = %25710
  %25716 = load i32, ptr %789, align 4, !tbaa !5
  %25717 = call ptr @__errno_location() #12
  store i32 %25716, ptr %25717, align 4, !tbaa !5
  %25718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25719 = load i32, ptr @test_count, align 4, !tbaa !5
  %25720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25721 = load i32, ptr %25720, align 4, !tbaa !5
  %25722 = call ptr @s2n_strerror(i32 noundef %25721, ptr noundef @.str.4)
  %25723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25724 = load i32, ptr %25723, align 4, !tbaa !5
  %25725 = call ptr @s2n_strerror_debug(i32 noundef %25724, ptr noundef @.str.4)
  %25726 = call ptr @__errno_location() #12
  %25727 = load i32, ptr %25726, align 4, !tbaa !5
  %25728 = call ptr @strerror(i32 noundef %25727) #11
  %25729 = call ptr @__errno_location() #12
  %25730 = load i32, ptr %25729, align 4, !tbaa !5
  %25731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25718, ptr noundef @.str.2, i32 noundef %25719, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1573, ptr noundef %25722, ptr noundef %25725, ptr noundef %25728, i32 noundef %25730) #11
  br label %25749

25732:                                            ; preds = %25710, %25703
  %25733 = load i32, ptr %789, align 4, !tbaa !5
  %25734 = call ptr @__errno_location() #12
  store i32 %25733, ptr %25734, align 4, !tbaa !5
  %25735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25736 = load i32, ptr @test_count, align 4, !tbaa !5
  %25737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25738 = load i32, ptr %25737, align 4, !tbaa !5
  %25739 = call ptr @s2n_strerror(i32 noundef %25738, ptr noundef @.str.4)
  %25740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25741 = load i32, ptr %25740, align 4, !tbaa !5
  %25742 = call ptr @s2n_strerror_debug(i32 noundef %25741, ptr noundef @.str.4)
  %25743 = call ptr @__errno_location() #12
  %25744 = load i32, ptr %25743, align 4, !tbaa !5
  %25745 = call ptr @strerror(i32 noundef %25744) #11
  %25746 = call ptr @__errno_location() #12
  %25747 = load i32, ptr %25746, align 4, !tbaa !5
  %25748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25735, ptr noundef @.str.5, i32 noundef %25736, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1573, ptr noundef %25739, ptr noundef %25742, ptr noundef %25745, i32 noundef %25747) #11
  br label %25749

25749:                                            ; preds = %25732, %25715
  call void @llvm.lifetime.end.p0(i64 4, ptr %789) #11
  br label %25750

25750:                                            ; preds = %25749
  br label %25751

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

25752:                                            ; No predecessors!
  br label %25753

25753:                                            ; preds = %25752
  br label %25754

25754:                                            ; preds = %25753, %25696
  br label %25755

25755:                                            ; preds = %25754
  br label %25756

25756:                                            ; preds = %25755
  %25757 = load ptr, ptr %775, align 8, !tbaa !9
  %25758 = call i32 @s2n_connection_free(ptr noundef %25757)
  %25759 = call i32 @s2n_pkey_free(ptr noundef %784)
  %25760 = call i32 @s2n_x509_validator_wipe(ptr noundef %774)
  call void @s2n_x509_trust_store_wipe(ptr noundef %772)
  call void @llvm.lifetime.end.p0(i64 4, ptr %786) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %784) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %782) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %781) #11
  %25761 = call i32 @s2n_stuffer_free(ptr noundef %778)
  call void @llvm.lifetime.end.p0(i64 40, ptr %778) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %775) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %774) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %772) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %790) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %790)
  br label %25762

25762:                                            ; preds = %25756
  %25763 = load i32, ptr @test_count, align 4, !tbaa !5
  %25764 = add nsw i32 %25763, 1
  store i32 %25764, ptr @test_count, align 4, !tbaa !5
  %25765 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %790, ptr noundef @.str.88, ptr noundef null)
  %25766 = icmp eq i32 0, %25765
  br i1 %25766, label %25820, label %25767

25767:                                            ; preds = %25762
  br label %25768

25768:                                            ; preds = %25767
  br label %25769

25769:                                            ; preds = %25768
  call void @llvm.lifetime.start.p0(i64 4, ptr %791) #11
  %25770 = call ptr @__errno_location() #12
  %25771 = load i32, ptr %25770, align 4, !tbaa !5
  store i32 %25771, ptr %791, align 4, !tbaa !5
  %25772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25773 = call i32 @s2n_print_stacktrace(ptr noundef %25772)
  %25774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25775 = trunc i8 %25774 to i1
  br i1 %25775, label %25776, label %25798

25776:                                            ; preds = %25769
  %25777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25778 = call i32 @fileno(ptr noundef %25777) #11
  %25779 = call i32 @isatty(i32 noundef %25778) #11
  %25780 = icmp ne i32 %25779, 0
  br i1 %25780, label %25781, label %25798

25781:                                            ; preds = %25776
  %25782 = load i32, ptr %791, align 4, !tbaa !5
  %25783 = call ptr @__errno_location() #12
  store i32 %25782, ptr %25783, align 4, !tbaa !5
  %25784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25785 = load i32, ptr @test_count, align 4, !tbaa !5
  %25786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25787 = load i32, ptr %25786, align 4, !tbaa !5
  %25788 = call ptr @s2n_strerror(i32 noundef %25787, ptr noundef @.str.4)
  %25789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25790 = load i32, ptr %25789, align 4, !tbaa !5
  %25791 = call ptr @s2n_strerror_debug(i32 noundef %25790, ptr noundef @.str.4)
  %25792 = call ptr @__errno_location() #12
  %25793 = load i32, ptr %25792, align 4, !tbaa !5
  %25794 = call ptr @strerror(i32 noundef %25793) #11
  %25795 = call ptr @__errno_location() #12
  %25796 = load i32, ptr %25795, align 4, !tbaa !5
  %25797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25784, ptr noundef @.str.2, i32 noundef %25785, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1585, ptr noundef %25788, ptr noundef %25791, ptr noundef %25794, i32 noundef %25796) #11
  br label %25815

25798:                                            ; preds = %25776, %25769
  %25799 = load i32, ptr %791, align 4, !tbaa !5
  %25800 = call ptr @__errno_location() #12
  store i32 %25799, ptr %25800, align 4, !tbaa !5
  %25801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25802 = load i32, ptr @test_count, align 4, !tbaa !5
  %25803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25804 = load i32, ptr %25803, align 4, !tbaa !5
  %25805 = call ptr @s2n_strerror(i32 noundef %25804, ptr noundef @.str.4)
  %25806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25807 = load i32, ptr %25806, align 4, !tbaa !5
  %25808 = call ptr @s2n_strerror_debug(i32 noundef %25807, ptr noundef @.str.4)
  %25809 = call ptr @__errno_location() #12
  %25810 = load i32, ptr %25809, align 4, !tbaa !5
  %25811 = call ptr @strerror(i32 noundef %25810) #11
  %25812 = call ptr @__errno_location() #12
  %25813 = load i32, ptr %25812, align 4, !tbaa !5
  %25814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25801, ptr noundef @.str.5, i32 noundef %25802, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1585, ptr noundef %25805, ptr noundef %25808, ptr noundef %25811, i32 noundef %25813) #11
  br label %25815

25815:                                            ; preds = %25798, %25781
  call void @llvm.lifetime.end.p0(i64 4, ptr %791) #11
  br label %25816

25816:                                            ; preds = %25815
  br label %25817

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

25818:                                            ; No predecessors!
  br label %25819

25819:                                            ; preds = %25818
  br label %25820

25820:                                            ; preds = %25819, %25762
  br label %25821

25821:                                            ; preds = %25820
  br label %25822

25822:                                            ; preds = %25821
  call void @llvm.lifetime.start.p0(i64 56, ptr %792) #11
  %25823 = call i32 @s2n_x509_validator_init(ptr noundef %792, ptr noundef %790, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %793) #11
  %25824 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %25824, ptr %793, align 8, !tbaa !9
  br label %25825

25825:                                            ; preds = %25822
  %25826 = load i32, ptr @test_count, align 4, !tbaa !5
  %25827 = add nsw i32 %25826, 1
  store i32 %25827, ptr @test_count, align 4, !tbaa !5
  %25828 = load ptr, ptr %793, align 8, !tbaa !9
  %25829 = icmp eq ptr %25828, null
  br i1 %25829, label %25830, label %25883

25830:                                            ; preds = %25825
  br label %25831

25831:                                            ; preds = %25830
  br label %25832

25832:                                            ; preds = %25831
  call void @llvm.lifetime.start.p0(i64 4, ptr %794) #11
  %25833 = call ptr @__errno_location() #12
  %25834 = load i32, ptr %25833, align 4, !tbaa !5
  store i32 %25834, ptr %794, align 4, !tbaa !5
  %25835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25836 = call i32 @s2n_print_stacktrace(ptr noundef %25835)
  %25837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25838 = trunc i8 %25837 to i1
  br i1 %25838, label %25839, label %25861

25839:                                            ; preds = %25832
  %25840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25841 = call i32 @fileno(ptr noundef %25840) #11
  %25842 = call i32 @isatty(i32 noundef %25841) #11
  %25843 = icmp ne i32 %25842, 0
  br i1 %25843, label %25844, label %25861

25844:                                            ; preds = %25839
  %25845 = load i32, ptr %794, align 4, !tbaa !5
  %25846 = call ptr @__errno_location() #12
  store i32 %25845, ptr %25846, align 4, !tbaa !5
  %25847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25848 = load i32, ptr @test_count, align 4, !tbaa !5
  %25849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25850 = load i32, ptr %25849, align 4, !tbaa !5
  %25851 = call ptr @s2n_strerror(i32 noundef %25850, ptr noundef @.str.4)
  %25852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25853 = load i32, ptr %25852, align 4, !tbaa !5
  %25854 = call ptr @s2n_strerror_debug(i32 noundef %25853, ptr noundef @.str.4)
  %25855 = call ptr @__errno_location() #12
  %25856 = load i32, ptr %25855, align 4, !tbaa !5
  %25857 = call ptr @strerror(i32 noundef %25856) #11
  %25858 = call ptr @__errno_location() #12
  %25859 = load i32, ptr %25858, align 4, !tbaa !5
  %25860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25847, ptr noundef @.str.2, i32 noundef %25848, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1591, ptr noundef %25851, ptr noundef %25854, ptr noundef %25857, i32 noundef %25859) #11
  br label %25878

25861:                                            ; preds = %25839, %25832
  %25862 = load i32, ptr %794, align 4, !tbaa !5
  %25863 = call ptr @__errno_location() #12
  store i32 %25862, ptr %25863, align 4, !tbaa !5
  %25864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25865 = load i32, ptr @test_count, align 4, !tbaa !5
  %25866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25867 = load i32, ptr %25866, align 4, !tbaa !5
  %25868 = call ptr @s2n_strerror(i32 noundef %25867, ptr noundef @.str.4)
  %25869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25870 = load i32, ptr %25869, align 4, !tbaa !5
  %25871 = call ptr @s2n_strerror_debug(i32 noundef %25870, ptr noundef @.str.4)
  %25872 = call ptr @__errno_location() #12
  %25873 = load i32, ptr %25872, align 4, !tbaa !5
  %25874 = call ptr @strerror(i32 noundef %25873) #11
  %25875 = call ptr @__errno_location() #12
  %25876 = load i32, ptr %25875, align 4, !tbaa !5
  %25877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25864, ptr noundef @.str.5, i32 noundef %25865, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1591, ptr noundef %25868, ptr noundef %25871, ptr noundef %25874, i32 noundef %25876) #11
  br label %25878

25878:                                            ; preds = %25861, %25844
  call void @llvm.lifetime.end.p0(i64 4, ptr %794) #11
  br label %25879

25879:                                            ; preds = %25878
  br label %25880

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

25881:                                            ; No predecessors!
  br label %25882

25882:                                            ; preds = %25881
  br label %25883

25883:                                            ; preds = %25882, %25825
  br label %25884

25884:                                            ; preds = %25883
  br label %25885

25885:                                            ; preds = %25884
  br label %25886

25886:                                            ; preds = %25885
  %25887 = load i32, ptr @test_count, align 4, !tbaa !5
  %25888 = add nsw i32 %25887, 1
  store i32 %25888, ptr @test_count, align 4, !tbaa !5
  %25889 = load ptr, ptr %793, align 8, !tbaa !9
  %25890 = call i32 @s2n_set_server_name(ptr noundef %25889, ptr noundef @.str.102)
  %25891 = icmp eq i32 %25890, -1
  br i1 %25891, label %25892, label %25945

25892:                                            ; preds = %25886
  br label %25893

25893:                                            ; preds = %25892
  br label %25894

25894:                                            ; preds = %25893
  call void @llvm.lifetime.start.p0(i64 4, ptr %795) #11
  %25895 = call ptr @__errno_location() #12
  %25896 = load i32, ptr %25895, align 4, !tbaa !5
  store i32 %25896, ptr %795, align 4, !tbaa !5
  %25897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25898 = call i32 @s2n_print_stacktrace(ptr noundef %25897)
  %25899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25900 = trunc i8 %25899 to i1
  br i1 %25900, label %25901, label %25923

25901:                                            ; preds = %25894
  %25902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25903 = call i32 @fileno(ptr noundef %25902) #11
  %25904 = call i32 @isatty(i32 noundef %25903) #11
  %25905 = icmp ne i32 %25904, 0
  br i1 %25905, label %25906, label %25923

25906:                                            ; preds = %25901
  %25907 = load i32, ptr %795, align 4, !tbaa !5
  %25908 = call ptr @__errno_location() #12
  store i32 %25907, ptr %25908, align 4, !tbaa !5
  %25909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25910 = load i32, ptr @test_count, align 4, !tbaa !5
  %25911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25912 = load i32, ptr %25911, align 4, !tbaa !5
  %25913 = call ptr @s2n_strerror(i32 noundef %25912, ptr noundef @.str.4)
  %25914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25915 = load i32, ptr %25914, align 4, !tbaa !5
  %25916 = call ptr @s2n_strerror_debug(i32 noundef %25915, ptr noundef @.str.4)
  %25917 = call ptr @__errno_location() #12
  %25918 = load i32, ptr %25917, align 4, !tbaa !5
  %25919 = call ptr @strerror(i32 noundef %25918) #11
  %25920 = call ptr @__errno_location() #12
  %25921 = load i32, ptr %25920, align 4, !tbaa !5
  %25922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25909, ptr noundef @.str.2, i32 noundef %25910, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1593, ptr noundef %25913, ptr noundef %25916, ptr noundef %25919, i32 noundef %25921) #11
  br label %25940

25923:                                            ; preds = %25901, %25894
  %25924 = load i32, ptr %795, align 4, !tbaa !5
  %25925 = call ptr @__errno_location() #12
  store i32 %25924, ptr %25925, align 4, !tbaa !5
  %25926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25927 = load i32, ptr @test_count, align 4, !tbaa !5
  %25928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25929 = load i32, ptr %25928, align 4, !tbaa !5
  %25930 = call ptr @s2n_strerror(i32 noundef %25929, ptr noundef @.str.4)
  %25931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25932 = load i32, ptr %25931, align 4, !tbaa !5
  %25933 = call ptr @s2n_strerror_debug(i32 noundef %25932, ptr noundef @.str.4)
  %25934 = call ptr @__errno_location() #12
  %25935 = load i32, ptr %25934, align 4, !tbaa !5
  %25936 = call ptr @strerror(i32 noundef %25935) #11
  %25937 = call ptr @__errno_location() #12
  %25938 = load i32, ptr %25937, align 4, !tbaa !5
  %25939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25926, ptr noundef @.str.5, i32 noundef %25927, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 1593, ptr noundef %25930, ptr noundef %25933, ptr noundef %25936, i32 noundef %25938) #11
  br label %25940

25940:                                            ; preds = %25923, %25906
  call void @llvm.lifetime.end.p0(i64 4, ptr %795) #11
  br label %25941

25941:                                            ; preds = %25940
  br label %25942

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

25943:                                            ; No predecessors!
  br label %25944

25944:                                            ; preds = %25943
  br label %25945

25945:                                            ; preds = %25944, %25886
  br label %25946

25946:                                            ; preds = %25945
  br label %25947

25947:                                            ; preds = %25946
  call void @llvm.lifetime.start.p0(i64 40, ptr %796) #11
  call void @llvm.memset.p0.i64(ptr align 8 %796, i8 0, i64 40, i1 false)
  br label %25948

25948:                                            ; preds = %25947
  %25949 = load i32, ptr @test_count, align 4, !tbaa !5
  %25950 = add nsw i32 %25949, 1
  store i32 %25950, ptr @test_count, align 4, !tbaa !5
  %25951 = load ptr, ptr %793, align 8, !tbaa !9
  %25952 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %25951, ptr noundef @.str.88, ptr noundef %796)
  %25953 = getelementptr inbounds %struct.s2n_result, ptr %797, i32 0, i32 0
  store i32 %25952, ptr %25953, align 4
  %25954 = getelementptr inbounds %struct.s2n_result, ptr %797, i32 0, i32 0
  %25955 = load i32, ptr %25954, align 4
  %25956 = call zeroext i1 @s2n_result_is_ok(i32 %25955)
  br i1 %25956, label %26010, label %25957

25957:                                            ; preds = %25948
  br label %25958

25958:                                            ; preds = %25957
  br label %25959

25959:                                            ; preds = %25958
  call void @llvm.lifetime.start.p0(i64 4, ptr %798) #11
  %25960 = call ptr @__errno_location() #12
  %25961 = load i32, ptr %25960, align 4, !tbaa !5
  store i32 %25961, ptr %798, align 4, !tbaa !5
  %25962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25963 = call i32 @s2n_print_stacktrace(ptr noundef %25962)
  %25964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25965 = trunc i8 %25964 to i1
  br i1 %25965, label %25966, label %25988

25966:                                            ; preds = %25959
  %25967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25968 = call i32 @fileno(ptr noundef %25967) #11
  %25969 = call i32 @isatty(i32 noundef %25968) #11
  %25970 = icmp ne i32 %25969, 0
  br i1 %25970, label %25971, label %25988

25971:                                            ; preds = %25966
  %25972 = load i32, ptr %798, align 4, !tbaa !5
  %25973 = call ptr @__errno_location() #12
  store i32 %25972, ptr %25973, align 4, !tbaa !5
  %25974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25975 = load i32, ptr @test_count, align 4, !tbaa !5
  %25976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25977 = load i32, ptr %25976, align 4, !tbaa !5
  %25978 = call ptr @s2n_strerror(i32 noundef %25977, ptr noundef @.str.4)
  %25979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25980 = load i32, ptr %25979, align 4, !tbaa !5
  %25981 = call ptr @s2n_strerror_debug(i32 noundef %25980, ptr noundef @.str.4)
  %25982 = call ptr @__errno_location() #12
  %25983 = load i32, ptr %25982, align 4, !tbaa !5
  %25984 = call ptr @strerror(i32 noundef %25983) #11
  %25985 = call ptr @__errno_location() #12
  %25986 = load i32, ptr %25985, align 4, !tbaa !5
  %25987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25974, ptr noundef @.str.2, i32 noundef %25975, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1597, ptr noundef %25978, ptr noundef %25981, ptr noundef %25984, i32 noundef %25986) #11
  br label %26005

25988:                                            ; preds = %25966, %25959
  %25989 = load i32, ptr %798, align 4, !tbaa !5
  %25990 = call ptr @__errno_location() #12
  store i32 %25989, ptr %25990, align 4, !tbaa !5
  %25991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25992 = load i32, ptr @test_count, align 4, !tbaa !5
  %25993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25994 = load i32, ptr %25993, align 4, !tbaa !5
  %25995 = call ptr @s2n_strerror(i32 noundef %25994, ptr noundef @.str.4)
  %25996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25997 = load i32, ptr %25996, align 4, !tbaa !5
  %25998 = call ptr @s2n_strerror_debug(i32 noundef %25997, ptr noundef @.str.4)
  %25999 = call ptr @__errno_location() #12
  %26000 = load i32, ptr %25999, align 4, !tbaa !5
  %26001 = call ptr @strerror(i32 noundef %26000) #11
  %26002 = call ptr @__errno_location() #12
  %26003 = load i32, ptr %26002, align 4, !tbaa !5
  %26004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25991, ptr noundef @.str.5, i32 noundef %25992, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1597, ptr noundef %25995, ptr noundef %25998, ptr noundef %26001, i32 noundef %26003) #11
  br label %26005

26005:                                            ; preds = %25988, %25971
  call void @llvm.lifetime.end.p0(i64 4, ptr %798) #11
  br label %26006

26006:                                            ; preds = %26005
  br label %26007

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

26008:                                            ; No predecessors!
  br label %26009

26009:                                            ; preds = %26008
  br label %26010

26010:                                            ; preds = %26009, %25948
  br label %26011

26011:                                            ; preds = %26010
  br label %26012

26012:                                            ; preds = %26011
  call void @llvm.lifetime.start.p0(i64 4, ptr %799) #11
  %26013 = getelementptr inbounds %struct.s2n_stuffer, ptr %796, i32 0, i32 2
  %26014 = load i32, ptr %26013, align 4, !tbaa !15
  %26015 = getelementptr inbounds %struct.s2n_stuffer, ptr %796, i32 0, i32 1
  %26016 = load i32, ptr %26015, align 8, !tbaa !18
  %26017 = sub i32 %26014, %26016
  store i32 %26017, ptr %799, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %800) #11
  %26018 = load i32, ptr %799, align 4, !tbaa !5
  %26019 = call ptr @s2n_stuffer_raw_read(ptr noundef %796, i32 noundef %26018)
  store ptr %26019, ptr %800, align 8, !tbaa !9
  br label %26020

26020:                                            ; preds = %26012
  %26021 = load i32, ptr @test_count, align 4, !tbaa !5
  %26022 = add nsw i32 %26021, 1
  store i32 %26022, ptr @test_count, align 4, !tbaa !5
  %26023 = load ptr, ptr %800, align 8, !tbaa !9
  %26024 = icmp eq ptr %26023, null
  br i1 %26024, label %26025, label %26078

26025:                                            ; preds = %26020
  br label %26026

26026:                                            ; preds = %26025
  br label %26027

26027:                                            ; preds = %26026
  call void @llvm.lifetime.start.p0(i64 4, ptr %801) #11
  %26028 = call ptr @__errno_location() #12
  %26029 = load i32, ptr %26028, align 4, !tbaa !5
  store i32 %26029, ptr %801, align 4, !tbaa !5
  %26030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26031 = call i32 @s2n_print_stacktrace(ptr noundef %26030)
  %26032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26033 = trunc i8 %26032 to i1
  br i1 %26033, label %26034, label %26056

26034:                                            ; preds = %26027
  %26035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26036 = call i32 @fileno(ptr noundef %26035) #11
  %26037 = call i32 @isatty(i32 noundef %26036) #11
  %26038 = icmp ne i32 %26037, 0
  br i1 %26038, label %26039, label %26056

26039:                                            ; preds = %26034
  %26040 = load i32, ptr %801, align 4, !tbaa !5
  %26041 = call ptr @__errno_location() #12
  store i32 %26040, ptr %26041, align 4, !tbaa !5
  %26042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26043 = load i32, ptr @test_count, align 4, !tbaa !5
  %26044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26045 = load i32, ptr %26044, align 4, !tbaa !5
  %26046 = call ptr @s2n_strerror(i32 noundef %26045, ptr noundef @.str.4)
  %26047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26048 = load i32, ptr %26047, align 4, !tbaa !5
  %26049 = call ptr @s2n_strerror_debug(i32 noundef %26048, ptr noundef @.str.4)
  %26050 = call ptr @__errno_location() #12
  %26051 = load i32, ptr %26050, align 4, !tbaa !5
  %26052 = call ptr @strerror(i32 noundef %26051) #11
  %26053 = call ptr @__errno_location() #12
  %26054 = load i32, ptr %26053, align 4, !tbaa !5
  %26055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26042, ptr noundef @.str.2, i32 noundef %26043, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1600, ptr noundef %26046, ptr noundef %26049, ptr noundef %26052, i32 noundef %26054) #11
  br label %26073

26056:                                            ; preds = %26034, %26027
  %26057 = load i32, ptr %801, align 4, !tbaa !5
  %26058 = call ptr @__errno_location() #12
  store i32 %26057, ptr %26058, align 4, !tbaa !5
  %26059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26060 = load i32, ptr @test_count, align 4, !tbaa !5
  %26061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26062 = load i32, ptr %26061, align 4, !tbaa !5
  %26063 = call ptr @s2n_strerror(i32 noundef %26062, ptr noundef @.str.4)
  %26064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26065 = load i32, ptr %26064, align 4, !tbaa !5
  %26066 = call ptr @s2n_strerror_debug(i32 noundef %26065, ptr noundef @.str.4)
  %26067 = call ptr @__errno_location() #12
  %26068 = load i32, ptr %26067, align 4, !tbaa !5
  %26069 = call ptr @strerror(i32 noundef %26068) #11
  %26070 = call ptr @__errno_location() #12
  %26071 = load i32, ptr %26070, align 4, !tbaa !5
  %26072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26059, ptr noundef @.str.5, i32 noundef %26060, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1600, ptr noundef %26063, ptr noundef %26066, ptr noundef %26069, i32 noundef %26071) #11
  br label %26073

26073:                                            ; preds = %26056, %26039
  call void @llvm.lifetime.end.p0(i64 4, ptr %801) #11
  br label %26074

26074:                                            ; preds = %26073
  br label %26075

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

26076:                                            ; No predecessors!
  br label %26077

26077:                                            ; preds = %26076
  br label %26078

26078:                                            ; preds = %26077, %26020
  br label %26079

26079:                                            ; preds = %26078
  br label %26080

26080:                                            ; preds = %26079
  call void @llvm.lifetime.start.p0(i64 48, ptr %802) #11
  br label %26081

26081:                                            ; preds = %26080
  %26082 = load i32, ptr @test_count, align 4, !tbaa !5
  %26083 = add nsw i32 %26082, 1
  store i32 %26083, ptr @test_count, align 4, !tbaa !5
  %26084 = call i32 @s2n_pkey_zero_init(ptr noundef %802)
  %26085 = icmp eq i32 %26084, -1
  br i1 %26085, label %26086, label %26139

26086:                                            ; preds = %26081
  br label %26087

26087:                                            ; preds = %26086
  br label %26088

26088:                                            ; preds = %26087
  call void @llvm.lifetime.start.p0(i64 4, ptr %803) #11
  %26089 = call ptr @__errno_location() #12
  %26090 = load i32, ptr %26089, align 4, !tbaa !5
  store i32 %26090, ptr %803, align 4, !tbaa !5
  %26091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26092 = call i32 @s2n_print_stacktrace(ptr noundef %26091)
  %26093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26094 = trunc i8 %26093 to i1
  br i1 %26094, label %26095, label %26117

26095:                                            ; preds = %26088
  %26096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26097 = call i32 @fileno(ptr noundef %26096) #11
  %26098 = call i32 @isatty(i32 noundef %26097) #11
  %26099 = icmp ne i32 %26098, 0
  br i1 %26099, label %26100, label %26117

26100:                                            ; preds = %26095
  %26101 = load i32, ptr %803, align 4, !tbaa !5
  %26102 = call ptr @__errno_location() #12
  store i32 %26101, ptr %26102, align 4, !tbaa !5
  %26103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26104 = load i32, ptr @test_count, align 4, !tbaa !5
  %26105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26106 = load i32, ptr %26105, align 4, !tbaa !5
  %26107 = call ptr @s2n_strerror(i32 noundef %26106, ptr noundef @.str.4)
  %26108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26109 = load i32, ptr %26108, align 4, !tbaa !5
  %26110 = call ptr @s2n_strerror_debug(i32 noundef %26109, ptr noundef @.str.4)
  %26111 = call ptr @__errno_location() #12
  %26112 = load i32, ptr %26111, align 4, !tbaa !5
  %26113 = call ptr @strerror(i32 noundef %26112) #11
  %26114 = call ptr @__errno_location() #12
  %26115 = load i32, ptr %26114, align 4, !tbaa !5
  %26116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26103, ptr noundef @.str.2, i32 noundef %26104, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1603, ptr noundef %26107, ptr noundef %26110, ptr noundef %26113, i32 noundef %26115) #11
  br label %26134

26117:                                            ; preds = %26095, %26088
  %26118 = load i32, ptr %803, align 4, !tbaa !5
  %26119 = call ptr @__errno_location() #12
  store i32 %26118, ptr %26119, align 4, !tbaa !5
  %26120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26121 = load i32, ptr @test_count, align 4, !tbaa !5
  %26122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26123 = load i32, ptr %26122, align 4, !tbaa !5
  %26124 = call ptr @s2n_strerror(i32 noundef %26123, ptr noundef @.str.4)
  %26125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26126 = load i32, ptr %26125, align 4, !tbaa !5
  %26127 = call ptr @s2n_strerror_debug(i32 noundef %26126, ptr noundef @.str.4)
  %26128 = call ptr @__errno_location() #12
  %26129 = load i32, ptr %26128, align 4, !tbaa !5
  %26130 = call ptr @strerror(i32 noundef %26129) #11
  %26131 = call ptr @__errno_location() #12
  %26132 = load i32, ptr %26131, align 4, !tbaa !5
  %26133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26120, ptr noundef @.str.5, i32 noundef %26121, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1603, ptr noundef %26124, ptr noundef %26127, ptr noundef %26130, i32 noundef %26132) #11
  br label %26134

26134:                                            ; preds = %26117, %26100
  call void @llvm.lifetime.end.p0(i64 4, ptr %803) #11
  br label %26135

26135:                                            ; preds = %26134
  br label %26136

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

26137:                                            ; No predecessors!
  br label %26138

26138:                                            ; preds = %26137
  br label %26139

26139:                                            ; preds = %26138, %26081
  br label %26140

26140:                                            ; preds = %26139
  br label %26141

26141:                                            ; preds = %26140
  call void @llvm.lifetime.start.p0(i64 4, ptr %804) #11
  store i32 -1, ptr %804, align 4, !tbaa !5
  br label %26142

26142:                                            ; preds = %26141
  %26143 = load i32, ptr @test_count, align 4, !tbaa !5
  %26144 = add nsw i32 %26143, 1
  store i32 %26144, ptr @test_count, align 4, !tbaa !5
  %26145 = load ptr, ptr %793, align 8, !tbaa !9
  %26146 = load ptr, ptr %800, align 8, !tbaa !9
  %26147 = load i32, ptr %799, align 4, !tbaa !5
  %26148 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %792, ptr noundef %26145, ptr noundef %26146, i32 noundef %26147, ptr noundef %804, ptr noundef %802)
  %26149 = getelementptr inbounds %struct.s2n_result, ptr %805, i32 0, i32 0
  store i32 %26148, ptr %26149, align 4
  %26150 = getelementptr inbounds %struct.s2n_result, ptr %805, i32 0, i32 0
  %26151 = load i32, ptr %26150, align 4
  %26152 = call zeroext i1 @s2n_result_is_ok(i32 %26151)
  br i1 %26152, label %26206, label %26153

26153:                                            ; preds = %26142
  br label %26154

26154:                                            ; preds = %26153
  br label %26155

26155:                                            ; preds = %26154
  call void @llvm.lifetime.start.p0(i64 4, ptr %806) #11
  %26156 = call ptr @__errno_location() #12
  %26157 = load i32, ptr %26156, align 4, !tbaa !5
  store i32 %26157, ptr %806, align 4, !tbaa !5
  %26158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26159 = call i32 @s2n_print_stacktrace(ptr noundef %26158)
  %26160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26161 = trunc i8 %26160 to i1
  br i1 %26161, label %26162, label %26184

26162:                                            ; preds = %26155
  %26163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26164 = call i32 @fileno(ptr noundef %26163) #11
  %26165 = call i32 @isatty(i32 noundef %26164) #11
  %26166 = icmp ne i32 %26165, 0
  br i1 %26166, label %26167, label %26184

26167:                                            ; preds = %26162
  %26168 = load i32, ptr %806, align 4, !tbaa !5
  %26169 = call ptr @__errno_location() #12
  store i32 %26168, ptr %26169, align 4, !tbaa !5
  %26170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26171 = load i32, ptr @test_count, align 4, !tbaa !5
  %26172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26173 = load i32, ptr %26172, align 4, !tbaa !5
  %26174 = call ptr @s2n_strerror(i32 noundef %26173, ptr noundef @.str.4)
  %26175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26176 = load i32, ptr %26175, align 4, !tbaa !5
  %26177 = call ptr @s2n_strerror_debug(i32 noundef %26176, ptr noundef @.str.4)
  %26178 = call ptr @__errno_location() #12
  %26179 = load i32, ptr %26178, align 4, !tbaa !5
  %26180 = call ptr @strerror(i32 noundef %26179) #11
  %26181 = call ptr @__errno_location() #12
  %26182 = load i32, ptr %26181, align 4, !tbaa !5
  %26183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26170, ptr noundef @.str.2, i32 noundef %26171, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1605, ptr noundef %26174, ptr noundef %26177, ptr noundef %26180, i32 noundef %26182) #11
  br label %26201

26184:                                            ; preds = %26162, %26155
  %26185 = load i32, ptr %806, align 4, !tbaa !5
  %26186 = call ptr @__errno_location() #12
  store i32 %26185, ptr %26186, align 4, !tbaa !5
  %26187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26188 = load i32, ptr @test_count, align 4, !tbaa !5
  %26189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26190 = load i32, ptr %26189, align 4, !tbaa !5
  %26191 = call ptr @s2n_strerror(i32 noundef %26190, ptr noundef @.str.4)
  %26192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26193 = load i32, ptr %26192, align 4, !tbaa !5
  %26194 = call ptr @s2n_strerror_debug(i32 noundef %26193, ptr noundef @.str.4)
  %26195 = call ptr @__errno_location() #12
  %26196 = load i32, ptr %26195, align 4, !tbaa !5
  %26197 = call ptr @strerror(i32 noundef %26196) #11
  %26198 = call ptr @__errno_location() #12
  %26199 = load i32, ptr %26198, align 4, !tbaa !5
  %26200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26187, ptr noundef @.str.5, i32 noundef %26188, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1605, ptr noundef %26191, ptr noundef %26194, ptr noundef %26197, i32 noundef %26199) #11
  br label %26201

26201:                                            ; preds = %26184, %26167
  call void @llvm.lifetime.end.p0(i64 4, ptr %806) #11
  br label %26202

26202:                                            ; preds = %26201
  br label %26203

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

26204:                                            ; No predecessors!
  br label %26205

26205:                                            ; preds = %26204
  br label %26206

26206:                                            ; preds = %26205, %26142
  br label %26207

26207:                                            ; preds = %26206
  br label %26208

26208:                                            ; preds = %26207
  br label %26209

26209:                                            ; preds = %26208
  %26210 = load i32, ptr @test_count, align 4, !tbaa !5
  %26211 = add nsw i32 %26210, 1
  store i32 %26211, ptr @test_count, align 4, !tbaa !5
  %26212 = load i32, ptr %804, align 4, !tbaa !5
  %26213 = icmp eq i32 0, %26212
  br i1 %26213, label %26267, label %26214

26214:                                            ; preds = %26209
  br label %26215

26215:                                            ; preds = %26214
  br label %26216

26216:                                            ; preds = %26215
  call void @llvm.lifetime.start.p0(i64 4, ptr %807) #11
  %26217 = call ptr @__errno_location() #12
  %26218 = load i32, ptr %26217, align 4, !tbaa !5
  store i32 %26218, ptr %807, align 4, !tbaa !5
  %26219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26220 = call i32 @s2n_print_stacktrace(ptr noundef %26219)
  %26221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26222 = trunc i8 %26221 to i1
  br i1 %26222, label %26223, label %26245

26223:                                            ; preds = %26216
  %26224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26225 = call i32 @fileno(ptr noundef %26224) #11
  %26226 = call i32 @isatty(i32 noundef %26225) #11
  %26227 = icmp ne i32 %26226, 0
  br i1 %26227, label %26228, label %26245

26228:                                            ; preds = %26223
  %26229 = load i32, ptr %807, align 4, !tbaa !5
  %26230 = call ptr @__errno_location() #12
  store i32 %26229, ptr %26230, align 4, !tbaa !5
  %26231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26232 = load i32, ptr @test_count, align 4, !tbaa !5
  %26233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26234 = load i32, ptr %26233, align 4, !tbaa !5
  %26235 = call ptr @s2n_strerror(i32 noundef %26234, ptr noundef @.str.4)
  %26236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26237 = load i32, ptr %26236, align 4, !tbaa !5
  %26238 = call ptr @s2n_strerror_debug(i32 noundef %26237, ptr noundef @.str.4)
  %26239 = call ptr @__errno_location() #12
  %26240 = load i32, ptr %26239, align 4, !tbaa !5
  %26241 = call ptr @strerror(i32 noundef %26240) #11
  %26242 = call ptr @__errno_location() #12
  %26243 = load i32, ptr %26242, align 4, !tbaa !5
  %26244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26231, ptr noundef @.str.2, i32 noundef %26232, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1606, ptr noundef %26235, ptr noundef %26238, ptr noundef %26241, i32 noundef %26243) #11
  br label %26262

26245:                                            ; preds = %26223, %26216
  %26246 = load i32, ptr %807, align 4, !tbaa !5
  %26247 = call ptr @__errno_location() #12
  store i32 %26246, ptr %26247, align 4, !tbaa !5
  %26248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26249 = load i32, ptr @test_count, align 4, !tbaa !5
  %26250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26251 = load i32, ptr %26250, align 4, !tbaa !5
  %26252 = call ptr @s2n_strerror(i32 noundef %26251, ptr noundef @.str.4)
  %26253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26254 = load i32, ptr %26253, align 4, !tbaa !5
  %26255 = call ptr @s2n_strerror_debug(i32 noundef %26254, ptr noundef @.str.4)
  %26256 = call ptr @__errno_location() #12
  %26257 = load i32, ptr %26256, align 4, !tbaa !5
  %26258 = call ptr @strerror(i32 noundef %26257) #11
  %26259 = call ptr @__errno_location() #12
  %26260 = load i32, ptr %26259, align 4, !tbaa !5
  %26261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26248, ptr noundef @.str.5, i32 noundef %26249, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1606, ptr noundef %26252, ptr noundef %26255, ptr noundef %26258, i32 noundef %26260) #11
  br label %26262

26262:                                            ; preds = %26245, %26228
  call void @llvm.lifetime.end.p0(i64 4, ptr %807) #11
  br label %26263

26263:                                            ; preds = %26262
  br label %26264

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

26265:                                            ; No predecessors!
  br label %26266

26266:                                            ; preds = %26265
  br label %26267

26267:                                            ; preds = %26266, %26209
  br label %26268

26268:                                            ; preds = %26267
  br label %26269

26269:                                            ; preds = %26268
  %26270 = load ptr, ptr %793, align 8, !tbaa !9
  %26271 = call i32 @s2n_connection_free(ptr noundef %26270)
  %26272 = call i32 @s2n_pkey_free(ptr noundef %802)
  %26273 = call i32 @s2n_x509_validator_wipe(ptr noundef %792)
  call void @s2n_x509_trust_store_wipe(ptr noundef %790)
  call void @llvm.lifetime.end.p0(i64 4, ptr %804) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %802) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %800) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %799) #11
  %26274 = call i32 @s2n_stuffer_free(ptr noundef %796)
  call void @llvm.lifetime.end.p0(i64 40, ptr %796) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %793) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %792) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %790) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %808) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %808)
  br label %26275

26275:                                            ; preds = %26269
  %26276 = load i32, ptr @test_count, align 4, !tbaa !5
  %26277 = add nsw i32 %26276, 1
  store i32 %26277, ptr @test_count, align 4, !tbaa !5
  %26278 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %808, ptr noundef @.str.88, ptr noundef null)
  %26279 = icmp eq i32 0, %26278
  br i1 %26279, label %26333, label %26280

26280:                                            ; preds = %26275
  br label %26281

26281:                                            ; preds = %26280
  br label %26282

26282:                                            ; preds = %26281
  call void @llvm.lifetime.start.p0(i64 4, ptr %809) #11
  %26283 = call ptr @__errno_location() #12
  %26284 = load i32, ptr %26283, align 4, !tbaa !5
  store i32 %26284, ptr %809, align 4, !tbaa !5
  %26285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26286 = call i32 @s2n_print_stacktrace(ptr noundef %26285)
  %26287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26288 = trunc i8 %26287 to i1
  br i1 %26288, label %26289, label %26311

26289:                                            ; preds = %26282
  %26290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26291 = call i32 @fileno(ptr noundef %26290) #11
  %26292 = call i32 @isatty(i32 noundef %26291) #11
  %26293 = icmp ne i32 %26292, 0
  br i1 %26293, label %26294, label %26311

26294:                                            ; preds = %26289
  %26295 = load i32, ptr %809, align 4, !tbaa !5
  %26296 = call ptr @__errno_location() #12
  store i32 %26295, ptr %26296, align 4, !tbaa !5
  %26297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26298 = load i32, ptr @test_count, align 4, !tbaa !5
  %26299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26300 = load i32, ptr %26299, align 4, !tbaa !5
  %26301 = call ptr @s2n_strerror(i32 noundef %26300, ptr noundef @.str.4)
  %26302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26303 = load i32, ptr %26302, align 4, !tbaa !5
  %26304 = call ptr @s2n_strerror_debug(i32 noundef %26303, ptr noundef @.str.4)
  %26305 = call ptr @__errno_location() #12
  %26306 = load i32, ptr %26305, align 4, !tbaa !5
  %26307 = call ptr @strerror(i32 noundef %26306) #11
  %26308 = call ptr @__errno_location() #12
  %26309 = load i32, ptr %26308, align 4, !tbaa !5
  %26310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26297, ptr noundef @.str.2, i32 noundef %26298, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1618, ptr noundef %26301, ptr noundef %26304, ptr noundef %26307, i32 noundef %26309) #11
  br label %26328

26311:                                            ; preds = %26289, %26282
  %26312 = load i32, ptr %809, align 4, !tbaa !5
  %26313 = call ptr @__errno_location() #12
  store i32 %26312, ptr %26313, align 4, !tbaa !5
  %26314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26315 = load i32, ptr @test_count, align 4, !tbaa !5
  %26316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26317 = load i32, ptr %26316, align 4, !tbaa !5
  %26318 = call ptr @s2n_strerror(i32 noundef %26317, ptr noundef @.str.4)
  %26319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26320 = load i32, ptr %26319, align 4, !tbaa !5
  %26321 = call ptr @s2n_strerror_debug(i32 noundef %26320, ptr noundef @.str.4)
  %26322 = call ptr @__errno_location() #12
  %26323 = load i32, ptr %26322, align 4, !tbaa !5
  %26324 = call ptr @strerror(i32 noundef %26323) #11
  %26325 = call ptr @__errno_location() #12
  %26326 = load i32, ptr %26325, align 4, !tbaa !5
  %26327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26314, ptr noundef @.str.5, i32 noundef %26315, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1618, ptr noundef %26318, ptr noundef %26321, ptr noundef %26324, i32 noundef %26326) #11
  br label %26328

26328:                                            ; preds = %26311, %26294
  call void @llvm.lifetime.end.p0(i64 4, ptr %809) #11
  br label %26329

26329:                                            ; preds = %26328
  br label %26330

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

26331:                                            ; No predecessors!
  br label %26332

26332:                                            ; preds = %26331
  br label %26333

26333:                                            ; preds = %26332, %26275
  br label %26334

26334:                                            ; preds = %26333
  br label %26335

26335:                                            ; preds = %26334
  call void @llvm.lifetime.start.p0(i64 56, ptr %810) #11
  %26336 = call i32 @s2n_x509_validator_init(ptr noundef %810, ptr noundef %808, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %811) #11
  %26337 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %26337, ptr %811, align 8, !tbaa !9
  br label %26338

26338:                                            ; preds = %26335
  %26339 = load i32, ptr @test_count, align 4, !tbaa !5
  %26340 = add nsw i32 %26339, 1
  store i32 %26340, ptr @test_count, align 4, !tbaa !5
  %26341 = load ptr, ptr %811, align 8, !tbaa !9
  %26342 = icmp eq ptr %26341, null
  br i1 %26342, label %26343, label %26396

26343:                                            ; preds = %26338
  br label %26344

26344:                                            ; preds = %26343
  br label %26345

26345:                                            ; preds = %26344
  call void @llvm.lifetime.start.p0(i64 4, ptr %812) #11
  %26346 = call ptr @__errno_location() #12
  %26347 = load i32, ptr %26346, align 4, !tbaa !5
  store i32 %26347, ptr %812, align 4, !tbaa !5
  %26348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26349 = call i32 @s2n_print_stacktrace(ptr noundef %26348)
  %26350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26351 = trunc i8 %26350 to i1
  br i1 %26351, label %26352, label %26374

26352:                                            ; preds = %26345
  %26353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26354 = call i32 @fileno(ptr noundef %26353) #11
  %26355 = call i32 @isatty(i32 noundef %26354) #11
  %26356 = icmp ne i32 %26355, 0
  br i1 %26356, label %26357, label %26374

26357:                                            ; preds = %26352
  %26358 = load i32, ptr %812, align 4, !tbaa !5
  %26359 = call ptr @__errno_location() #12
  store i32 %26358, ptr %26359, align 4, !tbaa !5
  %26360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26361 = load i32, ptr @test_count, align 4, !tbaa !5
  %26362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26363 = load i32, ptr %26362, align 4, !tbaa !5
  %26364 = call ptr @s2n_strerror(i32 noundef %26363, ptr noundef @.str.4)
  %26365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26366 = load i32, ptr %26365, align 4, !tbaa !5
  %26367 = call ptr @s2n_strerror_debug(i32 noundef %26366, ptr noundef @.str.4)
  %26368 = call ptr @__errno_location() #12
  %26369 = load i32, ptr %26368, align 4, !tbaa !5
  %26370 = call ptr @strerror(i32 noundef %26369) #11
  %26371 = call ptr @__errno_location() #12
  %26372 = load i32, ptr %26371, align 4, !tbaa !5
  %26373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26360, ptr noundef @.str.2, i32 noundef %26361, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1624, ptr noundef %26364, ptr noundef %26367, ptr noundef %26370, i32 noundef %26372) #11
  br label %26391

26374:                                            ; preds = %26352, %26345
  %26375 = load i32, ptr %812, align 4, !tbaa !5
  %26376 = call ptr @__errno_location() #12
  store i32 %26375, ptr %26376, align 4, !tbaa !5
  %26377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26378 = load i32, ptr @test_count, align 4, !tbaa !5
  %26379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26380 = load i32, ptr %26379, align 4, !tbaa !5
  %26381 = call ptr @s2n_strerror(i32 noundef %26380, ptr noundef @.str.4)
  %26382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26383 = load i32, ptr %26382, align 4, !tbaa !5
  %26384 = call ptr @s2n_strerror_debug(i32 noundef %26383, ptr noundef @.str.4)
  %26385 = call ptr @__errno_location() #12
  %26386 = load i32, ptr %26385, align 4, !tbaa !5
  %26387 = call ptr @strerror(i32 noundef %26386) #11
  %26388 = call ptr @__errno_location() #12
  %26389 = load i32, ptr %26388, align 4, !tbaa !5
  %26390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26377, ptr noundef @.str.5, i32 noundef %26378, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1624, ptr noundef %26381, ptr noundef %26384, ptr noundef %26387, i32 noundef %26389) #11
  br label %26391

26391:                                            ; preds = %26374, %26357
  call void @llvm.lifetime.end.p0(i64 4, ptr %812) #11
  br label %26392

26392:                                            ; preds = %26391
  br label %26393

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

26394:                                            ; No predecessors!
  br label %26395

26395:                                            ; preds = %26394
  br label %26396

26396:                                            ; preds = %26395, %26338
  br label %26397

26397:                                            ; preds = %26396
  br label %26398

26398:                                            ; preds = %26397
  br label %26399

26399:                                            ; preds = %26398
  %26400 = load i32, ptr @test_count, align 4, !tbaa !5
  %26401 = add nsw i32 %26400, 1
  store i32 %26401, ptr @test_count, align 4, !tbaa !5
  %26402 = load ptr, ptr %811, align 8, !tbaa !9
  %26403 = call i32 @s2n_set_server_name(ptr noundef %26402, ptr noundef @.str.57)
  %26404 = icmp eq i32 %26403, -1
  br i1 %26404, label %26405, label %26458

26405:                                            ; preds = %26399
  br label %26406

26406:                                            ; preds = %26405
  br label %26407

26407:                                            ; preds = %26406
  call void @llvm.lifetime.start.p0(i64 4, ptr %813) #11
  %26408 = call ptr @__errno_location() #12
  %26409 = load i32, ptr %26408, align 4, !tbaa !5
  store i32 %26409, ptr %813, align 4, !tbaa !5
  %26410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26411 = call i32 @s2n_print_stacktrace(ptr noundef %26410)
  %26412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26413 = trunc i8 %26412 to i1
  br i1 %26413, label %26414, label %26436

26414:                                            ; preds = %26407
  %26415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26416 = call i32 @fileno(ptr noundef %26415) #11
  %26417 = call i32 @isatty(i32 noundef %26416) #11
  %26418 = icmp ne i32 %26417, 0
  br i1 %26418, label %26419, label %26436

26419:                                            ; preds = %26414
  %26420 = load i32, ptr %813, align 4, !tbaa !5
  %26421 = call ptr @__errno_location() #12
  store i32 %26420, ptr %26421, align 4, !tbaa !5
  %26422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26423 = load i32, ptr @test_count, align 4, !tbaa !5
  %26424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26425 = load i32, ptr %26424, align 4, !tbaa !5
  %26426 = call ptr @s2n_strerror(i32 noundef %26425, ptr noundef @.str.4)
  %26427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26428 = load i32, ptr %26427, align 4, !tbaa !5
  %26429 = call ptr @s2n_strerror_debug(i32 noundef %26428, ptr noundef @.str.4)
  %26430 = call ptr @__errno_location() #12
  %26431 = load i32, ptr %26430, align 4, !tbaa !5
  %26432 = call ptr @strerror(i32 noundef %26431) #11
  %26433 = call ptr @__errno_location() #12
  %26434 = load i32, ptr %26433, align 4, !tbaa !5
  %26435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26422, ptr noundef @.str.2, i32 noundef %26423, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 1626, ptr noundef %26426, ptr noundef %26429, ptr noundef %26432, i32 noundef %26434) #11
  br label %26453

26436:                                            ; preds = %26414, %26407
  %26437 = load i32, ptr %813, align 4, !tbaa !5
  %26438 = call ptr @__errno_location() #12
  store i32 %26437, ptr %26438, align 4, !tbaa !5
  %26439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26440 = load i32, ptr @test_count, align 4, !tbaa !5
  %26441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26442 = load i32, ptr %26441, align 4, !tbaa !5
  %26443 = call ptr @s2n_strerror(i32 noundef %26442, ptr noundef @.str.4)
  %26444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26445 = load i32, ptr %26444, align 4, !tbaa !5
  %26446 = call ptr @s2n_strerror_debug(i32 noundef %26445, ptr noundef @.str.4)
  %26447 = call ptr @__errno_location() #12
  %26448 = load i32, ptr %26447, align 4, !tbaa !5
  %26449 = call ptr @strerror(i32 noundef %26448) #11
  %26450 = call ptr @__errno_location() #12
  %26451 = load i32, ptr %26450, align 4, !tbaa !5
  %26452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26439, ptr noundef @.str.5, i32 noundef %26440, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 1626, ptr noundef %26443, ptr noundef %26446, ptr noundef %26449, i32 noundef %26451) #11
  br label %26453

26453:                                            ; preds = %26436, %26419
  call void @llvm.lifetime.end.p0(i64 4, ptr %813) #11
  br label %26454

26454:                                            ; preds = %26453
  br label %26455

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

26456:                                            ; No predecessors!
  br label %26457

26457:                                            ; preds = %26456
  br label %26458

26458:                                            ; preds = %26457, %26399
  br label %26459

26459:                                            ; preds = %26458
  br label %26460

26460:                                            ; preds = %26459
  call void @llvm.lifetime.start.p0(i64 40, ptr %814) #11
  call void @llvm.memset.p0.i64(ptr align 8 %814, i8 0, i64 40, i1 false)
  br label %26461

26461:                                            ; preds = %26460
  %26462 = load i32, ptr @test_count, align 4, !tbaa !5
  %26463 = add nsw i32 %26462, 1
  store i32 %26463, ptr @test_count, align 4, !tbaa !5
  %26464 = load ptr, ptr %811, align 8, !tbaa !9
  %26465 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %26464, ptr noundef @.str.88, ptr noundef %814)
  %26466 = getelementptr inbounds %struct.s2n_result, ptr %815, i32 0, i32 0
  store i32 %26465, ptr %26466, align 4
  %26467 = getelementptr inbounds %struct.s2n_result, ptr %815, i32 0, i32 0
  %26468 = load i32, ptr %26467, align 4
  %26469 = call zeroext i1 @s2n_result_is_ok(i32 %26468)
  br i1 %26469, label %26523, label %26470

26470:                                            ; preds = %26461
  br label %26471

26471:                                            ; preds = %26470
  br label %26472

26472:                                            ; preds = %26471
  call void @llvm.lifetime.start.p0(i64 4, ptr %816) #11
  %26473 = call ptr @__errno_location() #12
  %26474 = load i32, ptr %26473, align 4, !tbaa !5
  store i32 %26474, ptr %816, align 4, !tbaa !5
  %26475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26476 = call i32 @s2n_print_stacktrace(ptr noundef %26475)
  %26477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26478 = trunc i8 %26477 to i1
  br i1 %26478, label %26479, label %26501

26479:                                            ; preds = %26472
  %26480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26481 = call i32 @fileno(ptr noundef %26480) #11
  %26482 = call i32 @isatty(i32 noundef %26481) #11
  %26483 = icmp ne i32 %26482, 0
  br i1 %26483, label %26484, label %26501

26484:                                            ; preds = %26479
  %26485 = load i32, ptr %816, align 4, !tbaa !5
  %26486 = call ptr @__errno_location() #12
  store i32 %26485, ptr %26486, align 4, !tbaa !5
  %26487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26488 = load i32, ptr @test_count, align 4, !tbaa !5
  %26489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26490 = load i32, ptr %26489, align 4, !tbaa !5
  %26491 = call ptr @s2n_strerror(i32 noundef %26490, ptr noundef @.str.4)
  %26492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26493 = load i32, ptr %26492, align 4, !tbaa !5
  %26494 = call ptr @s2n_strerror_debug(i32 noundef %26493, ptr noundef @.str.4)
  %26495 = call ptr @__errno_location() #12
  %26496 = load i32, ptr %26495, align 4, !tbaa !5
  %26497 = call ptr @strerror(i32 noundef %26496) #11
  %26498 = call ptr @__errno_location() #12
  %26499 = load i32, ptr %26498, align 4, !tbaa !5
  %26500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26487, ptr noundef @.str.2, i32 noundef %26488, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1630, ptr noundef %26491, ptr noundef %26494, ptr noundef %26497, i32 noundef %26499) #11
  br label %26518

26501:                                            ; preds = %26479, %26472
  %26502 = load i32, ptr %816, align 4, !tbaa !5
  %26503 = call ptr @__errno_location() #12
  store i32 %26502, ptr %26503, align 4, !tbaa !5
  %26504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26505 = load i32, ptr @test_count, align 4, !tbaa !5
  %26506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26507 = load i32, ptr %26506, align 4, !tbaa !5
  %26508 = call ptr @s2n_strerror(i32 noundef %26507, ptr noundef @.str.4)
  %26509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26510 = load i32, ptr %26509, align 4, !tbaa !5
  %26511 = call ptr @s2n_strerror_debug(i32 noundef %26510, ptr noundef @.str.4)
  %26512 = call ptr @__errno_location() #12
  %26513 = load i32, ptr %26512, align 4, !tbaa !5
  %26514 = call ptr @strerror(i32 noundef %26513) #11
  %26515 = call ptr @__errno_location() #12
  %26516 = load i32, ptr %26515, align 4, !tbaa !5
  %26517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26504, ptr noundef @.str.5, i32 noundef %26505, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1630, ptr noundef %26508, ptr noundef %26511, ptr noundef %26514, i32 noundef %26516) #11
  br label %26518

26518:                                            ; preds = %26501, %26484
  call void @llvm.lifetime.end.p0(i64 4, ptr %816) #11
  br label %26519

26519:                                            ; preds = %26518
  br label %26520

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

26521:                                            ; No predecessors!
  br label %26522

26522:                                            ; preds = %26521
  br label %26523

26523:                                            ; preds = %26522, %26461
  br label %26524

26524:                                            ; preds = %26523
  br label %26525

26525:                                            ; preds = %26524
  call void @llvm.lifetime.start.p0(i64 4, ptr %817) #11
  %26526 = getelementptr inbounds %struct.s2n_stuffer, ptr %814, i32 0, i32 2
  %26527 = load i32, ptr %26526, align 4, !tbaa !15
  %26528 = getelementptr inbounds %struct.s2n_stuffer, ptr %814, i32 0, i32 1
  %26529 = load i32, ptr %26528, align 8, !tbaa !18
  %26530 = sub i32 %26527, %26529
  store i32 %26530, ptr %817, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %818) #11
  %26531 = load i32, ptr %817, align 4, !tbaa !5
  %26532 = call ptr @s2n_stuffer_raw_read(ptr noundef %814, i32 noundef %26531)
  store ptr %26532, ptr %818, align 8, !tbaa !9
  br label %26533

26533:                                            ; preds = %26525
  %26534 = load i32, ptr @test_count, align 4, !tbaa !5
  %26535 = add nsw i32 %26534, 1
  store i32 %26535, ptr @test_count, align 4, !tbaa !5
  %26536 = load ptr, ptr %818, align 8, !tbaa !9
  %26537 = icmp eq ptr %26536, null
  br i1 %26537, label %26538, label %26591

26538:                                            ; preds = %26533
  br label %26539

26539:                                            ; preds = %26538
  br label %26540

26540:                                            ; preds = %26539
  call void @llvm.lifetime.start.p0(i64 4, ptr %819) #11
  %26541 = call ptr @__errno_location() #12
  %26542 = load i32, ptr %26541, align 4, !tbaa !5
  store i32 %26542, ptr %819, align 4, !tbaa !5
  %26543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26544 = call i32 @s2n_print_stacktrace(ptr noundef %26543)
  %26545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26546 = trunc i8 %26545 to i1
  br i1 %26546, label %26547, label %26569

26547:                                            ; preds = %26540
  %26548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26549 = call i32 @fileno(ptr noundef %26548) #11
  %26550 = call i32 @isatty(i32 noundef %26549) #11
  %26551 = icmp ne i32 %26550, 0
  br i1 %26551, label %26552, label %26569

26552:                                            ; preds = %26547
  %26553 = load i32, ptr %819, align 4, !tbaa !5
  %26554 = call ptr @__errno_location() #12
  store i32 %26553, ptr %26554, align 4, !tbaa !5
  %26555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26556 = load i32, ptr @test_count, align 4, !tbaa !5
  %26557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26558 = load i32, ptr %26557, align 4, !tbaa !5
  %26559 = call ptr @s2n_strerror(i32 noundef %26558, ptr noundef @.str.4)
  %26560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26561 = load i32, ptr %26560, align 4, !tbaa !5
  %26562 = call ptr @s2n_strerror_debug(i32 noundef %26561, ptr noundef @.str.4)
  %26563 = call ptr @__errno_location() #12
  %26564 = load i32, ptr %26563, align 4, !tbaa !5
  %26565 = call ptr @strerror(i32 noundef %26564) #11
  %26566 = call ptr @__errno_location() #12
  %26567 = load i32, ptr %26566, align 4, !tbaa !5
  %26568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26555, ptr noundef @.str.2, i32 noundef %26556, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1633, ptr noundef %26559, ptr noundef %26562, ptr noundef %26565, i32 noundef %26567) #11
  br label %26586

26569:                                            ; preds = %26547, %26540
  %26570 = load i32, ptr %819, align 4, !tbaa !5
  %26571 = call ptr @__errno_location() #12
  store i32 %26570, ptr %26571, align 4, !tbaa !5
  %26572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26573 = load i32, ptr @test_count, align 4, !tbaa !5
  %26574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26575 = load i32, ptr %26574, align 4, !tbaa !5
  %26576 = call ptr @s2n_strerror(i32 noundef %26575, ptr noundef @.str.4)
  %26577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26578 = load i32, ptr %26577, align 4, !tbaa !5
  %26579 = call ptr @s2n_strerror_debug(i32 noundef %26578, ptr noundef @.str.4)
  %26580 = call ptr @__errno_location() #12
  %26581 = load i32, ptr %26580, align 4, !tbaa !5
  %26582 = call ptr @strerror(i32 noundef %26581) #11
  %26583 = call ptr @__errno_location() #12
  %26584 = load i32, ptr %26583, align 4, !tbaa !5
  %26585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26572, ptr noundef @.str.5, i32 noundef %26573, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1633, ptr noundef %26576, ptr noundef %26579, ptr noundef %26582, i32 noundef %26584) #11
  br label %26586

26586:                                            ; preds = %26569, %26552
  call void @llvm.lifetime.end.p0(i64 4, ptr %819) #11
  br label %26587

26587:                                            ; preds = %26586
  br label %26588

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

26589:                                            ; No predecessors!
  br label %26590

26590:                                            ; preds = %26589
  br label %26591

26591:                                            ; preds = %26590, %26533
  br label %26592

26592:                                            ; preds = %26591
  br label %26593

26593:                                            ; preds = %26592
  call void @llvm.lifetime.start.p0(i64 48, ptr %820) #11
  br label %26594

26594:                                            ; preds = %26593
  %26595 = load i32, ptr @test_count, align 4, !tbaa !5
  %26596 = add nsw i32 %26595, 1
  store i32 %26596, ptr @test_count, align 4, !tbaa !5
  %26597 = call i32 @s2n_pkey_zero_init(ptr noundef %820)
  %26598 = icmp eq i32 %26597, -1
  br i1 %26598, label %26599, label %26652

26599:                                            ; preds = %26594
  br label %26600

26600:                                            ; preds = %26599
  br label %26601

26601:                                            ; preds = %26600
  call void @llvm.lifetime.start.p0(i64 4, ptr %821) #11
  %26602 = call ptr @__errno_location() #12
  %26603 = load i32, ptr %26602, align 4, !tbaa !5
  store i32 %26603, ptr %821, align 4, !tbaa !5
  %26604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26605 = call i32 @s2n_print_stacktrace(ptr noundef %26604)
  %26606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26607 = trunc i8 %26606 to i1
  br i1 %26607, label %26608, label %26630

26608:                                            ; preds = %26601
  %26609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26610 = call i32 @fileno(ptr noundef %26609) #11
  %26611 = call i32 @isatty(i32 noundef %26610) #11
  %26612 = icmp ne i32 %26611, 0
  br i1 %26612, label %26613, label %26630

26613:                                            ; preds = %26608
  %26614 = load i32, ptr %821, align 4, !tbaa !5
  %26615 = call ptr @__errno_location() #12
  store i32 %26614, ptr %26615, align 4, !tbaa !5
  %26616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26617 = load i32, ptr @test_count, align 4, !tbaa !5
  %26618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26619 = load i32, ptr %26618, align 4, !tbaa !5
  %26620 = call ptr @s2n_strerror(i32 noundef %26619, ptr noundef @.str.4)
  %26621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26622 = load i32, ptr %26621, align 4, !tbaa !5
  %26623 = call ptr @s2n_strerror_debug(i32 noundef %26622, ptr noundef @.str.4)
  %26624 = call ptr @__errno_location() #12
  %26625 = load i32, ptr %26624, align 4, !tbaa !5
  %26626 = call ptr @strerror(i32 noundef %26625) #11
  %26627 = call ptr @__errno_location() #12
  %26628 = load i32, ptr %26627, align 4, !tbaa !5
  %26629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26616, ptr noundef @.str.2, i32 noundef %26617, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1636, ptr noundef %26620, ptr noundef %26623, ptr noundef %26626, i32 noundef %26628) #11
  br label %26647

26630:                                            ; preds = %26608, %26601
  %26631 = load i32, ptr %821, align 4, !tbaa !5
  %26632 = call ptr @__errno_location() #12
  store i32 %26631, ptr %26632, align 4, !tbaa !5
  %26633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26634 = load i32, ptr @test_count, align 4, !tbaa !5
  %26635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26636 = load i32, ptr %26635, align 4, !tbaa !5
  %26637 = call ptr @s2n_strerror(i32 noundef %26636, ptr noundef @.str.4)
  %26638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26639 = load i32, ptr %26638, align 4, !tbaa !5
  %26640 = call ptr @s2n_strerror_debug(i32 noundef %26639, ptr noundef @.str.4)
  %26641 = call ptr @__errno_location() #12
  %26642 = load i32, ptr %26641, align 4, !tbaa !5
  %26643 = call ptr @strerror(i32 noundef %26642) #11
  %26644 = call ptr @__errno_location() #12
  %26645 = load i32, ptr %26644, align 4, !tbaa !5
  %26646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26633, ptr noundef @.str.5, i32 noundef %26634, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1636, ptr noundef %26637, ptr noundef %26640, ptr noundef %26643, i32 noundef %26645) #11
  br label %26647

26647:                                            ; preds = %26630, %26613
  call void @llvm.lifetime.end.p0(i64 4, ptr %821) #11
  br label %26648

26648:                                            ; preds = %26647
  br label %26649

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

26650:                                            ; No predecessors!
  br label %26651

26651:                                            ; preds = %26650
  br label %26652

26652:                                            ; preds = %26651, %26594
  br label %26653

26653:                                            ; preds = %26652
  br label %26654

26654:                                            ; preds = %26653
  call void @llvm.lifetime.start.p0(i64 4, ptr %822) #11
  store i32 -1, ptr %822, align 4, !tbaa !5
  br label %26655

26655:                                            ; preds = %26654
  br label %26656

26656:                                            ; preds = %26655
  br label %26657

26657:                                            ; preds = %26656
  %26658 = load i32, ptr @test_count, align 4, !tbaa !5
  %26659 = add nsw i32 %26658, 1
  store i32 %26659, ptr @test_count, align 4, !tbaa !5
  %26660 = load ptr, ptr %811, align 8, !tbaa !9
  %26661 = load ptr, ptr %818, align 8, !tbaa !9
  %26662 = load i32, ptr %817, align 4, !tbaa !5
  %26663 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %810, ptr noundef %26660, ptr noundef %26661, i32 noundef %26662, ptr noundef %822, ptr noundef %820)
  %26664 = getelementptr inbounds %struct.s2n_result, ptr %823, i32 0, i32 0
  store i32 %26663, ptr %26664, align 4
  %26665 = getelementptr inbounds %struct.s2n_result, ptr %823, i32 0, i32 0
  %26666 = load i32, ptr %26665, align 4
  %26667 = call zeroext i1 @s2n_result_is_error(i32 %26666)
  br i1 %26667, label %26721, label %26668

26668:                                            ; preds = %26657
  br label %26669

26669:                                            ; preds = %26668
  br label %26670

26670:                                            ; preds = %26669
  call void @llvm.lifetime.start.p0(i64 4, ptr %824) #11
  %26671 = call ptr @__errno_location() #12
  %26672 = load i32, ptr %26671, align 4, !tbaa !5
  store i32 %26672, ptr %824, align 4, !tbaa !5
  %26673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26674 = call i32 @s2n_print_stacktrace(ptr noundef %26673)
  %26675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26676 = trunc i8 %26675 to i1
  br i1 %26676, label %26677, label %26699

26677:                                            ; preds = %26670
  %26678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26679 = call i32 @fileno(ptr noundef %26678) #11
  %26680 = call i32 @isatty(i32 noundef %26679) #11
  %26681 = icmp ne i32 %26680, 0
  br i1 %26681, label %26682, label %26699

26682:                                            ; preds = %26677
  %26683 = load i32, ptr %824, align 4, !tbaa !5
  %26684 = call ptr @__errno_location() #12
  store i32 %26683, ptr %26684, align 4, !tbaa !5
  %26685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26686 = load i32, ptr @test_count, align 4, !tbaa !5
  %26687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26688 = load i32, ptr %26687, align 4, !tbaa !5
  %26689 = call ptr @s2n_strerror(i32 noundef %26688, ptr noundef @.str.4)
  %26690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26691 = load i32, ptr %26690, align 4, !tbaa !5
  %26692 = call ptr @s2n_strerror_debug(i32 noundef %26691, ptr noundef @.str.4)
  %26693 = call ptr @__errno_location() #12
  %26694 = load i32, ptr %26693, align 4, !tbaa !5
  %26695 = call ptr @strerror(i32 noundef %26694) #11
  %26696 = call ptr @__errno_location() #12
  %26697 = load i32, ptr %26696, align 4, !tbaa !5
  %26698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26685, ptr noundef @.str.2, i32 noundef %26686, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1640, ptr noundef %26689, ptr noundef %26692, ptr noundef %26695, i32 noundef %26697) #11
  br label %26716

26699:                                            ; preds = %26677, %26670
  %26700 = load i32, ptr %824, align 4, !tbaa !5
  %26701 = call ptr @__errno_location() #12
  store i32 %26700, ptr %26701, align 4, !tbaa !5
  %26702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26703 = load i32, ptr @test_count, align 4, !tbaa !5
  %26704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26705 = load i32, ptr %26704, align 4, !tbaa !5
  %26706 = call ptr @s2n_strerror(i32 noundef %26705, ptr noundef @.str.4)
  %26707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26708 = load i32, ptr %26707, align 4, !tbaa !5
  %26709 = call ptr @s2n_strerror_debug(i32 noundef %26708, ptr noundef @.str.4)
  %26710 = call ptr @__errno_location() #12
  %26711 = load i32, ptr %26710, align 4, !tbaa !5
  %26712 = call ptr @strerror(i32 noundef %26711) #11
  %26713 = call ptr @__errno_location() #12
  %26714 = load i32, ptr %26713, align 4, !tbaa !5
  %26715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26702, ptr noundef @.str.5, i32 noundef %26703, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1640, ptr noundef %26706, ptr noundef %26709, ptr noundef %26712, i32 noundef %26714) #11
  br label %26716

26716:                                            ; preds = %26699, %26682
  call void @llvm.lifetime.end.p0(i64 4, ptr %824) #11
  br label %26717

26717:                                            ; preds = %26716
  br label %26718

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

26719:                                            ; No predecessors!
  br label %26720

26720:                                            ; preds = %26719
  br label %26721

26721:                                            ; preds = %26720, %26657
  br label %26722

26722:                                            ; preds = %26721
  br label %26723

26723:                                            ; preds = %26722
  br label %26724

26724:                                            ; preds = %26723
  %26725 = load i32, ptr @test_count, align 4, !tbaa !5
  %26726 = add nsw i32 %26725, 1
  store i32 %26726, ptr @test_count, align 4, !tbaa !5
  %26727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26728 = load i32, ptr %26727, align 4, !tbaa !5
  %26729 = icmp eq i32 %26728, 335544366
  br i1 %26729, label %26783, label %26730

26730:                                            ; preds = %26724
  br label %26731

26731:                                            ; preds = %26730
  br label %26732

26732:                                            ; preds = %26731
  call void @llvm.lifetime.start.p0(i64 4, ptr %825) #11
  %26733 = call ptr @__errno_location() #12
  %26734 = load i32, ptr %26733, align 4, !tbaa !5
  store i32 %26734, ptr %825, align 4, !tbaa !5
  %26735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26736 = call i32 @s2n_print_stacktrace(ptr noundef %26735)
  %26737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26738 = trunc i8 %26737 to i1
  br i1 %26738, label %26739, label %26761

26739:                                            ; preds = %26732
  %26740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26741 = call i32 @fileno(ptr noundef %26740) #11
  %26742 = call i32 @isatty(i32 noundef %26741) #11
  %26743 = icmp ne i32 %26742, 0
  br i1 %26743, label %26744, label %26761

26744:                                            ; preds = %26739
  %26745 = load i32, ptr %825, align 4, !tbaa !5
  %26746 = call ptr @__errno_location() #12
  store i32 %26745, ptr %26746, align 4, !tbaa !5
  %26747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26748 = load i32, ptr @test_count, align 4, !tbaa !5
  %26749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26750 = load i32, ptr %26749, align 4, !tbaa !5
  %26751 = call ptr @s2n_strerror(i32 noundef %26750, ptr noundef @.str.4)
  %26752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26753 = load i32, ptr %26752, align 4, !tbaa !5
  %26754 = call ptr @s2n_strerror_debug(i32 noundef %26753, ptr noundef @.str.4)
  %26755 = call ptr @__errno_location() #12
  %26756 = load i32, ptr %26755, align 4, !tbaa !5
  %26757 = call ptr @strerror(i32 noundef %26756) #11
  %26758 = call ptr @__errno_location() #12
  %26759 = load i32, ptr %26758, align 4, !tbaa !5
  %26760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26747, ptr noundef @.str.2, i32 noundef %26748, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1640, ptr noundef %26751, ptr noundef %26754, ptr noundef %26757, i32 noundef %26759) #11
  br label %26778

26761:                                            ; preds = %26739, %26732
  %26762 = load i32, ptr %825, align 4, !tbaa !5
  %26763 = call ptr @__errno_location() #12
  store i32 %26762, ptr %26763, align 4, !tbaa !5
  %26764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26765 = load i32, ptr @test_count, align 4, !tbaa !5
  %26766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26767 = load i32, ptr %26766, align 4, !tbaa !5
  %26768 = call ptr @s2n_strerror(i32 noundef %26767, ptr noundef @.str.4)
  %26769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26770 = load i32, ptr %26769, align 4, !tbaa !5
  %26771 = call ptr @s2n_strerror_debug(i32 noundef %26770, ptr noundef @.str.4)
  %26772 = call ptr @__errno_location() #12
  %26773 = load i32, ptr %26772, align 4, !tbaa !5
  %26774 = call ptr @strerror(i32 noundef %26773) #11
  %26775 = call ptr @__errno_location() #12
  %26776 = load i32, ptr %26775, align 4, !tbaa !5
  %26777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26764, ptr noundef @.str.5, i32 noundef %26765, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1640, ptr noundef %26768, ptr noundef %26771, ptr noundef %26774, i32 noundef %26776) #11
  br label %26778

26778:                                            ; preds = %26761, %26744
  call void @llvm.lifetime.end.p0(i64 4, ptr %825) #11
  br label %26779

26779:                                            ; preds = %26778
  br label %26780

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

26781:                                            ; No predecessors!
  br label %26782

26782:                                            ; preds = %26781
  br label %26783

26783:                                            ; preds = %26782, %26724
  br label %26784

26784:                                            ; preds = %26783
  br label %26785

26785:                                            ; preds = %26784
  br label %26786

26786:                                            ; preds = %26785
  %26787 = load i32, ptr @test_count, align 4, !tbaa !5
  %26788 = add nsw i32 %26787, 1
  store i32 %26788, ptr @test_count, align 4, !tbaa !5
  %26789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26790 = load i32, ptr %26789, align 4, !tbaa !5
  %26791 = call ptr @s2n_strerror_debug(i32 noundef %26790, ptr noundef @.str.4)
  %26792 = icmp eq ptr %26791, null
  br i1 %26792, label %26793, label %26846

26793:                                            ; preds = %26786
  br label %26794

26794:                                            ; preds = %26793
  br label %26795

26795:                                            ; preds = %26794
  call void @llvm.lifetime.start.p0(i64 4, ptr %826) #11
  %26796 = call ptr @__errno_location() #12
  %26797 = load i32, ptr %26796, align 4, !tbaa !5
  store i32 %26797, ptr %826, align 4, !tbaa !5
  %26798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26799 = call i32 @s2n_print_stacktrace(ptr noundef %26798)
  %26800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26801 = trunc i8 %26800 to i1
  br i1 %26801, label %26802, label %26824

26802:                                            ; preds = %26795
  %26803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26804 = call i32 @fileno(ptr noundef %26803) #11
  %26805 = call i32 @isatty(i32 noundef %26804) #11
  %26806 = icmp ne i32 %26805, 0
  br i1 %26806, label %26807, label %26824

26807:                                            ; preds = %26802
  %26808 = load i32, ptr %826, align 4, !tbaa !5
  %26809 = call ptr @__errno_location() #12
  store i32 %26808, ptr %26809, align 4, !tbaa !5
  %26810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26811 = load i32, ptr @test_count, align 4, !tbaa !5
  %26812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26813 = load i32, ptr %26812, align 4, !tbaa !5
  %26814 = call ptr @s2n_strerror(i32 noundef %26813, ptr noundef @.str.4)
  %26815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26816 = load i32, ptr %26815, align 4, !tbaa !5
  %26817 = call ptr @s2n_strerror_debug(i32 noundef %26816, ptr noundef @.str.4)
  %26818 = call ptr @__errno_location() #12
  %26819 = load i32, ptr %26818, align 4, !tbaa !5
  %26820 = call ptr @strerror(i32 noundef %26819) #11
  %26821 = call ptr @__errno_location() #12
  %26822 = load i32, ptr %26821, align 4, !tbaa !5
  %26823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26810, ptr noundef @.str.2, i32 noundef %26811, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1640, ptr noundef %26814, ptr noundef %26817, ptr noundef %26820, i32 noundef %26822) #11
  br label %26841

26824:                                            ; preds = %26802, %26795
  %26825 = load i32, ptr %826, align 4, !tbaa !5
  %26826 = call ptr @__errno_location() #12
  store i32 %26825, ptr %26826, align 4, !tbaa !5
  %26827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26828 = load i32, ptr @test_count, align 4, !tbaa !5
  %26829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26830 = load i32, ptr %26829, align 4, !tbaa !5
  %26831 = call ptr @s2n_strerror(i32 noundef %26830, ptr noundef @.str.4)
  %26832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26833 = load i32, ptr %26832, align 4, !tbaa !5
  %26834 = call ptr @s2n_strerror_debug(i32 noundef %26833, ptr noundef @.str.4)
  %26835 = call ptr @__errno_location() #12
  %26836 = load i32, ptr %26835, align 4, !tbaa !5
  %26837 = call ptr @strerror(i32 noundef %26836) #11
  %26838 = call ptr @__errno_location() #12
  %26839 = load i32, ptr %26838, align 4, !tbaa !5
  %26840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26827, ptr noundef @.str.5, i32 noundef %26828, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1640, ptr noundef %26831, ptr noundef %26834, ptr noundef %26837, i32 noundef %26839) #11
  br label %26841

26841:                                            ; preds = %26824, %26807
  call void @llvm.lifetime.end.p0(i64 4, ptr %826) #11
  br label %26842

26842:                                            ; preds = %26841
  br label %26843

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

26844:                                            ; No predecessors!
  br label %26845

26845:                                            ; preds = %26844
  br label %26846

26846:                                            ; preds = %26845, %26786
  br label %26847

26847:                                            ; preds = %26846
  br label %26848

26848:                                            ; preds = %26847
  br label %26849

26849:                                            ; preds = %26848
  br label %26850

26850:                                            ; preds = %26849
  br label %26851

26851:                                            ; preds = %26850
  %26852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %26852, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %26853 = call ptr @__errno_location() #12
  store i32 0, ptr %26853, align 4, !tbaa !5
  br label %26854

26854:                                            ; preds = %26851
  br label %26855

26855:                                            ; preds = %26854
  br label %26856

26856:                                            ; preds = %26855
  br label %26857

26857:                                            ; preds = %26856
  br label %26858

26858:                                            ; preds = %26857
  %26859 = load i32, ptr @test_count, align 4, !tbaa !5
  %26860 = add nsw i32 %26859, 1
  store i32 %26860, ptr @test_count, align 4, !tbaa !5
  %26861 = load i32, ptr %822, align 4, !tbaa !5
  %26862 = icmp eq i32 -1, %26861
  br i1 %26862, label %26916, label %26863

26863:                                            ; preds = %26858
  br label %26864

26864:                                            ; preds = %26863
  br label %26865

26865:                                            ; preds = %26864
  call void @llvm.lifetime.start.p0(i64 4, ptr %827) #11
  %26866 = call ptr @__errno_location() #12
  %26867 = load i32, ptr %26866, align 4, !tbaa !5
  store i32 %26867, ptr %827, align 4, !tbaa !5
  %26868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26869 = call i32 @s2n_print_stacktrace(ptr noundef %26868)
  %26870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26871 = trunc i8 %26870 to i1
  br i1 %26871, label %26872, label %26894

26872:                                            ; preds = %26865
  %26873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26874 = call i32 @fileno(ptr noundef %26873) #11
  %26875 = call i32 @isatty(i32 noundef %26874) #11
  %26876 = icmp ne i32 %26875, 0
  br i1 %26876, label %26877, label %26894

26877:                                            ; preds = %26872
  %26878 = load i32, ptr %827, align 4, !tbaa !5
  %26879 = call ptr @__errno_location() #12
  store i32 %26878, ptr %26879, align 4, !tbaa !5
  %26880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26881 = load i32, ptr @test_count, align 4, !tbaa !5
  %26882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26883 = load i32, ptr %26882, align 4, !tbaa !5
  %26884 = call ptr @s2n_strerror(i32 noundef %26883, ptr noundef @.str.4)
  %26885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26886 = load i32, ptr %26885, align 4, !tbaa !5
  %26887 = call ptr @s2n_strerror_debug(i32 noundef %26886, ptr noundef @.str.4)
  %26888 = call ptr @__errno_location() #12
  %26889 = load i32, ptr %26888, align 4, !tbaa !5
  %26890 = call ptr @strerror(i32 noundef %26889) #11
  %26891 = call ptr @__errno_location() #12
  %26892 = load i32, ptr %26891, align 4, !tbaa !5
  %26893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26880, ptr noundef @.str.2, i32 noundef %26881, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 1642, ptr noundef %26884, ptr noundef %26887, ptr noundef %26890, i32 noundef %26892) #11
  br label %26911

26894:                                            ; preds = %26872, %26865
  %26895 = load i32, ptr %827, align 4, !tbaa !5
  %26896 = call ptr @__errno_location() #12
  store i32 %26895, ptr %26896, align 4, !tbaa !5
  %26897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26898 = load i32, ptr @test_count, align 4, !tbaa !5
  %26899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26900 = load i32, ptr %26899, align 4, !tbaa !5
  %26901 = call ptr @s2n_strerror(i32 noundef %26900, ptr noundef @.str.4)
  %26902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26903 = load i32, ptr %26902, align 4, !tbaa !5
  %26904 = call ptr @s2n_strerror_debug(i32 noundef %26903, ptr noundef @.str.4)
  %26905 = call ptr @__errno_location() #12
  %26906 = load i32, ptr %26905, align 4, !tbaa !5
  %26907 = call ptr @strerror(i32 noundef %26906) #11
  %26908 = call ptr @__errno_location() #12
  %26909 = load i32, ptr %26908, align 4, !tbaa !5
  %26910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26897, ptr noundef @.str.5, i32 noundef %26898, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 1642, ptr noundef %26901, ptr noundef %26904, ptr noundef %26907, i32 noundef %26909) #11
  br label %26911

26911:                                            ; preds = %26894, %26877
  call void @llvm.lifetime.end.p0(i64 4, ptr %827) #11
  br label %26912

26912:                                            ; preds = %26911
  br label %26913

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

26914:                                            ; No predecessors!
  br label %26915

26915:                                            ; preds = %26914
  br label %26916

26916:                                            ; preds = %26915, %26858
  br label %26917

26917:                                            ; preds = %26916
  br label %26918

26918:                                            ; preds = %26917
  %26919 = load ptr, ptr %811, align 8, !tbaa !9
  %26920 = call i32 @s2n_connection_free(ptr noundef %26919)
  %26921 = call i32 @s2n_pkey_free(ptr noundef %820)
  %26922 = call i32 @s2n_x509_validator_wipe(ptr noundef %810)
  call void @s2n_x509_trust_store_wipe(ptr noundef %808)
  call void @llvm.lifetime.end.p0(i64 4, ptr %822) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %820) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %818) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %817) #11
  %26923 = call i32 @s2n_stuffer_free(ptr noundef %814)
  call void @llvm.lifetime.end.p0(i64 40, ptr %814) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %811) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %810) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %808) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %828) #11
  call void @llvm.memset.p0.i64(ptr align 8 %828, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef %828)
  br label %26924

26924:                                            ; preds = %26918
  %26925 = load i32, ptr @test_count, align 4, !tbaa !5
  %26926 = add nsw i32 %26925, 1
  store i32 %26926, ptr @test_count, align 4, !tbaa !5
  %26927 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %828, ptr noundef @.str.105, ptr noundef null)
  %26928 = icmp eq i32 0, %26927
  br i1 %26928, label %26982, label %26929

26929:                                            ; preds = %26924
  br label %26930

26930:                                            ; preds = %26929
  br label %26931

26931:                                            ; preds = %26930
  call void @llvm.lifetime.start.p0(i64 4, ptr %829) #11
  %26932 = call ptr @__errno_location() #12
  %26933 = load i32, ptr %26932, align 4, !tbaa !5
  store i32 %26933, ptr %829, align 4, !tbaa !5
  %26934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26935 = call i32 @s2n_print_stacktrace(ptr noundef %26934)
  %26936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26937 = trunc i8 %26936 to i1
  br i1 %26937, label %26938, label %26960

26938:                                            ; preds = %26931
  %26939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26940 = call i32 @fileno(ptr noundef %26939) #11
  %26941 = call i32 @isatty(i32 noundef %26940) #11
  %26942 = icmp ne i32 %26941, 0
  br i1 %26942, label %26943, label %26960

26943:                                            ; preds = %26938
  %26944 = load i32, ptr %829, align 4, !tbaa !5
  %26945 = call ptr @__errno_location() #12
  store i32 %26944, ptr %26945, align 4, !tbaa !5
  %26946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26947 = load i32, ptr @test_count, align 4, !tbaa !5
  %26948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26949 = load i32, ptr %26948, align 4, !tbaa !5
  %26950 = call ptr @s2n_strerror(i32 noundef %26949, ptr noundef @.str.4)
  %26951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26952 = load i32, ptr %26951, align 4, !tbaa !5
  %26953 = call ptr @s2n_strerror_debug(i32 noundef %26952, ptr noundef @.str.4)
  %26954 = call ptr @__errno_location() #12
  %26955 = load i32, ptr %26954, align 4, !tbaa !5
  %26956 = call ptr @strerror(i32 noundef %26955) #11
  %26957 = call ptr @__errno_location() #12
  %26958 = load i32, ptr %26957, align 4, !tbaa !5
  %26959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26946, ptr noundef @.str.2, i32 noundef %26947, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1654, ptr noundef %26950, ptr noundef %26953, ptr noundef %26956, i32 noundef %26958) #11
  br label %26977

26960:                                            ; preds = %26938, %26931
  %26961 = load i32, ptr %829, align 4, !tbaa !5
  %26962 = call ptr @__errno_location() #12
  store i32 %26961, ptr %26962, align 4, !tbaa !5
  %26963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26964 = load i32, ptr @test_count, align 4, !tbaa !5
  %26965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26966 = load i32, ptr %26965, align 4, !tbaa !5
  %26967 = call ptr @s2n_strerror(i32 noundef %26966, ptr noundef @.str.4)
  %26968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26969 = load i32, ptr %26968, align 4, !tbaa !5
  %26970 = call ptr @s2n_strerror_debug(i32 noundef %26969, ptr noundef @.str.4)
  %26971 = call ptr @__errno_location() #12
  %26972 = load i32, ptr %26971, align 4, !tbaa !5
  %26973 = call ptr @strerror(i32 noundef %26972) #11
  %26974 = call ptr @__errno_location() #12
  %26975 = load i32, ptr %26974, align 4, !tbaa !5
  %26976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26963, ptr noundef @.str.5, i32 noundef %26964, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 1654, ptr noundef %26967, ptr noundef %26970, ptr noundef %26973, i32 noundef %26975) #11
  br label %26977

26977:                                            ; preds = %26960, %26943
  call void @llvm.lifetime.end.p0(i64 4, ptr %829) #11
  br label %26978

26978:                                            ; preds = %26977
  br label %26979

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

26980:                                            ; No predecessors!
  br label %26981

26981:                                            ; preds = %26980
  br label %26982

26982:                                            ; preds = %26981, %26924
  br label %26983

26983:                                            ; preds = %26982
  br label %26984

26984:                                            ; preds = %26983
  call void @llvm.lifetime.start.p0(i64 56, ptr %830) #11
  call void @llvm.memset.p0.i64(ptr align 8 %830, i8 0, i64 56, i1 false)
  %26985 = call i32 @s2n_x509_validator_init(ptr noundef %830, ptr noundef %828, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %831) #11
  %26986 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %26986, ptr %831, align 8, !tbaa !9
  br label %26987

26987:                                            ; preds = %26984
  %26988 = load i32, ptr @test_count, align 4, !tbaa !5
  %26989 = add nsw i32 %26988, 1
  store i32 %26989, ptr @test_count, align 4, !tbaa !5
  %26990 = load ptr, ptr %831, align 8, !tbaa !9
  %26991 = icmp eq ptr %26990, null
  br i1 %26991, label %26992, label %27045

26992:                                            ; preds = %26987
  br label %26993

26993:                                            ; preds = %26992
  br label %26994

26994:                                            ; preds = %26993
  call void @llvm.lifetime.start.p0(i64 4, ptr %832) #11
  %26995 = call ptr @__errno_location() #12
  %26996 = load i32, ptr %26995, align 4, !tbaa !5
  store i32 %26996, ptr %832, align 4, !tbaa !5
  %26997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26998 = call i32 @s2n_print_stacktrace(ptr noundef %26997)
  %26999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27000 = trunc i8 %26999 to i1
  br i1 %27000, label %27001, label %27023

27001:                                            ; preds = %26994
  %27002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27003 = call i32 @fileno(ptr noundef %27002) #11
  %27004 = call i32 @isatty(i32 noundef %27003) #11
  %27005 = icmp ne i32 %27004, 0
  br i1 %27005, label %27006, label %27023

27006:                                            ; preds = %27001
  %27007 = load i32, ptr %832, align 4, !tbaa !5
  %27008 = call ptr @__errno_location() #12
  store i32 %27007, ptr %27008, align 4, !tbaa !5
  %27009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27010 = load i32, ptr @test_count, align 4, !tbaa !5
  %27011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27012 = load i32, ptr %27011, align 4, !tbaa !5
  %27013 = call ptr @s2n_strerror(i32 noundef %27012, ptr noundef @.str.4)
  %27014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27015 = load i32, ptr %27014, align 4, !tbaa !5
  %27016 = call ptr @s2n_strerror_debug(i32 noundef %27015, ptr noundef @.str.4)
  %27017 = call ptr @__errno_location() #12
  %27018 = load i32, ptr %27017, align 4, !tbaa !5
  %27019 = call ptr @strerror(i32 noundef %27018) #11
  %27020 = call ptr @__errno_location() #12
  %27021 = load i32, ptr %27020, align 4, !tbaa !5
  %27022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27009, ptr noundef @.str.2, i32 noundef %27010, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1660, ptr noundef %27013, ptr noundef %27016, ptr noundef %27019, i32 noundef %27021) #11
  br label %27040

27023:                                            ; preds = %27001, %26994
  %27024 = load i32, ptr %832, align 4, !tbaa !5
  %27025 = call ptr @__errno_location() #12
  store i32 %27024, ptr %27025, align 4, !tbaa !5
  %27026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27027 = load i32, ptr @test_count, align 4, !tbaa !5
  %27028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27029 = load i32, ptr %27028, align 4, !tbaa !5
  %27030 = call ptr @s2n_strerror(i32 noundef %27029, ptr noundef @.str.4)
  %27031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27032 = load i32, ptr %27031, align 4, !tbaa !5
  %27033 = call ptr @s2n_strerror_debug(i32 noundef %27032, ptr noundef @.str.4)
  %27034 = call ptr @__errno_location() #12
  %27035 = load i32, ptr %27034, align 4, !tbaa !5
  %27036 = call ptr @strerror(i32 noundef %27035) #11
  %27037 = call ptr @__errno_location() #12
  %27038 = load i32, ptr %27037, align 4, !tbaa !5
  %27039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27026, ptr noundef @.str.5, i32 noundef %27027, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1660, ptr noundef %27030, ptr noundef %27033, ptr noundef %27036, i32 noundef %27038) #11
  br label %27040

27040:                                            ; preds = %27023, %27006
  call void @llvm.lifetime.end.p0(i64 4, ptr %832) #11
  br label %27041

27041:                                            ; preds = %27040
  br label %27042

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

27043:                                            ; No predecessors!
  br label %27044

27044:                                            ; preds = %27043
  br label %27045

27045:                                            ; preds = %27044, %26987
  br label %27046

27046:                                            ; preds = %27045
  br label %27047

27047:                                            ; preds = %27046
  call void @llvm.lifetime.start.p0(i64 16, ptr %833) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %833, ptr align 8 @__const.main.verify_data.108, i64 16, i1 false)
  br label %27048

27048:                                            ; preds = %27047
  %27049 = load i32, ptr @test_count, align 4, !tbaa !5
  %27050 = add nsw i32 %27049, 1
  store i32 %27050, ptr @test_count, align 4, !tbaa !5
  %27051 = load ptr, ptr %831, align 8, !tbaa !9
  %27052 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %27051, ptr noundef @verify_host_verify_alt, ptr noundef %833)
  %27053 = icmp eq i32 %27052, -1
  br i1 %27053, label %27054, label %27107

27054:                                            ; preds = %27048
  br label %27055

27055:                                            ; preds = %27054
  br label %27056

27056:                                            ; preds = %27055
  call void @llvm.lifetime.start.p0(i64 4, ptr %834) #11
  %27057 = call ptr @__errno_location() #12
  %27058 = load i32, ptr %27057, align 4, !tbaa !5
  store i32 %27058, ptr %834, align 4, !tbaa !5
  %27059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27060 = call i32 @s2n_print_stacktrace(ptr noundef %27059)
  %27061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27062 = trunc i8 %27061 to i1
  br i1 %27062, label %27063, label %27085

27063:                                            ; preds = %27056
  %27064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27065 = call i32 @fileno(ptr noundef %27064) #11
  %27066 = call i32 @isatty(i32 noundef %27065) #11
  %27067 = icmp ne i32 %27066, 0
  br i1 %27067, label %27068, label %27085

27068:                                            ; preds = %27063
  %27069 = load i32, ptr %834, align 4, !tbaa !5
  %27070 = call ptr @__errno_location() #12
  store i32 %27069, ptr %27070, align 4, !tbaa !5
  %27071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27072 = load i32, ptr @test_count, align 4, !tbaa !5
  %27073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27074 = load i32, ptr %27073, align 4, !tbaa !5
  %27075 = call ptr @s2n_strerror(i32 noundef %27074, ptr noundef @.str.4)
  %27076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27077 = load i32, ptr %27076, align 4, !tbaa !5
  %27078 = call ptr @s2n_strerror_debug(i32 noundef %27077, ptr noundef @.str.4)
  %27079 = call ptr @__errno_location() #12
  %27080 = load i32, ptr %27079, align 4, !tbaa !5
  %27081 = call ptr @strerror(i32 noundef %27080) #11
  %27082 = call ptr @__errno_location() #12
  %27083 = load i32, ptr %27082, align 4, !tbaa !5
  %27084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27071, ptr noundef @.str.2, i32 noundef %27072, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 1664, ptr noundef %27075, ptr noundef %27078, ptr noundef %27081, i32 noundef %27083) #11
  br label %27102

27085:                                            ; preds = %27063, %27056
  %27086 = load i32, ptr %834, align 4, !tbaa !5
  %27087 = call ptr @__errno_location() #12
  store i32 %27086, ptr %27087, align 4, !tbaa !5
  %27088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27089 = load i32, ptr @test_count, align 4, !tbaa !5
  %27090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27091 = load i32, ptr %27090, align 4, !tbaa !5
  %27092 = call ptr @s2n_strerror(i32 noundef %27091, ptr noundef @.str.4)
  %27093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27094 = load i32, ptr %27093, align 4, !tbaa !5
  %27095 = call ptr @s2n_strerror_debug(i32 noundef %27094, ptr noundef @.str.4)
  %27096 = call ptr @__errno_location() #12
  %27097 = load i32, ptr %27096, align 4, !tbaa !5
  %27098 = call ptr @strerror(i32 noundef %27097) #11
  %27099 = call ptr @__errno_location() #12
  %27100 = load i32, ptr %27099, align 4, !tbaa !5
  %27101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27088, ptr noundef @.str.5, i32 noundef %27089, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 1664, ptr noundef %27092, ptr noundef %27095, ptr noundef %27098, i32 noundef %27100) #11
  br label %27102

27102:                                            ; preds = %27085, %27068
  call void @llvm.lifetime.end.p0(i64 4, ptr %834) #11
  br label %27103

27103:                                            ; preds = %27102
  br label %27104

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

27105:                                            ; No predecessors!
  br label %27106

27106:                                            ; preds = %27105
  br label %27107

27107:                                            ; preds = %27106, %27048
  br label %27108

27108:                                            ; preds = %27107
  br label %27109

27109:                                            ; preds = %27108
  call void @llvm.lifetime.start.p0(i64 40, ptr %835) #11
  call void @llvm.memset.p0.i64(ptr align 8 %835, i8 0, i64 40, i1 false)
  br label %27110

27110:                                            ; preds = %27109
  %27111 = load i32, ptr @test_count, align 4, !tbaa !5
  %27112 = add nsw i32 %27111, 1
  store i32 %27112, ptr @test_count, align 4, !tbaa !5
  %27113 = load ptr, ptr %831, align 8, !tbaa !9
  %27114 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %27113, ptr noundef @.str.105, ptr noundef %835)
  %27115 = getelementptr inbounds %struct.s2n_result, ptr %836, i32 0, i32 0
  store i32 %27114, ptr %27115, align 4
  %27116 = getelementptr inbounds %struct.s2n_result, ptr %836, i32 0, i32 0
  %27117 = load i32, ptr %27116, align 4
  %27118 = call zeroext i1 @s2n_result_is_ok(i32 %27117)
  br i1 %27118, label %27172, label %27119

27119:                                            ; preds = %27110
  br label %27120

27120:                                            ; preds = %27119
  br label %27121

27121:                                            ; preds = %27120
  call void @llvm.lifetime.start.p0(i64 4, ptr %837) #11
  %27122 = call ptr @__errno_location() #12
  %27123 = load i32, ptr %27122, align 4, !tbaa !5
  store i32 %27123, ptr %837, align 4, !tbaa !5
  %27124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27125 = call i32 @s2n_print_stacktrace(ptr noundef %27124)
  %27126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27127 = trunc i8 %27126 to i1
  br i1 %27127, label %27128, label %27150

27128:                                            ; preds = %27121
  %27129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27130 = call i32 @fileno(ptr noundef %27129) #11
  %27131 = call i32 @isatty(i32 noundef %27130) #11
  %27132 = icmp ne i32 %27131, 0
  br i1 %27132, label %27133, label %27150

27133:                                            ; preds = %27128
  %27134 = load i32, ptr %837, align 4, !tbaa !5
  %27135 = call ptr @__errno_location() #12
  store i32 %27134, ptr %27135, align 4, !tbaa !5
  %27136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27137 = load i32, ptr @test_count, align 4, !tbaa !5
  %27138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27139 = load i32, ptr %27138, align 4, !tbaa !5
  %27140 = call ptr @s2n_strerror(i32 noundef %27139, ptr noundef @.str.4)
  %27141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27142 = load i32, ptr %27141, align 4, !tbaa !5
  %27143 = call ptr @s2n_strerror_debug(i32 noundef %27142, ptr noundef @.str.4)
  %27144 = call ptr @__errno_location() #12
  %27145 = load i32, ptr %27144, align 4, !tbaa !5
  %27146 = call ptr @strerror(i32 noundef %27145) #11
  %27147 = call ptr @__errno_location() #12
  %27148 = load i32, ptr %27147, align 4, !tbaa !5
  %27149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27136, ptr noundef @.str.2, i32 noundef %27137, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 1670, ptr noundef %27140, ptr noundef %27143, ptr noundef %27146, i32 noundef %27148) #11
  br label %27167

27150:                                            ; preds = %27128, %27121
  %27151 = load i32, ptr %837, align 4, !tbaa !5
  %27152 = call ptr @__errno_location() #12
  store i32 %27151, ptr %27152, align 4, !tbaa !5
  %27153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27154 = load i32, ptr @test_count, align 4, !tbaa !5
  %27155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27156 = load i32, ptr %27155, align 4, !tbaa !5
  %27157 = call ptr @s2n_strerror(i32 noundef %27156, ptr noundef @.str.4)
  %27158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27159 = load i32, ptr %27158, align 4, !tbaa !5
  %27160 = call ptr @s2n_strerror_debug(i32 noundef %27159, ptr noundef @.str.4)
  %27161 = call ptr @__errno_location() #12
  %27162 = load i32, ptr %27161, align 4, !tbaa !5
  %27163 = call ptr @strerror(i32 noundef %27162) #11
  %27164 = call ptr @__errno_location() #12
  %27165 = load i32, ptr %27164, align 4, !tbaa !5
  %27166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27153, ptr noundef @.str.5, i32 noundef %27154, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 1670, ptr noundef %27157, ptr noundef %27160, ptr noundef %27163, i32 noundef %27165) #11
  br label %27167

27167:                                            ; preds = %27150, %27133
  call void @llvm.lifetime.end.p0(i64 4, ptr %837) #11
  br label %27168

27168:                                            ; preds = %27167
  br label %27169

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

27170:                                            ; No predecessors!
  br label %27171

27171:                                            ; preds = %27170
  br label %27172

27172:                                            ; preds = %27171, %27110
  br label %27173

27173:                                            ; preds = %27172
  br label %27174

27174:                                            ; preds = %27173
  call void @llvm.lifetime.start.p0(i64 4, ptr %838) #11
  %27175 = getelementptr inbounds %struct.s2n_stuffer, ptr %835, i32 0, i32 2
  %27176 = load i32, ptr %27175, align 4, !tbaa !15
  %27177 = getelementptr inbounds %struct.s2n_stuffer, ptr %835, i32 0, i32 1
  %27178 = load i32, ptr %27177, align 8, !tbaa !18
  %27179 = sub i32 %27176, %27178
  store i32 %27179, ptr %838, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %839) #11
  %27180 = load i32, ptr %838, align 4, !tbaa !5
  %27181 = call ptr @s2n_stuffer_raw_read(ptr noundef %835, i32 noundef %27180)
  store ptr %27181, ptr %839, align 8, !tbaa !9
  br label %27182

27182:                                            ; preds = %27174
  %27183 = load i32, ptr @test_count, align 4, !tbaa !5
  %27184 = add nsw i32 %27183, 1
  store i32 %27184, ptr @test_count, align 4, !tbaa !5
  %27185 = load ptr, ptr %839, align 8, !tbaa !9
  %27186 = icmp eq ptr %27185, null
  br i1 %27186, label %27187, label %27240

27187:                                            ; preds = %27182
  br label %27188

27188:                                            ; preds = %27187
  br label %27189

27189:                                            ; preds = %27188
  call void @llvm.lifetime.start.p0(i64 4, ptr %840) #11
  %27190 = call ptr @__errno_location() #12
  %27191 = load i32, ptr %27190, align 4, !tbaa !5
  store i32 %27191, ptr %840, align 4, !tbaa !5
  %27192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27193 = call i32 @s2n_print_stacktrace(ptr noundef %27192)
  %27194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27195 = trunc i8 %27194 to i1
  br i1 %27195, label %27196, label %27218

27196:                                            ; preds = %27189
  %27197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27198 = call i32 @fileno(ptr noundef %27197) #11
  %27199 = call i32 @isatty(i32 noundef %27198) #11
  %27200 = icmp ne i32 %27199, 0
  br i1 %27200, label %27201, label %27218

27201:                                            ; preds = %27196
  %27202 = load i32, ptr %840, align 4, !tbaa !5
  %27203 = call ptr @__errno_location() #12
  store i32 %27202, ptr %27203, align 4, !tbaa !5
  %27204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27205 = load i32, ptr @test_count, align 4, !tbaa !5
  %27206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27207 = load i32, ptr %27206, align 4, !tbaa !5
  %27208 = call ptr @s2n_strerror(i32 noundef %27207, ptr noundef @.str.4)
  %27209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27210 = load i32, ptr %27209, align 4, !tbaa !5
  %27211 = call ptr @s2n_strerror_debug(i32 noundef %27210, ptr noundef @.str.4)
  %27212 = call ptr @__errno_location() #12
  %27213 = load i32, ptr %27212, align 4, !tbaa !5
  %27214 = call ptr @strerror(i32 noundef %27213) #11
  %27215 = call ptr @__errno_location() #12
  %27216 = load i32, ptr %27215, align 4, !tbaa !5
  %27217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27204, ptr noundef @.str.2, i32 noundef %27205, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1673, ptr noundef %27208, ptr noundef %27211, ptr noundef %27214, i32 noundef %27216) #11
  br label %27235

27218:                                            ; preds = %27196, %27189
  %27219 = load i32, ptr %840, align 4, !tbaa !5
  %27220 = call ptr @__errno_location() #12
  store i32 %27219, ptr %27220, align 4, !tbaa !5
  %27221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27222 = load i32, ptr @test_count, align 4, !tbaa !5
  %27223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27224 = load i32, ptr %27223, align 4, !tbaa !5
  %27225 = call ptr @s2n_strerror(i32 noundef %27224, ptr noundef @.str.4)
  %27226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27227 = load i32, ptr %27226, align 4, !tbaa !5
  %27228 = call ptr @s2n_strerror_debug(i32 noundef %27227, ptr noundef @.str.4)
  %27229 = call ptr @__errno_location() #12
  %27230 = load i32, ptr %27229, align 4, !tbaa !5
  %27231 = call ptr @strerror(i32 noundef %27230) #11
  %27232 = call ptr @__errno_location() #12
  %27233 = load i32, ptr %27232, align 4, !tbaa !5
  %27234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27221, ptr noundef @.str.5, i32 noundef %27222, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1673, ptr noundef %27225, ptr noundef %27228, ptr noundef %27231, i32 noundef %27233) #11
  br label %27235

27235:                                            ; preds = %27218, %27201
  call void @llvm.lifetime.end.p0(i64 4, ptr %840) #11
  br label %27236

27236:                                            ; preds = %27235
  br label %27237

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

27238:                                            ; No predecessors!
  br label %27239

27239:                                            ; preds = %27238
  br label %27240

27240:                                            ; preds = %27239, %27182
  br label %27241

27241:                                            ; preds = %27240
  br label %27242

27242:                                            ; preds = %27241
  call void @llvm.lifetime.start.p0(i64 48, ptr %841) #11
  call void @llvm.memset.p0.i64(ptr align 8 %841, i8 0, i64 48, i1 false)
  br label %27243

27243:                                            ; preds = %27242
  %27244 = load i32, ptr @test_count, align 4, !tbaa !5
  %27245 = add nsw i32 %27244, 1
  store i32 %27245, ptr @test_count, align 4, !tbaa !5
  %27246 = call i32 @s2n_pkey_zero_init(ptr noundef %841)
  %27247 = icmp eq i32 %27246, -1
  br i1 %27247, label %27248, label %27301

27248:                                            ; preds = %27243
  br label %27249

27249:                                            ; preds = %27248
  br label %27250

27250:                                            ; preds = %27249
  call void @llvm.lifetime.start.p0(i64 4, ptr %842) #11
  %27251 = call ptr @__errno_location() #12
  %27252 = load i32, ptr %27251, align 4, !tbaa !5
  store i32 %27252, ptr %842, align 4, !tbaa !5
  %27253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27254 = call i32 @s2n_print_stacktrace(ptr noundef %27253)
  %27255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27256 = trunc i8 %27255 to i1
  br i1 %27256, label %27257, label %27279

27257:                                            ; preds = %27250
  %27258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27259 = call i32 @fileno(ptr noundef %27258) #11
  %27260 = call i32 @isatty(i32 noundef %27259) #11
  %27261 = icmp ne i32 %27260, 0
  br i1 %27261, label %27262, label %27279

27262:                                            ; preds = %27257
  %27263 = load i32, ptr %842, align 4, !tbaa !5
  %27264 = call ptr @__errno_location() #12
  store i32 %27263, ptr %27264, align 4, !tbaa !5
  %27265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27266 = load i32, ptr @test_count, align 4, !tbaa !5
  %27267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27268 = load i32, ptr %27267, align 4, !tbaa !5
  %27269 = call ptr @s2n_strerror(i32 noundef %27268, ptr noundef @.str.4)
  %27270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27271 = load i32, ptr %27270, align 4, !tbaa !5
  %27272 = call ptr @s2n_strerror_debug(i32 noundef %27271, ptr noundef @.str.4)
  %27273 = call ptr @__errno_location() #12
  %27274 = load i32, ptr %27273, align 4, !tbaa !5
  %27275 = call ptr @strerror(i32 noundef %27274) #11
  %27276 = call ptr @__errno_location() #12
  %27277 = load i32, ptr %27276, align 4, !tbaa !5
  %27278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27265, ptr noundef @.str.2, i32 noundef %27266, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1676, ptr noundef %27269, ptr noundef %27272, ptr noundef %27275, i32 noundef %27277) #11
  br label %27296

27279:                                            ; preds = %27257, %27250
  %27280 = load i32, ptr %842, align 4, !tbaa !5
  %27281 = call ptr @__errno_location() #12
  store i32 %27280, ptr %27281, align 4, !tbaa !5
  %27282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27283 = load i32, ptr @test_count, align 4, !tbaa !5
  %27284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27285 = load i32, ptr %27284, align 4, !tbaa !5
  %27286 = call ptr @s2n_strerror(i32 noundef %27285, ptr noundef @.str.4)
  %27287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27288 = load i32, ptr %27287, align 4, !tbaa !5
  %27289 = call ptr @s2n_strerror_debug(i32 noundef %27288, ptr noundef @.str.4)
  %27290 = call ptr @__errno_location() #12
  %27291 = load i32, ptr %27290, align 4, !tbaa !5
  %27292 = call ptr @strerror(i32 noundef %27291) #11
  %27293 = call ptr @__errno_location() #12
  %27294 = load i32, ptr %27293, align 4, !tbaa !5
  %27295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27282, ptr noundef @.str.5, i32 noundef %27283, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1676, ptr noundef %27286, ptr noundef %27289, ptr noundef %27292, i32 noundef %27294) #11
  br label %27296

27296:                                            ; preds = %27279, %27262
  call void @llvm.lifetime.end.p0(i64 4, ptr %842) #11
  br label %27297

27297:                                            ; preds = %27296
  br label %27298

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

27299:                                            ; No predecessors!
  br label %27300

27300:                                            ; preds = %27299
  br label %27301

27301:                                            ; preds = %27300, %27243
  br label %27302

27302:                                            ; preds = %27301
  br label %27303

27303:                                            ; preds = %27302
  call void @llvm.lifetime.start.p0(i64 4, ptr %843) #11
  store i32 -1, ptr %843, align 4, !tbaa !5
  br label %27304

27304:                                            ; preds = %27303
  %27305 = load i32, ptr @test_count, align 4, !tbaa !5
  %27306 = add nsw i32 %27305, 1
  store i32 %27306, ptr @test_count, align 4, !tbaa !5
  %27307 = load ptr, ptr %831, align 8, !tbaa !9
  %27308 = load ptr, ptr %839, align 8, !tbaa !9
  %27309 = load i32, ptr %838, align 4, !tbaa !5
  %27310 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %830, ptr noundef %27307, ptr noundef %27308, i32 noundef %27309, ptr noundef %843, ptr noundef %841)
  %27311 = getelementptr inbounds %struct.s2n_result, ptr %844, i32 0, i32 0
  store i32 %27310, ptr %27311, align 4
  %27312 = getelementptr inbounds %struct.s2n_result, ptr %844, i32 0, i32 0
  %27313 = load i32, ptr %27312, align 4
  %27314 = call zeroext i1 @s2n_result_is_ok(i32 %27313)
  br i1 %27314, label %27368, label %27315

27315:                                            ; preds = %27304
  br label %27316

27316:                                            ; preds = %27315
  br label %27317

27317:                                            ; preds = %27316
  call void @llvm.lifetime.start.p0(i64 4, ptr %845) #11
  %27318 = call ptr @__errno_location() #12
  %27319 = load i32, ptr %27318, align 4, !tbaa !5
  store i32 %27319, ptr %845, align 4, !tbaa !5
  %27320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27321 = call i32 @s2n_print_stacktrace(ptr noundef %27320)
  %27322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27323 = trunc i8 %27322 to i1
  br i1 %27323, label %27324, label %27346

27324:                                            ; preds = %27317
  %27325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27326 = call i32 @fileno(ptr noundef %27325) #11
  %27327 = call i32 @isatty(i32 noundef %27326) #11
  %27328 = icmp ne i32 %27327, 0
  br i1 %27328, label %27329, label %27346

27329:                                            ; preds = %27324
  %27330 = load i32, ptr %845, align 4, !tbaa !5
  %27331 = call ptr @__errno_location() #12
  store i32 %27330, ptr %27331, align 4, !tbaa !5
  %27332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27333 = load i32, ptr @test_count, align 4, !tbaa !5
  %27334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27335 = load i32, ptr %27334, align 4, !tbaa !5
  %27336 = call ptr @s2n_strerror(i32 noundef %27335, ptr noundef @.str.4)
  %27337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27338 = load i32, ptr %27337, align 4, !tbaa !5
  %27339 = call ptr @s2n_strerror_debug(i32 noundef %27338, ptr noundef @.str.4)
  %27340 = call ptr @__errno_location() #12
  %27341 = load i32, ptr %27340, align 4, !tbaa !5
  %27342 = call ptr @strerror(i32 noundef %27341) #11
  %27343 = call ptr @__errno_location() #12
  %27344 = load i32, ptr %27343, align 4, !tbaa !5
  %27345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27332, ptr noundef @.str.2, i32 noundef %27333, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1678, ptr noundef %27336, ptr noundef %27339, ptr noundef %27342, i32 noundef %27344) #11
  br label %27363

27346:                                            ; preds = %27324, %27317
  %27347 = load i32, ptr %845, align 4, !tbaa !5
  %27348 = call ptr @__errno_location() #12
  store i32 %27347, ptr %27348, align 4, !tbaa !5
  %27349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27350 = load i32, ptr @test_count, align 4, !tbaa !5
  %27351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27352 = load i32, ptr %27351, align 4, !tbaa !5
  %27353 = call ptr @s2n_strerror(i32 noundef %27352, ptr noundef @.str.4)
  %27354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27355 = load i32, ptr %27354, align 4, !tbaa !5
  %27356 = call ptr @s2n_strerror_debug(i32 noundef %27355, ptr noundef @.str.4)
  %27357 = call ptr @__errno_location() #12
  %27358 = load i32, ptr %27357, align 4, !tbaa !5
  %27359 = call ptr @strerror(i32 noundef %27358) #11
  %27360 = call ptr @__errno_location() #12
  %27361 = load i32, ptr %27360, align 4, !tbaa !5
  %27362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27349, ptr noundef @.str.5, i32 noundef %27350, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1678, ptr noundef %27353, ptr noundef %27356, ptr noundef %27359, i32 noundef %27361) #11
  br label %27363

27363:                                            ; preds = %27346, %27329
  call void @llvm.lifetime.end.p0(i64 4, ptr %845) #11
  br label %27364

27364:                                            ; preds = %27363
  br label %27365

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

27366:                                            ; No predecessors!
  br label %27367

27367:                                            ; preds = %27366
  br label %27368

27368:                                            ; preds = %27367, %27304
  br label %27369

27369:                                            ; preds = %27368
  br label %27370

27370:                                            ; preds = %27369
  br label %27371

27371:                                            ; preds = %27370
  %27372 = load i32, ptr @test_count, align 4, !tbaa !5
  %27373 = add nsw i32 %27372, 1
  store i32 %27373, ptr @test_count, align 4, !tbaa !5
  %27374 = load i32, ptr %843, align 4, !tbaa !5
  %27375 = icmp eq i32 0, %27374
  br i1 %27375, label %27429, label %27376

27376:                                            ; preds = %27371
  br label %27377

27377:                                            ; preds = %27376
  br label %27378

27378:                                            ; preds = %27377
  call void @llvm.lifetime.start.p0(i64 4, ptr %846) #11
  %27379 = call ptr @__errno_location() #12
  %27380 = load i32, ptr %27379, align 4, !tbaa !5
  store i32 %27380, ptr %846, align 4, !tbaa !5
  %27381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27382 = call i32 @s2n_print_stacktrace(ptr noundef %27381)
  %27383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27384 = trunc i8 %27383 to i1
  br i1 %27384, label %27385, label %27407

27385:                                            ; preds = %27378
  %27386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27387 = call i32 @fileno(ptr noundef %27386) #11
  %27388 = call i32 @isatty(i32 noundef %27387) #11
  %27389 = icmp ne i32 %27388, 0
  br i1 %27389, label %27390, label %27407

27390:                                            ; preds = %27385
  %27391 = load i32, ptr %846, align 4, !tbaa !5
  %27392 = call ptr @__errno_location() #12
  store i32 %27391, ptr %27392, align 4, !tbaa !5
  %27393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27394 = load i32, ptr @test_count, align 4, !tbaa !5
  %27395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27396 = load i32, ptr %27395, align 4, !tbaa !5
  %27397 = call ptr @s2n_strerror(i32 noundef %27396, ptr noundef @.str.4)
  %27398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27399 = load i32, ptr %27398, align 4, !tbaa !5
  %27400 = call ptr @s2n_strerror_debug(i32 noundef %27399, ptr noundef @.str.4)
  %27401 = call ptr @__errno_location() #12
  %27402 = load i32, ptr %27401, align 4, !tbaa !5
  %27403 = call ptr @strerror(i32 noundef %27402) #11
  %27404 = call ptr @__errno_location() #12
  %27405 = load i32, ptr %27404, align 4, !tbaa !5
  %27406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27393, ptr noundef @.str.2, i32 noundef %27394, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1679, ptr noundef %27397, ptr noundef %27400, ptr noundef %27403, i32 noundef %27405) #11
  br label %27424

27407:                                            ; preds = %27385, %27378
  %27408 = load i32, ptr %846, align 4, !tbaa !5
  %27409 = call ptr @__errno_location() #12
  store i32 %27408, ptr %27409, align 4, !tbaa !5
  %27410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27411 = load i32, ptr @test_count, align 4, !tbaa !5
  %27412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27413 = load i32, ptr %27412, align 4, !tbaa !5
  %27414 = call ptr @s2n_strerror(i32 noundef %27413, ptr noundef @.str.4)
  %27415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27416 = load i32, ptr %27415, align 4, !tbaa !5
  %27417 = call ptr @s2n_strerror_debug(i32 noundef %27416, ptr noundef @.str.4)
  %27418 = call ptr @__errno_location() #12
  %27419 = load i32, ptr %27418, align 4, !tbaa !5
  %27420 = call ptr @strerror(i32 noundef %27419) #11
  %27421 = call ptr @__errno_location() #12
  %27422 = load i32, ptr %27421, align 4, !tbaa !5
  %27423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27410, ptr noundef @.str.5, i32 noundef %27411, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1679, ptr noundef %27414, ptr noundef %27417, ptr noundef %27420, i32 noundef %27422) #11
  br label %27424

27424:                                            ; preds = %27407, %27390
  call void @llvm.lifetime.end.p0(i64 4, ptr %846) #11
  br label %27425

27425:                                            ; preds = %27424
  br label %27426

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

27427:                                            ; No predecessors!
  br label %27428

27428:                                            ; preds = %27427
  br label %27429

27429:                                            ; preds = %27428, %27371
  br label %27430

27430:                                            ; preds = %27429
  br label %27431

27431:                                            ; preds = %27430
  call void @llvm.lifetime.end.p0(i64 4, ptr %843) #11
  %27432 = call i32 @s2n_pkey_free(ptr noundef %841)
  call void @llvm.lifetime.end.p0(i64 48, ptr %841) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %839) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %838) #11
  %27433 = call i32 @s2n_stuffer_free(ptr noundef %835)
  call void @llvm.lifetime.end.p0(i64 40, ptr %835) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %833) #11
  %27434 = call i32 @s2n_connection_ptr_free(ptr noundef %831)
  %27435 = getelementptr inbounds %struct.s2n_result, ptr %847, i32 0, i32 0
  store i32 %27434, ptr %27435, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %831) #11
  %27436 = call i32 @s2n_x509_validator_wipe(ptr noundef %830)
  call void @llvm.lifetime.end.p0(i64 56, ptr %830) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef %828)
  call void @llvm.lifetime.end.p0(i64 16, ptr %828) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %848) #11
  call void @llvm.memset.p0.i64(ptr align 8 %848, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef %848)
  br label %27437

27437:                                            ; preds = %27431
  %27438 = load i32, ptr @test_count, align 4, !tbaa !5
  %27439 = add nsw i32 %27438, 1
  store i32 %27439, ptr @test_count, align 4, !tbaa !5
  %27440 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %848, ptr noundef @.str.110, ptr noundef null)
  %27441 = icmp eq i32 0, %27440
  br i1 %27441, label %27495, label %27442

27442:                                            ; preds = %27437
  br label %27443

27443:                                            ; preds = %27442
  br label %27444

27444:                                            ; preds = %27443
  call void @llvm.lifetime.start.p0(i64 4, ptr %849) #11
  %27445 = call ptr @__errno_location() #12
  %27446 = load i32, ptr %27445, align 4, !tbaa !5
  store i32 %27446, ptr %849, align 4, !tbaa !5
  %27447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27448 = call i32 @s2n_print_stacktrace(ptr noundef %27447)
  %27449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27450 = trunc i8 %27449 to i1
  br i1 %27450, label %27451, label %27473

27451:                                            ; preds = %27444
  %27452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27453 = call i32 @fileno(ptr noundef %27452) #11
  %27454 = call i32 @isatty(i32 noundef %27453) #11
  %27455 = icmp ne i32 %27454, 0
  br i1 %27455, label %27456, label %27473

27456:                                            ; preds = %27451
  %27457 = load i32, ptr %849, align 4, !tbaa !5
  %27458 = call ptr @__errno_location() #12
  store i32 %27457, ptr %27458, align 4, !tbaa !5
  %27459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27460 = load i32, ptr @test_count, align 4, !tbaa !5
  %27461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27462 = load i32, ptr %27461, align 4, !tbaa !5
  %27463 = call ptr @s2n_strerror(i32 noundef %27462, ptr noundef @.str.4)
  %27464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27465 = load i32, ptr %27464, align 4, !tbaa !5
  %27466 = call ptr @s2n_strerror_debug(i32 noundef %27465, ptr noundef @.str.4)
  %27467 = call ptr @__errno_location() #12
  %27468 = load i32, ptr %27467, align 4, !tbaa !5
  %27469 = call ptr @strerror(i32 noundef %27468) #11
  %27470 = call ptr @__errno_location() #12
  %27471 = load i32, ptr %27470, align 4, !tbaa !5
  %27472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27459, ptr noundef @.str.2, i32 noundef %27460, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1686, ptr noundef %27463, ptr noundef %27466, ptr noundef %27469, i32 noundef %27471) #11
  br label %27490

27473:                                            ; preds = %27451, %27444
  %27474 = load i32, ptr %849, align 4, !tbaa !5
  %27475 = call ptr @__errno_location() #12
  store i32 %27474, ptr %27475, align 4, !tbaa !5
  %27476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27477 = load i32, ptr @test_count, align 4, !tbaa !5
  %27478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27479 = load i32, ptr %27478, align 4, !tbaa !5
  %27480 = call ptr @s2n_strerror(i32 noundef %27479, ptr noundef @.str.4)
  %27481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27482 = load i32, ptr %27481, align 4, !tbaa !5
  %27483 = call ptr @s2n_strerror_debug(i32 noundef %27482, ptr noundef @.str.4)
  %27484 = call ptr @__errno_location() #12
  %27485 = load i32, ptr %27484, align 4, !tbaa !5
  %27486 = call ptr @strerror(i32 noundef %27485) #11
  %27487 = call ptr @__errno_location() #12
  %27488 = load i32, ptr %27487, align 4, !tbaa !5
  %27489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27476, ptr noundef @.str.5, i32 noundef %27477, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 1686, ptr noundef %27480, ptr noundef %27483, ptr noundef %27486, i32 noundef %27488) #11
  br label %27490

27490:                                            ; preds = %27473, %27456
  call void @llvm.lifetime.end.p0(i64 4, ptr %849) #11
  br label %27491

27491:                                            ; preds = %27490
  br label %27492

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

27493:                                            ; No predecessors!
  br label %27494

27494:                                            ; preds = %27493
  br label %27495

27495:                                            ; preds = %27494, %27437
  br label %27496

27496:                                            ; preds = %27495
  br label %27497

27497:                                            ; preds = %27496
  call void @llvm.lifetime.start.p0(i64 56, ptr %850) #11
  call void @llvm.memset.p0.i64(ptr align 8 %850, i8 0, i64 56, i1 false)
  %27498 = call i32 @s2n_x509_validator_init(ptr noundef %850, ptr noundef %848, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %851) #11
  %27499 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %27499, ptr %851, align 8, !tbaa !9
  br label %27500

27500:                                            ; preds = %27497
  %27501 = load i32, ptr @test_count, align 4, !tbaa !5
  %27502 = add nsw i32 %27501, 1
  store i32 %27502, ptr @test_count, align 4, !tbaa !5
  %27503 = load ptr, ptr %851, align 8, !tbaa !9
  %27504 = icmp eq ptr %27503, null
  br i1 %27504, label %27505, label %27558

27505:                                            ; preds = %27500
  br label %27506

27506:                                            ; preds = %27505
  br label %27507

27507:                                            ; preds = %27506
  call void @llvm.lifetime.start.p0(i64 4, ptr %852) #11
  %27508 = call ptr @__errno_location() #12
  %27509 = load i32, ptr %27508, align 4, !tbaa !5
  store i32 %27509, ptr %852, align 4, !tbaa !5
  %27510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27511 = call i32 @s2n_print_stacktrace(ptr noundef %27510)
  %27512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27513 = trunc i8 %27512 to i1
  br i1 %27513, label %27514, label %27536

27514:                                            ; preds = %27507
  %27515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27516 = call i32 @fileno(ptr noundef %27515) #11
  %27517 = call i32 @isatty(i32 noundef %27516) #11
  %27518 = icmp ne i32 %27517, 0
  br i1 %27518, label %27519, label %27536

27519:                                            ; preds = %27514
  %27520 = load i32, ptr %852, align 4, !tbaa !5
  %27521 = call ptr @__errno_location() #12
  store i32 %27520, ptr %27521, align 4, !tbaa !5
  %27522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27523 = load i32, ptr @test_count, align 4, !tbaa !5
  %27524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27525 = load i32, ptr %27524, align 4, !tbaa !5
  %27526 = call ptr @s2n_strerror(i32 noundef %27525, ptr noundef @.str.4)
  %27527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27528 = load i32, ptr %27527, align 4, !tbaa !5
  %27529 = call ptr @s2n_strerror_debug(i32 noundef %27528, ptr noundef @.str.4)
  %27530 = call ptr @__errno_location() #12
  %27531 = load i32, ptr %27530, align 4, !tbaa !5
  %27532 = call ptr @strerror(i32 noundef %27531) #11
  %27533 = call ptr @__errno_location() #12
  %27534 = load i32, ptr %27533, align 4, !tbaa !5
  %27535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27522, ptr noundef @.str.2, i32 noundef %27523, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1692, ptr noundef %27526, ptr noundef %27529, ptr noundef %27532, i32 noundef %27534) #11
  br label %27553

27536:                                            ; preds = %27514, %27507
  %27537 = load i32, ptr %852, align 4, !tbaa !5
  %27538 = call ptr @__errno_location() #12
  store i32 %27537, ptr %27538, align 4, !tbaa !5
  %27539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27540 = load i32, ptr @test_count, align 4, !tbaa !5
  %27541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27542 = load i32, ptr %27541, align 4, !tbaa !5
  %27543 = call ptr @s2n_strerror(i32 noundef %27542, ptr noundef @.str.4)
  %27544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27545 = load i32, ptr %27544, align 4, !tbaa !5
  %27546 = call ptr @s2n_strerror_debug(i32 noundef %27545, ptr noundef @.str.4)
  %27547 = call ptr @__errno_location() #12
  %27548 = load i32, ptr %27547, align 4, !tbaa !5
  %27549 = call ptr @strerror(i32 noundef %27548) #11
  %27550 = call ptr @__errno_location() #12
  %27551 = load i32, ptr %27550, align 4, !tbaa !5
  %27552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27539, ptr noundef @.str.5, i32 noundef %27540, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1692, ptr noundef %27543, ptr noundef %27546, ptr noundef %27549, i32 noundef %27551) #11
  br label %27553

27553:                                            ; preds = %27536, %27519
  call void @llvm.lifetime.end.p0(i64 4, ptr %852) #11
  br label %27554

27554:                                            ; preds = %27553
  br label %27555

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

27556:                                            ; No predecessors!
  br label %27557

27557:                                            ; preds = %27556
  br label %27558

27558:                                            ; preds = %27557, %27500
  br label %27559

27559:                                            ; preds = %27558
  br label %27560

27560:                                            ; preds = %27559
  call void @llvm.lifetime.start.p0(i64 16, ptr %853) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %853, ptr align 8 @__const.main.verify_data.113, i64 16, i1 false)
  br label %27561

27561:                                            ; preds = %27560
  %27562 = load i32, ptr @test_count, align 4, !tbaa !5
  %27563 = add nsw i32 %27562, 1
  store i32 %27563, ptr @test_count, align 4, !tbaa !5
  %27564 = load ptr, ptr %851, align 8, !tbaa !9
  %27565 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %27564, ptr noundef @verify_host_verify_alt, ptr noundef %853)
  %27566 = icmp eq i32 %27565, -1
  br i1 %27566, label %27567, label %27620

27567:                                            ; preds = %27561
  br label %27568

27568:                                            ; preds = %27567
  br label %27569

27569:                                            ; preds = %27568
  call void @llvm.lifetime.start.p0(i64 4, ptr %854) #11
  %27570 = call ptr @__errno_location() #12
  %27571 = load i32, ptr %27570, align 4, !tbaa !5
  store i32 %27571, ptr %854, align 4, !tbaa !5
  %27572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27573 = call i32 @s2n_print_stacktrace(ptr noundef %27572)
  %27574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27575 = trunc i8 %27574 to i1
  br i1 %27575, label %27576, label %27598

27576:                                            ; preds = %27569
  %27577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27578 = call i32 @fileno(ptr noundef %27577) #11
  %27579 = call i32 @isatty(i32 noundef %27578) #11
  %27580 = icmp ne i32 %27579, 0
  br i1 %27580, label %27581, label %27598

27581:                                            ; preds = %27576
  %27582 = load i32, ptr %854, align 4, !tbaa !5
  %27583 = call ptr @__errno_location() #12
  store i32 %27582, ptr %27583, align 4, !tbaa !5
  %27584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27585 = load i32, ptr @test_count, align 4, !tbaa !5
  %27586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27587 = load i32, ptr %27586, align 4, !tbaa !5
  %27588 = call ptr @s2n_strerror(i32 noundef %27587, ptr noundef @.str.4)
  %27589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27590 = load i32, ptr %27589, align 4, !tbaa !5
  %27591 = call ptr @s2n_strerror_debug(i32 noundef %27590, ptr noundef @.str.4)
  %27592 = call ptr @__errno_location() #12
  %27593 = load i32, ptr %27592, align 4, !tbaa !5
  %27594 = call ptr @strerror(i32 noundef %27593) #11
  %27595 = call ptr @__errno_location() #12
  %27596 = load i32, ptr %27595, align 4, !tbaa !5
  %27597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27584, ptr noundef @.str.2, i32 noundef %27585, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 1696, ptr noundef %27588, ptr noundef %27591, ptr noundef %27594, i32 noundef %27596) #11
  br label %27615

27598:                                            ; preds = %27576, %27569
  %27599 = load i32, ptr %854, align 4, !tbaa !5
  %27600 = call ptr @__errno_location() #12
  store i32 %27599, ptr %27600, align 4, !tbaa !5
  %27601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27602 = load i32, ptr @test_count, align 4, !tbaa !5
  %27603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27604 = load i32, ptr %27603, align 4, !tbaa !5
  %27605 = call ptr @s2n_strerror(i32 noundef %27604, ptr noundef @.str.4)
  %27606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27607 = load i32, ptr %27606, align 4, !tbaa !5
  %27608 = call ptr @s2n_strerror_debug(i32 noundef %27607, ptr noundef @.str.4)
  %27609 = call ptr @__errno_location() #12
  %27610 = load i32, ptr %27609, align 4, !tbaa !5
  %27611 = call ptr @strerror(i32 noundef %27610) #11
  %27612 = call ptr @__errno_location() #12
  %27613 = load i32, ptr %27612, align 4, !tbaa !5
  %27614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27601, ptr noundef @.str.5, i32 noundef %27602, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 1696, ptr noundef %27605, ptr noundef %27608, ptr noundef %27611, i32 noundef %27613) #11
  br label %27615

27615:                                            ; preds = %27598, %27581
  call void @llvm.lifetime.end.p0(i64 4, ptr %854) #11
  br label %27616

27616:                                            ; preds = %27615
  br label %27617

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

27618:                                            ; No predecessors!
  br label %27619

27619:                                            ; preds = %27618
  br label %27620

27620:                                            ; preds = %27619, %27561
  br label %27621

27621:                                            ; preds = %27620
  br label %27622

27622:                                            ; preds = %27621
  call void @llvm.lifetime.start.p0(i64 40, ptr %855) #11
  call void @llvm.memset.p0.i64(ptr align 8 %855, i8 0, i64 40, i1 false)
  br label %27623

27623:                                            ; preds = %27622
  %27624 = load i32, ptr @test_count, align 4, !tbaa !5
  %27625 = add nsw i32 %27624, 1
  store i32 %27625, ptr @test_count, align 4, !tbaa !5
  %27626 = load ptr, ptr %851, align 8, !tbaa !9
  %27627 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %27626, ptr noundef @.str.110, ptr noundef %855)
  %27628 = getelementptr inbounds %struct.s2n_result, ptr %856, i32 0, i32 0
  store i32 %27627, ptr %27628, align 4
  %27629 = getelementptr inbounds %struct.s2n_result, ptr %856, i32 0, i32 0
  %27630 = load i32, ptr %27629, align 4
  %27631 = call zeroext i1 @s2n_result_is_ok(i32 %27630)
  br i1 %27631, label %27685, label %27632

27632:                                            ; preds = %27623
  br label %27633

27633:                                            ; preds = %27632
  br label %27634

27634:                                            ; preds = %27633
  call void @llvm.lifetime.start.p0(i64 4, ptr %857) #11
  %27635 = call ptr @__errno_location() #12
  %27636 = load i32, ptr %27635, align 4, !tbaa !5
  store i32 %27636, ptr %857, align 4, !tbaa !5
  %27637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27638 = call i32 @s2n_print_stacktrace(ptr noundef %27637)
  %27639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27640 = trunc i8 %27639 to i1
  br i1 %27640, label %27641, label %27663

27641:                                            ; preds = %27634
  %27642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27643 = call i32 @fileno(ptr noundef %27642) #11
  %27644 = call i32 @isatty(i32 noundef %27643) #11
  %27645 = icmp ne i32 %27644, 0
  br i1 %27645, label %27646, label %27663

27646:                                            ; preds = %27641
  %27647 = load i32, ptr %857, align 4, !tbaa !5
  %27648 = call ptr @__errno_location() #12
  store i32 %27647, ptr %27648, align 4, !tbaa !5
  %27649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27650 = load i32, ptr @test_count, align 4, !tbaa !5
  %27651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27652 = load i32, ptr %27651, align 4, !tbaa !5
  %27653 = call ptr @s2n_strerror(i32 noundef %27652, ptr noundef @.str.4)
  %27654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27655 = load i32, ptr %27654, align 4, !tbaa !5
  %27656 = call ptr @s2n_strerror_debug(i32 noundef %27655, ptr noundef @.str.4)
  %27657 = call ptr @__errno_location() #12
  %27658 = load i32, ptr %27657, align 4, !tbaa !5
  %27659 = call ptr @strerror(i32 noundef %27658) #11
  %27660 = call ptr @__errno_location() #12
  %27661 = load i32, ptr %27660, align 4, !tbaa !5
  %27662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27649, ptr noundef @.str.2, i32 noundef %27650, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 1702, ptr noundef %27653, ptr noundef %27656, ptr noundef %27659, i32 noundef %27661) #11
  br label %27680

27663:                                            ; preds = %27641, %27634
  %27664 = load i32, ptr %857, align 4, !tbaa !5
  %27665 = call ptr @__errno_location() #12
  store i32 %27664, ptr %27665, align 4, !tbaa !5
  %27666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27667 = load i32, ptr @test_count, align 4, !tbaa !5
  %27668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27669 = load i32, ptr %27668, align 4, !tbaa !5
  %27670 = call ptr @s2n_strerror(i32 noundef %27669, ptr noundef @.str.4)
  %27671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27672 = load i32, ptr %27671, align 4, !tbaa !5
  %27673 = call ptr @s2n_strerror_debug(i32 noundef %27672, ptr noundef @.str.4)
  %27674 = call ptr @__errno_location() #12
  %27675 = load i32, ptr %27674, align 4, !tbaa !5
  %27676 = call ptr @strerror(i32 noundef %27675) #11
  %27677 = call ptr @__errno_location() #12
  %27678 = load i32, ptr %27677, align 4, !tbaa !5
  %27679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27666, ptr noundef @.str.5, i32 noundef %27667, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 1702, ptr noundef %27670, ptr noundef %27673, ptr noundef %27676, i32 noundef %27678) #11
  br label %27680

27680:                                            ; preds = %27663, %27646
  call void @llvm.lifetime.end.p0(i64 4, ptr %857) #11
  br label %27681

27681:                                            ; preds = %27680
  br label %27682

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

27683:                                            ; No predecessors!
  br label %27684

27684:                                            ; preds = %27683
  br label %27685

27685:                                            ; preds = %27684, %27623
  br label %27686

27686:                                            ; preds = %27685
  br label %27687

27687:                                            ; preds = %27686
  call void @llvm.lifetime.start.p0(i64 4, ptr %858) #11
  %27688 = getelementptr inbounds %struct.s2n_stuffer, ptr %855, i32 0, i32 2
  %27689 = load i32, ptr %27688, align 4, !tbaa !15
  %27690 = getelementptr inbounds %struct.s2n_stuffer, ptr %855, i32 0, i32 1
  %27691 = load i32, ptr %27690, align 8, !tbaa !18
  %27692 = sub i32 %27689, %27691
  store i32 %27692, ptr %858, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %859) #11
  %27693 = load i32, ptr %858, align 4, !tbaa !5
  %27694 = call ptr @s2n_stuffer_raw_read(ptr noundef %855, i32 noundef %27693)
  store ptr %27694, ptr %859, align 8, !tbaa !9
  br label %27695

27695:                                            ; preds = %27687
  %27696 = load i32, ptr @test_count, align 4, !tbaa !5
  %27697 = add nsw i32 %27696, 1
  store i32 %27697, ptr @test_count, align 4, !tbaa !5
  %27698 = load ptr, ptr %859, align 8, !tbaa !9
  %27699 = icmp eq ptr %27698, null
  br i1 %27699, label %27700, label %27753

27700:                                            ; preds = %27695
  br label %27701

27701:                                            ; preds = %27700
  br label %27702

27702:                                            ; preds = %27701
  call void @llvm.lifetime.start.p0(i64 4, ptr %860) #11
  %27703 = call ptr @__errno_location() #12
  %27704 = load i32, ptr %27703, align 4, !tbaa !5
  store i32 %27704, ptr %860, align 4, !tbaa !5
  %27705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27706 = call i32 @s2n_print_stacktrace(ptr noundef %27705)
  %27707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27708 = trunc i8 %27707 to i1
  br i1 %27708, label %27709, label %27731

27709:                                            ; preds = %27702
  %27710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27711 = call i32 @fileno(ptr noundef %27710) #11
  %27712 = call i32 @isatty(i32 noundef %27711) #11
  %27713 = icmp ne i32 %27712, 0
  br i1 %27713, label %27714, label %27731

27714:                                            ; preds = %27709
  %27715 = load i32, ptr %860, align 4, !tbaa !5
  %27716 = call ptr @__errno_location() #12
  store i32 %27715, ptr %27716, align 4, !tbaa !5
  %27717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27718 = load i32, ptr @test_count, align 4, !tbaa !5
  %27719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27720 = load i32, ptr %27719, align 4, !tbaa !5
  %27721 = call ptr @s2n_strerror(i32 noundef %27720, ptr noundef @.str.4)
  %27722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27723 = load i32, ptr %27722, align 4, !tbaa !5
  %27724 = call ptr @s2n_strerror_debug(i32 noundef %27723, ptr noundef @.str.4)
  %27725 = call ptr @__errno_location() #12
  %27726 = load i32, ptr %27725, align 4, !tbaa !5
  %27727 = call ptr @strerror(i32 noundef %27726) #11
  %27728 = call ptr @__errno_location() #12
  %27729 = load i32, ptr %27728, align 4, !tbaa !5
  %27730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27717, ptr noundef @.str.2, i32 noundef %27718, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1705, ptr noundef %27721, ptr noundef %27724, ptr noundef %27727, i32 noundef %27729) #11
  br label %27748

27731:                                            ; preds = %27709, %27702
  %27732 = load i32, ptr %860, align 4, !tbaa !5
  %27733 = call ptr @__errno_location() #12
  store i32 %27732, ptr %27733, align 4, !tbaa !5
  %27734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27735 = load i32, ptr @test_count, align 4, !tbaa !5
  %27736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27737 = load i32, ptr %27736, align 4, !tbaa !5
  %27738 = call ptr @s2n_strerror(i32 noundef %27737, ptr noundef @.str.4)
  %27739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27740 = load i32, ptr %27739, align 4, !tbaa !5
  %27741 = call ptr @s2n_strerror_debug(i32 noundef %27740, ptr noundef @.str.4)
  %27742 = call ptr @__errno_location() #12
  %27743 = load i32, ptr %27742, align 4, !tbaa !5
  %27744 = call ptr @strerror(i32 noundef %27743) #11
  %27745 = call ptr @__errno_location() #12
  %27746 = load i32, ptr %27745, align 4, !tbaa !5
  %27747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27734, ptr noundef @.str.5, i32 noundef %27735, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1705, ptr noundef %27738, ptr noundef %27741, ptr noundef %27744, i32 noundef %27746) #11
  br label %27748

27748:                                            ; preds = %27731, %27714
  call void @llvm.lifetime.end.p0(i64 4, ptr %860) #11
  br label %27749

27749:                                            ; preds = %27748
  br label %27750

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

27751:                                            ; No predecessors!
  br label %27752

27752:                                            ; preds = %27751
  br label %27753

27753:                                            ; preds = %27752, %27695
  br label %27754

27754:                                            ; preds = %27753
  br label %27755

27755:                                            ; preds = %27754
  call void @llvm.lifetime.start.p0(i64 48, ptr %861) #11
  call void @llvm.memset.p0.i64(ptr align 8 %861, i8 0, i64 48, i1 false)
  br label %27756

27756:                                            ; preds = %27755
  %27757 = load i32, ptr @test_count, align 4, !tbaa !5
  %27758 = add nsw i32 %27757, 1
  store i32 %27758, ptr @test_count, align 4, !tbaa !5
  %27759 = call i32 @s2n_pkey_zero_init(ptr noundef %861)
  %27760 = icmp eq i32 %27759, -1
  br i1 %27760, label %27761, label %27814

27761:                                            ; preds = %27756
  br label %27762

27762:                                            ; preds = %27761
  br label %27763

27763:                                            ; preds = %27762
  call void @llvm.lifetime.start.p0(i64 4, ptr %862) #11
  %27764 = call ptr @__errno_location() #12
  %27765 = load i32, ptr %27764, align 4, !tbaa !5
  store i32 %27765, ptr %862, align 4, !tbaa !5
  %27766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27767 = call i32 @s2n_print_stacktrace(ptr noundef %27766)
  %27768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27769 = trunc i8 %27768 to i1
  br i1 %27769, label %27770, label %27792

27770:                                            ; preds = %27763
  %27771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27772 = call i32 @fileno(ptr noundef %27771) #11
  %27773 = call i32 @isatty(i32 noundef %27772) #11
  %27774 = icmp ne i32 %27773, 0
  br i1 %27774, label %27775, label %27792

27775:                                            ; preds = %27770
  %27776 = load i32, ptr %862, align 4, !tbaa !5
  %27777 = call ptr @__errno_location() #12
  store i32 %27776, ptr %27777, align 4, !tbaa !5
  %27778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27779 = load i32, ptr @test_count, align 4, !tbaa !5
  %27780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27781 = load i32, ptr %27780, align 4, !tbaa !5
  %27782 = call ptr @s2n_strerror(i32 noundef %27781, ptr noundef @.str.4)
  %27783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27784 = load i32, ptr %27783, align 4, !tbaa !5
  %27785 = call ptr @s2n_strerror_debug(i32 noundef %27784, ptr noundef @.str.4)
  %27786 = call ptr @__errno_location() #12
  %27787 = load i32, ptr %27786, align 4, !tbaa !5
  %27788 = call ptr @strerror(i32 noundef %27787) #11
  %27789 = call ptr @__errno_location() #12
  %27790 = load i32, ptr %27789, align 4, !tbaa !5
  %27791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27778, ptr noundef @.str.2, i32 noundef %27779, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1708, ptr noundef %27782, ptr noundef %27785, ptr noundef %27788, i32 noundef %27790) #11
  br label %27809

27792:                                            ; preds = %27770, %27763
  %27793 = load i32, ptr %862, align 4, !tbaa !5
  %27794 = call ptr @__errno_location() #12
  store i32 %27793, ptr %27794, align 4, !tbaa !5
  %27795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27796 = load i32, ptr @test_count, align 4, !tbaa !5
  %27797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27798 = load i32, ptr %27797, align 4, !tbaa !5
  %27799 = call ptr @s2n_strerror(i32 noundef %27798, ptr noundef @.str.4)
  %27800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27801 = load i32, ptr %27800, align 4, !tbaa !5
  %27802 = call ptr @s2n_strerror_debug(i32 noundef %27801, ptr noundef @.str.4)
  %27803 = call ptr @__errno_location() #12
  %27804 = load i32, ptr %27803, align 4, !tbaa !5
  %27805 = call ptr @strerror(i32 noundef %27804) #11
  %27806 = call ptr @__errno_location() #12
  %27807 = load i32, ptr %27806, align 4, !tbaa !5
  %27808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27795, ptr noundef @.str.5, i32 noundef %27796, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1708, ptr noundef %27799, ptr noundef %27802, ptr noundef %27805, i32 noundef %27807) #11
  br label %27809

27809:                                            ; preds = %27792, %27775
  call void @llvm.lifetime.end.p0(i64 4, ptr %862) #11
  br label %27810

27810:                                            ; preds = %27809
  br label %27811

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

27812:                                            ; No predecessors!
  br label %27813

27813:                                            ; preds = %27812
  br label %27814

27814:                                            ; preds = %27813, %27756
  br label %27815

27815:                                            ; preds = %27814
  br label %27816

27816:                                            ; preds = %27815
  call void @llvm.lifetime.start.p0(i64 4, ptr %863) #11
  store i32 -1, ptr %863, align 4, !tbaa !5
  br label %27817

27817:                                            ; preds = %27816
  %27818 = load i32, ptr @test_count, align 4, !tbaa !5
  %27819 = add nsw i32 %27818, 1
  store i32 %27819, ptr @test_count, align 4, !tbaa !5
  %27820 = load ptr, ptr %851, align 8, !tbaa !9
  %27821 = load ptr, ptr %859, align 8, !tbaa !9
  %27822 = load i32, ptr %858, align 4, !tbaa !5
  %27823 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %850, ptr noundef %27820, ptr noundef %27821, i32 noundef %27822, ptr noundef %863, ptr noundef %861)
  %27824 = getelementptr inbounds %struct.s2n_result, ptr %864, i32 0, i32 0
  store i32 %27823, ptr %27824, align 4
  %27825 = getelementptr inbounds %struct.s2n_result, ptr %864, i32 0, i32 0
  %27826 = load i32, ptr %27825, align 4
  %27827 = call zeroext i1 @s2n_result_is_ok(i32 %27826)
  br i1 %27827, label %27881, label %27828

27828:                                            ; preds = %27817
  br label %27829

27829:                                            ; preds = %27828
  br label %27830

27830:                                            ; preds = %27829
  call void @llvm.lifetime.start.p0(i64 4, ptr %865) #11
  %27831 = call ptr @__errno_location() #12
  %27832 = load i32, ptr %27831, align 4, !tbaa !5
  store i32 %27832, ptr %865, align 4, !tbaa !5
  %27833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27834 = call i32 @s2n_print_stacktrace(ptr noundef %27833)
  %27835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27836 = trunc i8 %27835 to i1
  br i1 %27836, label %27837, label %27859

27837:                                            ; preds = %27830
  %27838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27839 = call i32 @fileno(ptr noundef %27838) #11
  %27840 = call i32 @isatty(i32 noundef %27839) #11
  %27841 = icmp ne i32 %27840, 0
  br i1 %27841, label %27842, label %27859

27842:                                            ; preds = %27837
  %27843 = load i32, ptr %865, align 4, !tbaa !5
  %27844 = call ptr @__errno_location() #12
  store i32 %27843, ptr %27844, align 4, !tbaa !5
  %27845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27846 = load i32, ptr @test_count, align 4, !tbaa !5
  %27847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27848 = load i32, ptr %27847, align 4, !tbaa !5
  %27849 = call ptr @s2n_strerror(i32 noundef %27848, ptr noundef @.str.4)
  %27850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27851 = load i32, ptr %27850, align 4, !tbaa !5
  %27852 = call ptr @s2n_strerror_debug(i32 noundef %27851, ptr noundef @.str.4)
  %27853 = call ptr @__errno_location() #12
  %27854 = load i32, ptr %27853, align 4, !tbaa !5
  %27855 = call ptr @strerror(i32 noundef %27854) #11
  %27856 = call ptr @__errno_location() #12
  %27857 = load i32, ptr %27856, align 4, !tbaa !5
  %27858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27845, ptr noundef @.str.2, i32 noundef %27846, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1710, ptr noundef %27849, ptr noundef %27852, ptr noundef %27855, i32 noundef %27857) #11
  br label %27876

27859:                                            ; preds = %27837, %27830
  %27860 = load i32, ptr %865, align 4, !tbaa !5
  %27861 = call ptr @__errno_location() #12
  store i32 %27860, ptr %27861, align 4, !tbaa !5
  %27862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27863 = load i32, ptr @test_count, align 4, !tbaa !5
  %27864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27865 = load i32, ptr %27864, align 4, !tbaa !5
  %27866 = call ptr @s2n_strerror(i32 noundef %27865, ptr noundef @.str.4)
  %27867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27868 = load i32, ptr %27867, align 4, !tbaa !5
  %27869 = call ptr @s2n_strerror_debug(i32 noundef %27868, ptr noundef @.str.4)
  %27870 = call ptr @__errno_location() #12
  %27871 = load i32, ptr %27870, align 4, !tbaa !5
  %27872 = call ptr @strerror(i32 noundef %27871) #11
  %27873 = call ptr @__errno_location() #12
  %27874 = load i32, ptr %27873, align 4, !tbaa !5
  %27875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27862, ptr noundef @.str.5, i32 noundef %27863, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1710, ptr noundef %27866, ptr noundef %27869, ptr noundef %27872, i32 noundef %27874) #11
  br label %27876

27876:                                            ; preds = %27859, %27842
  call void @llvm.lifetime.end.p0(i64 4, ptr %865) #11
  br label %27877

27877:                                            ; preds = %27876
  br label %27878

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

27879:                                            ; No predecessors!
  br label %27880

27880:                                            ; preds = %27879
  br label %27881

27881:                                            ; preds = %27880, %27817
  br label %27882

27882:                                            ; preds = %27881
  br label %27883

27883:                                            ; preds = %27882
  br label %27884

27884:                                            ; preds = %27883
  %27885 = load i32, ptr @test_count, align 4, !tbaa !5
  %27886 = add nsw i32 %27885, 1
  store i32 %27886, ptr @test_count, align 4, !tbaa !5
  %27887 = load i32, ptr %863, align 4, !tbaa !5
  %27888 = icmp eq i32 0, %27887
  br i1 %27888, label %27942, label %27889

27889:                                            ; preds = %27884
  br label %27890

27890:                                            ; preds = %27889
  br label %27891

27891:                                            ; preds = %27890
  call void @llvm.lifetime.start.p0(i64 4, ptr %866) #11
  %27892 = call ptr @__errno_location() #12
  %27893 = load i32, ptr %27892, align 4, !tbaa !5
  store i32 %27893, ptr %866, align 4, !tbaa !5
  %27894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27895 = call i32 @s2n_print_stacktrace(ptr noundef %27894)
  %27896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27897 = trunc i8 %27896 to i1
  br i1 %27897, label %27898, label %27920

27898:                                            ; preds = %27891
  %27899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27900 = call i32 @fileno(ptr noundef %27899) #11
  %27901 = call i32 @isatty(i32 noundef %27900) #11
  %27902 = icmp ne i32 %27901, 0
  br i1 %27902, label %27903, label %27920

27903:                                            ; preds = %27898
  %27904 = load i32, ptr %866, align 4, !tbaa !5
  %27905 = call ptr @__errno_location() #12
  store i32 %27904, ptr %27905, align 4, !tbaa !5
  %27906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27907 = load i32, ptr @test_count, align 4, !tbaa !5
  %27908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27909 = load i32, ptr %27908, align 4, !tbaa !5
  %27910 = call ptr @s2n_strerror(i32 noundef %27909, ptr noundef @.str.4)
  %27911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27912 = load i32, ptr %27911, align 4, !tbaa !5
  %27913 = call ptr @s2n_strerror_debug(i32 noundef %27912, ptr noundef @.str.4)
  %27914 = call ptr @__errno_location() #12
  %27915 = load i32, ptr %27914, align 4, !tbaa !5
  %27916 = call ptr @strerror(i32 noundef %27915) #11
  %27917 = call ptr @__errno_location() #12
  %27918 = load i32, ptr %27917, align 4, !tbaa !5
  %27919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27906, ptr noundef @.str.2, i32 noundef %27907, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1711, ptr noundef %27910, ptr noundef %27913, ptr noundef %27916, i32 noundef %27918) #11
  br label %27937

27920:                                            ; preds = %27898, %27891
  %27921 = load i32, ptr %866, align 4, !tbaa !5
  %27922 = call ptr @__errno_location() #12
  store i32 %27921, ptr %27922, align 4, !tbaa !5
  %27923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27924 = load i32, ptr @test_count, align 4, !tbaa !5
  %27925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27926 = load i32, ptr %27925, align 4, !tbaa !5
  %27927 = call ptr @s2n_strerror(i32 noundef %27926, ptr noundef @.str.4)
  %27928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27929 = load i32, ptr %27928, align 4, !tbaa !5
  %27930 = call ptr @s2n_strerror_debug(i32 noundef %27929, ptr noundef @.str.4)
  %27931 = call ptr @__errno_location() #12
  %27932 = load i32, ptr %27931, align 4, !tbaa !5
  %27933 = call ptr @strerror(i32 noundef %27932) #11
  %27934 = call ptr @__errno_location() #12
  %27935 = load i32, ptr %27934, align 4, !tbaa !5
  %27936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27923, ptr noundef @.str.5, i32 noundef %27924, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1711, ptr noundef %27927, ptr noundef %27930, ptr noundef %27933, i32 noundef %27935) #11
  br label %27937

27937:                                            ; preds = %27920, %27903
  call void @llvm.lifetime.end.p0(i64 4, ptr %866) #11
  br label %27938

27938:                                            ; preds = %27937
  br label %27939

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

27940:                                            ; No predecessors!
  br label %27941

27941:                                            ; preds = %27940
  br label %27942

27942:                                            ; preds = %27941, %27884
  br label %27943

27943:                                            ; preds = %27942
  br label %27944

27944:                                            ; preds = %27943
  call void @llvm.lifetime.end.p0(i64 4, ptr %863) #11
  %27945 = call i32 @s2n_pkey_free(ptr noundef %861)
  call void @llvm.lifetime.end.p0(i64 48, ptr %861) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %859) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %858) #11
  %27946 = call i32 @s2n_stuffer_free(ptr noundef %855)
  call void @llvm.lifetime.end.p0(i64 40, ptr %855) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %853) #11
  %27947 = call i32 @s2n_connection_ptr_free(ptr noundef %851)
  %27948 = getelementptr inbounds %struct.s2n_result, ptr %867, i32 0, i32 0
  store i32 %27947, ptr %27948, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %851) #11
  %27949 = call i32 @s2n_x509_validator_wipe(ptr noundef %850)
  call void @llvm.lifetime.end.p0(i64 56, ptr %850) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef %848)
  call void @llvm.lifetime.end.p0(i64 16, ptr %848) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %868) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %868)
  br label %27950

27950:                                            ; preds = %27944
  %27951 = load i32, ptr @test_count, align 4, !tbaa !5
  %27952 = add nsw i32 %27951, 1
  store i32 %27952, ptr @test_count, align 4, !tbaa !5
  %27953 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %868, ptr noundef @.str.88, ptr noundef null)
  %27954 = icmp eq i32 0, %27953
  br i1 %27954, label %28008, label %27955

27955:                                            ; preds = %27950
  br label %27956

27956:                                            ; preds = %27955
  br label %27957

27957:                                            ; preds = %27956
  call void @llvm.lifetime.start.p0(i64 4, ptr %869) #11
  %27958 = call ptr @__errno_location() #12
  %27959 = load i32, ptr %27958, align 4, !tbaa !5
  store i32 %27959, ptr %869, align 4, !tbaa !5
  %27960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27961 = call i32 @s2n_print_stacktrace(ptr noundef %27960)
  %27962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27963 = trunc i8 %27962 to i1
  br i1 %27963, label %27964, label %27986

27964:                                            ; preds = %27957
  %27965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27966 = call i32 @fileno(ptr noundef %27965) #11
  %27967 = call i32 @isatty(i32 noundef %27966) #11
  %27968 = icmp ne i32 %27967, 0
  br i1 %27968, label %27969, label %27986

27969:                                            ; preds = %27964
  %27970 = load i32, ptr %869, align 4, !tbaa !5
  %27971 = call ptr @__errno_location() #12
  store i32 %27970, ptr %27971, align 4, !tbaa !5
  %27972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27973 = load i32, ptr @test_count, align 4, !tbaa !5
  %27974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27975 = load i32, ptr %27974, align 4, !tbaa !5
  %27976 = call ptr @s2n_strerror(i32 noundef %27975, ptr noundef @.str.4)
  %27977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27978 = load i32, ptr %27977, align 4, !tbaa !5
  %27979 = call ptr @s2n_strerror_debug(i32 noundef %27978, ptr noundef @.str.4)
  %27980 = call ptr @__errno_location() #12
  %27981 = load i32, ptr %27980, align 4, !tbaa !5
  %27982 = call ptr @strerror(i32 noundef %27981) #11
  %27983 = call ptr @__errno_location() #12
  %27984 = load i32, ptr %27983, align 4, !tbaa !5
  %27985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27972, ptr noundef @.str.2, i32 noundef %27973, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1718, ptr noundef %27976, ptr noundef %27979, ptr noundef %27982, i32 noundef %27984) #11
  br label %28003

27986:                                            ; preds = %27964, %27957
  %27987 = load i32, ptr %869, align 4, !tbaa !5
  %27988 = call ptr @__errno_location() #12
  store i32 %27987, ptr %27988, align 4, !tbaa !5
  %27989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27990 = load i32, ptr @test_count, align 4, !tbaa !5
  %27991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27992 = load i32, ptr %27991, align 4, !tbaa !5
  %27993 = call ptr @s2n_strerror(i32 noundef %27992, ptr noundef @.str.4)
  %27994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27995 = load i32, ptr %27994, align 4, !tbaa !5
  %27996 = call ptr @s2n_strerror_debug(i32 noundef %27995, ptr noundef @.str.4)
  %27997 = call ptr @__errno_location() #12
  %27998 = load i32, ptr %27997, align 4, !tbaa !5
  %27999 = call ptr @strerror(i32 noundef %27998) #11
  %28000 = call ptr @__errno_location() #12
  %28001 = load i32, ptr %28000, align 4, !tbaa !5
  %28002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27989, ptr noundef @.str.5, i32 noundef %27990, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 1718, ptr noundef %27993, ptr noundef %27996, ptr noundef %27999, i32 noundef %28001) #11
  br label %28003

28003:                                            ; preds = %27986, %27969
  call void @llvm.lifetime.end.p0(i64 4, ptr %869) #11
  br label %28004

28004:                                            ; preds = %28003
  br label %28005

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

28006:                                            ; No predecessors!
  br label %28007

28007:                                            ; preds = %28006
  br label %28008

28008:                                            ; preds = %28007, %27950
  br label %28009

28009:                                            ; preds = %28008
  br label %28010

28010:                                            ; preds = %28009
  call void @llvm.lifetime.start.p0(i64 56, ptr %870) #11
  %28011 = call i32 @s2n_x509_validator_init(ptr noundef %870, ptr noundef %868, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %871) #11
  %28012 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %28012, ptr %871, align 8, !tbaa !9
  br label %28013

28013:                                            ; preds = %28010
  %28014 = load i32, ptr @test_count, align 4, !tbaa !5
  %28015 = add nsw i32 %28014, 1
  store i32 %28015, ptr @test_count, align 4, !tbaa !5
  %28016 = load ptr, ptr %871, align 8, !tbaa !9
  %28017 = icmp eq ptr %28016, null
  br i1 %28017, label %28018, label %28071

28018:                                            ; preds = %28013
  br label %28019

28019:                                            ; preds = %28018
  br label %28020

28020:                                            ; preds = %28019
  call void @llvm.lifetime.start.p0(i64 4, ptr %872) #11
  %28021 = call ptr @__errno_location() #12
  %28022 = load i32, ptr %28021, align 4, !tbaa !5
  store i32 %28022, ptr %872, align 4, !tbaa !5
  %28023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28024 = call i32 @s2n_print_stacktrace(ptr noundef %28023)
  %28025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28026 = trunc i8 %28025 to i1
  br i1 %28026, label %28027, label %28049

28027:                                            ; preds = %28020
  %28028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28029 = call i32 @fileno(ptr noundef %28028) #11
  %28030 = call i32 @isatty(i32 noundef %28029) #11
  %28031 = icmp ne i32 %28030, 0
  br i1 %28031, label %28032, label %28049

28032:                                            ; preds = %28027
  %28033 = load i32, ptr %872, align 4, !tbaa !5
  %28034 = call ptr @__errno_location() #12
  store i32 %28033, ptr %28034, align 4, !tbaa !5
  %28035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28036 = load i32, ptr @test_count, align 4, !tbaa !5
  %28037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28038 = load i32, ptr %28037, align 4, !tbaa !5
  %28039 = call ptr @s2n_strerror(i32 noundef %28038, ptr noundef @.str.4)
  %28040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28041 = load i32, ptr %28040, align 4, !tbaa !5
  %28042 = call ptr @s2n_strerror_debug(i32 noundef %28041, ptr noundef @.str.4)
  %28043 = call ptr @__errno_location() #12
  %28044 = load i32, ptr %28043, align 4, !tbaa !5
  %28045 = call ptr @strerror(i32 noundef %28044) #11
  %28046 = call ptr @__errno_location() #12
  %28047 = load i32, ptr %28046, align 4, !tbaa !5
  %28048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28035, ptr noundef @.str.2, i32 noundef %28036, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1724, ptr noundef %28039, ptr noundef %28042, ptr noundef %28045, i32 noundef %28047) #11
  br label %28066

28049:                                            ; preds = %28027, %28020
  %28050 = load i32, ptr %872, align 4, !tbaa !5
  %28051 = call ptr @__errno_location() #12
  store i32 %28050, ptr %28051, align 4, !tbaa !5
  %28052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28053 = load i32, ptr @test_count, align 4, !tbaa !5
  %28054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28055 = load i32, ptr %28054, align 4, !tbaa !5
  %28056 = call ptr @s2n_strerror(i32 noundef %28055, ptr noundef @.str.4)
  %28057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28058 = load i32, ptr %28057, align 4, !tbaa !5
  %28059 = call ptr @s2n_strerror_debug(i32 noundef %28058, ptr noundef @.str.4)
  %28060 = call ptr @__errno_location() #12
  %28061 = load i32, ptr %28060, align 4, !tbaa !5
  %28062 = call ptr @strerror(i32 noundef %28061) #11
  %28063 = call ptr @__errno_location() #12
  %28064 = load i32, ptr %28063, align 4, !tbaa !5
  %28065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28052, ptr noundef @.str.5, i32 noundef %28053, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1724, ptr noundef %28056, ptr noundef %28059, ptr noundef %28062, i32 noundef %28064) #11
  br label %28066

28066:                                            ; preds = %28049, %28032
  call void @llvm.lifetime.end.p0(i64 4, ptr %872) #11
  br label %28067

28067:                                            ; preds = %28066
  br label %28068

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

28069:                                            ; No predecessors!
  br label %28070

28070:                                            ; preds = %28069
  br label %28071

28071:                                            ; preds = %28070, %28013
  br label %28072

28072:                                            ; preds = %28071
  br label %28073

28073:                                            ; preds = %28072
  call void @llvm.lifetime.start.p0(i64 40, ptr %873) #11
  call void @llvm.memset.p0.i64(ptr align 8 %873, i8 0, i64 40, i1 false)
  br label %28074

28074:                                            ; preds = %28073
  %28075 = load i32, ptr @test_count, align 4, !tbaa !5
  %28076 = add nsw i32 %28075, 1
  store i32 %28076, ptr @test_count, align 4, !tbaa !5
  %28077 = load ptr, ptr %871, align 8, !tbaa !9
  %28078 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %28077, ptr noundef @.str.88, ptr noundef %873)
  %28079 = getelementptr inbounds %struct.s2n_result, ptr %874, i32 0, i32 0
  store i32 %28078, ptr %28079, align 4
  %28080 = getelementptr inbounds %struct.s2n_result, ptr %874, i32 0, i32 0
  %28081 = load i32, ptr %28080, align 4
  %28082 = call zeroext i1 @s2n_result_is_ok(i32 %28081)
  br i1 %28082, label %28136, label %28083

28083:                                            ; preds = %28074
  br label %28084

28084:                                            ; preds = %28083
  br label %28085

28085:                                            ; preds = %28084
  call void @llvm.lifetime.start.p0(i64 4, ptr %875) #11
  %28086 = call ptr @__errno_location() #12
  %28087 = load i32, ptr %28086, align 4, !tbaa !5
  store i32 %28087, ptr %875, align 4, !tbaa !5
  %28088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28089 = call i32 @s2n_print_stacktrace(ptr noundef %28088)
  %28090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28091 = trunc i8 %28090 to i1
  br i1 %28091, label %28092, label %28114

28092:                                            ; preds = %28085
  %28093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28094 = call i32 @fileno(ptr noundef %28093) #11
  %28095 = call i32 @isatty(i32 noundef %28094) #11
  %28096 = icmp ne i32 %28095, 0
  br i1 %28096, label %28097, label %28114

28097:                                            ; preds = %28092
  %28098 = load i32, ptr %875, align 4, !tbaa !5
  %28099 = call ptr @__errno_location() #12
  store i32 %28098, ptr %28099, align 4, !tbaa !5
  %28100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28101 = load i32, ptr @test_count, align 4, !tbaa !5
  %28102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28103 = load i32, ptr %28102, align 4, !tbaa !5
  %28104 = call ptr @s2n_strerror(i32 noundef %28103, ptr noundef @.str.4)
  %28105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28106 = load i32, ptr %28105, align 4, !tbaa !5
  %28107 = call ptr @s2n_strerror_debug(i32 noundef %28106, ptr noundef @.str.4)
  %28108 = call ptr @__errno_location() #12
  %28109 = load i32, ptr %28108, align 4, !tbaa !5
  %28110 = call ptr @strerror(i32 noundef %28109) #11
  %28111 = call ptr @__errno_location() #12
  %28112 = load i32, ptr %28111, align 4, !tbaa !5
  %28113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28100, ptr noundef @.str.2, i32 noundef %28101, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1728, ptr noundef %28104, ptr noundef %28107, ptr noundef %28110, i32 noundef %28112) #11
  br label %28131

28114:                                            ; preds = %28092, %28085
  %28115 = load i32, ptr %875, align 4, !tbaa !5
  %28116 = call ptr @__errno_location() #12
  store i32 %28115, ptr %28116, align 4, !tbaa !5
  %28117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28118 = load i32, ptr @test_count, align 4, !tbaa !5
  %28119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28120 = load i32, ptr %28119, align 4, !tbaa !5
  %28121 = call ptr @s2n_strerror(i32 noundef %28120, ptr noundef @.str.4)
  %28122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28123 = load i32, ptr %28122, align 4, !tbaa !5
  %28124 = call ptr @s2n_strerror_debug(i32 noundef %28123, ptr noundef @.str.4)
  %28125 = call ptr @__errno_location() #12
  %28126 = load i32, ptr %28125, align 4, !tbaa !5
  %28127 = call ptr @strerror(i32 noundef %28126) #11
  %28128 = call ptr @__errno_location() #12
  %28129 = load i32, ptr %28128, align 4, !tbaa !5
  %28130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28117, ptr noundef @.str.5, i32 noundef %28118, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 1728, ptr noundef %28121, ptr noundef %28124, ptr noundef %28127, i32 noundef %28129) #11
  br label %28131

28131:                                            ; preds = %28114, %28097
  call void @llvm.lifetime.end.p0(i64 4, ptr %875) #11
  br label %28132

28132:                                            ; preds = %28131
  br label %28133

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

28134:                                            ; No predecessors!
  br label %28135

28135:                                            ; preds = %28134
  br label %28136

28136:                                            ; preds = %28135, %28074
  br label %28137

28137:                                            ; preds = %28136
  br label %28138

28138:                                            ; preds = %28137
  call void @llvm.lifetime.start.p0(i64 4, ptr %876) #11
  %28139 = getelementptr inbounds %struct.s2n_stuffer, ptr %873, i32 0, i32 2
  %28140 = load i32, ptr %28139, align 4, !tbaa !15
  %28141 = getelementptr inbounds %struct.s2n_stuffer, ptr %873, i32 0, i32 1
  %28142 = load i32, ptr %28141, align 8, !tbaa !18
  %28143 = sub i32 %28140, %28142
  store i32 %28143, ptr %876, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %877) #11
  %28144 = load i32, ptr %876, align 4, !tbaa !5
  %28145 = call ptr @s2n_stuffer_raw_read(ptr noundef %873, i32 noundef %28144)
  store ptr %28145, ptr %877, align 8, !tbaa !9
  br label %28146

28146:                                            ; preds = %28138
  %28147 = load i32, ptr @test_count, align 4, !tbaa !5
  %28148 = add nsw i32 %28147, 1
  store i32 %28148, ptr @test_count, align 4, !tbaa !5
  %28149 = load ptr, ptr %877, align 8, !tbaa !9
  %28150 = icmp eq ptr %28149, null
  br i1 %28150, label %28151, label %28204

28151:                                            ; preds = %28146
  br label %28152

28152:                                            ; preds = %28151
  br label %28153

28153:                                            ; preds = %28152
  call void @llvm.lifetime.start.p0(i64 4, ptr %878) #11
  %28154 = call ptr @__errno_location() #12
  %28155 = load i32, ptr %28154, align 4, !tbaa !5
  store i32 %28155, ptr %878, align 4, !tbaa !5
  %28156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28157 = call i32 @s2n_print_stacktrace(ptr noundef %28156)
  %28158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28159 = trunc i8 %28158 to i1
  br i1 %28159, label %28160, label %28182

28160:                                            ; preds = %28153
  %28161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28162 = call i32 @fileno(ptr noundef %28161) #11
  %28163 = call i32 @isatty(i32 noundef %28162) #11
  %28164 = icmp ne i32 %28163, 0
  br i1 %28164, label %28165, label %28182

28165:                                            ; preds = %28160
  %28166 = load i32, ptr %878, align 4, !tbaa !5
  %28167 = call ptr @__errno_location() #12
  store i32 %28166, ptr %28167, align 4, !tbaa !5
  %28168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28169 = load i32, ptr @test_count, align 4, !tbaa !5
  %28170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28171 = load i32, ptr %28170, align 4, !tbaa !5
  %28172 = call ptr @s2n_strerror(i32 noundef %28171, ptr noundef @.str.4)
  %28173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28174 = load i32, ptr %28173, align 4, !tbaa !5
  %28175 = call ptr @s2n_strerror_debug(i32 noundef %28174, ptr noundef @.str.4)
  %28176 = call ptr @__errno_location() #12
  %28177 = load i32, ptr %28176, align 4, !tbaa !5
  %28178 = call ptr @strerror(i32 noundef %28177) #11
  %28179 = call ptr @__errno_location() #12
  %28180 = load i32, ptr %28179, align 4, !tbaa !5
  %28181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28168, ptr noundef @.str.2, i32 noundef %28169, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1731, ptr noundef %28172, ptr noundef %28175, ptr noundef %28178, i32 noundef %28180) #11
  br label %28199

28182:                                            ; preds = %28160, %28153
  %28183 = load i32, ptr %878, align 4, !tbaa !5
  %28184 = call ptr @__errno_location() #12
  store i32 %28183, ptr %28184, align 4, !tbaa !5
  %28185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28186 = load i32, ptr @test_count, align 4, !tbaa !5
  %28187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28188 = load i32, ptr %28187, align 4, !tbaa !5
  %28189 = call ptr @s2n_strerror(i32 noundef %28188, ptr noundef @.str.4)
  %28190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28191 = load i32, ptr %28190, align 4, !tbaa !5
  %28192 = call ptr @s2n_strerror_debug(i32 noundef %28191, ptr noundef @.str.4)
  %28193 = call ptr @__errno_location() #12
  %28194 = load i32, ptr %28193, align 4, !tbaa !5
  %28195 = call ptr @strerror(i32 noundef %28194) #11
  %28196 = call ptr @__errno_location() #12
  %28197 = load i32, ptr %28196, align 4, !tbaa !5
  %28198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28185, ptr noundef @.str.5, i32 noundef %28186, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1731, ptr noundef %28189, ptr noundef %28192, ptr noundef %28195, i32 noundef %28197) #11
  br label %28199

28199:                                            ; preds = %28182, %28165
  call void @llvm.lifetime.end.p0(i64 4, ptr %878) #11
  br label %28200

28200:                                            ; preds = %28199
  br label %28201

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

28202:                                            ; No predecessors!
  br label %28203

28203:                                            ; preds = %28202
  br label %28204

28204:                                            ; preds = %28203, %28146
  br label %28205

28205:                                            ; preds = %28204
  br label %28206

28206:                                            ; preds = %28205
  call void @llvm.lifetime.start.p0(i64 48, ptr %879) #11
  br label %28207

28207:                                            ; preds = %28206
  %28208 = load i32, ptr @test_count, align 4, !tbaa !5
  %28209 = add nsw i32 %28208, 1
  store i32 %28209, ptr @test_count, align 4, !tbaa !5
  %28210 = call i32 @s2n_pkey_zero_init(ptr noundef %879)
  %28211 = icmp eq i32 %28210, -1
  br i1 %28211, label %28212, label %28265

28212:                                            ; preds = %28207
  br label %28213

28213:                                            ; preds = %28212
  br label %28214

28214:                                            ; preds = %28213
  call void @llvm.lifetime.start.p0(i64 4, ptr %880) #11
  %28215 = call ptr @__errno_location() #12
  %28216 = load i32, ptr %28215, align 4, !tbaa !5
  store i32 %28216, ptr %880, align 4, !tbaa !5
  %28217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28218 = call i32 @s2n_print_stacktrace(ptr noundef %28217)
  %28219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28220 = trunc i8 %28219 to i1
  br i1 %28220, label %28221, label %28243

28221:                                            ; preds = %28214
  %28222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28223 = call i32 @fileno(ptr noundef %28222) #11
  %28224 = call i32 @isatty(i32 noundef %28223) #11
  %28225 = icmp ne i32 %28224, 0
  br i1 %28225, label %28226, label %28243

28226:                                            ; preds = %28221
  %28227 = load i32, ptr %880, align 4, !tbaa !5
  %28228 = call ptr @__errno_location() #12
  store i32 %28227, ptr %28228, align 4, !tbaa !5
  %28229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28230 = load i32, ptr @test_count, align 4, !tbaa !5
  %28231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28232 = load i32, ptr %28231, align 4, !tbaa !5
  %28233 = call ptr @s2n_strerror(i32 noundef %28232, ptr noundef @.str.4)
  %28234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28235 = load i32, ptr %28234, align 4, !tbaa !5
  %28236 = call ptr @s2n_strerror_debug(i32 noundef %28235, ptr noundef @.str.4)
  %28237 = call ptr @__errno_location() #12
  %28238 = load i32, ptr %28237, align 4, !tbaa !5
  %28239 = call ptr @strerror(i32 noundef %28238) #11
  %28240 = call ptr @__errno_location() #12
  %28241 = load i32, ptr %28240, align 4, !tbaa !5
  %28242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28229, ptr noundef @.str.2, i32 noundef %28230, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1734, ptr noundef %28233, ptr noundef %28236, ptr noundef %28239, i32 noundef %28241) #11
  br label %28260

28243:                                            ; preds = %28221, %28214
  %28244 = load i32, ptr %880, align 4, !tbaa !5
  %28245 = call ptr @__errno_location() #12
  store i32 %28244, ptr %28245, align 4, !tbaa !5
  %28246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28247 = load i32, ptr @test_count, align 4, !tbaa !5
  %28248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28249 = load i32, ptr %28248, align 4, !tbaa !5
  %28250 = call ptr @s2n_strerror(i32 noundef %28249, ptr noundef @.str.4)
  %28251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28252 = load i32, ptr %28251, align 4, !tbaa !5
  %28253 = call ptr @s2n_strerror_debug(i32 noundef %28252, ptr noundef @.str.4)
  %28254 = call ptr @__errno_location() #12
  %28255 = load i32, ptr %28254, align 4, !tbaa !5
  %28256 = call ptr @strerror(i32 noundef %28255) #11
  %28257 = call ptr @__errno_location() #12
  %28258 = load i32, ptr %28257, align 4, !tbaa !5
  %28259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28246, ptr noundef @.str.5, i32 noundef %28247, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1734, ptr noundef %28250, ptr noundef %28253, ptr noundef %28256, i32 noundef %28258) #11
  br label %28260

28260:                                            ; preds = %28243, %28226
  call void @llvm.lifetime.end.p0(i64 4, ptr %880) #11
  br label %28261

28261:                                            ; preds = %28260
  br label %28262

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

28263:                                            ; No predecessors!
  br label %28264

28264:                                            ; preds = %28263
  br label %28265

28265:                                            ; preds = %28264, %28207
  br label %28266

28266:                                            ; preds = %28265
  br label %28267

28267:                                            ; preds = %28266
  call void @llvm.lifetime.start.p0(i64 4, ptr %881) #11
  store i32 -1, ptr %881, align 4, !tbaa !5
  br label %28268

28268:                                            ; preds = %28267
  br label %28269

28269:                                            ; preds = %28268
  br label %28270

28270:                                            ; preds = %28269
  %28271 = load i32, ptr @test_count, align 4, !tbaa !5
  %28272 = add nsw i32 %28271, 1
  store i32 %28272, ptr @test_count, align 4, !tbaa !5
  %28273 = load ptr, ptr %871, align 8, !tbaa !9
  %28274 = load ptr, ptr %877, align 8, !tbaa !9
  %28275 = load i32, ptr %876, align 4, !tbaa !5
  %28276 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %870, ptr noundef %28273, ptr noundef %28274, i32 noundef %28275, ptr noundef %881, ptr noundef %879)
  %28277 = getelementptr inbounds %struct.s2n_result, ptr %882, i32 0, i32 0
  store i32 %28276, ptr %28277, align 4
  %28278 = getelementptr inbounds %struct.s2n_result, ptr %882, i32 0, i32 0
  %28279 = load i32, ptr %28278, align 4
  %28280 = call zeroext i1 @s2n_result_is_error(i32 %28279)
  br i1 %28280, label %28334, label %28281

28281:                                            ; preds = %28270
  br label %28282

28282:                                            ; preds = %28281
  br label %28283

28283:                                            ; preds = %28282
  call void @llvm.lifetime.start.p0(i64 4, ptr %883) #11
  %28284 = call ptr @__errno_location() #12
  %28285 = load i32, ptr %28284, align 4, !tbaa !5
  store i32 %28285, ptr %883, align 4, !tbaa !5
  %28286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28287 = call i32 @s2n_print_stacktrace(ptr noundef %28286)
  %28288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28289 = trunc i8 %28288 to i1
  br i1 %28289, label %28290, label %28312

28290:                                            ; preds = %28283
  %28291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28292 = call i32 @fileno(ptr noundef %28291) #11
  %28293 = call i32 @isatty(i32 noundef %28292) #11
  %28294 = icmp ne i32 %28293, 0
  br i1 %28294, label %28295, label %28312

28295:                                            ; preds = %28290
  %28296 = load i32, ptr %883, align 4, !tbaa !5
  %28297 = call ptr @__errno_location() #12
  store i32 %28296, ptr %28297, align 4, !tbaa !5
  %28298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28299 = load i32, ptr @test_count, align 4, !tbaa !5
  %28300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28301 = load i32, ptr %28300, align 4, !tbaa !5
  %28302 = call ptr @s2n_strerror(i32 noundef %28301, ptr noundef @.str.4)
  %28303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28304 = load i32, ptr %28303, align 4, !tbaa !5
  %28305 = call ptr @s2n_strerror_debug(i32 noundef %28304, ptr noundef @.str.4)
  %28306 = call ptr @__errno_location() #12
  %28307 = load i32, ptr %28306, align 4, !tbaa !5
  %28308 = call ptr @strerror(i32 noundef %28307) #11
  %28309 = call ptr @__errno_location() #12
  %28310 = load i32, ptr %28309, align 4, !tbaa !5
  %28311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28298, ptr noundef @.str.2, i32 noundef %28299, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1738, ptr noundef %28302, ptr noundef %28305, ptr noundef %28308, i32 noundef %28310) #11
  br label %28329

28312:                                            ; preds = %28290, %28283
  %28313 = load i32, ptr %883, align 4, !tbaa !5
  %28314 = call ptr @__errno_location() #12
  store i32 %28313, ptr %28314, align 4, !tbaa !5
  %28315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28316 = load i32, ptr @test_count, align 4, !tbaa !5
  %28317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28318 = load i32, ptr %28317, align 4, !tbaa !5
  %28319 = call ptr @s2n_strerror(i32 noundef %28318, ptr noundef @.str.4)
  %28320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28321 = load i32, ptr %28320, align 4, !tbaa !5
  %28322 = call ptr @s2n_strerror_debug(i32 noundef %28321, ptr noundef @.str.4)
  %28323 = call ptr @__errno_location() #12
  %28324 = load i32, ptr %28323, align 4, !tbaa !5
  %28325 = call ptr @strerror(i32 noundef %28324) #11
  %28326 = call ptr @__errno_location() #12
  %28327 = load i32, ptr %28326, align 4, !tbaa !5
  %28328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28315, ptr noundef @.str.5, i32 noundef %28316, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1738, ptr noundef %28319, ptr noundef %28322, ptr noundef %28325, i32 noundef %28327) #11
  br label %28329

28329:                                            ; preds = %28312, %28295
  call void @llvm.lifetime.end.p0(i64 4, ptr %883) #11
  br label %28330

28330:                                            ; preds = %28329
  br label %28331

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

28332:                                            ; No predecessors!
  br label %28333

28333:                                            ; preds = %28332
  br label %28334

28334:                                            ; preds = %28333, %28270
  br label %28335

28335:                                            ; preds = %28334
  br label %28336

28336:                                            ; preds = %28335
  br label %28337

28337:                                            ; preds = %28336
  %28338 = load i32, ptr @test_count, align 4, !tbaa !5
  %28339 = add nsw i32 %28338, 1
  store i32 %28339, ptr @test_count, align 4, !tbaa !5
  %28340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28341 = load i32, ptr %28340, align 4, !tbaa !5
  %28342 = icmp eq i32 %28341, 335544366
  br i1 %28342, label %28396, label %28343

28343:                                            ; preds = %28337
  br label %28344

28344:                                            ; preds = %28343
  br label %28345

28345:                                            ; preds = %28344
  call void @llvm.lifetime.start.p0(i64 4, ptr %884) #11
  %28346 = call ptr @__errno_location() #12
  %28347 = load i32, ptr %28346, align 4, !tbaa !5
  store i32 %28347, ptr %884, align 4, !tbaa !5
  %28348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28349 = call i32 @s2n_print_stacktrace(ptr noundef %28348)
  %28350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28351 = trunc i8 %28350 to i1
  br i1 %28351, label %28352, label %28374

28352:                                            ; preds = %28345
  %28353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28354 = call i32 @fileno(ptr noundef %28353) #11
  %28355 = call i32 @isatty(i32 noundef %28354) #11
  %28356 = icmp ne i32 %28355, 0
  br i1 %28356, label %28357, label %28374

28357:                                            ; preds = %28352
  %28358 = load i32, ptr %884, align 4, !tbaa !5
  %28359 = call ptr @__errno_location() #12
  store i32 %28358, ptr %28359, align 4, !tbaa !5
  %28360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28361 = load i32, ptr @test_count, align 4, !tbaa !5
  %28362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28363 = load i32, ptr %28362, align 4, !tbaa !5
  %28364 = call ptr @s2n_strerror(i32 noundef %28363, ptr noundef @.str.4)
  %28365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28366 = load i32, ptr %28365, align 4, !tbaa !5
  %28367 = call ptr @s2n_strerror_debug(i32 noundef %28366, ptr noundef @.str.4)
  %28368 = call ptr @__errno_location() #12
  %28369 = load i32, ptr %28368, align 4, !tbaa !5
  %28370 = call ptr @strerror(i32 noundef %28369) #11
  %28371 = call ptr @__errno_location() #12
  %28372 = load i32, ptr %28371, align 4, !tbaa !5
  %28373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28360, ptr noundef @.str.2, i32 noundef %28361, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1738, ptr noundef %28364, ptr noundef %28367, ptr noundef %28370, i32 noundef %28372) #11
  br label %28391

28374:                                            ; preds = %28352, %28345
  %28375 = load i32, ptr %884, align 4, !tbaa !5
  %28376 = call ptr @__errno_location() #12
  store i32 %28375, ptr %28376, align 4, !tbaa !5
  %28377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28378 = load i32, ptr @test_count, align 4, !tbaa !5
  %28379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28380 = load i32, ptr %28379, align 4, !tbaa !5
  %28381 = call ptr @s2n_strerror(i32 noundef %28380, ptr noundef @.str.4)
  %28382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28383 = load i32, ptr %28382, align 4, !tbaa !5
  %28384 = call ptr @s2n_strerror_debug(i32 noundef %28383, ptr noundef @.str.4)
  %28385 = call ptr @__errno_location() #12
  %28386 = load i32, ptr %28385, align 4, !tbaa !5
  %28387 = call ptr @strerror(i32 noundef %28386) #11
  %28388 = call ptr @__errno_location() #12
  %28389 = load i32, ptr %28388, align 4, !tbaa !5
  %28390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28377, ptr noundef @.str.5, i32 noundef %28378, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1738, ptr noundef %28381, ptr noundef %28384, ptr noundef %28387, i32 noundef %28389) #11
  br label %28391

28391:                                            ; preds = %28374, %28357
  call void @llvm.lifetime.end.p0(i64 4, ptr %884) #11
  br label %28392

28392:                                            ; preds = %28391
  br label %28393

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

28394:                                            ; No predecessors!
  br label %28395

28395:                                            ; preds = %28394
  br label %28396

28396:                                            ; preds = %28395, %28337
  br label %28397

28397:                                            ; preds = %28396
  br label %28398

28398:                                            ; preds = %28397
  br label %28399

28399:                                            ; preds = %28398
  %28400 = load i32, ptr @test_count, align 4, !tbaa !5
  %28401 = add nsw i32 %28400, 1
  store i32 %28401, ptr @test_count, align 4, !tbaa !5
  %28402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28403 = load i32, ptr %28402, align 4, !tbaa !5
  %28404 = call ptr @s2n_strerror_debug(i32 noundef %28403, ptr noundef @.str.4)
  %28405 = icmp eq ptr %28404, null
  br i1 %28405, label %28406, label %28459

28406:                                            ; preds = %28399
  br label %28407

28407:                                            ; preds = %28406
  br label %28408

28408:                                            ; preds = %28407
  call void @llvm.lifetime.start.p0(i64 4, ptr %885) #11
  %28409 = call ptr @__errno_location() #12
  %28410 = load i32, ptr %28409, align 4, !tbaa !5
  store i32 %28410, ptr %885, align 4, !tbaa !5
  %28411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28412 = call i32 @s2n_print_stacktrace(ptr noundef %28411)
  %28413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28414 = trunc i8 %28413 to i1
  br i1 %28414, label %28415, label %28437

28415:                                            ; preds = %28408
  %28416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28417 = call i32 @fileno(ptr noundef %28416) #11
  %28418 = call i32 @isatty(i32 noundef %28417) #11
  %28419 = icmp ne i32 %28418, 0
  br i1 %28419, label %28420, label %28437

28420:                                            ; preds = %28415
  %28421 = load i32, ptr %885, align 4, !tbaa !5
  %28422 = call ptr @__errno_location() #12
  store i32 %28421, ptr %28422, align 4, !tbaa !5
  %28423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28424 = load i32, ptr @test_count, align 4, !tbaa !5
  %28425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28426 = load i32, ptr %28425, align 4, !tbaa !5
  %28427 = call ptr @s2n_strerror(i32 noundef %28426, ptr noundef @.str.4)
  %28428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28429 = load i32, ptr %28428, align 4, !tbaa !5
  %28430 = call ptr @s2n_strerror_debug(i32 noundef %28429, ptr noundef @.str.4)
  %28431 = call ptr @__errno_location() #12
  %28432 = load i32, ptr %28431, align 4, !tbaa !5
  %28433 = call ptr @strerror(i32 noundef %28432) #11
  %28434 = call ptr @__errno_location() #12
  %28435 = load i32, ptr %28434, align 4, !tbaa !5
  %28436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28423, ptr noundef @.str.2, i32 noundef %28424, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1738, ptr noundef %28427, ptr noundef %28430, ptr noundef %28433, i32 noundef %28435) #11
  br label %28454

28437:                                            ; preds = %28415, %28408
  %28438 = load i32, ptr %885, align 4, !tbaa !5
  %28439 = call ptr @__errno_location() #12
  store i32 %28438, ptr %28439, align 4, !tbaa !5
  %28440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28441 = load i32, ptr @test_count, align 4, !tbaa !5
  %28442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28443 = load i32, ptr %28442, align 4, !tbaa !5
  %28444 = call ptr @s2n_strerror(i32 noundef %28443, ptr noundef @.str.4)
  %28445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28446 = load i32, ptr %28445, align 4, !tbaa !5
  %28447 = call ptr @s2n_strerror_debug(i32 noundef %28446, ptr noundef @.str.4)
  %28448 = call ptr @__errno_location() #12
  %28449 = load i32, ptr %28448, align 4, !tbaa !5
  %28450 = call ptr @strerror(i32 noundef %28449) #11
  %28451 = call ptr @__errno_location() #12
  %28452 = load i32, ptr %28451, align 4, !tbaa !5
  %28453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28440, ptr noundef @.str.5, i32 noundef %28441, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1738, ptr noundef %28444, ptr noundef %28447, ptr noundef %28450, i32 noundef %28452) #11
  br label %28454

28454:                                            ; preds = %28437, %28420
  call void @llvm.lifetime.end.p0(i64 4, ptr %885) #11
  br label %28455

28455:                                            ; preds = %28454
  br label %28456

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

28457:                                            ; No predecessors!
  br label %28458

28458:                                            ; preds = %28457
  br label %28459

28459:                                            ; preds = %28458, %28399
  br label %28460

28460:                                            ; preds = %28459
  br label %28461

28461:                                            ; preds = %28460
  br label %28462

28462:                                            ; preds = %28461
  br label %28463

28463:                                            ; preds = %28462
  br label %28464

28464:                                            ; preds = %28463
  %28465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %28465, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %28466 = call ptr @__errno_location() #12
  store i32 0, ptr %28466, align 4, !tbaa !5
  br label %28467

28467:                                            ; preds = %28464
  br label %28468

28468:                                            ; preds = %28467
  br label %28469

28469:                                            ; preds = %28468
  br label %28470

28470:                                            ; preds = %28469
  br label %28471

28471:                                            ; preds = %28470
  %28472 = load i32, ptr @test_count, align 4, !tbaa !5
  %28473 = add nsw i32 %28472, 1
  store i32 %28473, ptr @test_count, align 4, !tbaa !5
  %28474 = load i32, ptr %881, align 4, !tbaa !5
  %28475 = icmp eq i32 -1, %28474
  br i1 %28475, label %28529, label %28476

28476:                                            ; preds = %28471
  br label %28477

28477:                                            ; preds = %28476
  br label %28478

28478:                                            ; preds = %28477
  call void @llvm.lifetime.start.p0(i64 4, ptr %886) #11
  %28479 = call ptr @__errno_location() #12
  %28480 = load i32, ptr %28479, align 4, !tbaa !5
  store i32 %28480, ptr %886, align 4, !tbaa !5
  %28481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28482 = call i32 @s2n_print_stacktrace(ptr noundef %28481)
  %28483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28484 = trunc i8 %28483 to i1
  br i1 %28484, label %28485, label %28507

28485:                                            ; preds = %28478
  %28486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28487 = call i32 @fileno(ptr noundef %28486) #11
  %28488 = call i32 @isatty(i32 noundef %28487) #11
  %28489 = icmp ne i32 %28488, 0
  br i1 %28489, label %28490, label %28507

28490:                                            ; preds = %28485
  %28491 = load i32, ptr %886, align 4, !tbaa !5
  %28492 = call ptr @__errno_location() #12
  store i32 %28491, ptr %28492, align 4, !tbaa !5
  %28493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28494 = load i32, ptr @test_count, align 4, !tbaa !5
  %28495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28496 = load i32, ptr %28495, align 4, !tbaa !5
  %28497 = call ptr @s2n_strerror(i32 noundef %28496, ptr noundef @.str.4)
  %28498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28499 = load i32, ptr %28498, align 4, !tbaa !5
  %28500 = call ptr @s2n_strerror_debug(i32 noundef %28499, ptr noundef @.str.4)
  %28501 = call ptr @__errno_location() #12
  %28502 = load i32, ptr %28501, align 4, !tbaa !5
  %28503 = call ptr @strerror(i32 noundef %28502) #11
  %28504 = call ptr @__errno_location() #12
  %28505 = load i32, ptr %28504, align 4, !tbaa !5
  %28506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28493, ptr noundef @.str.2, i32 noundef %28494, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 1740, ptr noundef %28497, ptr noundef %28500, ptr noundef %28503, i32 noundef %28505) #11
  br label %28524

28507:                                            ; preds = %28485, %28478
  %28508 = load i32, ptr %886, align 4, !tbaa !5
  %28509 = call ptr @__errno_location() #12
  store i32 %28508, ptr %28509, align 4, !tbaa !5
  %28510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28511 = load i32, ptr @test_count, align 4, !tbaa !5
  %28512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28513 = load i32, ptr %28512, align 4, !tbaa !5
  %28514 = call ptr @s2n_strerror(i32 noundef %28513, ptr noundef @.str.4)
  %28515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28516 = load i32, ptr %28515, align 4, !tbaa !5
  %28517 = call ptr @s2n_strerror_debug(i32 noundef %28516, ptr noundef @.str.4)
  %28518 = call ptr @__errno_location() #12
  %28519 = load i32, ptr %28518, align 4, !tbaa !5
  %28520 = call ptr @strerror(i32 noundef %28519) #11
  %28521 = call ptr @__errno_location() #12
  %28522 = load i32, ptr %28521, align 4, !tbaa !5
  %28523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28510, ptr noundef @.str.5, i32 noundef %28511, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 1740, ptr noundef %28514, ptr noundef %28517, ptr noundef %28520, i32 noundef %28522) #11
  br label %28524

28524:                                            ; preds = %28507, %28490
  call void @llvm.lifetime.end.p0(i64 4, ptr %886) #11
  br label %28525

28525:                                            ; preds = %28524
  br label %28526

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

28527:                                            ; No predecessors!
  br label %28528

28528:                                            ; preds = %28527
  br label %28529

28529:                                            ; preds = %28528, %28471
  br label %28530

28530:                                            ; preds = %28529
  br label %28531

28531:                                            ; preds = %28530
  %28532 = load ptr, ptr %871, align 8, !tbaa !9
  %28533 = call i32 @s2n_connection_free(ptr noundef %28532)
  %28534 = call i32 @s2n_pkey_free(ptr noundef %879)
  %28535 = call i32 @s2n_x509_validator_wipe(ptr noundef %870)
  call void @s2n_x509_trust_store_wipe(ptr noundef %868)
  call void @llvm.lifetime.end.p0(i64 4, ptr %881) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %879) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %877) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %876) #11
  %28536 = call i32 @s2n_stuffer_free(ptr noundef %873)
  call void @llvm.lifetime.end.p0(i64 40, ptr %873) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %871) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %870) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %868) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %887) #11
  %28537 = call ptr @s2n_config_new()
  store ptr %28537, ptr %887, align 8, !tbaa !9
  %28538 = load ptr, ptr %887, align 8, !tbaa !9
  %28539 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %28538, ptr noundef @.str.112)
  %28540 = load ptr, ptr %887, align 8, !tbaa !9
  %28541 = call i32 @s2n_config_free(ptr noundef %28540)
  call void @llvm.lifetime.end.p0(i64 8, ptr %887) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %888) #11
  %28542 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %888)
  call void @llvm.lifetime.start.p0(i64 8, ptr %889) #11
  %28543 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %28543, ptr %889, align 8, !tbaa !9
  br label %28544

28544:                                            ; preds = %28531
  %28545 = load i32, ptr @test_count, align 4, !tbaa !5
  %28546 = add nsw i32 %28545, 1
  store i32 %28546, ptr @test_count, align 4, !tbaa !5
  %28547 = load ptr, ptr %889, align 8, !tbaa !9
  %28548 = icmp eq ptr %28547, null
  br i1 %28548, label %28549, label %28602

28549:                                            ; preds = %28544
  br label %28550

28550:                                            ; preds = %28549
  br label %28551

28551:                                            ; preds = %28550
  call void @llvm.lifetime.start.p0(i64 4, ptr %890) #11
  %28552 = call ptr @__errno_location() #12
  %28553 = load i32, ptr %28552, align 4, !tbaa !5
  store i32 %28553, ptr %890, align 4, !tbaa !5
  %28554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28555 = call i32 @s2n_print_stacktrace(ptr noundef %28554)
  %28556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28557 = trunc i8 %28556 to i1
  br i1 %28557, label %28558, label %28580

28558:                                            ; preds = %28551
  %28559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28560 = call i32 @fileno(ptr noundef %28559) #11
  %28561 = call i32 @isatty(i32 noundef %28560) #11
  %28562 = icmp ne i32 %28561, 0
  br i1 %28562, label %28563, label %28580

28563:                                            ; preds = %28558
  %28564 = load i32, ptr %890, align 4, !tbaa !5
  %28565 = call ptr @__errno_location() #12
  store i32 %28564, ptr %28565, align 4, !tbaa !5
  %28566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28567 = load i32, ptr @test_count, align 4, !tbaa !5
  %28568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28569 = load i32, ptr %28568, align 4, !tbaa !5
  %28570 = call ptr @s2n_strerror(i32 noundef %28569, ptr noundef @.str.4)
  %28571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28572 = load i32, ptr %28571, align 4, !tbaa !5
  %28573 = call ptr @s2n_strerror_debug(i32 noundef %28572, ptr noundef @.str.4)
  %28574 = call ptr @__errno_location() #12
  %28575 = load i32, ptr %28574, align 4, !tbaa !5
  %28576 = call ptr @strerror(i32 noundef %28575) #11
  %28577 = call ptr @__errno_location() #12
  %28578 = load i32, ptr %28577, align 4, !tbaa !5
  %28579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28566, ptr noundef @.str.2, i32 noundef %28567, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1761, ptr noundef %28570, ptr noundef %28573, ptr noundef %28576, i32 noundef %28578) #11
  br label %28597

28580:                                            ; preds = %28558, %28551
  %28581 = load i32, ptr %890, align 4, !tbaa !5
  %28582 = call ptr @__errno_location() #12
  store i32 %28581, ptr %28582, align 4, !tbaa !5
  %28583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28584 = load i32, ptr @test_count, align 4, !tbaa !5
  %28585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28586 = load i32, ptr %28585, align 4, !tbaa !5
  %28587 = call ptr @s2n_strerror(i32 noundef %28586, ptr noundef @.str.4)
  %28588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28589 = load i32, ptr %28588, align 4, !tbaa !5
  %28590 = call ptr @s2n_strerror_debug(i32 noundef %28589, ptr noundef @.str.4)
  %28591 = call ptr @__errno_location() #12
  %28592 = load i32, ptr %28591, align 4, !tbaa !5
  %28593 = call ptr @strerror(i32 noundef %28592) #11
  %28594 = call ptr @__errno_location() #12
  %28595 = load i32, ptr %28594, align 4, !tbaa !5
  %28596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28583, ptr noundef @.str.5, i32 noundef %28584, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1761, ptr noundef %28587, ptr noundef %28590, ptr noundef %28593, i32 noundef %28595) #11
  br label %28597

28597:                                            ; preds = %28580, %28563
  call void @llvm.lifetime.end.p0(i64 4, ptr %890) #11
  br label %28598

28598:                                            ; preds = %28597
  br label %28599

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

28600:                                            ; No predecessors!
  br label %28601

28601:                                            ; preds = %28600
  br label %28602

28602:                                            ; preds = %28601, %28544
  br label %28603

28603:                                            ; preds = %28602
  br label %28604

28604:                                            ; preds = %28603
  call void @llvm.lifetime.start.p0(i64 40, ptr %891) #11
  call void @llvm.memset.p0.i64(ptr align 8 %891, i8 0, i64 40, i1 false)
  br label %28605

28605:                                            ; preds = %28604
  %28606 = load i32, ptr @test_count, align 4, !tbaa !5
  %28607 = add nsw i32 %28606, 1
  store i32 %28607, ptr @test_count, align 4, !tbaa !5
  %28608 = call i32 @read_file(ptr noundef %891, ptr noundef @.str.115, i32 noundef 12000)
  %28609 = icmp eq i32 %28608, -1
  br i1 %28609, label %28610, label %28663

28610:                                            ; preds = %28605
  br label %28611

28611:                                            ; preds = %28610
  br label %28612

28612:                                            ; preds = %28611
  call void @llvm.lifetime.start.p0(i64 4, ptr %892) #11
  %28613 = call ptr @__errno_location() #12
  %28614 = load i32, ptr %28613, align 4, !tbaa !5
  store i32 %28614, ptr %892, align 4, !tbaa !5
  %28615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28616 = call i32 @s2n_print_stacktrace(ptr noundef %28615)
  %28617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28618 = trunc i8 %28617 to i1
  br i1 %28618, label %28619, label %28641

28619:                                            ; preds = %28612
  %28620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28621 = call i32 @fileno(ptr noundef %28620) #11
  %28622 = call i32 @isatty(i32 noundef %28621) #11
  %28623 = icmp ne i32 %28622, 0
  br i1 %28623, label %28624, label %28641

28624:                                            ; preds = %28619
  %28625 = load i32, ptr %892, align 4, !tbaa !5
  %28626 = call ptr @__errno_location() #12
  store i32 %28625, ptr %28626, align 4, !tbaa !5
  %28627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28628 = load i32, ptr @test_count, align 4, !tbaa !5
  %28629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28630 = load i32, ptr %28629, align 4, !tbaa !5
  %28631 = call ptr @s2n_strerror(i32 noundef %28630, ptr noundef @.str.4)
  %28632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28633 = load i32, ptr %28632, align 4, !tbaa !5
  %28634 = call ptr @s2n_strerror_debug(i32 noundef %28633, ptr noundef @.str.4)
  %28635 = call ptr @__errno_location() #12
  %28636 = load i32, ptr %28635, align 4, !tbaa !5
  %28637 = call ptr @strerror(i32 noundef %28636) #11
  %28638 = call ptr @__errno_location() #12
  %28639 = load i32, ptr %28638, align 4, !tbaa !5
  %28640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28627, ptr noundef @.str.2, i32 noundef %28628, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 1764, ptr noundef %28631, ptr noundef %28634, ptr noundef %28637, i32 noundef %28639) #11
  br label %28658

28641:                                            ; preds = %28619, %28612
  %28642 = load i32, ptr %892, align 4, !tbaa !5
  %28643 = call ptr @__errno_location() #12
  store i32 %28642, ptr %28643, align 4, !tbaa !5
  %28644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28645 = load i32, ptr @test_count, align 4, !tbaa !5
  %28646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28647 = load i32, ptr %28646, align 4, !tbaa !5
  %28648 = call ptr @s2n_strerror(i32 noundef %28647, ptr noundef @.str.4)
  %28649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28650 = load i32, ptr %28649, align 4, !tbaa !5
  %28651 = call ptr @s2n_strerror_debug(i32 noundef %28650, ptr noundef @.str.4)
  %28652 = call ptr @__errno_location() #12
  %28653 = load i32, ptr %28652, align 4, !tbaa !5
  %28654 = call ptr @strerror(i32 noundef %28653) #11
  %28655 = call ptr @__errno_location() #12
  %28656 = load i32, ptr %28655, align 4, !tbaa !5
  %28657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28644, ptr noundef @.str.5, i32 noundef %28645, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 1764, ptr noundef %28648, ptr noundef %28651, ptr noundef %28654, i32 noundef %28656) #11
  br label %28658

28658:                                            ; preds = %28641, %28624
  call void @llvm.lifetime.end.p0(i64 4, ptr %892) #11
  br label %28659

28659:                                            ; preds = %28658
  br label %28660

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

28661:                                            ; No predecessors!
  br label %28662

28662:                                            ; preds = %28661
  br label %28663

28663:                                            ; preds = %28662, %28605
  br label %28664

28664:                                            ; preds = %28663
  br label %28665

28665:                                            ; preds = %28664
  call void @llvm.lifetime.start.p0(i64 4, ptr %893) #11
  %28666 = getelementptr inbounds %struct.s2n_stuffer, ptr %891, i32 0, i32 2
  %28667 = load i32, ptr %28666, align 4, !tbaa !15
  %28668 = getelementptr inbounds %struct.s2n_stuffer, ptr %891, i32 0, i32 1
  %28669 = load i32, ptr %28668, align 8, !tbaa !18
  %28670 = sub i32 %28667, %28669
  store i32 %28670, ptr %893, align 4, !tbaa !5
  br label %28671

28671:                                            ; preds = %28665
  %28672 = load i32, ptr @test_count, align 4, !tbaa !5
  %28673 = add nsw i32 %28672, 1
  store i32 %28673, ptr @test_count, align 4, !tbaa !5
  %28674 = load i32, ptr %893, align 4, !tbaa !5
  %28675 = icmp ugt i32 %28674, 0
  br i1 %28675, label %28729, label %28676

28676:                                            ; preds = %28671
  br label %28677

28677:                                            ; preds = %28676
  br label %28678

28678:                                            ; preds = %28677
  call void @llvm.lifetime.start.p0(i64 4, ptr %894) #11
  %28679 = call ptr @__errno_location() #12
  %28680 = load i32, ptr %28679, align 4, !tbaa !5
  store i32 %28680, ptr %894, align 4, !tbaa !5
  %28681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28682 = call i32 @s2n_print_stacktrace(ptr noundef %28681)
  %28683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28684 = trunc i8 %28683 to i1
  br i1 %28684, label %28685, label %28707

28685:                                            ; preds = %28678
  %28686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28687 = call i32 @fileno(ptr noundef %28686) #11
  %28688 = call i32 @isatty(i32 noundef %28687) #11
  %28689 = icmp ne i32 %28688, 0
  br i1 %28689, label %28690, label %28707

28690:                                            ; preds = %28685
  %28691 = load i32, ptr %894, align 4, !tbaa !5
  %28692 = call ptr @__errno_location() #12
  store i32 %28691, ptr %28692, align 4, !tbaa !5
  %28693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28694 = load i32, ptr @test_count, align 4, !tbaa !5
  %28695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28696 = load i32, ptr %28695, align 4, !tbaa !5
  %28697 = call ptr @s2n_strerror(i32 noundef %28696, ptr noundef @.str.4)
  %28698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28699 = load i32, ptr %28698, align 4, !tbaa !5
  %28700 = call ptr @s2n_strerror_debug(i32 noundef %28699, ptr noundef @.str.4)
  %28701 = call ptr @__errno_location() #12
  %28702 = load i32, ptr %28701, align 4, !tbaa !5
  %28703 = call ptr @strerror(i32 noundef %28702) #11
  %28704 = call ptr @__errno_location() #12
  %28705 = load i32, ptr %28704, align 4, !tbaa !5
  %28706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28693, ptr noundef @.str.2, i32 noundef %28694, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1766, ptr noundef %28697, ptr noundef %28700, ptr noundef %28703, i32 noundef %28705) #11
  br label %28724

28707:                                            ; preds = %28685, %28678
  %28708 = load i32, ptr %894, align 4, !tbaa !5
  %28709 = call ptr @__errno_location() #12
  store i32 %28708, ptr %28709, align 4, !tbaa !5
  %28710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28711 = load i32, ptr @test_count, align 4, !tbaa !5
  %28712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28713 = load i32, ptr %28712, align 4, !tbaa !5
  %28714 = call ptr @s2n_strerror(i32 noundef %28713, ptr noundef @.str.4)
  %28715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28716 = load i32, ptr %28715, align 4, !tbaa !5
  %28717 = call ptr @s2n_strerror_debug(i32 noundef %28716, ptr noundef @.str.4)
  %28718 = call ptr @__errno_location() #12
  %28719 = load i32, ptr %28718, align 4, !tbaa !5
  %28720 = call ptr @strerror(i32 noundef %28719) #11
  %28721 = call ptr @__errno_location() #12
  %28722 = load i32, ptr %28721, align 4, !tbaa !5
  %28723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28710, ptr noundef @.str.5, i32 noundef %28711, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1766, ptr noundef %28714, ptr noundef %28717, ptr noundef %28720, i32 noundef %28722) #11
  br label %28724

28724:                                            ; preds = %28707, %28690
  call void @llvm.lifetime.end.p0(i64 4, ptr %894) #11
  br label %28725

28725:                                            ; preds = %28724
  br label %28726

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

28727:                                            ; No predecessors!
  br label %28728

28728:                                            ; preds = %28727
  br label %28729

28729:                                            ; preds = %28728, %28671
  br label %28730

28730:                                            ; preds = %28729
  br label %28731

28731:                                            ; preds = %28730
  call void @llvm.lifetime.start.p0(i64 8, ptr %895) #11
  %28732 = load i32, ptr %893, align 4, !tbaa !5
  %28733 = call ptr @s2n_stuffer_raw_read(ptr noundef %891, i32 noundef %28732)
  store ptr %28733, ptr %895, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %896) #11
  br label %28734

28734:                                            ; preds = %28731
  %28735 = load i32, ptr @test_count, align 4, !tbaa !5
  %28736 = add nsw i32 %28735, 1
  store i32 %28736, ptr @test_count, align 4, !tbaa !5
  %28737 = call i32 @s2n_pkey_zero_init(ptr noundef %896)
  %28738 = icmp eq i32 %28737, -1
  br i1 %28738, label %28739, label %28792

28739:                                            ; preds = %28734
  br label %28740

28740:                                            ; preds = %28739
  br label %28741

28741:                                            ; preds = %28740
  call void @llvm.lifetime.start.p0(i64 4, ptr %897) #11
  %28742 = call ptr @__errno_location() #12
  %28743 = load i32, ptr %28742, align 4, !tbaa !5
  store i32 %28743, ptr %897, align 4, !tbaa !5
  %28744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28745 = call i32 @s2n_print_stacktrace(ptr noundef %28744)
  %28746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28747 = trunc i8 %28746 to i1
  br i1 %28747, label %28748, label %28770

28748:                                            ; preds = %28741
  %28749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28750 = call i32 @fileno(ptr noundef %28749) #11
  %28751 = call i32 @isatty(i32 noundef %28750) #11
  %28752 = icmp ne i32 %28751, 0
  br i1 %28752, label %28753, label %28770

28753:                                            ; preds = %28748
  %28754 = load i32, ptr %897, align 4, !tbaa !5
  %28755 = call ptr @__errno_location() #12
  store i32 %28754, ptr %28755, align 4, !tbaa !5
  %28756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28757 = load i32, ptr @test_count, align 4, !tbaa !5
  %28758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28759 = load i32, ptr %28758, align 4, !tbaa !5
  %28760 = call ptr @s2n_strerror(i32 noundef %28759, ptr noundef @.str.4)
  %28761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28762 = load i32, ptr %28761, align 4, !tbaa !5
  %28763 = call ptr @s2n_strerror_debug(i32 noundef %28762, ptr noundef @.str.4)
  %28764 = call ptr @__errno_location() #12
  %28765 = load i32, ptr %28764, align 4, !tbaa !5
  %28766 = call ptr @strerror(i32 noundef %28765) #11
  %28767 = call ptr @__errno_location() #12
  %28768 = load i32, ptr %28767, align 4, !tbaa !5
  %28769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28756, ptr noundef @.str.2, i32 noundef %28757, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1770, ptr noundef %28760, ptr noundef %28763, ptr noundef %28766, i32 noundef %28768) #11
  br label %28787

28770:                                            ; preds = %28748, %28741
  %28771 = load i32, ptr %897, align 4, !tbaa !5
  %28772 = call ptr @__errno_location() #12
  store i32 %28771, ptr %28772, align 4, !tbaa !5
  %28773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28774 = load i32, ptr @test_count, align 4, !tbaa !5
  %28775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28776 = load i32, ptr %28775, align 4, !tbaa !5
  %28777 = call ptr @s2n_strerror(i32 noundef %28776, ptr noundef @.str.4)
  %28778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28779 = load i32, ptr %28778, align 4, !tbaa !5
  %28780 = call ptr @s2n_strerror_debug(i32 noundef %28779, ptr noundef @.str.4)
  %28781 = call ptr @__errno_location() #12
  %28782 = load i32, ptr %28781, align 4, !tbaa !5
  %28783 = call ptr @strerror(i32 noundef %28782) #11
  %28784 = call ptr @__errno_location() #12
  %28785 = load i32, ptr %28784, align 4, !tbaa !5
  %28786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28773, ptr noundef @.str.5, i32 noundef %28774, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1770, ptr noundef %28777, ptr noundef %28780, ptr noundef %28783, i32 noundef %28785) #11
  br label %28787

28787:                                            ; preds = %28770, %28753
  call void @llvm.lifetime.end.p0(i64 4, ptr %897) #11
  br label %28788

28788:                                            ; preds = %28787
  br label %28789

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

28790:                                            ; No predecessors!
  br label %28791

28791:                                            ; preds = %28790
  br label %28792

28792:                                            ; preds = %28791, %28734
  br label %28793

28793:                                            ; preds = %28792
  br label %28794

28794:                                            ; preds = %28793
  call void @llvm.lifetime.start.p0(i64 4, ptr %898) #11
  store i32 -1, ptr %898, align 4, !tbaa !5
  br label %28795

28795:                                            ; preds = %28794
  %28796 = load i32, ptr @test_count, align 4, !tbaa !5
  %28797 = add nsw i32 %28796, 1
  store i32 %28797, ptr @test_count, align 4, !tbaa !5
  %28798 = load ptr, ptr %889, align 8, !tbaa !9
  %28799 = load ptr, ptr %895, align 8, !tbaa !9
  %28800 = load i32, ptr %893, align 4, !tbaa !5
  %28801 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %888, ptr noundef %28798, ptr noundef %28799, i32 noundef %28800, ptr noundef %898, ptr noundef %896)
  %28802 = getelementptr inbounds %struct.s2n_result, ptr %899, i32 0, i32 0
  store i32 %28801, ptr %28802, align 4
  %28803 = getelementptr inbounds %struct.s2n_result, ptr %899, i32 0, i32 0
  %28804 = load i32, ptr %28803, align 4
  %28805 = call zeroext i1 @s2n_result_is_ok(i32 %28804)
  br i1 %28805, label %28859, label %28806

28806:                                            ; preds = %28795
  br label %28807

28807:                                            ; preds = %28806
  br label %28808

28808:                                            ; preds = %28807
  call void @llvm.lifetime.start.p0(i64 4, ptr %900) #11
  %28809 = call ptr @__errno_location() #12
  %28810 = load i32, ptr %28809, align 4, !tbaa !5
  store i32 %28810, ptr %900, align 4, !tbaa !5
  %28811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28812 = call i32 @s2n_print_stacktrace(ptr noundef %28811)
  %28813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28814 = trunc i8 %28813 to i1
  br i1 %28814, label %28815, label %28837

28815:                                            ; preds = %28808
  %28816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28817 = call i32 @fileno(ptr noundef %28816) #11
  %28818 = call i32 @isatty(i32 noundef %28817) #11
  %28819 = icmp ne i32 %28818, 0
  br i1 %28819, label %28820, label %28837

28820:                                            ; preds = %28815
  %28821 = load i32, ptr %900, align 4, !tbaa !5
  %28822 = call ptr @__errno_location() #12
  store i32 %28821, ptr %28822, align 4, !tbaa !5
  %28823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28824 = load i32, ptr @test_count, align 4, !tbaa !5
  %28825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28826 = load i32, ptr %28825, align 4, !tbaa !5
  %28827 = call ptr @s2n_strerror(i32 noundef %28826, ptr noundef @.str.4)
  %28828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28829 = load i32, ptr %28828, align 4, !tbaa !5
  %28830 = call ptr @s2n_strerror_debug(i32 noundef %28829, ptr noundef @.str.4)
  %28831 = call ptr @__errno_location() #12
  %28832 = load i32, ptr %28831, align 4, !tbaa !5
  %28833 = call ptr @strerror(i32 noundef %28832) #11
  %28834 = call ptr @__errno_location() #12
  %28835 = load i32, ptr %28834, align 4, !tbaa !5
  %28836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28823, ptr noundef @.str.2, i32 noundef %28824, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1772, ptr noundef %28827, ptr noundef %28830, ptr noundef %28833, i32 noundef %28835) #11
  br label %28854

28837:                                            ; preds = %28815, %28808
  %28838 = load i32, ptr %900, align 4, !tbaa !5
  %28839 = call ptr @__errno_location() #12
  store i32 %28838, ptr %28839, align 4, !tbaa !5
  %28840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28841 = load i32, ptr @test_count, align 4, !tbaa !5
  %28842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28843 = load i32, ptr %28842, align 4, !tbaa !5
  %28844 = call ptr @s2n_strerror(i32 noundef %28843, ptr noundef @.str.4)
  %28845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28846 = load i32, ptr %28845, align 4, !tbaa !5
  %28847 = call ptr @s2n_strerror_debug(i32 noundef %28846, ptr noundef @.str.4)
  %28848 = call ptr @__errno_location() #12
  %28849 = load i32, ptr %28848, align 4, !tbaa !5
  %28850 = call ptr @strerror(i32 noundef %28849) #11
  %28851 = call ptr @__errno_location() #12
  %28852 = load i32, ptr %28851, align 4, !tbaa !5
  %28853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28840, ptr noundef @.str.5, i32 noundef %28841, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1772, ptr noundef %28844, ptr noundef %28847, ptr noundef %28850, i32 noundef %28852) #11
  br label %28854

28854:                                            ; preds = %28837, %28820
  call void @llvm.lifetime.end.p0(i64 4, ptr %900) #11
  br label %28855

28855:                                            ; preds = %28854
  br label %28856

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

28857:                                            ; No predecessors!
  br label %28858

28858:                                            ; preds = %28857
  br label %28859

28859:                                            ; preds = %28858, %28795
  br label %28860

28860:                                            ; preds = %28859
  br label %28861

28861:                                            ; preds = %28860
  %28862 = call i32 @s2n_stuffer_free(ptr noundef %891)
  br label %28863

28863:                                            ; preds = %28861
  %28864 = load i32, ptr @test_count, align 4, !tbaa !5
  %28865 = add nsw i32 %28864, 1
  store i32 %28865, ptr @test_count, align 4, !tbaa !5
  %28866 = load i32, ptr %898, align 4, !tbaa !5
  %28867 = icmp eq i32 0, %28866
  br i1 %28867, label %28921, label %28868

28868:                                            ; preds = %28863
  br label %28869

28869:                                            ; preds = %28868
  br label %28870

28870:                                            ; preds = %28869
  call void @llvm.lifetime.start.p0(i64 4, ptr %901) #11
  %28871 = call ptr @__errno_location() #12
  %28872 = load i32, ptr %28871, align 4, !tbaa !5
  store i32 %28872, ptr %901, align 4, !tbaa !5
  %28873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28874 = call i32 @s2n_print_stacktrace(ptr noundef %28873)
  %28875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28876 = trunc i8 %28875 to i1
  br i1 %28876, label %28877, label %28899

28877:                                            ; preds = %28870
  %28878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28879 = call i32 @fileno(ptr noundef %28878) #11
  %28880 = call i32 @isatty(i32 noundef %28879) #11
  %28881 = icmp ne i32 %28880, 0
  br i1 %28881, label %28882, label %28899

28882:                                            ; preds = %28877
  %28883 = load i32, ptr %901, align 4, !tbaa !5
  %28884 = call ptr @__errno_location() #12
  store i32 %28883, ptr %28884, align 4, !tbaa !5
  %28885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28886 = load i32, ptr @test_count, align 4, !tbaa !5
  %28887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28888 = load i32, ptr %28887, align 4, !tbaa !5
  %28889 = call ptr @s2n_strerror(i32 noundef %28888, ptr noundef @.str.4)
  %28890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28891 = load i32, ptr %28890, align 4, !tbaa !5
  %28892 = call ptr @s2n_strerror_debug(i32 noundef %28891, ptr noundef @.str.4)
  %28893 = call ptr @__errno_location() #12
  %28894 = load i32, ptr %28893, align 4, !tbaa !5
  %28895 = call ptr @strerror(i32 noundef %28894) #11
  %28896 = call ptr @__errno_location() #12
  %28897 = load i32, ptr %28896, align 4, !tbaa !5
  %28898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28885, ptr noundef @.str.2, i32 noundef %28886, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1774, ptr noundef %28889, ptr noundef %28892, ptr noundef %28895, i32 noundef %28897) #11
  br label %28916

28899:                                            ; preds = %28877, %28870
  %28900 = load i32, ptr %901, align 4, !tbaa !5
  %28901 = call ptr @__errno_location() #12
  store i32 %28900, ptr %28901, align 4, !tbaa !5
  %28902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28903 = load i32, ptr @test_count, align 4, !tbaa !5
  %28904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28905 = load i32, ptr %28904, align 4, !tbaa !5
  %28906 = call ptr @s2n_strerror(i32 noundef %28905, ptr noundef @.str.4)
  %28907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28908 = load i32, ptr %28907, align 4, !tbaa !5
  %28909 = call ptr @s2n_strerror_debug(i32 noundef %28908, ptr noundef @.str.4)
  %28910 = call ptr @__errno_location() #12
  %28911 = load i32, ptr %28910, align 4, !tbaa !5
  %28912 = call ptr @strerror(i32 noundef %28911) #11
  %28913 = call ptr @__errno_location() #12
  %28914 = load i32, ptr %28913, align 4, !tbaa !5
  %28915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28902, ptr noundef @.str.5, i32 noundef %28903, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 1774, ptr noundef %28906, ptr noundef %28909, ptr noundef %28912, i32 noundef %28914) #11
  br label %28916

28916:                                            ; preds = %28899, %28882
  call void @llvm.lifetime.end.p0(i64 4, ptr %901) #11
  br label %28917

28917:                                            ; preds = %28916
  br label %28918

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

28919:                                            ; No predecessors!
  br label %28920

28920:                                            ; preds = %28919
  br label %28921

28921:                                            ; preds = %28920, %28863
  br label %28922

28922:                                            ; preds = %28921
  br label %28923

28923:                                            ; preds = %28922
  %28924 = load ptr, ptr %889, align 8, !tbaa !9
  %28925 = call i32 @s2n_connection_free(ptr noundef %28924)
  %28926 = call i32 @s2n_pkey_free(ptr noundef %896)
  %28927 = call i32 @s2n_x509_validator_wipe(ptr noundef %888)
  call void @llvm.lifetime.end.p0(i64 4, ptr %898) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %896) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %895) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %893) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %891) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %889) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %888) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %902) #11
  %28928 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %902)
  call void @llvm.lifetime.start.p0(i64 8, ptr %903) #11
  %28929 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %28929, ptr %903, align 8, !tbaa !9
  br label %28930

28930:                                            ; preds = %28923
  %28931 = load i32, ptr @test_count, align 4, !tbaa !5
  %28932 = add nsw i32 %28931, 1
  store i32 %28932, ptr @test_count, align 4, !tbaa !5
  %28933 = load ptr, ptr %903, align 8, !tbaa !9
  %28934 = icmp eq ptr %28933, null
  br i1 %28934, label %28935, label %28988

28935:                                            ; preds = %28930
  br label %28936

28936:                                            ; preds = %28935
  br label %28937

28937:                                            ; preds = %28936
  call void @llvm.lifetime.start.p0(i64 4, ptr %904) #11
  %28938 = call ptr @__errno_location() #12
  %28939 = load i32, ptr %28938, align 4, !tbaa !5
  store i32 %28939, ptr %904, align 4, !tbaa !5
  %28940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28941 = call i32 @s2n_print_stacktrace(ptr noundef %28940)
  %28942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28943 = trunc i8 %28942 to i1
  br i1 %28943, label %28944, label %28966

28944:                                            ; preds = %28937
  %28945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28946 = call i32 @fileno(ptr noundef %28945) #11
  %28947 = call i32 @isatty(i32 noundef %28946) #11
  %28948 = icmp ne i32 %28947, 0
  br i1 %28948, label %28949, label %28966

28949:                                            ; preds = %28944
  %28950 = load i32, ptr %904, align 4, !tbaa !5
  %28951 = call ptr @__errno_location() #12
  store i32 %28950, ptr %28951, align 4, !tbaa !5
  %28952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28953 = load i32, ptr @test_count, align 4, !tbaa !5
  %28954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28955 = load i32, ptr %28954, align 4, !tbaa !5
  %28956 = call ptr @s2n_strerror(i32 noundef %28955, ptr noundef @.str.4)
  %28957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28958 = load i32, ptr %28957, align 4, !tbaa !5
  %28959 = call ptr @s2n_strerror_debug(i32 noundef %28958, ptr noundef @.str.4)
  %28960 = call ptr @__errno_location() #12
  %28961 = load i32, ptr %28960, align 4, !tbaa !5
  %28962 = call ptr @strerror(i32 noundef %28961) #11
  %28963 = call ptr @__errno_location() #12
  %28964 = load i32, ptr %28963, align 4, !tbaa !5
  %28965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28952, ptr noundef @.str.2, i32 noundef %28953, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1785, ptr noundef %28956, ptr noundef %28959, ptr noundef %28962, i32 noundef %28964) #11
  br label %28983

28966:                                            ; preds = %28944, %28937
  %28967 = load i32, ptr %904, align 4, !tbaa !5
  %28968 = call ptr @__errno_location() #12
  store i32 %28967, ptr %28968, align 4, !tbaa !5
  %28969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28970 = load i32, ptr @test_count, align 4, !tbaa !5
  %28971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28972 = load i32, ptr %28971, align 4, !tbaa !5
  %28973 = call ptr @s2n_strerror(i32 noundef %28972, ptr noundef @.str.4)
  %28974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28975 = load i32, ptr %28974, align 4, !tbaa !5
  %28976 = call ptr @s2n_strerror_debug(i32 noundef %28975, ptr noundef @.str.4)
  %28977 = call ptr @__errno_location() #12
  %28978 = load i32, ptr %28977, align 4, !tbaa !5
  %28979 = call ptr @strerror(i32 noundef %28978) #11
  %28980 = call ptr @__errno_location() #12
  %28981 = load i32, ptr %28980, align 4, !tbaa !5
  %28982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28969, ptr noundef @.str.5, i32 noundef %28970, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1785, ptr noundef %28973, ptr noundef %28976, ptr noundef %28979, i32 noundef %28981) #11
  br label %28983

28983:                                            ; preds = %28966, %28949
  call void @llvm.lifetime.end.p0(i64 4, ptr %904) #11
  br label %28984

28984:                                            ; preds = %28983
  br label %28985

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

28986:                                            ; No predecessors!
  br label %28987

28987:                                            ; preds = %28986
  br label %28988

28988:                                            ; preds = %28987, %28930
  br label %28989

28989:                                            ; preds = %28988
  br label %28990

28990:                                            ; preds = %28989
  call void @llvm.lifetime.start.p0(i64 40, ptr %905) #11
  call void @llvm.memset.p0.i64(ptr align 8 %905, i8 0, i64 40, i1 false)
  br label %28991

28991:                                            ; preds = %28990
  %28992 = load i32, ptr @test_count, align 4, !tbaa !5
  %28993 = add nsw i32 %28992, 1
  store i32 %28993, ptr @test_count, align 4, !tbaa !5
  %28994 = call i32 @read_file(ptr noundef %905, ptr noundef @.str.118, i32 noundef 12000)
  %28995 = icmp eq i32 %28994, -1
  br i1 %28995, label %28996, label %29049

28996:                                            ; preds = %28991
  br label %28997

28997:                                            ; preds = %28996
  br label %28998

28998:                                            ; preds = %28997
  call void @llvm.lifetime.start.p0(i64 4, ptr %906) #11
  %28999 = call ptr @__errno_location() #12
  %29000 = load i32, ptr %28999, align 4, !tbaa !5
  store i32 %29000, ptr %906, align 4, !tbaa !5
  %29001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29002 = call i32 @s2n_print_stacktrace(ptr noundef %29001)
  %29003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29004 = trunc i8 %29003 to i1
  br i1 %29004, label %29005, label %29027

29005:                                            ; preds = %28998
  %29006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29007 = call i32 @fileno(ptr noundef %29006) #11
  %29008 = call i32 @isatty(i32 noundef %29007) #11
  %29009 = icmp ne i32 %29008, 0
  br i1 %29009, label %29010, label %29027

29010:                                            ; preds = %29005
  %29011 = load i32, ptr %906, align 4, !tbaa !5
  %29012 = call ptr @__errno_location() #12
  store i32 %29011, ptr %29012, align 4, !tbaa !5
  %29013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29014 = load i32, ptr @test_count, align 4, !tbaa !5
  %29015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29016 = load i32, ptr %29015, align 4, !tbaa !5
  %29017 = call ptr @s2n_strerror(i32 noundef %29016, ptr noundef @.str.4)
  %29018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29019 = load i32, ptr %29018, align 4, !tbaa !5
  %29020 = call ptr @s2n_strerror_debug(i32 noundef %29019, ptr noundef @.str.4)
  %29021 = call ptr @__errno_location() #12
  %29022 = load i32, ptr %29021, align 4, !tbaa !5
  %29023 = call ptr @strerror(i32 noundef %29022) #11
  %29024 = call ptr @__errno_location() #12
  %29025 = load i32, ptr %29024, align 4, !tbaa !5
  %29026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29013, ptr noundef @.str.2, i32 noundef %29014, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 1788, ptr noundef %29017, ptr noundef %29020, ptr noundef %29023, i32 noundef %29025) #11
  br label %29044

29027:                                            ; preds = %29005, %28998
  %29028 = load i32, ptr %906, align 4, !tbaa !5
  %29029 = call ptr @__errno_location() #12
  store i32 %29028, ptr %29029, align 4, !tbaa !5
  %29030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29031 = load i32, ptr @test_count, align 4, !tbaa !5
  %29032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29033 = load i32, ptr %29032, align 4, !tbaa !5
  %29034 = call ptr @s2n_strerror(i32 noundef %29033, ptr noundef @.str.4)
  %29035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29036 = load i32, ptr %29035, align 4, !tbaa !5
  %29037 = call ptr @s2n_strerror_debug(i32 noundef %29036, ptr noundef @.str.4)
  %29038 = call ptr @__errno_location() #12
  %29039 = load i32, ptr %29038, align 4, !tbaa !5
  %29040 = call ptr @strerror(i32 noundef %29039) #11
  %29041 = call ptr @__errno_location() #12
  %29042 = load i32, ptr %29041, align 4, !tbaa !5
  %29043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29030, ptr noundef @.str.5, i32 noundef %29031, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 1788, ptr noundef %29034, ptr noundef %29037, ptr noundef %29040, i32 noundef %29042) #11
  br label %29044

29044:                                            ; preds = %29027, %29010
  call void @llvm.lifetime.end.p0(i64 4, ptr %906) #11
  br label %29045

29045:                                            ; preds = %29044
  br label %29046

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

29047:                                            ; No predecessors!
  br label %29048

29048:                                            ; preds = %29047
  br label %29049

29049:                                            ; preds = %29048, %28991
  br label %29050

29050:                                            ; preds = %29049
  br label %29051

29051:                                            ; preds = %29050
  call void @llvm.lifetime.start.p0(i64 4, ptr %907) #11
  %29052 = getelementptr inbounds %struct.s2n_stuffer, ptr %905, i32 0, i32 2
  %29053 = load i32, ptr %29052, align 4, !tbaa !15
  %29054 = getelementptr inbounds %struct.s2n_stuffer, ptr %905, i32 0, i32 1
  %29055 = load i32, ptr %29054, align 8, !tbaa !18
  %29056 = sub i32 %29053, %29055
  store i32 %29056, ptr %907, align 4, !tbaa !5
  br label %29057

29057:                                            ; preds = %29051
  %29058 = load i32, ptr @test_count, align 4, !tbaa !5
  %29059 = add nsw i32 %29058, 1
  store i32 %29059, ptr @test_count, align 4, !tbaa !5
  %29060 = load i32, ptr %907, align 4, !tbaa !5
  %29061 = icmp ugt i32 %29060, 0
  br i1 %29061, label %29115, label %29062

29062:                                            ; preds = %29057
  br label %29063

29063:                                            ; preds = %29062
  br label %29064

29064:                                            ; preds = %29063
  call void @llvm.lifetime.start.p0(i64 4, ptr %908) #11
  %29065 = call ptr @__errno_location() #12
  %29066 = load i32, ptr %29065, align 4, !tbaa !5
  store i32 %29066, ptr %908, align 4, !tbaa !5
  %29067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29068 = call i32 @s2n_print_stacktrace(ptr noundef %29067)
  %29069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29070 = trunc i8 %29069 to i1
  br i1 %29070, label %29071, label %29093

29071:                                            ; preds = %29064
  %29072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29073 = call i32 @fileno(ptr noundef %29072) #11
  %29074 = call i32 @isatty(i32 noundef %29073) #11
  %29075 = icmp ne i32 %29074, 0
  br i1 %29075, label %29076, label %29093

29076:                                            ; preds = %29071
  %29077 = load i32, ptr %908, align 4, !tbaa !5
  %29078 = call ptr @__errno_location() #12
  store i32 %29077, ptr %29078, align 4, !tbaa !5
  %29079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29080 = load i32, ptr @test_count, align 4, !tbaa !5
  %29081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29082 = load i32, ptr %29081, align 4, !tbaa !5
  %29083 = call ptr @s2n_strerror(i32 noundef %29082, ptr noundef @.str.4)
  %29084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29085 = load i32, ptr %29084, align 4, !tbaa !5
  %29086 = call ptr @s2n_strerror_debug(i32 noundef %29085, ptr noundef @.str.4)
  %29087 = call ptr @__errno_location() #12
  %29088 = load i32, ptr %29087, align 4, !tbaa !5
  %29089 = call ptr @strerror(i32 noundef %29088) #11
  %29090 = call ptr @__errno_location() #12
  %29091 = load i32, ptr %29090, align 4, !tbaa !5
  %29092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29079, ptr noundef @.str.2, i32 noundef %29080, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1790, ptr noundef %29083, ptr noundef %29086, ptr noundef %29089, i32 noundef %29091) #11
  br label %29110

29093:                                            ; preds = %29071, %29064
  %29094 = load i32, ptr %908, align 4, !tbaa !5
  %29095 = call ptr @__errno_location() #12
  store i32 %29094, ptr %29095, align 4, !tbaa !5
  %29096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29097 = load i32, ptr @test_count, align 4, !tbaa !5
  %29098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29099 = load i32, ptr %29098, align 4, !tbaa !5
  %29100 = call ptr @s2n_strerror(i32 noundef %29099, ptr noundef @.str.4)
  %29101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29102 = load i32, ptr %29101, align 4, !tbaa !5
  %29103 = call ptr @s2n_strerror_debug(i32 noundef %29102, ptr noundef @.str.4)
  %29104 = call ptr @__errno_location() #12
  %29105 = load i32, ptr %29104, align 4, !tbaa !5
  %29106 = call ptr @strerror(i32 noundef %29105) #11
  %29107 = call ptr @__errno_location() #12
  %29108 = load i32, ptr %29107, align 4, !tbaa !5
  %29109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29096, ptr noundef @.str.5, i32 noundef %29097, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1790, ptr noundef %29100, ptr noundef %29103, ptr noundef %29106, i32 noundef %29108) #11
  br label %29110

29110:                                            ; preds = %29093, %29076
  call void @llvm.lifetime.end.p0(i64 4, ptr %908) #11
  br label %29111

29111:                                            ; preds = %29110
  br label %29112

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

29113:                                            ; No predecessors!
  br label %29114

29114:                                            ; preds = %29113
  br label %29115

29115:                                            ; preds = %29114, %29057
  br label %29116

29116:                                            ; preds = %29115
  br label %29117

29117:                                            ; preds = %29116
  call void @llvm.lifetime.start.p0(i64 8, ptr %909) #11
  %29118 = load i32, ptr %907, align 4, !tbaa !5
  %29119 = call ptr @s2n_stuffer_raw_read(ptr noundef %905, i32 noundef %29118)
  store ptr %29119, ptr %909, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %910) #11
  br label %29120

29120:                                            ; preds = %29117
  %29121 = load i32, ptr @test_count, align 4, !tbaa !5
  %29122 = add nsw i32 %29121, 1
  store i32 %29122, ptr @test_count, align 4, !tbaa !5
  %29123 = call i32 @s2n_pkey_zero_init(ptr noundef %910)
  %29124 = icmp eq i32 %29123, -1
  br i1 %29124, label %29125, label %29178

29125:                                            ; preds = %29120
  br label %29126

29126:                                            ; preds = %29125
  br label %29127

29127:                                            ; preds = %29126
  call void @llvm.lifetime.start.p0(i64 4, ptr %911) #11
  %29128 = call ptr @__errno_location() #12
  %29129 = load i32, ptr %29128, align 4, !tbaa !5
  store i32 %29129, ptr %911, align 4, !tbaa !5
  %29130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29131 = call i32 @s2n_print_stacktrace(ptr noundef %29130)
  %29132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29133 = trunc i8 %29132 to i1
  br i1 %29133, label %29134, label %29156

29134:                                            ; preds = %29127
  %29135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29136 = call i32 @fileno(ptr noundef %29135) #11
  %29137 = call i32 @isatty(i32 noundef %29136) #11
  %29138 = icmp ne i32 %29137, 0
  br i1 %29138, label %29139, label %29156

29139:                                            ; preds = %29134
  %29140 = load i32, ptr %911, align 4, !tbaa !5
  %29141 = call ptr @__errno_location() #12
  store i32 %29140, ptr %29141, align 4, !tbaa !5
  %29142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29143 = load i32, ptr @test_count, align 4, !tbaa !5
  %29144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29145 = load i32, ptr %29144, align 4, !tbaa !5
  %29146 = call ptr @s2n_strerror(i32 noundef %29145, ptr noundef @.str.4)
  %29147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29148 = load i32, ptr %29147, align 4, !tbaa !5
  %29149 = call ptr @s2n_strerror_debug(i32 noundef %29148, ptr noundef @.str.4)
  %29150 = call ptr @__errno_location() #12
  %29151 = load i32, ptr %29150, align 4, !tbaa !5
  %29152 = call ptr @strerror(i32 noundef %29151) #11
  %29153 = call ptr @__errno_location() #12
  %29154 = load i32, ptr %29153, align 4, !tbaa !5
  %29155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29142, ptr noundef @.str.2, i32 noundef %29143, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1794, ptr noundef %29146, ptr noundef %29149, ptr noundef %29152, i32 noundef %29154) #11
  br label %29173

29156:                                            ; preds = %29134, %29127
  %29157 = load i32, ptr %911, align 4, !tbaa !5
  %29158 = call ptr @__errno_location() #12
  store i32 %29157, ptr %29158, align 4, !tbaa !5
  %29159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29160 = load i32, ptr @test_count, align 4, !tbaa !5
  %29161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29162 = load i32, ptr %29161, align 4, !tbaa !5
  %29163 = call ptr @s2n_strerror(i32 noundef %29162, ptr noundef @.str.4)
  %29164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29165 = load i32, ptr %29164, align 4, !tbaa !5
  %29166 = call ptr @s2n_strerror_debug(i32 noundef %29165, ptr noundef @.str.4)
  %29167 = call ptr @__errno_location() #12
  %29168 = load i32, ptr %29167, align 4, !tbaa !5
  %29169 = call ptr @strerror(i32 noundef %29168) #11
  %29170 = call ptr @__errno_location() #12
  %29171 = load i32, ptr %29170, align 4, !tbaa !5
  %29172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29159, ptr noundef @.str.5, i32 noundef %29160, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1794, ptr noundef %29163, ptr noundef %29166, ptr noundef %29169, i32 noundef %29171) #11
  br label %29173

29173:                                            ; preds = %29156, %29139
  call void @llvm.lifetime.end.p0(i64 4, ptr %911) #11
  br label %29174

29174:                                            ; preds = %29173
  br label %29175

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

29176:                                            ; No predecessors!
  br label %29177

29177:                                            ; preds = %29176
  br label %29178

29178:                                            ; preds = %29177, %29120
  br label %29179

29179:                                            ; preds = %29178
  br label %29180

29180:                                            ; preds = %29179
  call void @llvm.lifetime.start.p0(i64 4, ptr %912) #11
  store i32 -1, ptr %912, align 4, !tbaa !5
  br label %29181

29181:                                            ; preds = %29180
  br label %29182

29182:                                            ; preds = %29181
  br label %29183

29183:                                            ; preds = %29182
  %29184 = load i32, ptr @test_count, align 4, !tbaa !5
  %29185 = add nsw i32 %29184, 1
  store i32 %29185, ptr @test_count, align 4, !tbaa !5
  %29186 = load ptr, ptr %903, align 8, !tbaa !9
  %29187 = load ptr, ptr %909, align 8, !tbaa !9
  %29188 = load i32, ptr %907, align 4, !tbaa !5
  %29189 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %902, ptr noundef %29186, ptr noundef %29187, i32 noundef %29188, ptr noundef %912, ptr noundef %910)
  %29190 = getelementptr inbounds %struct.s2n_result, ptr %913, i32 0, i32 0
  store i32 %29189, ptr %29190, align 4
  %29191 = getelementptr inbounds %struct.s2n_result, ptr %913, i32 0, i32 0
  %29192 = load i32, ptr %29191, align 4
  %29193 = call zeroext i1 @s2n_result_is_error(i32 %29192)
  br i1 %29193, label %29247, label %29194

29194:                                            ; preds = %29183
  br label %29195

29195:                                            ; preds = %29194
  br label %29196

29196:                                            ; preds = %29195
  call void @llvm.lifetime.start.p0(i64 4, ptr %914) #11
  %29197 = call ptr @__errno_location() #12
  %29198 = load i32, ptr %29197, align 4, !tbaa !5
  store i32 %29198, ptr %914, align 4, !tbaa !5
  %29199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29200 = call i32 @s2n_print_stacktrace(ptr noundef %29199)
  %29201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29202 = trunc i8 %29201 to i1
  br i1 %29202, label %29203, label %29225

29203:                                            ; preds = %29196
  %29204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29205 = call i32 @fileno(ptr noundef %29204) #11
  %29206 = call i32 @isatty(i32 noundef %29205) #11
  %29207 = icmp ne i32 %29206, 0
  br i1 %29207, label %29208, label %29225

29208:                                            ; preds = %29203
  %29209 = load i32, ptr %914, align 4, !tbaa !5
  %29210 = call ptr @__errno_location() #12
  store i32 %29209, ptr %29210, align 4, !tbaa !5
  %29211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29212 = load i32, ptr @test_count, align 4, !tbaa !5
  %29213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29214 = load i32, ptr %29213, align 4, !tbaa !5
  %29215 = call ptr @s2n_strerror(i32 noundef %29214, ptr noundef @.str.4)
  %29216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29217 = load i32, ptr %29216, align 4, !tbaa !5
  %29218 = call ptr @s2n_strerror_debug(i32 noundef %29217, ptr noundef @.str.4)
  %29219 = call ptr @__errno_location() #12
  %29220 = load i32, ptr %29219, align 4, !tbaa !5
  %29221 = call ptr @strerror(i32 noundef %29220) #11
  %29222 = call ptr @__errno_location() #12
  %29223 = load i32, ptr %29222, align 4, !tbaa !5
  %29224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29211, ptr noundef @.str.2, i32 noundef %29212, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1800, ptr noundef %29215, ptr noundef %29218, ptr noundef %29221, i32 noundef %29223) #11
  br label %29242

29225:                                            ; preds = %29203, %29196
  %29226 = load i32, ptr %914, align 4, !tbaa !5
  %29227 = call ptr @__errno_location() #12
  store i32 %29226, ptr %29227, align 4, !tbaa !5
  %29228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29229 = load i32, ptr @test_count, align 4, !tbaa !5
  %29230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29231 = load i32, ptr %29230, align 4, !tbaa !5
  %29232 = call ptr @s2n_strerror(i32 noundef %29231, ptr noundef @.str.4)
  %29233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29234 = load i32, ptr %29233, align 4, !tbaa !5
  %29235 = call ptr @s2n_strerror_debug(i32 noundef %29234, ptr noundef @.str.4)
  %29236 = call ptr @__errno_location() #12
  %29237 = load i32, ptr %29236, align 4, !tbaa !5
  %29238 = call ptr @strerror(i32 noundef %29237) #11
  %29239 = call ptr @__errno_location() #12
  %29240 = load i32, ptr %29239, align 4, !tbaa !5
  %29241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29228, ptr noundef @.str.5, i32 noundef %29229, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1800, ptr noundef %29232, ptr noundef %29235, ptr noundef %29238, i32 noundef %29240) #11
  br label %29242

29242:                                            ; preds = %29225, %29208
  call void @llvm.lifetime.end.p0(i64 4, ptr %914) #11
  br label %29243

29243:                                            ; preds = %29242
  br label %29244

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

29245:                                            ; No predecessors!
  br label %29246

29246:                                            ; preds = %29245
  br label %29247

29247:                                            ; preds = %29246, %29183
  br label %29248

29248:                                            ; preds = %29247
  br label %29249

29249:                                            ; preds = %29248
  br label %29250

29250:                                            ; preds = %29249
  %29251 = load i32, ptr @test_count, align 4, !tbaa !5
  %29252 = add nsw i32 %29251, 1
  store i32 %29252, ptr @test_count, align 4, !tbaa !5
  %29253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29254 = load i32, ptr %29253, align 4, !tbaa !5
  %29255 = icmp eq i32 %29254, 335544344
  br i1 %29255, label %29309, label %29256

29256:                                            ; preds = %29250
  br label %29257

29257:                                            ; preds = %29256
  br label %29258

29258:                                            ; preds = %29257
  call void @llvm.lifetime.start.p0(i64 4, ptr %915) #11
  %29259 = call ptr @__errno_location() #12
  %29260 = load i32, ptr %29259, align 4, !tbaa !5
  store i32 %29260, ptr %915, align 4, !tbaa !5
  %29261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29262 = call i32 @s2n_print_stacktrace(ptr noundef %29261)
  %29263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29264 = trunc i8 %29263 to i1
  br i1 %29264, label %29265, label %29287

29265:                                            ; preds = %29258
  %29266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29267 = call i32 @fileno(ptr noundef %29266) #11
  %29268 = call i32 @isatty(i32 noundef %29267) #11
  %29269 = icmp ne i32 %29268, 0
  br i1 %29269, label %29270, label %29287

29270:                                            ; preds = %29265
  %29271 = load i32, ptr %915, align 4, !tbaa !5
  %29272 = call ptr @__errno_location() #12
  store i32 %29271, ptr %29272, align 4, !tbaa !5
  %29273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29274 = load i32, ptr @test_count, align 4, !tbaa !5
  %29275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29276 = load i32, ptr %29275, align 4, !tbaa !5
  %29277 = call ptr @s2n_strerror(i32 noundef %29276, ptr noundef @.str.4)
  %29278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29279 = load i32, ptr %29278, align 4, !tbaa !5
  %29280 = call ptr @s2n_strerror_debug(i32 noundef %29279, ptr noundef @.str.4)
  %29281 = call ptr @__errno_location() #12
  %29282 = load i32, ptr %29281, align 4, !tbaa !5
  %29283 = call ptr @strerror(i32 noundef %29282) #11
  %29284 = call ptr @__errno_location() #12
  %29285 = load i32, ptr %29284, align 4, !tbaa !5
  %29286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29273, ptr noundef @.str.2, i32 noundef %29274, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 1800, ptr noundef %29277, ptr noundef %29280, ptr noundef %29283, i32 noundef %29285) #11
  br label %29304

29287:                                            ; preds = %29265, %29258
  %29288 = load i32, ptr %915, align 4, !tbaa !5
  %29289 = call ptr @__errno_location() #12
  store i32 %29288, ptr %29289, align 4, !tbaa !5
  %29290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29291 = load i32, ptr @test_count, align 4, !tbaa !5
  %29292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29293 = load i32, ptr %29292, align 4, !tbaa !5
  %29294 = call ptr @s2n_strerror(i32 noundef %29293, ptr noundef @.str.4)
  %29295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29296 = load i32, ptr %29295, align 4, !tbaa !5
  %29297 = call ptr @s2n_strerror_debug(i32 noundef %29296, ptr noundef @.str.4)
  %29298 = call ptr @__errno_location() #12
  %29299 = load i32, ptr %29298, align 4, !tbaa !5
  %29300 = call ptr @strerror(i32 noundef %29299) #11
  %29301 = call ptr @__errno_location() #12
  %29302 = load i32, ptr %29301, align 4, !tbaa !5
  %29303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29290, ptr noundef @.str.5, i32 noundef %29291, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 1800, ptr noundef %29294, ptr noundef %29297, ptr noundef %29300, i32 noundef %29302) #11
  br label %29304

29304:                                            ; preds = %29287, %29270
  call void @llvm.lifetime.end.p0(i64 4, ptr %915) #11
  br label %29305

29305:                                            ; preds = %29304
  br label %29306

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

29307:                                            ; No predecessors!
  br label %29308

29308:                                            ; preds = %29307
  br label %29309

29309:                                            ; preds = %29308, %29250
  br label %29310

29310:                                            ; preds = %29309
  br label %29311

29311:                                            ; preds = %29310
  br label %29312

29312:                                            ; preds = %29311
  %29313 = load i32, ptr @test_count, align 4, !tbaa !5
  %29314 = add nsw i32 %29313, 1
  store i32 %29314, ptr @test_count, align 4, !tbaa !5
  %29315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29316 = load i32, ptr %29315, align 4, !tbaa !5
  %29317 = call ptr @s2n_strerror_debug(i32 noundef %29316, ptr noundef @.str.4)
  %29318 = icmp eq ptr %29317, null
  br i1 %29318, label %29319, label %29372

29319:                                            ; preds = %29312
  br label %29320

29320:                                            ; preds = %29319
  br label %29321

29321:                                            ; preds = %29320
  call void @llvm.lifetime.start.p0(i64 4, ptr %916) #11
  %29322 = call ptr @__errno_location() #12
  %29323 = load i32, ptr %29322, align 4, !tbaa !5
  store i32 %29323, ptr %916, align 4, !tbaa !5
  %29324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29325 = call i32 @s2n_print_stacktrace(ptr noundef %29324)
  %29326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29327 = trunc i8 %29326 to i1
  br i1 %29327, label %29328, label %29350

29328:                                            ; preds = %29321
  %29329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29330 = call i32 @fileno(ptr noundef %29329) #11
  %29331 = call i32 @isatty(i32 noundef %29330) #11
  %29332 = icmp ne i32 %29331, 0
  br i1 %29332, label %29333, label %29350

29333:                                            ; preds = %29328
  %29334 = load i32, ptr %916, align 4, !tbaa !5
  %29335 = call ptr @__errno_location() #12
  store i32 %29334, ptr %29335, align 4, !tbaa !5
  %29336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29337 = load i32, ptr @test_count, align 4, !tbaa !5
  %29338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29339 = load i32, ptr %29338, align 4, !tbaa !5
  %29340 = call ptr @s2n_strerror(i32 noundef %29339, ptr noundef @.str.4)
  %29341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29342 = load i32, ptr %29341, align 4, !tbaa !5
  %29343 = call ptr @s2n_strerror_debug(i32 noundef %29342, ptr noundef @.str.4)
  %29344 = call ptr @__errno_location() #12
  %29345 = load i32, ptr %29344, align 4, !tbaa !5
  %29346 = call ptr @strerror(i32 noundef %29345) #11
  %29347 = call ptr @__errno_location() #12
  %29348 = load i32, ptr %29347, align 4, !tbaa !5
  %29349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29336, ptr noundef @.str.2, i32 noundef %29337, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1800, ptr noundef %29340, ptr noundef %29343, ptr noundef %29346, i32 noundef %29348) #11
  br label %29367

29350:                                            ; preds = %29328, %29321
  %29351 = load i32, ptr %916, align 4, !tbaa !5
  %29352 = call ptr @__errno_location() #12
  store i32 %29351, ptr %29352, align 4, !tbaa !5
  %29353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29354 = load i32, ptr @test_count, align 4, !tbaa !5
  %29355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29356 = load i32, ptr %29355, align 4, !tbaa !5
  %29357 = call ptr @s2n_strerror(i32 noundef %29356, ptr noundef @.str.4)
  %29358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29359 = load i32, ptr %29358, align 4, !tbaa !5
  %29360 = call ptr @s2n_strerror_debug(i32 noundef %29359, ptr noundef @.str.4)
  %29361 = call ptr @__errno_location() #12
  %29362 = load i32, ptr %29361, align 4, !tbaa !5
  %29363 = call ptr @strerror(i32 noundef %29362) #11
  %29364 = call ptr @__errno_location() #12
  %29365 = load i32, ptr %29364, align 4, !tbaa !5
  %29366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29353, ptr noundef @.str.5, i32 noundef %29354, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1800, ptr noundef %29357, ptr noundef %29360, ptr noundef %29363, i32 noundef %29365) #11
  br label %29367

29367:                                            ; preds = %29350, %29333
  call void @llvm.lifetime.end.p0(i64 4, ptr %916) #11
  br label %29368

29368:                                            ; preds = %29367
  br label %29369

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

29370:                                            ; No predecessors!
  br label %29371

29371:                                            ; preds = %29370
  br label %29372

29372:                                            ; preds = %29371, %29312
  br label %29373

29373:                                            ; preds = %29372
  br label %29374

29374:                                            ; preds = %29373
  br label %29375

29375:                                            ; preds = %29374
  br label %29376

29376:                                            ; preds = %29375
  br label %29377

29377:                                            ; preds = %29376
  %29378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %29378, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %29379 = call ptr @__errno_location() #12
  store i32 0, ptr %29379, align 4, !tbaa !5
  br label %29380

29380:                                            ; preds = %29377
  br label %29381

29381:                                            ; preds = %29380
  br label %29382

29382:                                            ; preds = %29381
  br label %29383

29383:                                            ; preds = %29382
  %29384 = call i32 @s2n_stuffer_free(ptr noundef %905)
  %29385 = load ptr, ptr %903, align 8, !tbaa !9
  %29386 = call i32 @s2n_connection_free(ptr noundef %29385)
  %29387 = call i32 @s2n_pkey_free(ptr noundef %910)
  %29388 = call i32 @s2n_x509_validator_wipe(ptr noundef %902)
  call void @llvm.lifetime.end.p0(i64 4, ptr %912) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %910) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %909) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %907) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %905) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %903) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %902) #11
  %29389 = call zeroext i1 @s2n_libcrypto_is_awslc()
  br i1 %29389, label %29390, label %30225

29390:                                            ; preds = %29383
  call void @llvm.lifetime.start.p0(i64 56, ptr %917) #11
  call void @llvm.memset.p0.i64(ptr align 8 %917, i8 0, i64 56, i1 false)
  br label %29391

29391:                                            ; preds = %29390
  %29392 = load i32, ptr @test_count, align 4, !tbaa !5
  %29393 = add nsw i32 %29392, 1
  store i32 %29393, ptr @test_count, align 4, !tbaa !5
  %29394 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %917)
  %29395 = icmp eq i32 %29394, -1
  br i1 %29395, label %29396, label %29449

29396:                                            ; preds = %29391
  br label %29397

29397:                                            ; preds = %29396
  br label %29398

29398:                                            ; preds = %29397
  call void @llvm.lifetime.start.p0(i64 4, ptr %918) #11
  %29399 = call ptr @__errno_location() #12
  %29400 = load i32, ptr %29399, align 4, !tbaa !5
  store i32 %29400, ptr %918, align 4, !tbaa !5
  %29401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29402 = call i32 @s2n_print_stacktrace(ptr noundef %29401)
  %29403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29404 = trunc i8 %29403 to i1
  br i1 %29404, label %29405, label %29427

29405:                                            ; preds = %29398
  %29406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29407 = call i32 @fileno(ptr noundef %29406) #11
  %29408 = call i32 @isatty(i32 noundef %29407) #11
  %29409 = icmp ne i32 %29408, 0
  br i1 %29409, label %29410, label %29427

29410:                                            ; preds = %29405
  %29411 = load i32, ptr %918, align 4, !tbaa !5
  %29412 = call ptr @__errno_location() #12
  store i32 %29411, ptr %29412, align 4, !tbaa !5
  %29413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29414 = load i32, ptr @test_count, align 4, !tbaa !5
  %29415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29416 = load i32, ptr %29415, align 4, !tbaa !5
  %29417 = call ptr @s2n_strerror(i32 noundef %29416, ptr noundef @.str.4)
  %29418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29419 = load i32, ptr %29418, align 4, !tbaa !5
  %29420 = call ptr @s2n_strerror_debug(i32 noundef %29419, ptr noundef @.str.4)
  %29421 = call ptr @__errno_location() #12
  %29422 = load i32, ptr %29421, align 4, !tbaa !5
  %29423 = call ptr @strerror(i32 noundef %29422) #11
  %29424 = call ptr @__errno_location() #12
  %29425 = load i32, ptr %29424, align 4, !tbaa !5
  %29426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29413, ptr noundef @.str.2, i32 noundef %29414, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1811, ptr noundef %29417, ptr noundef %29420, ptr noundef %29423, i32 noundef %29425) #11
  br label %29444

29427:                                            ; preds = %29405, %29398
  %29428 = load i32, ptr %918, align 4, !tbaa !5
  %29429 = call ptr @__errno_location() #12
  store i32 %29428, ptr %29429, align 4, !tbaa !5
  %29430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29431 = load i32, ptr @test_count, align 4, !tbaa !5
  %29432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29433 = load i32, ptr %29432, align 4, !tbaa !5
  %29434 = call ptr @s2n_strerror(i32 noundef %29433, ptr noundef @.str.4)
  %29435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29436 = load i32, ptr %29435, align 4, !tbaa !5
  %29437 = call ptr @s2n_strerror_debug(i32 noundef %29436, ptr noundef @.str.4)
  %29438 = call ptr @__errno_location() #12
  %29439 = load i32, ptr %29438, align 4, !tbaa !5
  %29440 = call ptr @strerror(i32 noundef %29439) #11
  %29441 = call ptr @__errno_location() #12
  %29442 = load i32, ptr %29441, align 4, !tbaa !5
  %29443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29430, ptr noundef @.str.5, i32 noundef %29431, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1811, ptr noundef %29434, ptr noundef %29437, ptr noundef %29440, i32 noundef %29442) #11
  br label %29444

29444:                                            ; preds = %29427, %29410
  call void @llvm.lifetime.end.p0(i64 4, ptr %918) #11
  br label %29445

29445:                                            ; preds = %29444
  br label %29446

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

29447:                                            ; No predecessors!
  br label %29448

29448:                                            ; preds = %29447
  br label %29449

29449:                                            ; preds = %29448, %29391
  br label %29450

29450:                                            ; preds = %29449
  br label %29451

29451:                                            ; preds = %29450
  call void @llvm.lifetime.start.p0(i64 8, ptr %919) #11
  %29452 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %29452, ptr %919, align 8, !tbaa !9
  br label %29453

29453:                                            ; preds = %29451
  %29454 = load i32, ptr @test_count, align 4, !tbaa !5
  %29455 = add nsw i32 %29454, 1
  store i32 %29455, ptr @test_count, align 4, !tbaa !5
  %29456 = load ptr, ptr %919, align 8, !tbaa !9
  %29457 = icmp eq ptr %29456, null
  br i1 %29457, label %29458, label %29511

29458:                                            ; preds = %29453
  br label %29459

29459:                                            ; preds = %29458
  br label %29460

29460:                                            ; preds = %29459
  call void @llvm.lifetime.start.p0(i64 4, ptr %920) #11
  %29461 = call ptr @__errno_location() #12
  %29462 = load i32, ptr %29461, align 4, !tbaa !5
  store i32 %29462, ptr %920, align 4, !tbaa !5
  %29463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29464 = call i32 @s2n_print_stacktrace(ptr noundef %29463)
  %29465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29466 = trunc i8 %29465 to i1
  br i1 %29466, label %29467, label %29489

29467:                                            ; preds = %29460
  %29468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29469 = call i32 @fileno(ptr noundef %29468) #11
  %29470 = call i32 @isatty(i32 noundef %29469) #11
  %29471 = icmp ne i32 %29470, 0
  br i1 %29471, label %29472, label %29489

29472:                                            ; preds = %29467
  %29473 = load i32, ptr %920, align 4, !tbaa !5
  %29474 = call ptr @__errno_location() #12
  store i32 %29473, ptr %29474, align 4, !tbaa !5
  %29475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29476 = load i32, ptr @test_count, align 4, !tbaa !5
  %29477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29478 = load i32, ptr %29477, align 4, !tbaa !5
  %29479 = call ptr @s2n_strerror(i32 noundef %29478, ptr noundef @.str.4)
  %29480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29481 = load i32, ptr %29480, align 4, !tbaa !5
  %29482 = call ptr @s2n_strerror_debug(i32 noundef %29481, ptr noundef @.str.4)
  %29483 = call ptr @__errno_location() #12
  %29484 = load i32, ptr %29483, align 4, !tbaa !5
  %29485 = call ptr @strerror(i32 noundef %29484) #11
  %29486 = call ptr @__errno_location() #12
  %29487 = load i32, ptr %29486, align 4, !tbaa !5
  %29488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29475, ptr noundef @.str.2, i32 noundef %29476, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 1815, ptr noundef %29479, ptr noundef %29482, ptr noundef %29485, i32 noundef %29487) #11
  br label %29506

29489:                                            ; preds = %29467, %29460
  %29490 = load i32, ptr %920, align 4, !tbaa !5
  %29491 = call ptr @__errno_location() #12
  store i32 %29490, ptr %29491, align 4, !tbaa !5
  %29492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29493 = load i32, ptr @test_count, align 4, !tbaa !5
  %29494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29495 = load i32, ptr %29494, align 4, !tbaa !5
  %29496 = call ptr @s2n_strerror(i32 noundef %29495, ptr noundef @.str.4)
  %29497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29498 = load i32, ptr %29497, align 4, !tbaa !5
  %29499 = call ptr @s2n_strerror_debug(i32 noundef %29498, ptr noundef @.str.4)
  %29500 = call ptr @__errno_location() #12
  %29501 = load i32, ptr %29500, align 4, !tbaa !5
  %29502 = call ptr @strerror(i32 noundef %29501) #11
  %29503 = call ptr @__errno_location() #12
  %29504 = load i32, ptr %29503, align 4, !tbaa !5
  %29505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29492, ptr noundef @.str.5, i32 noundef %29493, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 1815, ptr noundef %29496, ptr noundef %29499, ptr noundef %29502, i32 noundef %29504) #11
  br label %29506

29506:                                            ; preds = %29489, %29472
  call void @llvm.lifetime.end.p0(i64 4, ptr %920) #11
  br label %29507

29507:                                            ; preds = %29506
  br label %29508

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

29509:                                            ; No predecessors!
  br label %29510

29510:                                            ; preds = %29509
  br label %29511

29511:                                            ; preds = %29510, %29453
  br label %29512

29512:                                            ; preds = %29511
  br label %29513

29513:                                            ; preds = %29512
  call void @llvm.lifetime.start.p0(i64 12000, ptr %921) #11
  call void @llvm.memset.p0.i64(ptr align 16 %921, i8 0, i64 12000, i1 false)
  br label %29514

29514:                                            ; preds = %29513
  %29515 = load i32, ptr @test_count, align 4, !tbaa !5
  %29516 = add nsw i32 %29515, 1
  store i32 %29516, ptr @test_count, align 4, !tbaa !5
  %29517 = getelementptr inbounds [12000 x i8], ptr %921, i64 0, i64 0
  %29518 = call i32 @s2n_read_test_pem(ptr noundef @.str.123, ptr noundef %29517, i64 noundef 12000)
  %29519 = icmp eq i32 %29518, -1
  br i1 %29519, label %29520, label %29573

29520:                                            ; preds = %29514
  br label %29521

29521:                                            ; preds = %29520
  br label %29522

29522:                                            ; preds = %29521
  call void @llvm.lifetime.start.p0(i64 4, ptr %922) #11
  %29523 = call ptr @__errno_location() #12
  %29524 = load i32, ptr %29523, align 4, !tbaa !5
  store i32 %29524, ptr %922, align 4, !tbaa !5
  %29525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29526 = call i32 @s2n_print_stacktrace(ptr noundef %29525)
  %29527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29528 = trunc i8 %29527 to i1
  br i1 %29528, label %29529, label %29551

29529:                                            ; preds = %29522
  %29530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29531 = call i32 @fileno(ptr noundef %29530) #11
  %29532 = call i32 @isatty(i32 noundef %29531) #11
  %29533 = icmp ne i32 %29532, 0
  br i1 %29533, label %29534, label %29551

29534:                                            ; preds = %29529
  %29535 = load i32, ptr %922, align 4, !tbaa !5
  %29536 = call ptr @__errno_location() #12
  store i32 %29535, ptr %29536, align 4, !tbaa !5
  %29537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29538 = load i32, ptr @test_count, align 4, !tbaa !5
  %29539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29540 = load i32, ptr %29539, align 4, !tbaa !5
  %29541 = call ptr @s2n_strerror(i32 noundef %29540, ptr noundef @.str.4)
  %29542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29543 = load i32, ptr %29542, align 4, !tbaa !5
  %29544 = call ptr @s2n_strerror_debug(i32 noundef %29543, ptr noundef @.str.4)
  %29545 = call ptr @__errno_location() #12
  %29546 = load i32, ptr %29545, align 4, !tbaa !5
  %29547 = call ptr @strerror(i32 noundef %29546) #11
  %29548 = call ptr @__errno_location() #12
  %29549 = load i32, ptr %29548, align 4, !tbaa !5
  %29550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29537, ptr noundef @.str.2, i32 noundef %29538, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 1818, ptr noundef %29541, ptr noundef %29544, ptr noundef %29547, i32 noundef %29549) #11
  br label %29568

29551:                                            ; preds = %29529, %29522
  %29552 = load i32, ptr %922, align 4, !tbaa !5
  %29553 = call ptr @__errno_location() #12
  store i32 %29552, ptr %29553, align 4, !tbaa !5
  %29554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29555 = load i32, ptr @test_count, align 4, !tbaa !5
  %29556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29557 = load i32, ptr %29556, align 4, !tbaa !5
  %29558 = call ptr @s2n_strerror(i32 noundef %29557, ptr noundef @.str.4)
  %29559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29560 = load i32, ptr %29559, align 4, !tbaa !5
  %29561 = call ptr @s2n_strerror_debug(i32 noundef %29560, ptr noundef @.str.4)
  %29562 = call ptr @__errno_location() #12
  %29563 = load i32, ptr %29562, align 4, !tbaa !5
  %29564 = call ptr @strerror(i32 noundef %29563) #11
  %29565 = call ptr @__errno_location() #12
  %29566 = load i32, ptr %29565, align 4, !tbaa !5
  %29567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29554, ptr noundef @.str.5, i32 noundef %29555, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 1818, ptr noundef %29558, ptr noundef %29561, ptr noundef %29564, i32 noundef %29566) #11
  br label %29568

29568:                                            ; preds = %29551, %29534
  call void @llvm.lifetime.end.p0(i64 4, ptr %922) #11
  br label %29569

29569:                                            ; preds = %29568
  br label %29570

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

29571:                                            ; No predecessors!
  br label %29572

29572:                                            ; preds = %29571
  br label %29573

29573:                                            ; preds = %29572, %29514
  br label %29574

29574:                                            ; preds = %29573
  br label %29575

29575:                                            ; preds = %29574
  call void @llvm.lifetime.start.p0(i64 8, ptr %923) #11
  %29576 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %29576, ptr %923, align 8, !tbaa !9
  br label %29577

29577:                                            ; preds = %29575
  %29578 = load i32, ptr @test_count, align 4, !tbaa !5
  %29579 = add nsw i32 %29578, 1
  store i32 %29579, ptr @test_count, align 4, !tbaa !5
  %29580 = load ptr, ptr %923, align 8, !tbaa !9
  %29581 = getelementptr inbounds [12000 x i8], ptr %921, i64 0, i64 0
  %29582 = call i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef %29580, ptr noundef %29581)
  %29583 = icmp eq i32 %29582, -1
  br i1 %29583, label %29584, label %29637

29584:                                            ; preds = %29577
  br label %29585

29585:                                            ; preds = %29584
  br label %29586

29586:                                            ; preds = %29585
  call void @llvm.lifetime.start.p0(i64 4, ptr %924) #11
  %29587 = call ptr @__errno_location() #12
  %29588 = load i32, ptr %29587, align 4, !tbaa !5
  store i32 %29588, ptr %924, align 4, !tbaa !5
  %29589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29590 = call i32 @s2n_print_stacktrace(ptr noundef %29589)
  %29591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29592 = trunc i8 %29591 to i1
  br i1 %29592, label %29593, label %29615

29593:                                            ; preds = %29586
  %29594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29595 = call i32 @fileno(ptr noundef %29594) #11
  %29596 = call i32 @isatty(i32 noundef %29595) #11
  %29597 = icmp ne i32 %29596, 0
  br i1 %29597, label %29598, label %29615

29598:                                            ; preds = %29593
  %29599 = load i32, ptr %924, align 4, !tbaa !5
  %29600 = call ptr @__errno_location() #12
  store i32 %29599, ptr %29600, align 4, !tbaa !5
  %29601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29602 = load i32, ptr @test_count, align 4, !tbaa !5
  %29603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29604 = load i32, ptr %29603, align 4, !tbaa !5
  %29605 = call ptr @s2n_strerror(i32 noundef %29604, ptr noundef @.str.4)
  %29606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29607 = load i32, ptr %29606, align 4, !tbaa !5
  %29608 = call ptr @s2n_strerror_debug(i32 noundef %29607, ptr noundef @.str.4)
  %29609 = call ptr @__errno_location() #12
  %29610 = load i32, ptr %29609, align 4, !tbaa !5
  %29611 = call ptr @strerror(i32 noundef %29610) #11
  %29612 = call ptr @__errno_location() #12
  %29613 = load i32, ptr %29612, align 4, !tbaa !5
  %29614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29601, ptr noundef @.str.2, i32 noundef %29602, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 1822, ptr noundef %29605, ptr noundef %29608, ptr noundef %29611, i32 noundef %29613) #11
  br label %29632

29615:                                            ; preds = %29593, %29586
  %29616 = load i32, ptr %924, align 4, !tbaa !5
  %29617 = call ptr @__errno_location() #12
  store i32 %29616, ptr %29617, align 4, !tbaa !5
  %29618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29619 = load i32, ptr @test_count, align 4, !tbaa !5
  %29620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29621 = load i32, ptr %29620, align 4, !tbaa !5
  %29622 = call ptr @s2n_strerror(i32 noundef %29621, ptr noundef @.str.4)
  %29623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29624 = load i32, ptr %29623, align 4, !tbaa !5
  %29625 = call ptr @s2n_strerror_debug(i32 noundef %29624, ptr noundef @.str.4)
  %29626 = call ptr @__errno_location() #12
  %29627 = load i32, ptr %29626, align 4, !tbaa !5
  %29628 = call ptr @strerror(i32 noundef %29627) #11
  %29629 = call ptr @__errno_location() #12
  %29630 = load i32, ptr %29629, align 4, !tbaa !5
  %29631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29618, ptr noundef @.str.5, i32 noundef %29619, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 1822, ptr noundef %29622, ptr noundef %29625, ptr noundef %29628, i32 noundef %29630) #11
  br label %29632

29632:                                            ; preds = %29615, %29598
  call void @llvm.lifetime.end.p0(i64 4, ptr %924) #11
  br label %29633

29633:                                            ; preds = %29632
  br label %29634

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

29635:                                            ; No predecessors!
  br label %29636

29636:                                            ; preds = %29635
  br label %29637

29637:                                            ; preds = %29636, %29577
  br label %29638

29638:                                            ; preds = %29637
  br label %29639

29639:                                            ; preds = %29638
  call void @llvm.lifetime.start.p0(i64 40, ptr %925) #11
  call void @llvm.memset.p0.i64(ptr align 8 %925, i8 0, i64 40, i1 false)
  br label %29640

29640:                                            ; preds = %29639
  %29641 = load i32, ptr @test_count, align 4, !tbaa !5
  %29642 = add nsw i32 %29641, 1
  store i32 %29642, ptr @test_count, align 4, !tbaa !5
  %29643 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %925, i32 noundef 0)
  %29644 = icmp eq i32 %29643, -1
  br i1 %29644, label %29645, label %29698

29645:                                            ; preds = %29640
  br label %29646

29646:                                            ; preds = %29645
  br label %29647

29647:                                            ; preds = %29646
  call void @llvm.lifetime.start.p0(i64 4, ptr %926) #11
  %29648 = call ptr @__errno_location() #12
  %29649 = load i32, ptr %29648, align 4, !tbaa !5
  store i32 %29649, ptr %926, align 4, !tbaa !5
  %29650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29651 = call i32 @s2n_print_stacktrace(ptr noundef %29650)
  %29652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29653 = trunc i8 %29652 to i1
  br i1 %29653, label %29654, label %29676

29654:                                            ; preds = %29647
  %29655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29656 = call i32 @fileno(ptr noundef %29655) #11
  %29657 = call i32 @isatty(i32 noundef %29656) #11
  %29658 = icmp ne i32 %29657, 0
  br i1 %29658, label %29659, label %29676

29659:                                            ; preds = %29654
  %29660 = load i32, ptr %926, align 4, !tbaa !5
  %29661 = call ptr @__errno_location() #12
  store i32 %29660, ptr %29661, align 4, !tbaa !5
  %29662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29663 = load i32, ptr @test_count, align 4, !tbaa !5
  %29664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29665 = load i32, ptr %29664, align 4, !tbaa !5
  %29666 = call ptr @s2n_strerror(i32 noundef %29665, ptr noundef @.str.4)
  %29667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29668 = load i32, ptr %29667, align 4, !tbaa !5
  %29669 = call ptr @s2n_strerror_debug(i32 noundef %29668, ptr noundef @.str.4)
  %29670 = call ptr @__errno_location() #12
  %29671 = load i32, ptr %29670, align 4, !tbaa !5
  %29672 = call ptr @strerror(i32 noundef %29671) #11
  %29673 = call ptr @__errno_location() #12
  %29674 = load i32, ptr %29673, align 4, !tbaa !5
  %29675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29662, ptr noundef @.str.2, i32 noundef %29663, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 1825, ptr noundef %29666, ptr noundef %29669, ptr noundef %29672, i32 noundef %29674) #11
  br label %29693

29676:                                            ; preds = %29654, %29647
  %29677 = load i32, ptr %926, align 4, !tbaa !5
  %29678 = call ptr @__errno_location() #12
  store i32 %29677, ptr %29678, align 4, !tbaa !5
  %29679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29680 = load i32, ptr @test_count, align 4, !tbaa !5
  %29681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29682 = load i32, ptr %29681, align 4, !tbaa !5
  %29683 = call ptr @s2n_strerror(i32 noundef %29682, ptr noundef @.str.4)
  %29684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29685 = load i32, ptr %29684, align 4, !tbaa !5
  %29686 = call ptr @s2n_strerror_debug(i32 noundef %29685, ptr noundef @.str.4)
  %29687 = call ptr @__errno_location() #12
  %29688 = load i32, ptr %29687, align 4, !tbaa !5
  %29689 = call ptr @strerror(i32 noundef %29688) #11
  %29690 = call ptr @__errno_location() #12
  %29691 = load i32, ptr %29690, align 4, !tbaa !5
  %29692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29679, ptr noundef @.str.5, i32 noundef %29680, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 1825, ptr noundef %29683, ptr noundef %29686, ptr noundef %29689, i32 noundef %29691) #11
  br label %29693

29693:                                            ; preds = %29676, %29659
  call void @llvm.lifetime.end.p0(i64 4, ptr %926) #11
  br label %29694

29694:                                            ; preds = %29693
  br label %29695

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

29696:                                            ; No predecessors!
  br label %29697

29697:                                            ; preds = %29696
  br label %29698

29698:                                            ; preds = %29697, %29640
  br label %29699

29699:                                            ; preds = %29698
  br label %29700

29700:                                            ; preds = %29699
  br label %29701

29701:                                            ; preds = %29700
  %29702 = load i32, ptr @test_count, align 4, !tbaa !5
  %29703 = add nsw i32 %29702, 1
  store i32 %29703, ptr @test_count, align 4, !tbaa !5
  %29704 = load ptr, ptr %919, align 8, !tbaa !9
  %29705 = load ptr, ptr %923, align 8, !tbaa !9
  %29706 = call i32 @s2n_send_cert_chain(ptr noundef %29704, ptr noundef %925, ptr noundef %29705)
  %29707 = icmp eq i32 %29706, -1
  br i1 %29707, label %29708, label %29761

29708:                                            ; preds = %29701
  br label %29709

29709:                                            ; preds = %29708
  br label %29710

29710:                                            ; preds = %29709
  call void @llvm.lifetime.start.p0(i64 4, ptr %927) #11
  %29711 = call ptr @__errno_location() #12
  %29712 = load i32, ptr %29711, align 4, !tbaa !5
  store i32 %29712, ptr %927, align 4, !tbaa !5
  %29713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29714 = call i32 @s2n_print_stacktrace(ptr noundef %29713)
  %29715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29716 = trunc i8 %29715 to i1
  br i1 %29716, label %29717, label %29739

29717:                                            ; preds = %29710
  %29718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29719 = call i32 @fileno(ptr noundef %29718) #11
  %29720 = call i32 @isatty(i32 noundef %29719) #11
  %29721 = icmp ne i32 %29720, 0
  br i1 %29721, label %29722, label %29739

29722:                                            ; preds = %29717
  %29723 = load i32, ptr %927, align 4, !tbaa !5
  %29724 = call ptr @__errno_location() #12
  store i32 %29723, ptr %29724, align 4, !tbaa !5
  %29725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29726 = load i32, ptr @test_count, align 4, !tbaa !5
  %29727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29728 = load i32, ptr %29727, align 4, !tbaa !5
  %29729 = call ptr @s2n_strerror(i32 noundef %29728, ptr noundef @.str.4)
  %29730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29731 = load i32, ptr %29730, align 4, !tbaa !5
  %29732 = call ptr @s2n_strerror_debug(i32 noundef %29731, ptr noundef @.str.4)
  %29733 = call ptr @__errno_location() #12
  %29734 = load i32, ptr %29733, align 4, !tbaa !5
  %29735 = call ptr @strerror(i32 noundef %29734) #11
  %29736 = call ptr @__errno_location() #12
  %29737 = load i32, ptr %29736, align 4, !tbaa !5
  %29738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29725, ptr noundef @.str.2, i32 noundef %29726, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 1826, ptr noundef %29729, ptr noundef %29732, ptr noundef %29735, i32 noundef %29737) #11
  br label %29756

29739:                                            ; preds = %29717, %29710
  %29740 = load i32, ptr %927, align 4, !tbaa !5
  %29741 = call ptr @__errno_location() #12
  store i32 %29740, ptr %29741, align 4, !tbaa !5
  %29742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29743 = load i32, ptr @test_count, align 4, !tbaa !5
  %29744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29745 = load i32, ptr %29744, align 4, !tbaa !5
  %29746 = call ptr @s2n_strerror(i32 noundef %29745, ptr noundef @.str.4)
  %29747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29748 = load i32, ptr %29747, align 4, !tbaa !5
  %29749 = call ptr @s2n_strerror_debug(i32 noundef %29748, ptr noundef @.str.4)
  %29750 = call ptr @__errno_location() #12
  %29751 = load i32, ptr %29750, align 4, !tbaa !5
  %29752 = call ptr @strerror(i32 noundef %29751) #11
  %29753 = call ptr @__errno_location() #12
  %29754 = load i32, ptr %29753, align 4, !tbaa !5
  %29755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29742, ptr noundef @.str.5, i32 noundef %29743, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 1826, ptr noundef %29746, ptr noundef %29749, ptr noundef %29752, i32 noundef %29754) #11
  br label %29756

29756:                                            ; preds = %29739, %29722
  call void @llvm.lifetime.end.p0(i64 4, ptr %927) #11
  br label %29757

29757:                                            ; preds = %29756
  br label %29758

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

29759:                                            ; No predecessors!
  br label %29760

29760:                                            ; preds = %29759
  br label %29761

29761:                                            ; preds = %29760, %29701
  br label %29762

29762:                                            ; preds = %29761
  br label %29763

29763:                                            ; preds = %29762
  br label %29764

29764:                                            ; preds = %29763
  %29765 = load i32, ptr @test_count, align 4, !tbaa !5
  %29766 = add nsw i32 %29765, 1
  store i32 %29766, ptr @test_count, align 4, !tbaa !5
  %29767 = call i32 @s2n_stuffer_skip_read(ptr noundef %925, i32 noundef 3)
  %29768 = icmp eq i32 %29767, -1
  br i1 %29768, label %29769, label %29822

29769:                                            ; preds = %29764
  br label %29770

29770:                                            ; preds = %29769
  br label %29771

29771:                                            ; preds = %29770
  call void @llvm.lifetime.start.p0(i64 4, ptr %928) #11
  %29772 = call ptr @__errno_location() #12
  %29773 = load i32, ptr %29772, align 4, !tbaa !5
  store i32 %29773, ptr %928, align 4, !tbaa !5
  %29774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29775 = call i32 @s2n_print_stacktrace(ptr noundef %29774)
  %29776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29777 = trunc i8 %29776 to i1
  br i1 %29777, label %29778, label %29800

29778:                                            ; preds = %29771
  %29779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29780 = call i32 @fileno(ptr noundef %29779) #11
  %29781 = call i32 @isatty(i32 noundef %29780) #11
  %29782 = icmp ne i32 %29781, 0
  br i1 %29782, label %29783, label %29800

29783:                                            ; preds = %29778
  %29784 = load i32, ptr %928, align 4, !tbaa !5
  %29785 = call ptr @__errno_location() #12
  store i32 %29784, ptr %29785, align 4, !tbaa !5
  %29786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29787 = load i32, ptr @test_count, align 4, !tbaa !5
  %29788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29789 = load i32, ptr %29788, align 4, !tbaa !5
  %29790 = call ptr @s2n_strerror(i32 noundef %29789, ptr noundef @.str.4)
  %29791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29792 = load i32, ptr %29791, align 4, !tbaa !5
  %29793 = call ptr @s2n_strerror_debug(i32 noundef %29792, ptr noundef @.str.4)
  %29794 = call ptr @__errno_location() #12
  %29795 = load i32, ptr %29794, align 4, !tbaa !5
  %29796 = call ptr @strerror(i32 noundef %29795) #11
  %29797 = call ptr @__errno_location() #12
  %29798 = load i32, ptr %29797, align 4, !tbaa !5
  %29799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29786, ptr noundef @.str.2, i32 noundef %29787, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 1827, ptr noundef %29790, ptr noundef %29793, ptr noundef %29796, i32 noundef %29798) #11
  br label %29817

29800:                                            ; preds = %29778, %29771
  %29801 = load i32, ptr %928, align 4, !tbaa !5
  %29802 = call ptr @__errno_location() #12
  store i32 %29801, ptr %29802, align 4, !tbaa !5
  %29803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29804 = load i32, ptr @test_count, align 4, !tbaa !5
  %29805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29806 = load i32, ptr %29805, align 4, !tbaa !5
  %29807 = call ptr @s2n_strerror(i32 noundef %29806, ptr noundef @.str.4)
  %29808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29809 = load i32, ptr %29808, align 4, !tbaa !5
  %29810 = call ptr @s2n_strerror_debug(i32 noundef %29809, ptr noundef @.str.4)
  %29811 = call ptr @__errno_location() #12
  %29812 = load i32, ptr %29811, align 4, !tbaa !5
  %29813 = call ptr @strerror(i32 noundef %29812) #11
  %29814 = call ptr @__errno_location() #12
  %29815 = load i32, ptr %29814, align 4, !tbaa !5
  %29816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29803, ptr noundef @.str.5, i32 noundef %29804, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 1827, ptr noundef %29807, ptr noundef %29810, ptr noundef %29813, i32 noundef %29815) #11
  br label %29817

29817:                                            ; preds = %29800, %29783
  call void @llvm.lifetime.end.p0(i64 4, ptr %928) #11
  br label %29818

29818:                                            ; preds = %29817
  br label %29819

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

29820:                                            ; No predecessors!
  br label %29821

29821:                                            ; preds = %29820
  br label %29822

29822:                                            ; preds = %29821, %29764
  br label %29823

29823:                                            ; preds = %29822
  br label %29824

29824:                                            ; preds = %29823
  call void @llvm.lifetime.start.p0(i64 4, ptr %929) #11
  %29825 = getelementptr inbounds %struct.s2n_stuffer, ptr %925, i32 0, i32 2
  %29826 = load i32, ptr %29825, align 4, !tbaa !15
  %29827 = getelementptr inbounds %struct.s2n_stuffer, ptr %925, i32 0, i32 1
  %29828 = load i32, ptr %29827, align 8, !tbaa !18
  %29829 = sub i32 %29826, %29828
  store i32 %29829, ptr %929, align 4, !tbaa !5
  br label %29830

29830:                                            ; preds = %29824
  %29831 = load i32, ptr @test_count, align 4, !tbaa !5
  %29832 = add nsw i32 %29831, 1
  store i32 %29832, ptr @test_count, align 4, !tbaa !5
  %29833 = load i32, ptr %929, align 4, !tbaa !5
  %29834 = icmp ugt i32 %29833, 0
  br i1 %29834, label %29888, label %29835

29835:                                            ; preds = %29830
  br label %29836

29836:                                            ; preds = %29835
  br label %29837

29837:                                            ; preds = %29836
  call void @llvm.lifetime.start.p0(i64 4, ptr %930) #11
  %29838 = call ptr @__errno_location() #12
  %29839 = load i32, ptr %29838, align 4, !tbaa !5
  store i32 %29839, ptr %930, align 4, !tbaa !5
  %29840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29841 = call i32 @s2n_print_stacktrace(ptr noundef %29840)
  %29842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29843 = trunc i8 %29842 to i1
  br i1 %29843, label %29844, label %29866

29844:                                            ; preds = %29837
  %29845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29846 = call i32 @fileno(ptr noundef %29845) #11
  %29847 = call i32 @isatty(i32 noundef %29846) #11
  %29848 = icmp ne i32 %29847, 0
  br i1 %29848, label %29849, label %29866

29849:                                            ; preds = %29844
  %29850 = load i32, ptr %930, align 4, !tbaa !5
  %29851 = call ptr @__errno_location() #12
  store i32 %29850, ptr %29851, align 4, !tbaa !5
  %29852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29853 = load i32, ptr @test_count, align 4, !tbaa !5
  %29854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29855 = load i32, ptr %29854, align 4, !tbaa !5
  %29856 = call ptr @s2n_strerror(i32 noundef %29855, ptr noundef @.str.4)
  %29857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29858 = load i32, ptr %29857, align 4, !tbaa !5
  %29859 = call ptr @s2n_strerror_debug(i32 noundef %29858, ptr noundef @.str.4)
  %29860 = call ptr @__errno_location() #12
  %29861 = load i32, ptr %29860, align 4, !tbaa !5
  %29862 = call ptr @strerror(i32 noundef %29861) #11
  %29863 = call ptr @__errno_location() #12
  %29864 = load i32, ptr %29863, align 4, !tbaa !5
  %29865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29852, ptr noundef @.str.2, i32 noundef %29853, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1830, ptr noundef %29856, ptr noundef %29859, ptr noundef %29862, i32 noundef %29864) #11
  br label %29883

29866:                                            ; preds = %29844, %29837
  %29867 = load i32, ptr %930, align 4, !tbaa !5
  %29868 = call ptr @__errno_location() #12
  store i32 %29867, ptr %29868, align 4, !tbaa !5
  %29869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29870 = load i32, ptr @test_count, align 4, !tbaa !5
  %29871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29872 = load i32, ptr %29871, align 4, !tbaa !5
  %29873 = call ptr @s2n_strerror(i32 noundef %29872, ptr noundef @.str.4)
  %29874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29875 = load i32, ptr %29874, align 4, !tbaa !5
  %29876 = call ptr @s2n_strerror_debug(i32 noundef %29875, ptr noundef @.str.4)
  %29877 = call ptr @__errno_location() #12
  %29878 = load i32, ptr %29877, align 4, !tbaa !5
  %29879 = call ptr @strerror(i32 noundef %29878) #11
  %29880 = call ptr @__errno_location() #12
  %29881 = load i32, ptr %29880, align 4, !tbaa !5
  %29882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29869, ptr noundef @.str.5, i32 noundef %29870, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1830, ptr noundef %29873, ptr noundef %29876, ptr noundef %29879, i32 noundef %29881) #11
  br label %29883

29883:                                            ; preds = %29866, %29849
  call void @llvm.lifetime.end.p0(i64 4, ptr %930) #11
  br label %29884

29884:                                            ; preds = %29883
  br label %29885

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

29886:                                            ; No predecessors!
  br label %29887

29887:                                            ; preds = %29886
  br label %29888

29888:                                            ; preds = %29887, %29830
  br label %29889

29889:                                            ; preds = %29888
  br label %29890

29890:                                            ; preds = %29889
  call void @llvm.lifetime.start.p0(i64 8, ptr %931) #11
  %29891 = load i32, ptr %929, align 4, !tbaa !5
  %29892 = call ptr @s2n_stuffer_raw_read(ptr noundef %925, i32 noundef %29891)
  store ptr %29892, ptr %931, align 8, !tbaa !9
  br label %29893

29893:                                            ; preds = %29890
  %29894 = load i32, ptr @test_count, align 4, !tbaa !5
  %29895 = add nsw i32 %29894, 1
  store i32 %29895, ptr @test_count, align 4, !tbaa !5
  %29896 = load ptr, ptr %931, align 8, !tbaa !9
  %29897 = icmp eq ptr %29896, null
  br i1 %29897, label %29898, label %29951

29898:                                            ; preds = %29893
  br label %29899

29899:                                            ; preds = %29898
  br label %29900

29900:                                            ; preds = %29899
  call void @llvm.lifetime.start.p0(i64 4, ptr %932) #11
  %29901 = call ptr @__errno_location() #12
  %29902 = load i32, ptr %29901, align 4, !tbaa !5
  store i32 %29902, ptr %932, align 4, !tbaa !5
  %29903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29904 = call i32 @s2n_print_stacktrace(ptr noundef %29903)
  %29905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29906 = trunc i8 %29905 to i1
  br i1 %29906, label %29907, label %29929

29907:                                            ; preds = %29900
  %29908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29909 = call i32 @fileno(ptr noundef %29908) #11
  %29910 = call i32 @isatty(i32 noundef %29909) #11
  %29911 = icmp ne i32 %29910, 0
  br i1 %29911, label %29912, label %29929

29912:                                            ; preds = %29907
  %29913 = load i32, ptr %932, align 4, !tbaa !5
  %29914 = call ptr @__errno_location() #12
  store i32 %29913, ptr %29914, align 4, !tbaa !5
  %29915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29916 = load i32, ptr @test_count, align 4, !tbaa !5
  %29917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29918 = load i32, ptr %29917, align 4, !tbaa !5
  %29919 = call ptr @s2n_strerror(i32 noundef %29918, ptr noundef @.str.4)
  %29920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29921 = load i32, ptr %29920, align 4, !tbaa !5
  %29922 = call ptr @s2n_strerror_debug(i32 noundef %29921, ptr noundef @.str.4)
  %29923 = call ptr @__errno_location() #12
  %29924 = load i32, ptr %29923, align 4, !tbaa !5
  %29925 = call ptr @strerror(i32 noundef %29924) #11
  %29926 = call ptr @__errno_location() #12
  %29927 = load i32, ptr %29926, align 4, !tbaa !5
  %29928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29915, ptr noundef @.str.2, i32 noundef %29916, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1832, ptr noundef %29919, ptr noundef %29922, ptr noundef %29925, i32 noundef %29927) #11
  br label %29946

29929:                                            ; preds = %29907, %29900
  %29930 = load i32, ptr %932, align 4, !tbaa !5
  %29931 = call ptr @__errno_location() #12
  store i32 %29930, ptr %29931, align 4, !tbaa !5
  %29932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29933 = load i32, ptr @test_count, align 4, !tbaa !5
  %29934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29935 = load i32, ptr %29934, align 4, !tbaa !5
  %29936 = call ptr @s2n_strerror(i32 noundef %29935, ptr noundef @.str.4)
  %29937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29938 = load i32, ptr %29937, align 4, !tbaa !5
  %29939 = call ptr @s2n_strerror_debug(i32 noundef %29938, ptr noundef @.str.4)
  %29940 = call ptr @__errno_location() #12
  %29941 = load i32, ptr %29940, align 4, !tbaa !5
  %29942 = call ptr @strerror(i32 noundef %29941) #11
  %29943 = call ptr @__errno_location() #12
  %29944 = load i32, ptr %29943, align 4, !tbaa !5
  %29945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29932, ptr noundef @.str.5, i32 noundef %29933, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1832, ptr noundef %29936, ptr noundef %29939, ptr noundef %29942, i32 noundef %29944) #11
  br label %29946

29946:                                            ; preds = %29929, %29912
  call void @llvm.lifetime.end.p0(i64 4, ptr %932) #11
  br label %29947

29947:                                            ; preds = %29946
  br label %29948

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

29949:                                            ; No predecessors!
  br label %29950

29950:                                            ; preds = %29949
  br label %29951

29951:                                            ; preds = %29950, %29893
  br label %29952

29952:                                            ; preds = %29951
  br label %29953

29953:                                            ; preds = %29952
  call void @llvm.lifetime.start.p0(i64 48, ptr %933) #11
  call void @llvm.memset.p0.i64(ptr align 8 %933, i8 0, i64 48, i1 false)
  br label %29954

29954:                                            ; preds = %29953
  %29955 = load i32, ptr @test_count, align 4, !tbaa !5
  %29956 = add nsw i32 %29955, 1
  store i32 %29956, ptr @test_count, align 4, !tbaa !5
  %29957 = call i32 @s2n_pkey_zero_init(ptr noundef %933)
  %29958 = icmp eq i32 %29957, -1
  br i1 %29958, label %29959, label %30012

29959:                                            ; preds = %29954
  br label %29960

29960:                                            ; preds = %29959
  br label %29961

29961:                                            ; preds = %29960
  call void @llvm.lifetime.start.p0(i64 4, ptr %934) #11
  %29962 = call ptr @__errno_location() #12
  %29963 = load i32, ptr %29962, align 4, !tbaa !5
  store i32 %29963, ptr %934, align 4, !tbaa !5
  %29964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29965 = call i32 @s2n_print_stacktrace(ptr noundef %29964)
  %29966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %29967 = trunc i8 %29966 to i1
  br i1 %29967, label %29968, label %29990

29968:                                            ; preds = %29961
  %29969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29970 = call i32 @fileno(ptr noundef %29969) #11
  %29971 = call i32 @isatty(i32 noundef %29970) #11
  %29972 = icmp ne i32 %29971, 0
  br i1 %29972, label %29973, label %29990

29973:                                            ; preds = %29968
  %29974 = load i32, ptr %934, align 4, !tbaa !5
  %29975 = call ptr @__errno_location() #12
  store i32 %29974, ptr %29975, align 4, !tbaa !5
  %29976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29977 = load i32, ptr @test_count, align 4, !tbaa !5
  %29978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29979 = load i32, ptr %29978, align 4, !tbaa !5
  %29980 = call ptr @s2n_strerror(i32 noundef %29979, ptr noundef @.str.4)
  %29981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29982 = load i32, ptr %29981, align 4, !tbaa !5
  %29983 = call ptr @s2n_strerror_debug(i32 noundef %29982, ptr noundef @.str.4)
  %29984 = call ptr @__errno_location() #12
  %29985 = load i32, ptr %29984, align 4, !tbaa !5
  %29986 = call ptr @strerror(i32 noundef %29985) #11
  %29987 = call ptr @__errno_location() #12
  %29988 = load i32, ptr %29987, align 4, !tbaa !5
  %29989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29976, ptr noundef @.str.2, i32 noundef %29977, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1835, ptr noundef %29980, ptr noundef %29983, ptr noundef %29986, i32 noundef %29988) #11
  br label %30007

29990:                                            ; preds = %29968, %29961
  %29991 = load i32, ptr %934, align 4, !tbaa !5
  %29992 = call ptr @__errno_location() #12
  store i32 %29991, ptr %29992, align 4, !tbaa !5
  %29993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29994 = load i32, ptr @test_count, align 4, !tbaa !5
  %29995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29996 = load i32, ptr %29995, align 4, !tbaa !5
  %29997 = call ptr @s2n_strerror(i32 noundef %29996, ptr noundef @.str.4)
  %29998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29999 = load i32, ptr %29998, align 4, !tbaa !5
  %30000 = call ptr @s2n_strerror_debug(i32 noundef %29999, ptr noundef @.str.4)
  %30001 = call ptr @__errno_location() #12
  %30002 = load i32, ptr %30001, align 4, !tbaa !5
  %30003 = call ptr @strerror(i32 noundef %30002) #11
  %30004 = call ptr @__errno_location() #12
  %30005 = load i32, ptr %30004, align 4, !tbaa !5
  %30006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29993, ptr noundef @.str.5, i32 noundef %29994, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1835, ptr noundef %29997, ptr noundef %30000, ptr noundef %30003, i32 noundef %30005) #11
  br label %30007

30007:                                            ; preds = %29990, %29973
  call void @llvm.lifetime.end.p0(i64 4, ptr %934) #11
  br label %30008

30008:                                            ; preds = %30007
  br label %30009

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

30010:                                            ; No predecessors!
  br label %30011

30011:                                            ; preds = %30010
  br label %30012

30012:                                            ; preds = %30011, %29954
  br label %30013

30013:                                            ; preds = %30012
  br label %30014

30014:                                            ; preds = %30013
  call void @llvm.lifetime.start.p0(i64 4, ptr %935) #11
  store i32 -1, ptr %935, align 4, !tbaa !5
  br label %30015

30015:                                            ; preds = %30014
  br label %30016

30016:                                            ; preds = %30015
  br label %30017

30017:                                            ; preds = %30016
  %30018 = load i32, ptr @test_count, align 4, !tbaa !5
  %30019 = add nsw i32 %30018, 1
  store i32 %30019, ptr @test_count, align 4, !tbaa !5
  %30020 = load ptr, ptr %919, align 8, !tbaa !9
  %30021 = load ptr, ptr %931, align 8, !tbaa !9
  %30022 = load i32, ptr %929, align 4, !tbaa !5
  %30023 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %917, ptr noundef %30020, ptr noundef %30021, i32 noundef %30022, ptr noundef %935, ptr noundef %933)
  %30024 = getelementptr inbounds %struct.s2n_result, ptr %936, i32 0, i32 0
  store i32 %30023, ptr %30024, align 4
  %30025 = getelementptr inbounds %struct.s2n_result, ptr %936, i32 0, i32 0
  %30026 = load i32, ptr %30025, align 4
  %30027 = call zeroext i1 @s2n_result_is_error(i32 %30026)
  br i1 %30027, label %30081, label %30028

30028:                                            ; preds = %30017
  br label %30029

30029:                                            ; preds = %30028
  br label %30030

30030:                                            ; preds = %30029
  call void @llvm.lifetime.start.p0(i64 4, ptr %937) #11
  %30031 = call ptr @__errno_location() #12
  %30032 = load i32, ptr %30031, align 4, !tbaa !5
  store i32 %30032, ptr %937, align 4, !tbaa !5
  %30033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30034 = call i32 @s2n_print_stacktrace(ptr noundef %30033)
  %30035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30036 = trunc i8 %30035 to i1
  br i1 %30036, label %30037, label %30059

30037:                                            ; preds = %30030
  %30038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30039 = call i32 @fileno(ptr noundef %30038) #11
  %30040 = call i32 @isatty(i32 noundef %30039) #11
  %30041 = icmp ne i32 %30040, 0
  br i1 %30041, label %30042, label %30059

30042:                                            ; preds = %30037
  %30043 = load i32, ptr %937, align 4, !tbaa !5
  %30044 = call ptr @__errno_location() #12
  store i32 %30043, ptr %30044, align 4, !tbaa !5
  %30045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30046 = load i32, ptr @test_count, align 4, !tbaa !5
  %30047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30048 = load i32, ptr %30047, align 4, !tbaa !5
  %30049 = call ptr @s2n_strerror(i32 noundef %30048, ptr noundef @.str.4)
  %30050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30051 = load i32, ptr %30050, align 4, !tbaa !5
  %30052 = call ptr @s2n_strerror_debug(i32 noundef %30051, ptr noundef @.str.4)
  %30053 = call ptr @__errno_location() #12
  %30054 = load i32, ptr %30053, align 4, !tbaa !5
  %30055 = call ptr @strerror(i32 noundef %30054) #11
  %30056 = call ptr @__errno_location() #12
  %30057 = load i32, ptr %30056, align 4, !tbaa !5
  %30058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30045, ptr noundef @.str.2, i32 noundef %30046, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 1841, ptr noundef %30049, ptr noundef %30052, ptr noundef %30055, i32 noundef %30057) #11
  br label %30076

30059:                                            ; preds = %30037, %30030
  %30060 = load i32, ptr %937, align 4, !tbaa !5
  %30061 = call ptr @__errno_location() #12
  store i32 %30060, ptr %30061, align 4, !tbaa !5
  %30062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30063 = load i32, ptr @test_count, align 4, !tbaa !5
  %30064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30065 = load i32, ptr %30064, align 4, !tbaa !5
  %30066 = call ptr @s2n_strerror(i32 noundef %30065, ptr noundef @.str.4)
  %30067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30068 = load i32, ptr %30067, align 4, !tbaa !5
  %30069 = call ptr @s2n_strerror_debug(i32 noundef %30068, ptr noundef @.str.4)
  %30070 = call ptr @__errno_location() #12
  %30071 = load i32, ptr %30070, align 4, !tbaa !5
  %30072 = call ptr @strerror(i32 noundef %30071) #11
  %30073 = call ptr @__errno_location() #12
  %30074 = load i32, ptr %30073, align 4, !tbaa !5
  %30075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30062, ptr noundef @.str.5, i32 noundef %30063, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 1841, ptr noundef %30066, ptr noundef %30069, ptr noundef %30072, i32 noundef %30074) #11
  br label %30076

30076:                                            ; preds = %30059, %30042
  call void @llvm.lifetime.end.p0(i64 4, ptr %937) #11
  br label %30077

30077:                                            ; preds = %30076
  br label %30078

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

30079:                                            ; No predecessors!
  br label %30080

30080:                                            ; preds = %30079
  br label %30081

30081:                                            ; preds = %30080, %30017
  br label %30082

30082:                                            ; preds = %30081
  br label %30083

30083:                                            ; preds = %30082
  br label %30084

30084:                                            ; preds = %30083
  %30085 = load i32, ptr @test_count, align 4, !tbaa !5
  %30086 = add nsw i32 %30085, 1
  store i32 %30086, ptr @test_count, align 4, !tbaa !5
  %30087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30088 = load i32, ptr %30087, align 4, !tbaa !5
  %30089 = icmp eq i32 %30088, 335544344
  br i1 %30089, label %30143, label %30090

30090:                                            ; preds = %30084
  br label %30091

30091:                                            ; preds = %30090
  br label %30092

30092:                                            ; preds = %30091
  call void @llvm.lifetime.start.p0(i64 4, ptr %938) #11
  %30093 = call ptr @__errno_location() #12
  %30094 = load i32, ptr %30093, align 4, !tbaa !5
  store i32 %30094, ptr %938, align 4, !tbaa !5
  %30095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30096 = call i32 @s2n_print_stacktrace(ptr noundef %30095)
  %30097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30098 = trunc i8 %30097 to i1
  br i1 %30098, label %30099, label %30121

30099:                                            ; preds = %30092
  %30100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30101 = call i32 @fileno(ptr noundef %30100) #11
  %30102 = call i32 @isatty(i32 noundef %30101) #11
  %30103 = icmp ne i32 %30102, 0
  br i1 %30103, label %30104, label %30121

30104:                                            ; preds = %30099
  %30105 = load i32, ptr %938, align 4, !tbaa !5
  %30106 = call ptr @__errno_location() #12
  store i32 %30105, ptr %30106, align 4, !tbaa !5
  %30107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30108 = load i32, ptr @test_count, align 4, !tbaa !5
  %30109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30110 = load i32, ptr %30109, align 4, !tbaa !5
  %30111 = call ptr @s2n_strerror(i32 noundef %30110, ptr noundef @.str.4)
  %30112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30113 = load i32, ptr %30112, align 4, !tbaa !5
  %30114 = call ptr @s2n_strerror_debug(i32 noundef %30113, ptr noundef @.str.4)
  %30115 = call ptr @__errno_location() #12
  %30116 = load i32, ptr %30115, align 4, !tbaa !5
  %30117 = call ptr @strerror(i32 noundef %30116) #11
  %30118 = call ptr @__errno_location() #12
  %30119 = load i32, ptr %30118, align 4, !tbaa !5
  %30120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30107, ptr noundef @.str.2, i32 noundef %30108, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 1841, ptr noundef %30111, ptr noundef %30114, ptr noundef %30117, i32 noundef %30119) #11
  br label %30138

30121:                                            ; preds = %30099, %30092
  %30122 = load i32, ptr %938, align 4, !tbaa !5
  %30123 = call ptr @__errno_location() #12
  store i32 %30122, ptr %30123, align 4, !tbaa !5
  %30124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30125 = load i32, ptr @test_count, align 4, !tbaa !5
  %30126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30127 = load i32, ptr %30126, align 4, !tbaa !5
  %30128 = call ptr @s2n_strerror(i32 noundef %30127, ptr noundef @.str.4)
  %30129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30130 = load i32, ptr %30129, align 4, !tbaa !5
  %30131 = call ptr @s2n_strerror_debug(i32 noundef %30130, ptr noundef @.str.4)
  %30132 = call ptr @__errno_location() #12
  %30133 = load i32, ptr %30132, align 4, !tbaa !5
  %30134 = call ptr @strerror(i32 noundef %30133) #11
  %30135 = call ptr @__errno_location() #12
  %30136 = load i32, ptr %30135, align 4, !tbaa !5
  %30137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30124, ptr noundef @.str.5, i32 noundef %30125, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 1841, ptr noundef %30128, ptr noundef %30131, ptr noundef %30134, i32 noundef %30136) #11
  br label %30138

30138:                                            ; preds = %30121, %30104
  call void @llvm.lifetime.end.p0(i64 4, ptr %938) #11
  br label %30139

30139:                                            ; preds = %30138
  br label %30140

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

30141:                                            ; No predecessors!
  br label %30142

30142:                                            ; preds = %30141
  br label %30143

30143:                                            ; preds = %30142, %30084
  br label %30144

30144:                                            ; preds = %30143
  br label %30145

30145:                                            ; preds = %30144
  br label %30146

30146:                                            ; preds = %30145
  %30147 = load i32, ptr @test_count, align 4, !tbaa !5
  %30148 = add nsw i32 %30147, 1
  store i32 %30148, ptr @test_count, align 4, !tbaa !5
  %30149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30150 = load i32, ptr %30149, align 4, !tbaa !5
  %30151 = call ptr @s2n_strerror_debug(i32 noundef %30150, ptr noundef @.str.4)
  %30152 = icmp eq ptr %30151, null
  br i1 %30152, label %30153, label %30206

30153:                                            ; preds = %30146
  br label %30154

30154:                                            ; preds = %30153
  br label %30155

30155:                                            ; preds = %30154
  call void @llvm.lifetime.start.p0(i64 4, ptr %939) #11
  %30156 = call ptr @__errno_location() #12
  %30157 = load i32, ptr %30156, align 4, !tbaa !5
  store i32 %30157, ptr %939, align 4, !tbaa !5
  %30158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30159 = call i32 @s2n_print_stacktrace(ptr noundef %30158)
  %30160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30161 = trunc i8 %30160 to i1
  br i1 %30161, label %30162, label %30184

30162:                                            ; preds = %30155
  %30163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30164 = call i32 @fileno(ptr noundef %30163) #11
  %30165 = call i32 @isatty(i32 noundef %30164) #11
  %30166 = icmp ne i32 %30165, 0
  br i1 %30166, label %30167, label %30184

30167:                                            ; preds = %30162
  %30168 = load i32, ptr %939, align 4, !tbaa !5
  %30169 = call ptr @__errno_location() #12
  store i32 %30168, ptr %30169, align 4, !tbaa !5
  %30170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30171 = load i32, ptr @test_count, align 4, !tbaa !5
  %30172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30173 = load i32, ptr %30172, align 4, !tbaa !5
  %30174 = call ptr @s2n_strerror(i32 noundef %30173, ptr noundef @.str.4)
  %30175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30176 = load i32, ptr %30175, align 4, !tbaa !5
  %30177 = call ptr @s2n_strerror_debug(i32 noundef %30176, ptr noundef @.str.4)
  %30178 = call ptr @__errno_location() #12
  %30179 = load i32, ptr %30178, align 4, !tbaa !5
  %30180 = call ptr @strerror(i32 noundef %30179) #11
  %30181 = call ptr @__errno_location() #12
  %30182 = load i32, ptr %30181, align 4, !tbaa !5
  %30183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30170, ptr noundef @.str.2, i32 noundef %30171, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1841, ptr noundef %30174, ptr noundef %30177, ptr noundef %30180, i32 noundef %30182) #11
  br label %30201

30184:                                            ; preds = %30162, %30155
  %30185 = load i32, ptr %939, align 4, !tbaa !5
  %30186 = call ptr @__errno_location() #12
  store i32 %30185, ptr %30186, align 4, !tbaa !5
  %30187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30188 = load i32, ptr @test_count, align 4, !tbaa !5
  %30189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30190 = load i32, ptr %30189, align 4, !tbaa !5
  %30191 = call ptr @s2n_strerror(i32 noundef %30190, ptr noundef @.str.4)
  %30192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30193 = load i32, ptr %30192, align 4, !tbaa !5
  %30194 = call ptr @s2n_strerror_debug(i32 noundef %30193, ptr noundef @.str.4)
  %30195 = call ptr @__errno_location() #12
  %30196 = load i32, ptr %30195, align 4, !tbaa !5
  %30197 = call ptr @strerror(i32 noundef %30196) #11
  %30198 = call ptr @__errno_location() #12
  %30199 = load i32, ptr %30198, align 4, !tbaa !5
  %30200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30187, ptr noundef @.str.5, i32 noundef %30188, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1841, ptr noundef %30191, ptr noundef %30194, ptr noundef %30197, i32 noundef %30199) #11
  br label %30201

30201:                                            ; preds = %30184, %30167
  call void @llvm.lifetime.end.p0(i64 4, ptr %939) #11
  br label %30202

30202:                                            ; preds = %30201
  br label %30203

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

30204:                                            ; No predecessors!
  br label %30205

30205:                                            ; preds = %30204
  br label %30206

30206:                                            ; preds = %30205, %30146
  br label %30207

30207:                                            ; preds = %30206
  br label %30208

30208:                                            ; preds = %30207
  br label %30209

30209:                                            ; preds = %30208
  br label %30210

30210:                                            ; preds = %30209
  br label %30211

30211:                                            ; preds = %30210
  %30212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %30212, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %30213 = call ptr @__errno_location() #12
  store i32 0, ptr %30213, align 4, !tbaa !5
  br label %30214

30214:                                            ; preds = %30211
  br label %30215

30215:                                            ; preds = %30214
  br label %30216

30216:                                            ; preds = %30215
  br label %30217

30217:                                            ; preds = %30216
  call void @llvm.lifetime.end.p0(i64 4, ptr %935) #11
  %30218 = call i32 @s2n_pkey_free(ptr noundef %933)
  call void @llvm.lifetime.end.p0(i64 48, ptr %933) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %931) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %929) #11
  %30219 = call i32 @s2n_stuffer_free(ptr noundef %925)
  call void @llvm.lifetime.end.p0(i64 40, ptr %925) #11
  %30220 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %923)
  %30221 = getelementptr inbounds %struct.s2n_result, ptr %940, i32 0, i32 0
  store i32 %30220, ptr %30221, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %923) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr %921) #11
  %30222 = call i32 @s2n_connection_ptr_free(ptr noundef %919)
  %30223 = getelementptr inbounds %struct.s2n_result, ptr %941, i32 0, i32 0
  store i32 %30222, ptr %30223, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %919) #11
  %30224 = call i32 @s2n_x509_validator_wipe(ptr noundef %917)
  call void @llvm.lifetime.end.p0(i64 56, ptr %917) #11
  br label %30225

30225:                                            ; preds = %30217, %29383
  call void @llvm.lifetime.start.p0(i64 56, ptr %942) #11
  call void @llvm.memset.p0.i64(ptr align 8 %942, i8 0, i64 56, i1 false)
  br label %30226

30226:                                            ; preds = %30225
  %30227 = load i32, ptr @test_count, align 4, !tbaa !5
  %30228 = add nsw i32 %30227, 1
  store i32 %30228, ptr @test_count, align 4, !tbaa !5
  %30229 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %942)
  %30230 = icmp eq i32 %30229, -1
  br i1 %30230, label %30231, label %30284

30231:                                            ; preds = %30226
  br label %30232

30232:                                            ; preds = %30231
  br label %30233

30233:                                            ; preds = %30232
  call void @llvm.lifetime.start.p0(i64 4, ptr %943) #11
  %30234 = call ptr @__errno_location() #12
  %30235 = load i32, ptr %30234, align 4, !tbaa !5
  store i32 %30235, ptr %943, align 4, !tbaa !5
  %30236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30237 = call i32 @s2n_print_stacktrace(ptr noundef %30236)
  %30238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30239 = trunc i8 %30238 to i1
  br i1 %30239, label %30240, label %30262

30240:                                            ; preds = %30233
  %30241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30242 = call i32 @fileno(ptr noundef %30241) #11
  %30243 = call i32 @isatty(i32 noundef %30242) #11
  %30244 = icmp ne i32 %30243, 0
  br i1 %30244, label %30245, label %30262

30245:                                            ; preds = %30240
  %30246 = load i32, ptr %943, align 4, !tbaa !5
  %30247 = call ptr @__errno_location() #12
  store i32 %30246, ptr %30247, align 4, !tbaa !5
  %30248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30249 = load i32, ptr @test_count, align 4, !tbaa !5
  %30250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30251 = load i32, ptr %30250, align 4, !tbaa !5
  %30252 = call ptr @s2n_strerror(i32 noundef %30251, ptr noundef @.str.4)
  %30253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30254 = load i32, ptr %30253, align 4, !tbaa !5
  %30255 = call ptr @s2n_strerror_debug(i32 noundef %30254, ptr noundef @.str.4)
  %30256 = call ptr @__errno_location() #12
  %30257 = load i32, ptr %30256, align 4, !tbaa !5
  %30258 = call ptr @strerror(i32 noundef %30257) #11
  %30259 = call ptr @__errno_location() #12
  %30260 = load i32, ptr %30259, align 4, !tbaa !5
  %30261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30248, ptr noundef @.str.2, i32 noundef %30249, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1847, ptr noundef %30252, ptr noundef %30255, ptr noundef %30258, i32 noundef %30260) #11
  br label %30279

30262:                                            ; preds = %30240, %30233
  %30263 = load i32, ptr %943, align 4, !tbaa !5
  %30264 = call ptr @__errno_location() #12
  store i32 %30263, ptr %30264, align 4, !tbaa !5
  %30265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30266 = load i32, ptr @test_count, align 4, !tbaa !5
  %30267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30268 = load i32, ptr %30267, align 4, !tbaa !5
  %30269 = call ptr @s2n_strerror(i32 noundef %30268, ptr noundef @.str.4)
  %30270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30271 = load i32, ptr %30270, align 4, !tbaa !5
  %30272 = call ptr @s2n_strerror_debug(i32 noundef %30271, ptr noundef @.str.4)
  %30273 = call ptr @__errno_location() #12
  %30274 = load i32, ptr %30273, align 4, !tbaa !5
  %30275 = call ptr @strerror(i32 noundef %30274) #11
  %30276 = call ptr @__errno_location() #12
  %30277 = load i32, ptr %30276, align 4, !tbaa !5
  %30278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30265, ptr noundef @.str.5, i32 noundef %30266, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1847, ptr noundef %30269, ptr noundef %30272, ptr noundef %30275, i32 noundef %30277) #11
  br label %30279

30279:                                            ; preds = %30262, %30245
  call void @llvm.lifetime.end.p0(i64 4, ptr %943) #11
  br label %30280

30280:                                            ; preds = %30279
  br label %30281

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

30282:                                            ; No predecessors!
  br label %30283

30283:                                            ; preds = %30282
  br label %30284

30284:                                            ; preds = %30283, %30226
  br label %30285

30285:                                            ; preds = %30284
  br label %30286

30286:                                            ; preds = %30285
  call void @llvm.lifetime.start.p0(i64 8, ptr %944) #11
  %30287 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %30287, ptr %944, align 8, !tbaa !9
  br label %30288

30288:                                            ; preds = %30286
  %30289 = load i32, ptr @test_count, align 4, !tbaa !5
  %30290 = add nsw i32 %30289, 1
  store i32 %30290, ptr @test_count, align 4, !tbaa !5
  %30291 = load ptr, ptr %944, align 8, !tbaa !9
  %30292 = icmp eq ptr %30291, null
  br i1 %30292, label %30293, label %30346

30293:                                            ; preds = %30288
  br label %30294

30294:                                            ; preds = %30293
  br label %30295

30295:                                            ; preds = %30294
  call void @llvm.lifetime.start.p0(i64 4, ptr %945) #11
  %30296 = call ptr @__errno_location() #12
  %30297 = load i32, ptr %30296, align 4, !tbaa !5
  store i32 %30297, ptr %945, align 4, !tbaa !5
  %30298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30299 = call i32 @s2n_print_stacktrace(ptr noundef %30298)
  %30300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30301 = trunc i8 %30300 to i1
  br i1 %30301, label %30302, label %30324

30302:                                            ; preds = %30295
  %30303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30304 = call i32 @fileno(ptr noundef %30303) #11
  %30305 = call i32 @isatty(i32 noundef %30304) #11
  %30306 = icmp ne i32 %30305, 0
  br i1 %30306, label %30307, label %30324

30307:                                            ; preds = %30302
  %30308 = load i32, ptr %945, align 4, !tbaa !5
  %30309 = call ptr @__errno_location() #12
  store i32 %30308, ptr %30309, align 4, !tbaa !5
  %30310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30311 = load i32, ptr @test_count, align 4, !tbaa !5
  %30312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30313 = load i32, ptr %30312, align 4, !tbaa !5
  %30314 = call ptr @s2n_strerror(i32 noundef %30313, ptr noundef @.str.4)
  %30315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30316 = load i32, ptr %30315, align 4, !tbaa !5
  %30317 = call ptr @s2n_strerror_debug(i32 noundef %30316, ptr noundef @.str.4)
  %30318 = call ptr @__errno_location() #12
  %30319 = load i32, ptr %30318, align 4, !tbaa !5
  %30320 = call ptr @strerror(i32 noundef %30319) #11
  %30321 = call ptr @__errno_location() #12
  %30322 = load i32, ptr %30321, align 4, !tbaa !5
  %30323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30310, ptr noundef @.str.2, i32 noundef %30311, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1850, ptr noundef %30314, ptr noundef %30317, ptr noundef %30320, i32 noundef %30322) #11
  br label %30341

30324:                                            ; preds = %30302, %30295
  %30325 = load i32, ptr %945, align 4, !tbaa !5
  %30326 = call ptr @__errno_location() #12
  store i32 %30325, ptr %30326, align 4, !tbaa !5
  %30327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30328 = load i32, ptr @test_count, align 4, !tbaa !5
  %30329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30330 = load i32, ptr %30329, align 4, !tbaa !5
  %30331 = call ptr @s2n_strerror(i32 noundef %30330, ptr noundef @.str.4)
  %30332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30333 = load i32, ptr %30332, align 4, !tbaa !5
  %30334 = call ptr @s2n_strerror_debug(i32 noundef %30333, ptr noundef @.str.4)
  %30335 = call ptr @__errno_location() #12
  %30336 = load i32, ptr %30335, align 4, !tbaa !5
  %30337 = call ptr @strerror(i32 noundef %30336) #11
  %30338 = call ptr @__errno_location() #12
  %30339 = load i32, ptr %30338, align 4, !tbaa !5
  %30340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30327, ptr noundef @.str.5, i32 noundef %30328, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1850, ptr noundef %30331, ptr noundef %30334, ptr noundef %30337, i32 noundef %30339) #11
  br label %30341

30341:                                            ; preds = %30324, %30307
  call void @llvm.lifetime.end.p0(i64 4, ptr %945) #11
  br label %30342

30342:                                            ; preds = %30341
  br label %30343

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

30344:                                            ; No predecessors!
  br label %30345

30345:                                            ; preds = %30344
  br label %30346

30346:                                            ; preds = %30345, %30288
  br label %30347

30347:                                            ; preds = %30346
  br label %30348

30348:                                            ; preds = %30347
  call void @llvm.lifetime.start.p0(i64 40, ptr %946) #11
  call void @llvm.memset.p0.i64(ptr align 8 %946, i8 0, i64 40, i1 false)
  br label %30349

30349:                                            ; preds = %30348
  %30350 = load i32, ptr @test_count, align 4, !tbaa !5
  %30351 = add nsw i32 %30350, 1
  store i32 %30351, ptr @test_count, align 4, !tbaa !5
  %30352 = call i32 @read_file(ptr noundef %946, ptr noundef @.str.115, i32 noundef 12000)
  %30353 = icmp eq i32 %30352, -1
  br i1 %30353, label %30354, label %30407

30354:                                            ; preds = %30349
  br label %30355

30355:                                            ; preds = %30354
  br label %30356

30356:                                            ; preds = %30355
  call void @llvm.lifetime.start.p0(i64 4, ptr %947) #11
  %30357 = call ptr @__errno_location() #12
  %30358 = load i32, ptr %30357, align 4, !tbaa !5
  store i32 %30358, ptr %947, align 4, !tbaa !5
  %30359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30360 = call i32 @s2n_print_stacktrace(ptr noundef %30359)
  %30361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30362 = trunc i8 %30361 to i1
  br i1 %30362, label %30363, label %30385

30363:                                            ; preds = %30356
  %30364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30365 = call i32 @fileno(ptr noundef %30364) #11
  %30366 = call i32 @isatty(i32 noundef %30365) #11
  %30367 = icmp ne i32 %30366, 0
  br i1 %30367, label %30368, label %30385

30368:                                            ; preds = %30363
  %30369 = load i32, ptr %947, align 4, !tbaa !5
  %30370 = call ptr @__errno_location() #12
  store i32 %30369, ptr %30370, align 4, !tbaa !5
  %30371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30372 = load i32, ptr @test_count, align 4, !tbaa !5
  %30373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30374 = load i32, ptr %30373, align 4, !tbaa !5
  %30375 = call ptr @s2n_strerror(i32 noundef %30374, ptr noundef @.str.4)
  %30376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30377 = load i32, ptr %30376, align 4, !tbaa !5
  %30378 = call ptr @s2n_strerror_debug(i32 noundef %30377, ptr noundef @.str.4)
  %30379 = call ptr @__errno_location() #12
  %30380 = load i32, ptr %30379, align 4, !tbaa !5
  %30381 = call ptr @strerror(i32 noundef %30380) #11
  %30382 = call ptr @__errno_location() #12
  %30383 = load i32, ptr %30382, align 4, !tbaa !5
  %30384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30371, ptr noundef @.str.2, i32 noundef %30372, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 1853, ptr noundef %30375, ptr noundef %30378, ptr noundef %30381, i32 noundef %30383) #11
  br label %30402

30385:                                            ; preds = %30363, %30356
  %30386 = load i32, ptr %947, align 4, !tbaa !5
  %30387 = call ptr @__errno_location() #12
  store i32 %30386, ptr %30387, align 4, !tbaa !5
  %30388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30389 = load i32, ptr @test_count, align 4, !tbaa !5
  %30390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30391 = load i32, ptr %30390, align 4, !tbaa !5
  %30392 = call ptr @s2n_strerror(i32 noundef %30391, ptr noundef @.str.4)
  %30393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30394 = load i32, ptr %30393, align 4, !tbaa !5
  %30395 = call ptr @s2n_strerror_debug(i32 noundef %30394, ptr noundef @.str.4)
  %30396 = call ptr @__errno_location() #12
  %30397 = load i32, ptr %30396, align 4, !tbaa !5
  %30398 = call ptr @strerror(i32 noundef %30397) #11
  %30399 = call ptr @__errno_location() #12
  %30400 = load i32, ptr %30399, align 4, !tbaa !5
  %30401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30388, ptr noundef @.str.5, i32 noundef %30389, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 1853, ptr noundef %30392, ptr noundef %30395, ptr noundef %30398, i32 noundef %30400) #11
  br label %30402

30402:                                            ; preds = %30385, %30368
  call void @llvm.lifetime.end.p0(i64 4, ptr %947) #11
  br label %30403

30403:                                            ; preds = %30402
  br label %30404

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

30405:                                            ; No predecessors!
  br label %30406

30406:                                            ; preds = %30405
  br label %30407

30407:                                            ; preds = %30406, %30349
  br label %30408

30408:                                            ; preds = %30407
  br label %30409

30409:                                            ; preds = %30408
  call void @llvm.lifetime.start.p0(i64 4, ptr %948) #11
  %30410 = getelementptr inbounds %struct.s2n_stuffer, ptr %946, i32 0, i32 2
  %30411 = load i32, ptr %30410, align 4, !tbaa !15
  %30412 = getelementptr inbounds %struct.s2n_stuffer, ptr %946, i32 0, i32 1
  %30413 = load i32, ptr %30412, align 8, !tbaa !18
  %30414 = sub i32 %30411, %30413
  store i32 %30414, ptr %948, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %949) #11
  %30415 = load i32, ptr %948, align 4, !tbaa !5
  %30416 = call ptr @s2n_stuffer_raw_read(ptr noundef %946, i32 noundef %30415)
  store ptr %30416, ptr %949, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %950) #11
  call void @llvm.memset.p0.i64(ptr align 8 %950, i8 0, i64 40, i1 false)
  br label %30417

30417:                                            ; preds = %30409
  %30418 = load i32, ptr @test_count, align 4, !tbaa !5
  %30419 = add nsw i32 %30418, 1
  store i32 %30419, ptr @test_count, align 4, !tbaa !5
  %30420 = call i32 @read_file(ptr noundef %950, ptr noundef @.str.118, i32 noundef 12000)
  %30421 = icmp eq i32 %30420, -1
  br i1 %30421, label %30422, label %30475

30422:                                            ; preds = %30417
  br label %30423

30423:                                            ; preds = %30422
  br label %30424

30424:                                            ; preds = %30423
  call void @llvm.lifetime.start.p0(i64 4, ptr %951) #11
  %30425 = call ptr @__errno_location() #12
  %30426 = load i32, ptr %30425, align 4, !tbaa !5
  store i32 %30426, ptr %951, align 4, !tbaa !5
  %30427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30428 = call i32 @s2n_print_stacktrace(ptr noundef %30427)
  %30429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30430 = trunc i8 %30429 to i1
  br i1 %30430, label %30431, label %30453

30431:                                            ; preds = %30424
  %30432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30433 = call i32 @fileno(ptr noundef %30432) #11
  %30434 = call i32 @isatty(i32 noundef %30433) #11
  %30435 = icmp ne i32 %30434, 0
  br i1 %30435, label %30436, label %30453

30436:                                            ; preds = %30431
  %30437 = load i32, ptr %951, align 4, !tbaa !5
  %30438 = call ptr @__errno_location() #12
  store i32 %30437, ptr %30438, align 4, !tbaa !5
  %30439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30440 = load i32, ptr @test_count, align 4, !tbaa !5
  %30441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30442 = load i32, ptr %30441, align 4, !tbaa !5
  %30443 = call ptr @s2n_strerror(i32 noundef %30442, ptr noundef @.str.4)
  %30444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30445 = load i32, ptr %30444, align 4, !tbaa !5
  %30446 = call ptr @s2n_strerror_debug(i32 noundef %30445, ptr noundef @.str.4)
  %30447 = call ptr @__errno_location() #12
  %30448 = load i32, ptr %30447, align 4, !tbaa !5
  %30449 = call ptr @strerror(i32 noundef %30448) #11
  %30450 = call ptr @__errno_location() #12
  %30451 = load i32, ptr %30450, align 4, !tbaa !5
  %30452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30439, ptr noundef @.str.2, i32 noundef %30440, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 1859, ptr noundef %30443, ptr noundef %30446, ptr noundef %30449, i32 noundef %30451) #11
  br label %30470

30453:                                            ; preds = %30431, %30424
  %30454 = load i32, ptr %951, align 4, !tbaa !5
  %30455 = call ptr @__errno_location() #12
  store i32 %30454, ptr %30455, align 4, !tbaa !5
  %30456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30457 = load i32, ptr @test_count, align 4, !tbaa !5
  %30458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30459 = load i32, ptr %30458, align 4, !tbaa !5
  %30460 = call ptr @s2n_strerror(i32 noundef %30459, ptr noundef @.str.4)
  %30461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30462 = load i32, ptr %30461, align 4, !tbaa !5
  %30463 = call ptr @s2n_strerror_debug(i32 noundef %30462, ptr noundef @.str.4)
  %30464 = call ptr @__errno_location() #12
  %30465 = load i32, ptr %30464, align 4, !tbaa !5
  %30466 = call ptr @strerror(i32 noundef %30465) #11
  %30467 = call ptr @__errno_location() #12
  %30468 = load i32, ptr %30467, align 4, !tbaa !5
  %30469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30456, ptr noundef @.str.5, i32 noundef %30457, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 1859, ptr noundef %30460, ptr noundef %30463, ptr noundef %30466, i32 noundef %30468) #11
  br label %30470

30470:                                            ; preds = %30453, %30436
  call void @llvm.lifetime.end.p0(i64 4, ptr %951) #11
  br label %30471

30471:                                            ; preds = %30470
  br label %30472

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

30473:                                            ; No predecessors!
  br label %30474

30474:                                            ; preds = %30473
  br label %30475

30475:                                            ; preds = %30474, %30417
  br label %30476

30476:                                            ; preds = %30475
  br label %30477

30477:                                            ; preds = %30476
  call void @llvm.lifetime.start.p0(i64 4, ptr %952) #11
  %30478 = getelementptr inbounds %struct.s2n_stuffer, ptr %950, i32 0, i32 2
  %30479 = load i32, ptr %30478, align 4, !tbaa !15
  %30480 = getelementptr inbounds %struct.s2n_stuffer, ptr %950, i32 0, i32 1
  %30481 = load i32, ptr %30480, align 8, !tbaa !18
  %30482 = sub i32 %30479, %30481
  store i32 %30482, ptr %952, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %953) #11
  %30483 = load i32, ptr %952, align 4, !tbaa !5
  %30484 = call ptr @s2n_stuffer_raw_read(ptr noundef %950, i32 noundef %30483)
  store ptr %30484, ptr %953, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %954) #11
  call void @llvm.memset.p0.i64(ptr align 8 %954, i8 0, i64 40, i1 false)
  br label %30485

30485:                                            ; preds = %30477
  %30486 = load i32, ptr @test_count, align 4, !tbaa !5
  %30487 = add nsw i32 %30486, 1
  store i32 %30487, ptr @test_count, align 4, !tbaa !5
  %30488 = call i32 @s2n_stuffer_alloc(ptr noundef %954, i32 noundef 24000)
  %30489 = icmp eq i32 %30488, -1
  br i1 %30489, label %30490, label %30543

30490:                                            ; preds = %30485
  br label %30491

30491:                                            ; preds = %30490
  br label %30492

30492:                                            ; preds = %30491
  call void @llvm.lifetime.start.p0(i64 4, ptr %955) #11
  %30493 = call ptr @__errno_location() #12
  %30494 = load i32, ptr %30493, align 4, !tbaa !5
  store i32 %30494, ptr %955, align 4, !tbaa !5
  %30495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30496 = call i32 @s2n_print_stacktrace(ptr noundef %30495)
  %30497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30498 = trunc i8 %30497 to i1
  br i1 %30498, label %30499, label %30521

30499:                                            ; preds = %30492
  %30500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30501 = call i32 @fileno(ptr noundef %30500) #11
  %30502 = call i32 @isatty(i32 noundef %30501) #11
  %30503 = icmp ne i32 %30502, 0
  br i1 %30503, label %30504, label %30521

30504:                                            ; preds = %30499
  %30505 = load i32, ptr %955, align 4, !tbaa !5
  %30506 = call ptr @__errno_location() #12
  store i32 %30505, ptr %30506, align 4, !tbaa !5
  %30507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30508 = load i32, ptr @test_count, align 4, !tbaa !5
  %30509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30510 = load i32, ptr %30509, align 4, !tbaa !5
  %30511 = call ptr @s2n_strerror(i32 noundef %30510, ptr noundef @.str.4)
  %30512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30513 = load i32, ptr %30512, align 4, !tbaa !5
  %30514 = call ptr @s2n_strerror_debug(i32 noundef %30513, ptr noundef @.str.4)
  %30515 = call ptr @__errno_location() #12
  %30516 = load i32, ptr %30515, align 4, !tbaa !5
  %30517 = call ptr @strerror(i32 noundef %30516) #11
  %30518 = call ptr @__errno_location() #12
  %30519 = load i32, ptr %30518, align 4, !tbaa !5
  %30520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30507, ptr noundef @.str.2, i32 noundef %30508, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 1865, ptr noundef %30511, ptr noundef %30514, ptr noundef %30517, i32 noundef %30519) #11
  br label %30538

30521:                                            ; preds = %30499, %30492
  %30522 = load i32, ptr %955, align 4, !tbaa !5
  %30523 = call ptr @__errno_location() #12
  store i32 %30522, ptr %30523, align 4, !tbaa !5
  %30524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30525 = load i32, ptr @test_count, align 4, !tbaa !5
  %30526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30527 = load i32, ptr %30526, align 4, !tbaa !5
  %30528 = call ptr @s2n_strerror(i32 noundef %30527, ptr noundef @.str.4)
  %30529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30530 = load i32, ptr %30529, align 4, !tbaa !5
  %30531 = call ptr @s2n_strerror_debug(i32 noundef %30530, ptr noundef @.str.4)
  %30532 = call ptr @__errno_location() #12
  %30533 = load i32, ptr %30532, align 4, !tbaa !5
  %30534 = call ptr @strerror(i32 noundef %30533) #11
  %30535 = call ptr @__errno_location() #12
  %30536 = load i32, ptr %30535, align 4, !tbaa !5
  %30537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30524, ptr noundef @.str.5, i32 noundef %30525, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 1865, ptr noundef %30528, ptr noundef %30531, ptr noundef %30534, i32 noundef %30536) #11
  br label %30538

30538:                                            ; preds = %30521, %30504
  call void @llvm.lifetime.end.p0(i64 4, ptr %955) #11
  br label %30539

30539:                                            ; preds = %30538
  br label %30540

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

30541:                                            ; No predecessors!
  br label %30542

30542:                                            ; preds = %30541
  br label %30543

30543:                                            ; preds = %30542, %30485
  br label %30544

30544:                                            ; preds = %30543
  br label %30545

30545:                                            ; preds = %30544
  br label %30546

30546:                                            ; preds = %30545
  %30547 = load i32, ptr @test_count, align 4, !tbaa !5
  %30548 = add nsw i32 %30547, 1
  store i32 %30548, ptr @test_count, align 4, !tbaa !5
  %30549 = load ptr, ptr %949, align 8, !tbaa !9
  %30550 = load i32, ptr %948, align 4, !tbaa !5
  %30551 = call i32 @s2n_stuffer_write_bytes(ptr noundef %954, ptr noundef %30549, i32 noundef %30550)
  %30552 = icmp eq i32 %30551, -1
  br i1 %30552, label %30553, label %30606

30553:                                            ; preds = %30546
  br label %30554

30554:                                            ; preds = %30553
  br label %30555

30555:                                            ; preds = %30554
  call void @llvm.lifetime.start.p0(i64 4, ptr %956) #11
  %30556 = call ptr @__errno_location() #12
  %30557 = load i32, ptr %30556, align 4, !tbaa !5
  store i32 %30557, ptr %956, align 4, !tbaa !5
  %30558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30559 = call i32 @s2n_print_stacktrace(ptr noundef %30558)
  %30560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30561 = trunc i8 %30560 to i1
  br i1 %30561, label %30562, label %30584

30562:                                            ; preds = %30555
  %30563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30564 = call i32 @fileno(ptr noundef %30563) #11
  %30565 = call i32 @isatty(i32 noundef %30564) #11
  %30566 = icmp ne i32 %30565, 0
  br i1 %30566, label %30567, label %30584

30567:                                            ; preds = %30562
  %30568 = load i32, ptr %956, align 4, !tbaa !5
  %30569 = call ptr @__errno_location() #12
  store i32 %30568, ptr %30569, align 4, !tbaa !5
  %30570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30571 = load i32, ptr @test_count, align 4, !tbaa !5
  %30572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30573 = load i32, ptr %30572, align 4, !tbaa !5
  %30574 = call ptr @s2n_strerror(i32 noundef %30573, ptr noundef @.str.4)
  %30575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30576 = load i32, ptr %30575, align 4, !tbaa !5
  %30577 = call ptr @s2n_strerror_debug(i32 noundef %30576, ptr noundef @.str.4)
  %30578 = call ptr @__errno_location() #12
  %30579 = load i32, ptr %30578, align 4, !tbaa !5
  %30580 = call ptr @strerror(i32 noundef %30579) #11
  %30581 = call ptr @__errno_location() #12
  %30582 = load i32, ptr %30581, align 4, !tbaa !5
  %30583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30570, ptr noundef @.str.2, i32 noundef %30571, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 1867, ptr noundef %30574, ptr noundef %30577, ptr noundef %30580, i32 noundef %30582) #11
  br label %30601

30584:                                            ; preds = %30562, %30555
  %30585 = load i32, ptr %956, align 4, !tbaa !5
  %30586 = call ptr @__errno_location() #12
  store i32 %30585, ptr %30586, align 4, !tbaa !5
  %30587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30588 = load i32, ptr @test_count, align 4, !tbaa !5
  %30589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30590 = load i32, ptr %30589, align 4, !tbaa !5
  %30591 = call ptr @s2n_strerror(i32 noundef %30590, ptr noundef @.str.4)
  %30592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30593 = load i32, ptr %30592, align 4, !tbaa !5
  %30594 = call ptr @s2n_strerror_debug(i32 noundef %30593, ptr noundef @.str.4)
  %30595 = call ptr @__errno_location() #12
  %30596 = load i32, ptr %30595, align 4, !tbaa !5
  %30597 = call ptr @strerror(i32 noundef %30596) #11
  %30598 = call ptr @__errno_location() #12
  %30599 = load i32, ptr %30598, align 4, !tbaa !5
  %30600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30587, ptr noundef @.str.5, i32 noundef %30588, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 1867, ptr noundef %30591, ptr noundef %30594, ptr noundef %30597, i32 noundef %30599) #11
  br label %30601

30601:                                            ; preds = %30584, %30567
  call void @llvm.lifetime.end.p0(i64 4, ptr %956) #11
  br label %30602

30602:                                            ; preds = %30601
  br label %30603

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

30604:                                            ; No predecessors!
  br label %30605

30605:                                            ; preds = %30604
  br label %30606

30606:                                            ; preds = %30605, %30546
  br label %30607

30607:                                            ; preds = %30606
  br label %30608

30608:                                            ; preds = %30607
  br label %30609

30609:                                            ; preds = %30608
  %30610 = load i32, ptr @test_count, align 4, !tbaa !5
  %30611 = add nsw i32 %30610, 1
  store i32 %30611, ptr @test_count, align 4, !tbaa !5
  %30612 = load ptr, ptr %953, align 8, !tbaa !9
  %30613 = load i32, ptr %952, align 4, !tbaa !5
  %30614 = call i32 @s2n_stuffer_write_bytes(ptr noundef %954, ptr noundef %30612, i32 noundef %30613)
  %30615 = icmp eq i32 %30614, -1
  br i1 %30615, label %30616, label %30669

30616:                                            ; preds = %30609
  br label %30617

30617:                                            ; preds = %30616
  br label %30618

30618:                                            ; preds = %30617
  call void @llvm.lifetime.start.p0(i64 4, ptr %957) #11
  %30619 = call ptr @__errno_location() #12
  %30620 = load i32, ptr %30619, align 4, !tbaa !5
  store i32 %30620, ptr %957, align 4, !tbaa !5
  %30621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30622 = call i32 @s2n_print_stacktrace(ptr noundef %30621)
  %30623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30624 = trunc i8 %30623 to i1
  br i1 %30624, label %30625, label %30647

30625:                                            ; preds = %30618
  %30626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30627 = call i32 @fileno(ptr noundef %30626) #11
  %30628 = call i32 @isatty(i32 noundef %30627) #11
  %30629 = icmp ne i32 %30628, 0
  br i1 %30629, label %30630, label %30647

30630:                                            ; preds = %30625
  %30631 = load i32, ptr %957, align 4, !tbaa !5
  %30632 = call ptr @__errno_location() #12
  store i32 %30631, ptr %30632, align 4, !tbaa !5
  %30633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30634 = load i32, ptr @test_count, align 4, !tbaa !5
  %30635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30636 = load i32, ptr %30635, align 4, !tbaa !5
  %30637 = call ptr @s2n_strerror(i32 noundef %30636, ptr noundef @.str.4)
  %30638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30639 = load i32, ptr %30638, align 4, !tbaa !5
  %30640 = call ptr @s2n_strerror_debug(i32 noundef %30639, ptr noundef @.str.4)
  %30641 = call ptr @__errno_location() #12
  %30642 = load i32, ptr %30641, align 4, !tbaa !5
  %30643 = call ptr @strerror(i32 noundef %30642) #11
  %30644 = call ptr @__errno_location() #12
  %30645 = load i32, ptr %30644, align 4, !tbaa !5
  %30646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30633, ptr noundef @.str.2, i32 noundef %30634, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 1869, ptr noundef %30637, ptr noundef %30640, ptr noundef %30643, i32 noundef %30645) #11
  br label %30664

30647:                                            ; preds = %30625, %30618
  %30648 = load i32, ptr %957, align 4, !tbaa !5
  %30649 = call ptr @__errno_location() #12
  store i32 %30648, ptr %30649, align 4, !tbaa !5
  %30650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30651 = load i32, ptr @test_count, align 4, !tbaa !5
  %30652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30653 = load i32, ptr %30652, align 4, !tbaa !5
  %30654 = call ptr @s2n_strerror(i32 noundef %30653, ptr noundef @.str.4)
  %30655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30656 = load i32, ptr %30655, align 4, !tbaa !5
  %30657 = call ptr @s2n_strerror_debug(i32 noundef %30656, ptr noundef @.str.4)
  %30658 = call ptr @__errno_location() #12
  %30659 = load i32, ptr %30658, align 4, !tbaa !5
  %30660 = call ptr @strerror(i32 noundef %30659) #11
  %30661 = call ptr @__errno_location() #12
  %30662 = load i32, ptr %30661, align 4, !tbaa !5
  %30663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30650, ptr noundef @.str.5, i32 noundef %30651, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 1869, ptr noundef %30654, ptr noundef %30657, ptr noundef %30660, i32 noundef %30662) #11
  br label %30664

30664:                                            ; preds = %30647, %30630
  call void @llvm.lifetime.end.p0(i64 4, ptr %957) #11
  br label %30665

30665:                                            ; preds = %30664
  br label %30666

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

30667:                                            ; No predecessors!
  br label %30668

30668:                                            ; preds = %30667
  br label %30669

30669:                                            ; preds = %30668, %30609
  br label %30670

30670:                                            ; preds = %30669
  br label %30671

30671:                                            ; preds = %30670
  call void @llvm.lifetime.start.p0(i64 4, ptr %958) #11
  %30672 = getelementptr inbounds %struct.s2n_stuffer, ptr %954, i32 0, i32 2
  %30673 = load i32, ptr %30672, align 4, !tbaa !15
  %30674 = getelementptr inbounds %struct.s2n_stuffer, ptr %954, i32 0, i32 1
  %30675 = load i32, ptr %30674, align 8, !tbaa !18
  %30676 = sub i32 %30673, %30675
  store i32 %30676, ptr %958, align 4, !tbaa !5
  br label %30677

30677:                                            ; preds = %30671
  %30678 = load i32, ptr @test_count, align 4, !tbaa !5
  %30679 = add nsw i32 %30678, 1
  store i32 %30679, ptr @test_count, align 4, !tbaa !5
  %30680 = load i32, ptr %958, align 4, !tbaa !5
  %30681 = icmp ugt i32 %30680, 0
  br i1 %30681, label %30735, label %30682

30682:                                            ; preds = %30677
  br label %30683

30683:                                            ; preds = %30682
  br label %30684

30684:                                            ; preds = %30683
  call void @llvm.lifetime.start.p0(i64 4, ptr %959) #11
  %30685 = call ptr @__errno_location() #12
  %30686 = load i32, ptr %30685, align 4, !tbaa !5
  store i32 %30686, ptr %959, align 4, !tbaa !5
  %30687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30688 = call i32 @s2n_print_stacktrace(ptr noundef %30687)
  %30689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30690 = trunc i8 %30689 to i1
  br i1 %30690, label %30691, label %30713

30691:                                            ; preds = %30684
  %30692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30693 = call i32 @fileno(ptr noundef %30692) #11
  %30694 = call i32 @isatty(i32 noundef %30693) #11
  %30695 = icmp ne i32 %30694, 0
  br i1 %30695, label %30696, label %30713

30696:                                            ; preds = %30691
  %30697 = load i32, ptr %959, align 4, !tbaa !5
  %30698 = call ptr @__errno_location() #12
  store i32 %30697, ptr %30698, align 4, !tbaa !5
  %30699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30700 = load i32, ptr @test_count, align 4, !tbaa !5
  %30701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30702 = load i32, ptr %30701, align 4, !tbaa !5
  %30703 = call ptr @s2n_strerror(i32 noundef %30702, ptr noundef @.str.4)
  %30704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30705 = load i32, ptr %30704, align 4, !tbaa !5
  %30706 = call ptr @s2n_strerror_debug(i32 noundef %30705, ptr noundef @.str.4)
  %30707 = call ptr @__errno_location() #12
  %30708 = load i32, ptr %30707, align 4, !tbaa !5
  %30709 = call ptr @strerror(i32 noundef %30708) #11
  %30710 = call ptr @__errno_location() #12
  %30711 = load i32, ptr %30710, align 4, !tbaa !5
  %30712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30699, ptr noundef @.str.2, i32 noundef %30700, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1872, ptr noundef %30703, ptr noundef %30706, ptr noundef %30709, i32 noundef %30711) #11
  br label %30730

30713:                                            ; preds = %30691, %30684
  %30714 = load i32, ptr %959, align 4, !tbaa !5
  %30715 = call ptr @__errno_location() #12
  store i32 %30714, ptr %30715, align 4, !tbaa !5
  %30716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30717 = load i32, ptr @test_count, align 4, !tbaa !5
  %30718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30719 = load i32, ptr %30718, align 4, !tbaa !5
  %30720 = call ptr @s2n_strerror(i32 noundef %30719, ptr noundef @.str.4)
  %30721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30722 = load i32, ptr %30721, align 4, !tbaa !5
  %30723 = call ptr @s2n_strerror_debug(i32 noundef %30722, ptr noundef @.str.4)
  %30724 = call ptr @__errno_location() #12
  %30725 = load i32, ptr %30724, align 4, !tbaa !5
  %30726 = call ptr @strerror(i32 noundef %30725) #11
  %30727 = call ptr @__errno_location() #12
  %30728 = load i32, ptr %30727, align 4, !tbaa !5
  %30729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30716, ptr noundef @.str.5, i32 noundef %30717, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 1872, ptr noundef %30720, ptr noundef %30723, ptr noundef %30726, i32 noundef %30728) #11
  br label %30730

30730:                                            ; preds = %30713, %30696
  call void @llvm.lifetime.end.p0(i64 4, ptr %959) #11
  br label %30731

30731:                                            ; preds = %30730
  br label %30732

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

30733:                                            ; No predecessors!
  br label %30734

30734:                                            ; preds = %30733
  br label %30735

30735:                                            ; preds = %30734, %30677
  br label %30736

30736:                                            ; preds = %30735
  br label %30737

30737:                                            ; preds = %30736
  call void @llvm.lifetime.start.p0(i64 8, ptr %960) #11
  %30738 = load i32, ptr %958, align 4, !tbaa !5
  %30739 = call ptr @s2n_stuffer_raw_read(ptr noundef %954, i32 noundef %30738)
  store ptr %30739, ptr %960, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %961) #11
  call void @llvm.memset.p0.i64(ptr align 8 %961, i8 0, i64 48, i1 false)
  br label %30740

30740:                                            ; preds = %30737
  %30741 = load i32, ptr @test_count, align 4, !tbaa !5
  %30742 = add nsw i32 %30741, 1
  store i32 %30742, ptr @test_count, align 4, !tbaa !5
  %30743 = call i32 @s2n_pkey_zero_init(ptr noundef %961)
  %30744 = icmp eq i32 %30743, -1
  br i1 %30744, label %30745, label %30798

30745:                                            ; preds = %30740
  br label %30746

30746:                                            ; preds = %30745
  br label %30747

30747:                                            ; preds = %30746
  call void @llvm.lifetime.start.p0(i64 4, ptr %962) #11
  %30748 = call ptr @__errno_location() #12
  %30749 = load i32, ptr %30748, align 4, !tbaa !5
  store i32 %30749, ptr %962, align 4, !tbaa !5
  %30750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30751 = call i32 @s2n_print_stacktrace(ptr noundef %30750)
  %30752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30753 = trunc i8 %30752 to i1
  br i1 %30753, label %30754, label %30776

30754:                                            ; preds = %30747
  %30755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30756 = call i32 @fileno(ptr noundef %30755) #11
  %30757 = call i32 @isatty(i32 noundef %30756) #11
  %30758 = icmp ne i32 %30757, 0
  br i1 %30758, label %30759, label %30776

30759:                                            ; preds = %30754
  %30760 = load i32, ptr %962, align 4, !tbaa !5
  %30761 = call ptr @__errno_location() #12
  store i32 %30760, ptr %30761, align 4, !tbaa !5
  %30762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30763 = load i32, ptr @test_count, align 4, !tbaa !5
  %30764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30765 = load i32, ptr %30764, align 4, !tbaa !5
  %30766 = call ptr @s2n_strerror(i32 noundef %30765, ptr noundef @.str.4)
  %30767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30768 = load i32, ptr %30767, align 4, !tbaa !5
  %30769 = call ptr @s2n_strerror_debug(i32 noundef %30768, ptr noundef @.str.4)
  %30770 = call ptr @__errno_location() #12
  %30771 = load i32, ptr %30770, align 4, !tbaa !5
  %30772 = call ptr @strerror(i32 noundef %30771) #11
  %30773 = call ptr @__errno_location() #12
  %30774 = load i32, ptr %30773, align 4, !tbaa !5
  %30775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30762, ptr noundef @.str.2, i32 noundef %30763, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 1876, ptr noundef %30766, ptr noundef %30769, ptr noundef %30772, i32 noundef %30774) #11
  br label %30793

30776:                                            ; preds = %30754, %30747
  %30777 = load i32, ptr %962, align 4, !tbaa !5
  %30778 = call ptr @__errno_location() #12
  store i32 %30777, ptr %30778, align 4, !tbaa !5
  %30779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30780 = load i32, ptr @test_count, align 4, !tbaa !5
  %30781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30782 = load i32, ptr %30781, align 4, !tbaa !5
  %30783 = call ptr @s2n_strerror(i32 noundef %30782, ptr noundef @.str.4)
  %30784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30785 = load i32, ptr %30784, align 4, !tbaa !5
  %30786 = call ptr @s2n_strerror_debug(i32 noundef %30785, ptr noundef @.str.4)
  %30787 = call ptr @__errno_location() #12
  %30788 = load i32, ptr %30787, align 4, !tbaa !5
  %30789 = call ptr @strerror(i32 noundef %30788) #11
  %30790 = call ptr @__errno_location() #12
  %30791 = load i32, ptr %30790, align 4, !tbaa !5
  %30792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30779, ptr noundef @.str.5, i32 noundef %30780, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 1876, ptr noundef %30783, ptr noundef %30786, ptr noundef %30789, i32 noundef %30791) #11
  br label %30793

30793:                                            ; preds = %30776, %30759
  call void @llvm.lifetime.end.p0(i64 4, ptr %962) #11
  br label %30794

30794:                                            ; preds = %30793
  br label %30795

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

30796:                                            ; No predecessors!
  br label %30797

30797:                                            ; preds = %30796
  br label %30798

30798:                                            ; preds = %30797, %30740
  br label %30799

30799:                                            ; preds = %30798
  br label %30800

30800:                                            ; preds = %30799
  call void @llvm.lifetime.start.p0(i64 4, ptr %963) #11
  store i32 -1, ptr %963, align 4, !tbaa !5
  br label %30801

30801:                                            ; preds = %30800
  %30802 = load i32, ptr @test_count, align 4, !tbaa !5
  %30803 = add nsw i32 %30802, 1
  store i32 %30803, ptr @test_count, align 4, !tbaa !5
  %30804 = load ptr, ptr %944, align 8, !tbaa !9
  %30805 = load ptr, ptr %960, align 8, !tbaa !9
  %30806 = load i32, ptr %958, align 4, !tbaa !5
  %30807 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %942, ptr noundef %30804, ptr noundef %30805, i32 noundef %30806, ptr noundef %963, ptr noundef %961)
  %30808 = getelementptr inbounds %struct.s2n_result, ptr %964, i32 0, i32 0
  store i32 %30807, ptr %30808, align 4
  %30809 = getelementptr inbounds %struct.s2n_result, ptr %964, i32 0, i32 0
  %30810 = load i32, ptr %30809, align 4
  %30811 = call zeroext i1 @s2n_result_is_ok(i32 %30810)
  br i1 %30811, label %30865, label %30812

30812:                                            ; preds = %30801
  br label %30813

30813:                                            ; preds = %30812
  br label %30814

30814:                                            ; preds = %30813
  call void @llvm.lifetime.start.p0(i64 4, ptr %965) #11
  %30815 = call ptr @__errno_location() #12
  %30816 = load i32, ptr %30815, align 4, !tbaa !5
  store i32 %30816, ptr %965, align 4, !tbaa !5
  %30817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30818 = call i32 @s2n_print_stacktrace(ptr noundef %30817)
  %30819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30820 = trunc i8 %30819 to i1
  br i1 %30820, label %30821, label %30843

30821:                                            ; preds = %30814
  %30822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30823 = call i32 @fileno(ptr noundef %30822) #11
  %30824 = call i32 @isatty(i32 noundef %30823) #11
  %30825 = icmp ne i32 %30824, 0
  br i1 %30825, label %30826, label %30843

30826:                                            ; preds = %30821
  %30827 = load i32, ptr %965, align 4, !tbaa !5
  %30828 = call ptr @__errno_location() #12
  store i32 %30827, ptr %30828, align 4, !tbaa !5
  %30829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30830 = load i32, ptr @test_count, align 4, !tbaa !5
  %30831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30832 = load i32, ptr %30831, align 4, !tbaa !5
  %30833 = call ptr @s2n_strerror(i32 noundef %30832, ptr noundef @.str.4)
  %30834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30835 = load i32, ptr %30834, align 4, !tbaa !5
  %30836 = call ptr @s2n_strerror_debug(i32 noundef %30835, ptr noundef @.str.4)
  %30837 = call ptr @__errno_location() #12
  %30838 = load i32, ptr %30837, align 4, !tbaa !5
  %30839 = call ptr @strerror(i32 noundef %30838) #11
  %30840 = call ptr @__errno_location() #12
  %30841 = load i32, ptr %30840, align 4, !tbaa !5
  %30842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30829, ptr noundef @.str.2, i32 noundef %30830, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 1880, ptr noundef %30833, ptr noundef %30836, ptr noundef %30839, i32 noundef %30841) #11
  br label %30860

30843:                                            ; preds = %30821, %30814
  %30844 = load i32, ptr %965, align 4, !tbaa !5
  %30845 = call ptr @__errno_location() #12
  store i32 %30844, ptr %30845, align 4, !tbaa !5
  %30846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30847 = load i32, ptr @test_count, align 4, !tbaa !5
  %30848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30849 = load i32, ptr %30848, align 4, !tbaa !5
  %30850 = call ptr @s2n_strerror(i32 noundef %30849, ptr noundef @.str.4)
  %30851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30852 = load i32, ptr %30851, align 4, !tbaa !5
  %30853 = call ptr @s2n_strerror_debug(i32 noundef %30852, ptr noundef @.str.4)
  %30854 = call ptr @__errno_location() #12
  %30855 = load i32, ptr %30854, align 4, !tbaa !5
  %30856 = call ptr @strerror(i32 noundef %30855) #11
  %30857 = call ptr @__errno_location() #12
  %30858 = load i32, ptr %30857, align 4, !tbaa !5
  %30859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30846, ptr noundef @.str.5, i32 noundef %30847, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 1880, ptr noundef %30850, ptr noundef %30853, ptr noundef %30856, i32 noundef %30858) #11
  br label %30860

30860:                                            ; preds = %30843, %30826
  call void @llvm.lifetime.end.p0(i64 4, ptr %965) #11
  br label %30861

30861:                                            ; preds = %30860
  br label %30862

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

30863:                                            ; No predecessors!
  br label %30864

30864:                                            ; preds = %30863
  br label %30865

30865:                                            ; preds = %30864, %30801
  br label %30866

30866:                                            ; preds = %30865
  br label %30867

30867:                                            ; preds = %30866
  br label %30868

30868:                                            ; preds = %30867
  %30869 = load i32, ptr @test_count, align 4, !tbaa !5
  %30870 = add nsw i32 %30869, 1
  store i32 %30870, ptr @test_count, align 4, !tbaa !5
  %30871 = getelementptr inbounds %struct.s2n_x509_validator, ptr %942, i32 0, i32 5
  %30872 = load ptr, ptr %30871, align 8, !tbaa !58
  %30873 = call ptr @ossl_check_const_X509_sk_type(ptr noundef %30872)
  %30874 = call i32 @OPENSSL_sk_num(ptr noundef %30873)
  %30875 = icmp eq i32 %30874, 2
  br i1 %30875, label %30929, label %30876

30876:                                            ; preds = %30868
  br label %30877

30877:                                            ; preds = %30876
  br label %30878

30878:                                            ; preds = %30877
  call void @llvm.lifetime.start.p0(i64 4, ptr %966) #11
  %30879 = call ptr @__errno_location() #12
  %30880 = load i32, ptr %30879, align 4, !tbaa !5
  store i32 %30880, ptr %966, align 4, !tbaa !5
  %30881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30882 = call i32 @s2n_print_stacktrace(ptr noundef %30881)
  %30883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30884 = trunc i8 %30883 to i1
  br i1 %30884, label %30885, label %30907

30885:                                            ; preds = %30878
  %30886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30887 = call i32 @fileno(ptr noundef %30886) #11
  %30888 = call i32 @isatty(i32 noundef %30887) #11
  %30889 = icmp ne i32 %30888, 0
  br i1 %30889, label %30890, label %30907

30890:                                            ; preds = %30885
  %30891 = load i32, ptr %966, align 4, !tbaa !5
  %30892 = call ptr @__errno_location() #12
  store i32 %30891, ptr %30892, align 4, !tbaa !5
  %30893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30894 = load i32, ptr @test_count, align 4, !tbaa !5
  %30895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30896 = load i32, ptr %30895, align 4, !tbaa !5
  %30897 = call ptr @s2n_strerror(i32 noundef %30896, ptr noundef @.str.4)
  %30898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30899 = load i32, ptr %30898, align 4, !tbaa !5
  %30900 = call ptr @s2n_strerror_debug(i32 noundef %30899, ptr noundef @.str.4)
  %30901 = call ptr @__errno_location() #12
  %30902 = load i32, ptr %30901, align 4, !tbaa !5
  %30903 = call ptr @strerror(i32 noundef %30902) #11
  %30904 = call ptr @__errno_location() #12
  %30905 = load i32, ptr %30904, align 4, !tbaa !5
  %30906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30893, ptr noundef @.str.2, i32 noundef %30894, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 1882, ptr noundef %30897, ptr noundef %30900, ptr noundef %30903, i32 noundef %30905) #11
  br label %30924

30907:                                            ; preds = %30885, %30878
  %30908 = load i32, ptr %966, align 4, !tbaa !5
  %30909 = call ptr @__errno_location() #12
  store i32 %30908, ptr %30909, align 4, !tbaa !5
  %30910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30911 = load i32, ptr @test_count, align 4, !tbaa !5
  %30912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30913 = load i32, ptr %30912, align 4, !tbaa !5
  %30914 = call ptr @s2n_strerror(i32 noundef %30913, ptr noundef @.str.4)
  %30915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30916 = load i32, ptr %30915, align 4, !tbaa !5
  %30917 = call ptr @s2n_strerror_debug(i32 noundef %30916, ptr noundef @.str.4)
  %30918 = call ptr @__errno_location() #12
  %30919 = load i32, ptr %30918, align 4, !tbaa !5
  %30920 = call ptr @strerror(i32 noundef %30919) #11
  %30921 = call ptr @__errno_location() #12
  %30922 = load i32, ptr %30921, align 4, !tbaa !5
  %30923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30910, ptr noundef @.str.5, i32 noundef %30911, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 1882, ptr noundef %30914, ptr noundef %30917, ptr noundef %30920, i32 noundef %30922) #11
  br label %30924

30924:                                            ; preds = %30907, %30890
  call void @llvm.lifetime.end.p0(i64 4, ptr %966) #11
  br label %30925

30925:                                            ; preds = %30924
  br label %30926

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

30927:                                            ; No predecessors!
  br label %30928

30928:                                            ; preds = %30927
  br label %30929

30929:                                            ; preds = %30928, %30868
  br label %30930

30930:                                            ; preds = %30929
  br label %30931

30931:                                            ; preds = %30930
  call void @llvm.lifetime.end.p0(i64 4, ptr %963) #11
  %30932 = call i32 @s2n_pkey_free(ptr noundef %961)
  call void @llvm.lifetime.end.p0(i64 48, ptr %961) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %960) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %958) #11
  %30933 = call i32 @s2n_stuffer_free(ptr noundef %954)
  call void @llvm.lifetime.end.p0(i64 40, ptr %954) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %953) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %952) #11
  %30934 = call i32 @s2n_stuffer_free(ptr noundef %950)
  call void @llvm.lifetime.end.p0(i64 40, ptr %950) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %949) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %948) #11
  %30935 = call i32 @s2n_stuffer_free(ptr noundef %946)
  call void @llvm.lifetime.end.p0(i64 40, ptr %946) #11
  %30936 = call i32 @s2n_connection_ptr_free(ptr noundef %944)
  %30937 = getelementptr inbounds %struct.s2n_result, ptr %967, i32 0, i32 0
  store i32 %30936, ptr %30937, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %944) #11
  %30938 = call i32 @s2n_x509_validator_wipe(ptr noundef %942)
  call void @llvm.lifetime.end.p0(i64 56, ptr %942) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %968) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %968)
  br label %30939

30939:                                            ; preds = %30931
  %30940 = load i32, ptr @test_count, align 4, !tbaa !5
  %30941 = add nsw i32 %30940, 1
  store i32 %30941, ptr @test_count, align 4, !tbaa !5
  %30942 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %968, ptr noundef @.str.138, ptr noundef null)
  %30943 = icmp eq i32 0, %30942
  br i1 %30943, label %30997, label %30944

30944:                                            ; preds = %30939
  br label %30945

30945:                                            ; preds = %30944
  br label %30946

30946:                                            ; preds = %30945
  call void @llvm.lifetime.start.p0(i64 4, ptr %969) #11
  %30947 = call ptr @__errno_location() #12
  %30948 = load i32, ptr %30947, align 4, !tbaa !5
  store i32 %30948, ptr %969, align 4, !tbaa !5
  %30949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30950 = call i32 @s2n_print_stacktrace(ptr noundef %30949)
  %30951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %30952 = trunc i8 %30951 to i1
  br i1 %30952, label %30953, label %30975

30953:                                            ; preds = %30946
  %30954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30955 = call i32 @fileno(ptr noundef %30954) #11
  %30956 = call i32 @isatty(i32 noundef %30955) #11
  %30957 = icmp ne i32 %30956, 0
  br i1 %30957, label %30958, label %30975

30958:                                            ; preds = %30953
  %30959 = load i32, ptr %969, align 4, !tbaa !5
  %30960 = call ptr @__errno_location() #12
  store i32 %30959, ptr %30960, align 4, !tbaa !5
  %30961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30962 = load i32, ptr @test_count, align 4, !tbaa !5
  %30963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30964 = load i32, ptr %30963, align 4, !tbaa !5
  %30965 = call ptr @s2n_strerror(i32 noundef %30964, ptr noundef @.str.4)
  %30966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30967 = load i32, ptr %30966, align 4, !tbaa !5
  %30968 = call ptr @s2n_strerror_debug(i32 noundef %30967, ptr noundef @.str.4)
  %30969 = call ptr @__errno_location() #12
  %30970 = load i32, ptr %30969, align 4, !tbaa !5
  %30971 = call ptr @strerror(i32 noundef %30970) #11
  %30972 = call ptr @__errno_location() #12
  %30973 = load i32, ptr %30972, align 4, !tbaa !5
  %30974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30961, ptr noundef @.str.2, i32 noundef %30962, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 1889, ptr noundef %30965, ptr noundef %30968, ptr noundef %30971, i32 noundef %30973) #11
  br label %30992

30975:                                            ; preds = %30953, %30946
  %30976 = load i32, ptr %969, align 4, !tbaa !5
  %30977 = call ptr @__errno_location() #12
  store i32 %30976, ptr %30977, align 4, !tbaa !5
  %30978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30979 = load i32, ptr @test_count, align 4, !tbaa !5
  %30980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30981 = load i32, ptr %30980, align 4, !tbaa !5
  %30982 = call ptr @s2n_strerror(i32 noundef %30981, ptr noundef @.str.4)
  %30983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %30984 = load i32, ptr %30983, align 4, !tbaa !5
  %30985 = call ptr @s2n_strerror_debug(i32 noundef %30984, ptr noundef @.str.4)
  %30986 = call ptr @__errno_location() #12
  %30987 = load i32, ptr %30986, align 4, !tbaa !5
  %30988 = call ptr @strerror(i32 noundef %30987) #11
  %30989 = call ptr @__errno_location() #12
  %30990 = load i32, ptr %30989, align 4, !tbaa !5
  %30991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30978, ptr noundef @.str.5, i32 noundef %30979, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 1889, ptr noundef %30982, ptr noundef %30985, ptr noundef %30988, i32 noundef %30990) #11
  br label %30992

30992:                                            ; preds = %30975, %30958
  call void @llvm.lifetime.end.p0(i64 4, ptr %969) #11
  br label %30993

30993:                                            ; preds = %30992
  br label %30994

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

30995:                                            ; No predecessors!
  br label %30996

30996:                                            ; preds = %30995
  br label %30997

30997:                                            ; preds = %30996, %30939
  br label %30998

30998:                                            ; preds = %30997
  br label %30999

30999:                                            ; preds = %30998
  call void @llvm.lifetime.start.p0(i64 56, ptr %970) #11
  %31000 = call i32 @s2n_x509_validator_init(ptr noundef %970, ptr noundef %968, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %971) #11
  %31001 = call ptr @s2n_config_new()
  store ptr %31001, ptr %971, align 8, !tbaa !9
  br label %31002

31002:                                            ; preds = %30999
  %31003 = load i32, ptr @test_count, align 4, !tbaa !5
  %31004 = add nsw i32 %31003, 1
  store i32 %31004, ptr @test_count, align 4, !tbaa !5
  %31005 = load ptr, ptr %971, align 8, !tbaa !9
  %31006 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %31005, ptr noundef @.str.140)
  %31007 = icmp eq i32 %31006, -1
  br i1 %31007, label %31008, label %31061

31008:                                            ; preds = %31002
  br label %31009

31009:                                            ; preds = %31008
  br label %31010

31010:                                            ; preds = %31009
  call void @llvm.lifetime.start.p0(i64 4, ptr %972) #11
  %31011 = call ptr @__errno_location() #12
  %31012 = load i32, ptr %31011, align 4, !tbaa !5
  store i32 %31012, ptr %972, align 4, !tbaa !5
  %31013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31014 = call i32 @s2n_print_stacktrace(ptr noundef %31013)
  %31015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31016 = trunc i8 %31015 to i1
  br i1 %31016, label %31017, label %31039

31017:                                            ; preds = %31010
  %31018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31019 = call i32 @fileno(ptr noundef %31018) #11
  %31020 = call i32 @isatty(i32 noundef %31019) #11
  %31021 = icmp ne i32 %31020, 0
  br i1 %31021, label %31022, label %31039

31022:                                            ; preds = %31017
  %31023 = load i32, ptr %972, align 4, !tbaa !5
  %31024 = call ptr @__errno_location() #12
  store i32 %31023, ptr %31024, align 4, !tbaa !5
  %31025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31026 = load i32, ptr @test_count, align 4, !tbaa !5
  %31027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31028 = load i32, ptr %31027, align 4, !tbaa !5
  %31029 = call ptr @s2n_strerror(i32 noundef %31028, ptr noundef @.str.4)
  %31030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31031 = load i32, ptr %31030, align 4, !tbaa !5
  %31032 = call ptr @s2n_strerror_debug(i32 noundef %31031, ptr noundef @.str.4)
  %31033 = call ptr @__errno_location() #12
  %31034 = load i32, ptr %31033, align 4, !tbaa !5
  %31035 = call ptr @strerror(i32 noundef %31034) #11
  %31036 = call ptr @__errno_location() #12
  %31037 = load i32, ptr %31036, align 4, !tbaa !5
  %31038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31025, ptr noundef @.str.2, i32 noundef %31026, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1895, ptr noundef %31029, ptr noundef %31032, ptr noundef %31035, i32 noundef %31037) #11
  br label %31056

31039:                                            ; preds = %31017, %31010
  %31040 = load i32, ptr %972, align 4, !tbaa !5
  %31041 = call ptr @__errno_location() #12
  store i32 %31040, ptr %31041, align 4, !tbaa !5
  %31042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31043 = load i32, ptr @test_count, align 4, !tbaa !5
  %31044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31045 = load i32, ptr %31044, align 4, !tbaa !5
  %31046 = call ptr @s2n_strerror(i32 noundef %31045, ptr noundef @.str.4)
  %31047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31048 = load i32, ptr %31047, align 4, !tbaa !5
  %31049 = call ptr @s2n_strerror_debug(i32 noundef %31048, ptr noundef @.str.4)
  %31050 = call ptr @__errno_location() #12
  %31051 = load i32, ptr %31050, align 4, !tbaa !5
  %31052 = call ptr @strerror(i32 noundef %31051) #11
  %31053 = call ptr @__errno_location() #12
  %31054 = load i32, ptr %31053, align 4, !tbaa !5
  %31055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31042, ptr noundef @.str.5, i32 noundef %31043, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1895, ptr noundef %31046, ptr noundef %31049, ptr noundef %31052, i32 noundef %31054) #11
  br label %31056

31056:                                            ; preds = %31039, %31022
  call void @llvm.lifetime.end.p0(i64 4, ptr %972) #11
  br label %31057

31057:                                            ; preds = %31056
  br label %31058

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

31059:                                            ; No predecessors!
  br label %31060

31060:                                            ; preds = %31059
  br label %31061

31061:                                            ; preds = %31060, %31002
  br label %31062

31062:                                            ; preds = %31061
  br label %31063

31063:                                            ; preds = %31062
  call void @llvm.lifetime.start.p0(i64 8, ptr %973) #11
  %31064 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %31064, ptr %973, align 8, !tbaa !9
  br label %31065

31065:                                            ; preds = %31063
  %31066 = load i32, ptr @test_count, align 4, !tbaa !5
  %31067 = add nsw i32 %31066, 1
  store i32 %31067, ptr @test_count, align 4, !tbaa !5
  %31068 = load ptr, ptr %973, align 8, !tbaa !9
  %31069 = load ptr, ptr %971, align 8, !tbaa !9
  %31070 = call i32 @s2n_connection_set_config(ptr noundef %31068, ptr noundef %31069)
  %31071 = icmp eq i32 %31070, -1
  br i1 %31071, label %31072, label %31125

31072:                                            ; preds = %31065
  br label %31073

31073:                                            ; preds = %31072
  br label %31074

31074:                                            ; preds = %31073
  call void @llvm.lifetime.start.p0(i64 4, ptr %974) #11
  %31075 = call ptr @__errno_location() #12
  %31076 = load i32, ptr %31075, align 4, !tbaa !5
  store i32 %31076, ptr %974, align 4, !tbaa !5
  %31077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31078 = call i32 @s2n_print_stacktrace(ptr noundef %31077)
  %31079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31080 = trunc i8 %31079 to i1
  br i1 %31080, label %31081, label %31103

31081:                                            ; preds = %31074
  %31082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31083 = call i32 @fileno(ptr noundef %31082) #11
  %31084 = call i32 @isatty(i32 noundef %31083) #11
  %31085 = icmp ne i32 %31084, 0
  br i1 %31085, label %31086, label %31103

31086:                                            ; preds = %31081
  %31087 = load i32, ptr %974, align 4, !tbaa !5
  %31088 = call ptr @__errno_location() #12
  store i32 %31087, ptr %31088, align 4, !tbaa !5
  %31089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31090 = load i32, ptr @test_count, align 4, !tbaa !5
  %31091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31092 = load i32, ptr %31091, align 4, !tbaa !5
  %31093 = call ptr @s2n_strerror(i32 noundef %31092, ptr noundef @.str.4)
  %31094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31095 = load i32, ptr %31094, align 4, !tbaa !5
  %31096 = call ptr @s2n_strerror_debug(i32 noundef %31095, ptr noundef @.str.4)
  %31097 = call ptr @__errno_location() #12
  %31098 = load i32, ptr %31097, align 4, !tbaa !5
  %31099 = call ptr @strerror(i32 noundef %31098) #11
  %31100 = call ptr @__errno_location() #12
  %31101 = load i32, ptr %31100, align 4, !tbaa !5
  %31102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31089, ptr noundef @.str.2, i32 noundef %31090, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1898, ptr noundef %31093, ptr noundef %31096, ptr noundef %31099, i32 noundef %31101) #11
  br label %31120

31103:                                            ; preds = %31081, %31074
  %31104 = load i32, ptr %974, align 4, !tbaa !5
  %31105 = call ptr @__errno_location() #12
  store i32 %31104, ptr %31105, align 4, !tbaa !5
  %31106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31107 = load i32, ptr @test_count, align 4, !tbaa !5
  %31108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31109 = load i32, ptr %31108, align 4, !tbaa !5
  %31110 = call ptr @s2n_strerror(i32 noundef %31109, ptr noundef @.str.4)
  %31111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31112 = load i32, ptr %31111, align 4, !tbaa !5
  %31113 = call ptr @s2n_strerror_debug(i32 noundef %31112, ptr noundef @.str.4)
  %31114 = call ptr @__errno_location() #12
  %31115 = load i32, ptr %31114, align 4, !tbaa !5
  %31116 = call ptr @strerror(i32 noundef %31115) #11
  %31117 = call ptr @__errno_location() #12
  %31118 = load i32, ptr %31117, align 4, !tbaa !5
  %31119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31106, ptr noundef @.str.5, i32 noundef %31107, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1898, ptr noundef %31110, ptr noundef %31113, ptr noundef %31116, i32 noundef %31118) #11
  br label %31120

31120:                                            ; preds = %31103, %31086
  call void @llvm.lifetime.end.p0(i64 4, ptr %974) #11
  br label %31121

31121:                                            ; preds = %31120
  br label %31122

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

31123:                                            ; No predecessors!
  br label %31124

31124:                                            ; preds = %31123
  br label %31125

31125:                                            ; preds = %31124, %31065
  br label %31126

31126:                                            ; preds = %31125
  br label %31127

31127:                                            ; preds = %31126
  br label %31128

31128:                                            ; preds = %31127
  %31129 = load i32, ptr @test_count, align 4, !tbaa !5
  %31130 = add nsw i32 %31129, 1
  store i32 %31130, ptr @test_count, align 4, !tbaa !5
  %31131 = load ptr, ptr %973, align 8, !tbaa !9
  %31132 = icmp eq ptr %31131, null
  br i1 %31132, label %31133, label %31186

31133:                                            ; preds = %31128
  br label %31134

31134:                                            ; preds = %31133
  br label %31135

31135:                                            ; preds = %31134
  call void @llvm.lifetime.start.p0(i64 4, ptr %975) #11
  %31136 = call ptr @__errno_location() #12
  %31137 = load i32, ptr %31136, align 4, !tbaa !5
  store i32 %31137, ptr %975, align 4, !tbaa !5
  %31138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31139 = call i32 @s2n_print_stacktrace(ptr noundef %31138)
  %31140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31141 = trunc i8 %31140 to i1
  br i1 %31141, label %31142, label %31164

31142:                                            ; preds = %31135
  %31143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31144 = call i32 @fileno(ptr noundef %31143) #11
  %31145 = call i32 @isatty(i32 noundef %31144) #11
  %31146 = icmp ne i32 %31145, 0
  br i1 %31146, label %31147, label %31164

31147:                                            ; preds = %31142
  %31148 = load i32, ptr %975, align 4, !tbaa !5
  %31149 = call ptr @__errno_location() #12
  store i32 %31148, ptr %31149, align 4, !tbaa !5
  %31150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31151 = load i32, ptr @test_count, align 4, !tbaa !5
  %31152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31153 = load i32, ptr %31152, align 4, !tbaa !5
  %31154 = call ptr @s2n_strerror(i32 noundef %31153, ptr noundef @.str.4)
  %31155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31156 = load i32, ptr %31155, align 4, !tbaa !5
  %31157 = call ptr @s2n_strerror_debug(i32 noundef %31156, ptr noundef @.str.4)
  %31158 = call ptr @__errno_location() #12
  %31159 = load i32, ptr %31158, align 4, !tbaa !5
  %31160 = call ptr @strerror(i32 noundef %31159) #11
  %31161 = call ptr @__errno_location() #12
  %31162 = load i32, ptr %31161, align 4, !tbaa !5
  %31163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31150, ptr noundef @.str.2, i32 noundef %31151, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1900, ptr noundef %31154, ptr noundef %31157, ptr noundef %31160, i32 noundef %31162) #11
  br label %31181

31164:                                            ; preds = %31142, %31135
  %31165 = load i32, ptr %975, align 4, !tbaa !5
  %31166 = call ptr @__errno_location() #12
  store i32 %31165, ptr %31166, align 4, !tbaa !5
  %31167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31168 = load i32, ptr @test_count, align 4, !tbaa !5
  %31169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31170 = load i32, ptr %31169, align 4, !tbaa !5
  %31171 = call ptr @s2n_strerror(i32 noundef %31170, ptr noundef @.str.4)
  %31172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31173 = load i32, ptr %31172, align 4, !tbaa !5
  %31174 = call ptr @s2n_strerror_debug(i32 noundef %31173, ptr noundef @.str.4)
  %31175 = call ptr @__errno_location() #12
  %31176 = load i32, ptr %31175, align 4, !tbaa !5
  %31177 = call ptr @strerror(i32 noundef %31176) #11
  %31178 = call ptr @__errno_location() #12
  %31179 = load i32, ptr %31178, align 4, !tbaa !5
  %31180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31167, ptr noundef @.str.5, i32 noundef %31168, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1900, ptr noundef %31171, ptr noundef %31174, ptr noundef %31177, i32 noundef %31179) #11
  br label %31181

31181:                                            ; preds = %31164, %31147
  call void @llvm.lifetime.end.p0(i64 4, ptr %975) #11
  br label %31182

31182:                                            ; preds = %31181
  br label %31183

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

31184:                                            ; No predecessors!
  br label %31185

31185:                                            ; preds = %31184
  br label %31186

31186:                                            ; preds = %31185, %31128
  br label %31187

31187:                                            ; preds = %31186
  br label %31188

31188:                                            ; preds = %31187
  %31189 = load ptr, ptr %973, align 8, !tbaa !9
  %31190 = getelementptr inbounds %struct.s2n_connection, ptr %31189, i32 0, i32 23
  store i8 34, ptr %31190, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 16, ptr %976) #11
  call void @llvm.memset.p0.i64(ptr align 8 %976, i8 0, i64 16, i1 false)
  br label %31191

31191:                                            ; preds = %31188
  %31192 = load i32, ptr @test_count, align 4, !tbaa !5
  %31193 = add nsw i32 %31192, 1
  store i32 %31193, ptr @test_count, align 4, !tbaa !5
  %31194 = load ptr, ptr %973, align 8, !tbaa !9
  %31195 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %31194, ptr noundef @verify_host_accept_everything, ptr noundef %976)
  %31196 = icmp eq i32 %31195, -1
  br i1 %31196, label %31197, label %31250

31197:                                            ; preds = %31191
  br label %31198

31198:                                            ; preds = %31197
  br label %31199

31199:                                            ; preds = %31198
  call void @llvm.lifetime.start.p0(i64 4, ptr %977) #11
  %31200 = call ptr @__errno_location() #12
  %31201 = load i32, ptr %31200, align 4, !tbaa !5
  store i32 %31201, ptr %977, align 4, !tbaa !5
  %31202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31203 = call i32 @s2n_print_stacktrace(ptr noundef %31202)
  %31204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31205 = trunc i8 %31204 to i1
  br i1 %31205, label %31206, label %31228

31206:                                            ; preds = %31199
  %31207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31208 = call i32 @fileno(ptr noundef %31207) #11
  %31209 = call i32 @isatty(i32 noundef %31208) #11
  %31210 = icmp ne i32 %31209, 0
  br i1 %31210, label %31211, label %31228

31211:                                            ; preds = %31206
  %31212 = load i32, ptr %977, align 4, !tbaa !5
  %31213 = call ptr @__errno_location() #12
  store i32 %31212, ptr %31213, align 4, !tbaa !5
  %31214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31215 = load i32, ptr @test_count, align 4, !tbaa !5
  %31216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31217 = load i32, ptr %31216, align 4, !tbaa !5
  %31218 = call ptr @s2n_strerror(i32 noundef %31217, ptr noundef @.str.4)
  %31219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31220 = load i32, ptr %31219, align 4, !tbaa !5
  %31221 = call ptr @s2n_strerror_debug(i32 noundef %31220, ptr noundef @.str.4)
  %31222 = call ptr @__errno_location() #12
  %31223 = load i32, ptr %31222, align 4, !tbaa !5
  %31224 = call ptr @strerror(i32 noundef %31223) #11
  %31225 = call ptr @__errno_location() #12
  %31226 = load i32, ptr %31225, align 4, !tbaa !5
  %31227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31214, ptr noundef @.str.2, i32 noundef %31215, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1904, ptr noundef %31218, ptr noundef %31221, ptr noundef %31224, i32 noundef %31226) #11
  br label %31245

31228:                                            ; preds = %31206, %31199
  %31229 = load i32, ptr %977, align 4, !tbaa !5
  %31230 = call ptr @__errno_location() #12
  store i32 %31229, ptr %31230, align 4, !tbaa !5
  %31231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31232 = load i32, ptr @test_count, align 4, !tbaa !5
  %31233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31234 = load i32, ptr %31233, align 4, !tbaa !5
  %31235 = call ptr @s2n_strerror(i32 noundef %31234, ptr noundef @.str.4)
  %31236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31237 = load i32, ptr %31236, align 4, !tbaa !5
  %31238 = call ptr @s2n_strerror_debug(i32 noundef %31237, ptr noundef @.str.4)
  %31239 = call ptr @__errno_location() #12
  %31240 = load i32, ptr %31239, align 4, !tbaa !5
  %31241 = call ptr @strerror(i32 noundef %31240) #11
  %31242 = call ptr @__errno_location() #12
  %31243 = load i32, ptr %31242, align 4, !tbaa !5
  %31244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31231, ptr noundef @.str.5, i32 noundef %31232, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1904, ptr noundef %31235, ptr noundef %31238, ptr noundef %31241, i32 noundef %31243) #11
  br label %31245

31245:                                            ; preds = %31228, %31211
  call void @llvm.lifetime.end.p0(i64 4, ptr %977) #11
  br label %31246

31246:                                            ; preds = %31245
  br label %31247

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

31248:                                            ; No predecessors!
  br label %31249

31249:                                            ; preds = %31248
  br label %31250

31250:                                            ; preds = %31249, %31191
  br label %31251

31251:                                            ; preds = %31250
  br label %31252

31252:                                            ; preds = %31251
  call void @llvm.lifetime.start.p0(i64 40, ptr %978) #11
  call void @llvm.memset.p0.i64(ptr align 8 %978, i8 0, i64 40, i1 false)
  br label %31253

31253:                                            ; preds = %31252
  %31254 = load i32, ptr @test_count, align 4, !tbaa !5
  %31255 = add nsw i32 %31254, 1
  store i32 %31255, ptr @test_count, align 4, !tbaa !5
  %31256 = load ptr, ptr %973, align 8, !tbaa !9
  %31257 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %31256, ptr noundef @.str.138, ptr noundef %978)
  %31258 = getelementptr inbounds %struct.s2n_result, ptr %979, i32 0, i32 0
  store i32 %31257, ptr %31258, align 4
  %31259 = getelementptr inbounds %struct.s2n_result, ptr %979, i32 0, i32 0
  %31260 = load i32, ptr %31259, align 4
  %31261 = call zeroext i1 @s2n_result_is_ok(i32 %31260)
  br i1 %31261, label %31315, label %31262

31262:                                            ; preds = %31253
  br label %31263

31263:                                            ; preds = %31262
  br label %31264

31264:                                            ; preds = %31263
  call void @llvm.lifetime.start.p0(i64 4, ptr %980) #11
  %31265 = call ptr @__errno_location() #12
  %31266 = load i32, ptr %31265, align 4, !tbaa !5
  store i32 %31266, ptr %980, align 4, !tbaa !5
  %31267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31268 = call i32 @s2n_print_stacktrace(ptr noundef %31267)
  %31269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31270 = trunc i8 %31269 to i1
  br i1 %31270, label %31271, label %31293

31271:                                            ; preds = %31264
  %31272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31273 = call i32 @fileno(ptr noundef %31272) #11
  %31274 = call i32 @isatty(i32 noundef %31273) #11
  %31275 = icmp ne i32 %31274, 0
  br i1 %31275, label %31276, label %31293

31276:                                            ; preds = %31271
  %31277 = load i32, ptr %980, align 4, !tbaa !5
  %31278 = call ptr @__errno_location() #12
  store i32 %31277, ptr %31278, align 4, !tbaa !5
  %31279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31280 = load i32, ptr @test_count, align 4, !tbaa !5
  %31281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31282 = load i32, ptr %31281, align 4, !tbaa !5
  %31283 = call ptr @s2n_strerror(i32 noundef %31282, ptr noundef @.str.4)
  %31284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31285 = load i32, ptr %31284, align 4, !tbaa !5
  %31286 = call ptr @s2n_strerror_debug(i32 noundef %31285, ptr noundef @.str.4)
  %31287 = call ptr @__errno_location() #12
  %31288 = load i32, ptr %31287, align 4, !tbaa !5
  %31289 = call ptr @strerror(i32 noundef %31288) #11
  %31290 = call ptr @__errno_location() #12
  %31291 = load i32, ptr %31290, align 4, !tbaa !5
  %31292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31279, ptr noundef @.str.2, i32 noundef %31280, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 1907, ptr noundef %31283, ptr noundef %31286, ptr noundef %31289, i32 noundef %31291) #11
  br label %31310

31293:                                            ; preds = %31271, %31264
  %31294 = load i32, ptr %980, align 4, !tbaa !5
  %31295 = call ptr @__errno_location() #12
  store i32 %31294, ptr %31295, align 4, !tbaa !5
  %31296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31297 = load i32, ptr @test_count, align 4, !tbaa !5
  %31298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31299 = load i32, ptr %31298, align 4, !tbaa !5
  %31300 = call ptr @s2n_strerror(i32 noundef %31299, ptr noundef @.str.4)
  %31301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31302 = load i32, ptr %31301, align 4, !tbaa !5
  %31303 = call ptr @s2n_strerror_debug(i32 noundef %31302, ptr noundef @.str.4)
  %31304 = call ptr @__errno_location() #12
  %31305 = load i32, ptr %31304, align 4, !tbaa !5
  %31306 = call ptr @strerror(i32 noundef %31305) #11
  %31307 = call ptr @__errno_location() #12
  %31308 = load i32, ptr %31307, align 4, !tbaa !5
  %31309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31296, ptr noundef @.str.5, i32 noundef %31297, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 1907, ptr noundef %31300, ptr noundef %31303, ptr noundef %31306, i32 noundef %31308) #11
  br label %31310

31310:                                            ; preds = %31293, %31276
  call void @llvm.lifetime.end.p0(i64 4, ptr %980) #11
  br label %31311

31311:                                            ; preds = %31310
  br label %31312

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

31313:                                            ; No predecessors!
  br label %31314

31314:                                            ; preds = %31313
  br label %31315

31315:                                            ; preds = %31314, %31253
  br label %31316

31316:                                            ; preds = %31315
  br label %31317

31317:                                            ; preds = %31316
  call void @llvm.lifetime.start.p0(i64 4, ptr %981) #11
  %31318 = getelementptr inbounds %struct.s2n_stuffer, ptr %978, i32 0, i32 2
  %31319 = load i32, ptr %31318, align 4, !tbaa !15
  %31320 = getelementptr inbounds %struct.s2n_stuffer, ptr %978, i32 0, i32 1
  %31321 = load i32, ptr %31320, align 8, !tbaa !18
  %31322 = sub i32 %31319, %31321
  store i32 %31322, ptr %981, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %982) #11
  %31323 = load i32, ptr %981, align 4, !tbaa !5
  %31324 = call ptr @s2n_stuffer_raw_read(ptr noundef %978, i32 noundef %31323)
  store ptr %31324, ptr %982, align 8, !tbaa !9
  br label %31325

31325:                                            ; preds = %31317
  %31326 = load i32, ptr @test_count, align 4, !tbaa !5
  %31327 = add nsw i32 %31326, 1
  store i32 %31327, ptr @test_count, align 4, !tbaa !5
  %31328 = load ptr, ptr %982, align 8, !tbaa !9
  %31329 = icmp eq ptr %31328, null
  br i1 %31329, label %31330, label %31383

31330:                                            ; preds = %31325
  br label %31331

31331:                                            ; preds = %31330
  br label %31332

31332:                                            ; preds = %31331
  call void @llvm.lifetime.start.p0(i64 4, ptr %983) #11
  %31333 = call ptr @__errno_location() #12
  %31334 = load i32, ptr %31333, align 4, !tbaa !5
  store i32 %31334, ptr %983, align 4, !tbaa !5
  %31335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31336 = call i32 @s2n_print_stacktrace(ptr noundef %31335)
  %31337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31338 = trunc i8 %31337 to i1
  br i1 %31338, label %31339, label %31361

31339:                                            ; preds = %31332
  %31340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31341 = call i32 @fileno(ptr noundef %31340) #11
  %31342 = call i32 @isatty(i32 noundef %31341) #11
  %31343 = icmp ne i32 %31342, 0
  br i1 %31343, label %31344, label %31361

31344:                                            ; preds = %31339
  %31345 = load i32, ptr %983, align 4, !tbaa !5
  %31346 = call ptr @__errno_location() #12
  store i32 %31345, ptr %31346, align 4, !tbaa !5
  %31347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31348 = load i32, ptr @test_count, align 4, !tbaa !5
  %31349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31350 = load i32, ptr %31349, align 4, !tbaa !5
  %31351 = call ptr @s2n_strerror(i32 noundef %31350, ptr noundef @.str.4)
  %31352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31353 = load i32, ptr %31352, align 4, !tbaa !5
  %31354 = call ptr @s2n_strerror_debug(i32 noundef %31353, ptr noundef @.str.4)
  %31355 = call ptr @__errno_location() #12
  %31356 = load i32, ptr %31355, align 4, !tbaa !5
  %31357 = call ptr @strerror(i32 noundef %31356) #11
  %31358 = call ptr @__errno_location() #12
  %31359 = load i32, ptr %31358, align 4, !tbaa !5
  %31360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31347, ptr noundef @.str.2, i32 noundef %31348, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1910, ptr noundef %31351, ptr noundef %31354, ptr noundef %31357, i32 noundef %31359) #11
  br label %31378

31361:                                            ; preds = %31339, %31332
  %31362 = load i32, ptr %983, align 4, !tbaa !5
  %31363 = call ptr @__errno_location() #12
  store i32 %31362, ptr %31363, align 4, !tbaa !5
  %31364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31365 = load i32, ptr @test_count, align 4, !tbaa !5
  %31366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31367 = load i32, ptr %31366, align 4, !tbaa !5
  %31368 = call ptr @s2n_strerror(i32 noundef %31367, ptr noundef @.str.4)
  %31369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31370 = load i32, ptr %31369, align 4, !tbaa !5
  %31371 = call ptr @s2n_strerror_debug(i32 noundef %31370, ptr noundef @.str.4)
  %31372 = call ptr @__errno_location() #12
  %31373 = load i32, ptr %31372, align 4, !tbaa !5
  %31374 = call ptr @strerror(i32 noundef %31373) #11
  %31375 = call ptr @__errno_location() #12
  %31376 = load i32, ptr %31375, align 4, !tbaa !5
  %31377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31364, ptr noundef @.str.5, i32 noundef %31365, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1910, ptr noundef %31368, ptr noundef %31371, ptr noundef %31374, i32 noundef %31376) #11
  br label %31378

31378:                                            ; preds = %31361, %31344
  call void @llvm.lifetime.end.p0(i64 4, ptr %983) #11
  br label %31379

31379:                                            ; preds = %31378
  br label %31380

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

31381:                                            ; No predecessors!
  br label %31382

31382:                                            ; preds = %31381
  br label %31383

31383:                                            ; preds = %31382, %31325
  br label %31384

31384:                                            ; preds = %31383
  br label %31385

31385:                                            ; preds = %31384
  br label %31386

31386:                                            ; preds = %31385
  %31387 = load i32, ptr @test_count, align 4, !tbaa !5
  %31388 = add nsw i32 %31387, 1
  store i32 %31388, ptr @test_count, align 4, !tbaa !5
  %31389 = load ptr, ptr %973, align 8, !tbaa !9
  %31390 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %31389, ptr noundef @.str.23)
  %31391 = icmp eq i32 %31390, -1
  br i1 %31391, label %31392, label %31445

31392:                                            ; preds = %31386
  br label %31393

31393:                                            ; preds = %31392
  br label %31394

31394:                                            ; preds = %31393
  call void @llvm.lifetime.start.p0(i64 4, ptr %984) #11
  %31395 = call ptr @__errno_location() #12
  %31396 = load i32, ptr %31395, align 4, !tbaa !5
  store i32 %31396, ptr %984, align 4, !tbaa !5
  %31397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31398 = call i32 @s2n_print_stacktrace(ptr noundef %31397)
  %31399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31400 = trunc i8 %31399 to i1
  br i1 %31400, label %31401, label %31423

31401:                                            ; preds = %31394
  %31402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31403 = call i32 @fileno(ptr noundef %31402) #11
  %31404 = call i32 @isatty(i32 noundef %31403) #11
  %31405 = icmp ne i32 %31404, 0
  br i1 %31405, label %31406, label %31423

31406:                                            ; preds = %31401
  %31407 = load i32, ptr %984, align 4, !tbaa !5
  %31408 = call ptr @__errno_location() #12
  store i32 %31407, ptr %31408, align 4, !tbaa !5
  %31409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31410 = load i32, ptr @test_count, align 4, !tbaa !5
  %31411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31412 = load i32, ptr %31411, align 4, !tbaa !5
  %31413 = call ptr @s2n_strerror(i32 noundef %31412, ptr noundef @.str.4)
  %31414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31415 = load i32, ptr %31414, align 4, !tbaa !5
  %31416 = call ptr @s2n_strerror_debug(i32 noundef %31415, ptr noundef @.str.4)
  %31417 = call ptr @__errno_location() #12
  %31418 = load i32, ptr %31417, align 4, !tbaa !5
  %31419 = call ptr @strerror(i32 noundef %31418) #11
  %31420 = call ptr @__errno_location() #12
  %31421 = load i32, ptr %31420, align 4, !tbaa !5
  %31422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31409, ptr noundef @.str.2, i32 noundef %31410, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 1913, ptr noundef %31413, ptr noundef %31416, ptr noundef %31419, i32 noundef %31421) #11
  br label %31440

31423:                                            ; preds = %31401, %31394
  %31424 = load i32, ptr %984, align 4, !tbaa !5
  %31425 = call ptr @__errno_location() #12
  store i32 %31424, ptr %31425, align 4, !tbaa !5
  %31426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31427 = load i32, ptr @test_count, align 4, !tbaa !5
  %31428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31429 = load i32, ptr %31428, align 4, !tbaa !5
  %31430 = call ptr @s2n_strerror(i32 noundef %31429, ptr noundef @.str.4)
  %31431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31432 = load i32, ptr %31431, align 4, !tbaa !5
  %31433 = call ptr @s2n_strerror_debug(i32 noundef %31432, ptr noundef @.str.4)
  %31434 = call ptr @__errno_location() #12
  %31435 = load i32, ptr %31434, align 4, !tbaa !5
  %31436 = call ptr @strerror(i32 noundef %31435) #11
  %31437 = call ptr @__errno_location() #12
  %31438 = load i32, ptr %31437, align 4, !tbaa !5
  %31439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31426, ptr noundef @.str.5, i32 noundef %31427, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 1913, ptr noundef %31430, ptr noundef %31433, ptr noundef %31436, i32 noundef %31438) #11
  br label %31440

31440:                                            ; preds = %31423, %31406
  call void @llvm.lifetime.end.p0(i64 4, ptr %984) #11
  br label %31441

31441:                                            ; preds = %31440
  br label %31442

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

31443:                                            ; No predecessors!
  br label %31444

31444:                                            ; preds = %31443
  br label %31445

31445:                                            ; preds = %31444, %31386
  br label %31446

31446:                                            ; preds = %31445
  br label %31447

31447:                                            ; preds = %31446
  call void @llvm.lifetime.start.p0(i64 48, ptr %985) #11
  br label %31448

31448:                                            ; preds = %31447
  %31449 = load i32, ptr @test_count, align 4, !tbaa !5
  %31450 = add nsw i32 %31449, 1
  store i32 %31450, ptr @test_count, align 4, !tbaa !5
  %31451 = call i32 @s2n_pkey_zero_init(ptr noundef %985)
  %31452 = icmp eq i32 %31451, -1
  br i1 %31452, label %31453, label %31506

31453:                                            ; preds = %31448
  br label %31454

31454:                                            ; preds = %31453
  br label %31455

31455:                                            ; preds = %31454
  call void @llvm.lifetime.start.p0(i64 4, ptr %986) #11
  %31456 = call ptr @__errno_location() #12
  %31457 = load i32, ptr %31456, align 4, !tbaa !5
  store i32 %31457, ptr %986, align 4, !tbaa !5
  %31458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31459 = call i32 @s2n_print_stacktrace(ptr noundef %31458)
  %31460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31461 = trunc i8 %31460 to i1
  br i1 %31461, label %31462, label %31484

31462:                                            ; preds = %31455
  %31463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31464 = call i32 @fileno(ptr noundef %31463) #11
  %31465 = call i32 @isatty(i32 noundef %31464) #11
  %31466 = icmp ne i32 %31465, 0
  br i1 %31466, label %31467, label %31484

31467:                                            ; preds = %31462
  %31468 = load i32, ptr %986, align 4, !tbaa !5
  %31469 = call ptr @__errno_location() #12
  store i32 %31468, ptr %31469, align 4, !tbaa !5
  %31470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31471 = load i32, ptr @test_count, align 4, !tbaa !5
  %31472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31473 = load i32, ptr %31472, align 4, !tbaa !5
  %31474 = call ptr @s2n_strerror(i32 noundef %31473, ptr noundef @.str.4)
  %31475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31476 = load i32, ptr %31475, align 4, !tbaa !5
  %31477 = call ptr @s2n_strerror_debug(i32 noundef %31476, ptr noundef @.str.4)
  %31478 = call ptr @__errno_location() #12
  %31479 = load i32, ptr %31478, align 4, !tbaa !5
  %31480 = call ptr @strerror(i32 noundef %31479) #11
  %31481 = call ptr @__errno_location() #12
  %31482 = load i32, ptr %31481, align 4, !tbaa !5
  %31483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31470, ptr noundef @.str.2, i32 noundef %31471, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1916, ptr noundef %31474, ptr noundef %31477, ptr noundef %31480, i32 noundef %31482) #11
  br label %31501

31484:                                            ; preds = %31462, %31455
  %31485 = load i32, ptr %986, align 4, !tbaa !5
  %31486 = call ptr @__errno_location() #12
  store i32 %31485, ptr %31486, align 4, !tbaa !5
  %31487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31488 = load i32, ptr @test_count, align 4, !tbaa !5
  %31489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31490 = load i32, ptr %31489, align 4, !tbaa !5
  %31491 = call ptr @s2n_strerror(i32 noundef %31490, ptr noundef @.str.4)
  %31492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31493 = load i32, ptr %31492, align 4, !tbaa !5
  %31494 = call ptr @s2n_strerror_debug(i32 noundef %31493, ptr noundef @.str.4)
  %31495 = call ptr @__errno_location() #12
  %31496 = load i32, ptr %31495, align 4, !tbaa !5
  %31497 = call ptr @strerror(i32 noundef %31496) #11
  %31498 = call ptr @__errno_location() #12
  %31499 = load i32, ptr %31498, align 4, !tbaa !5
  %31500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31487, ptr noundef @.str.5, i32 noundef %31488, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1916, ptr noundef %31491, ptr noundef %31494, ptr noundef %31497, i32 noundef %31499) #11
  br label %31501

31501:                                            ; preds = %31484, %31467
  call void @llvm.lifetime.end.p0(i64 4, ptr %986) #11
  br label %31502

31502:                                            ; preds = %31501
  br label %31503

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

31504:                                            ; No predecessors!
  br label %31505

31505:                                            ; preds = %31504
  br label %31506

31506:                                            ; preds = %31505, %31448
  br label %31507

31507:                                            ; preds = %31506
  br label %31508

31508:                                            ; preds = %31507
  call void @llvm.lifetime.start.p0(i64 4, ptr %987) #11
  store i32 -1, ptr %987, align 4, !tbaa !5
  %31509 = getelementptr inbounds %struct.s2n_x509_validator, ptr %970, i32 0, i32 2
  store i8 1, ptr %31509, align 8, !tbaa !60
  br label %31510

31510:                                            ; preds = %31508
  %31511 = load i32, ptr @test_count, align 4, !tbaa !5
  %31512 = add nsw i32 %31511, 1
  store i32 %31512, ptr @test_count, align 4, !tbaa !5
  %31513 = load ptr, ptr %973, align 8, !tbaa !9
  %31514 = load ptr, ptr %982, align 8, !tbaa !9
  %31515 = load i32, ptr %981, align 4, !tbaa !5
  %31516 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %970, ptr noundef %31513, ptr noundef %31514, i32 noundef %31515, ptr noundef %987, ptr noundef %985)
  %31517 = getelementptr inbounds %struct.s2n_result, ptr %988, i32 0, i32 0
  store i32 %31516, ptr %31517, align 4
  %31518 = getelementptr inbounds %struct.s2n_result, ptr %988, i32 0, i32 0
  %31519 = load i32, ptr %31518, align 4
  %31520 = call zeroext i1 @s2n_result_is_ok(i32 %31519)
  br i1 %31520, label %31574, label %31521

31521:                                            ; preds = %31510
  br label %31522

31522:                                            ; preds = %31521
  br label %31523

31523:                                            ; preds = %31522
  call void @llvm.lifetime.start.p0(i64 4, ptr %989) #11
  %31524 = call ptr @__errno_location() #12
  %31525 = load i32, ptr %31524, align 4, !tbaa !5
  store i32 %31525, ptr %989, align 4, !tbaa !5
  %31526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31527 = call i32 @s2n_print_stacktrace(ptr noundef %31526)
  %31528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31529 = trunc i8 %31528 to i1
  br i1 %31529, label %31530, label %31552

31530:                                            ; preds = %31523
  %31531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31532 = call i32 @fileno(ptr noundef %31531) #11
  %31533 = call i32 @isatty(i32 noundef %31532) #11
  %31534 = icmp ne i32 %31533, 0
  br i1 %31534, label %31535, label %31552

31535:                                            ; preds = %31530
  %31536 = load i32, ptr %989, align 4, !tbaa !5
  %31537 = call ptr @__errno_location() #12
  store i32 %31536, ptr %31537, align 4, !tbaa !5
  %31538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31539 = load i32, ptr @test_count, align 4, !tbaa !5
  %31540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31541 = load i32, ptr %31540, align 4, !tbaa !5
  %31542 = call ptr @s2n_strerror(i32 noundef %31541, ptr noundef @.str.4)
  %31543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31544 = load i32, ptr %31543, align 4, !tbaa !5
  %31545 = call ptr @s2n_strerror_debug(i32 noundef %31544, ptr noundef @.str.4)
  %31546 = call ptr @__errno_location() #12
  %31547 = load i32, ptr %31546, align 4, !tbaa !5
  %31548 = call ptr @strerror(i32 noundef %31547) #11
  %31549 = call ptr @__errno_location() #12
  %31550 = load i32, ptr %31549, align 4, !tbaa !5
  %31551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31538, ptr noundef @.str.2, i32 noundef %31539, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1919, ptr noundef %31542, ptr noundef %31545, ptr noundef %31548, i32 noundef %31550) #11
  br label %31569

31552:                                            ; preds = %31530, %31523
  %31553 = load i32, ptr %989, align 4, !tbaa !5
  %31554 = call ptr @__errno_location() #12
  store i32 %31553, ptr %31554, align 4, !tbaa !5
  %31555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31556 = load i32, ptr @test_count, align 4, !tbaa !5
  %31557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31558 = load i32, ptr %31557, align 4, !tbaa !5
  %31559 = call ptr @s2n_strerror(i32 noundef %31558, ptr noundef @.str.4)
  %31560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31561 = load i32, ptr %31560, align 4, !tbaa !5
  %31562 = call ptr @s2n_strerror_debug(i32 noundef %31561, ptr noundef @.str.4)
  %31563 = call ptr @__errno_location() #12
  %31564 = load i32, ptr %31563, align 4, !tbaa !5
  %31565 = call ptr @strerror(i32 noundef %31564) #11
  %31566 = call ptr @__errno_location() #12
  %31567 = load i32, ptr %31566, align 4, !tbaa !5
  %31568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31555, ptr noundef @.str.5, i32 noundef %31556, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 1919, ptr noundef %31559, ptr noundef %31562, ptr noundef %31565, i32 noundef %31567) #11
  br label %31569

31569:                                            ; preds = %31552, %31535
  call void @llvm.lifetime.end.p0(i64 4, ptr %989) #11
  br label %31570

31570:                                            ; preds = %31569
  br label %31571

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

31572:                                            ; No predecessors!
  br label %31573

31573:                                            ; preds = %31572
  br label %31574

31574:                                            ; preds = %31573, %31510
  br label %31575

31575:                                            ; preds = %31574
  br label %31576

31576:                                            ; preds = %31575
  %31577 = load ptr, ptr %973, align 8, !tbaa !9
  %31578 = call i32 @s2n_connection_free(ptr noundef %31577)
  %31579 = call i32 @s2n_pkey_free(ptr noundef %985)
  %31580 = load ptr, ptr %971, align 8, !tbaa !9
  %31581 = call i32 @s2n_config_free(ptr noundef %31580)
  %31582 = call i32 @s2n_x509_validator_wipe(ptr noundef %970)
  call void @s2n_x509_trust_store_wipe(ptr noundef %968)
  call void @llvm.lifetime.end.p0(i64 4, ptr %987) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %985) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %982) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %981) #11
  %31583 = call i32 @s2n_stuffer_free(ptr noundef %978)
  call void @llvm.lifetime.end.p0(i64 40, ptr %978) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %976) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %973) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %971) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %970) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %968) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %990) #11
  call void @s2n_x509_trust_store_init_empty(ptr noundef %990)
  br label %31584

31584:                                            ; preds = %31576
  %31585 = load i32, ptr @test_count, align 4, !tbaa !5
  %31586 = add nsw i32 %31585, 1
  store i32 %31586, ptr @test_count, align 4, !tbaa !5
  %31587 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef %990, ptr noundef @.str.138, ptr noundef null)
  %31588 = icmp eq i32 0, %31587
  br i1 %31588, label %31642, label %31589

31589:                                            ; preds = %31584
  br label %31590

31590:                                            ; preds = %31589
  br label %31591

31591:                                            ; preds = %31590
  call void @llvm.lifetime.start.p0(i64 4, ptr %991) #11
  %31592 = call ptr @__errno_location() #12
  %31593 = load i32, ptr %31592, align 4, !tbaa !5
  store i32 %31593, ptr %991, align 4, !tbaa !5
  %31594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31595 = call i32 @s2n_print_stacktrace(ptr noundef %31594)
  %31596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31597 = trunc i8 %31596 to i1
  br i1 %31597, label %31598, label %31620

31598:                                            ; preds = %31591
  %31599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31600 = call i32 @fileno(ptr noundef %31599) #11
  %31601 = call i32 @isatty(i32 noundef %31600) #11
  %31602 = icmp ne i32 %31601, 0
  br i1 %31602, label %31603, label %31620

31603:                                            ; preds = %31598
  %31604 = load i32, ptr %991, align 4, !tbaa !5
  %31605 = call ptr @__errno_location() #12
  store i32 %31604, ptr %31605, align 4, !tbaa !5
  %31606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31607 = load i32, ptr @test_count, align 4, !tbaa !5
  %31608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31609 = load i32, ptr %31608, align 4, !tbaa !5
  %31610 = call ptr @s2n_strerror(i32 noundef %31609, ptr noundef @.str.4)
  %31611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31612 = load i32, ptr %31611, align 4, !tbaa !5
  %31613 = call ptr @s2n_strerror_debug(i32 noundef %31612, ptr noundef @.str.4)
  %31614 = call ptr @__errno_location() #12
  %31615 = load i32, ptr %31614, align 4, !tbaa !5
  %31616 = call ptr @strerror(i32 noundef %31615) #11
  %31617 = call ptr @__errno_location() #12
  %31618 = load i32, ptr %31617, align 4, !tbaa !5
  %31619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31606, ptr noundef @.str.2, i32 noundef %31607, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 1933, ptr noundef %31610, ptr noundef %31613, ptr noundef %31616, i32 noundef %31618) #11
  br label %31637

31620:                                            ; preds = %31598, %31591
  %31621 = load i32, ptr %991, align 4, !tbaa !5
  %31622 = call ptr @__errno_location() #12
  store i32 %31621, ptr %31622, align 4, !tbaa !5
  %31623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31624 = load i32, ptr @test_count, align 4, !tbaa !5
  %31625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31626 = load i32, ptr %31625, align 4, !tbaa !5
  %31627 = call ptr @s2n_strerror(i32 noundef %31626, ptr noundef @.str.4)
  %31628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31629 = load i32, ptr %31628, align 4, !tbaa !5
  %31630 = call ptr @s2n_strerror_debug(i32 noundef %31629, ptr noundef @.str.4)
  %31631 = call ptr @__errno_location() #12
  %31632 = load i32, ptr %31631, align 4, !tbaa !5
  %31633 = call ptr @strerror(i32 noundef %31632) #11
  %31634 = call ptr @__errno_location() #12
  %31635 = load i32, ptr %31634, align 4, !tbaa !5
  %31636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31623, ptr noundef @.str.5, i32 noundef %31624, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 1933, ptr noundef %31627, ptr noundef %31630, ptr noundef %31633, i32 noundef %31635) #11
  br label %31637

31637:                                            ; preds = %31620, %31603
  call void @llvm.lifetime.end.p0(i64 4, ptr %991) #11
  br label %31638

31638:                                            ; preds = %31637
  br label %31639

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

31640:                                            ; No predecessors!
  br label %31641

31641:                                            ; preds = %31640
  br label %31642

31642:                                            ; preds = %31641, %31584
  br label %31643

31643:                                            ; preds = %31642
  br label %31644

31644:                                            ; preds = %31643
  call void @llvm.lifetime.start.p0(i64 56, ptr %992) #11
  %31645 = call i32 @s2n_x509_validator_init(ptr noundef %992, ptr noundef %990, i8 noundef zeroext 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %993) #11
  %31646 = call ptr @s2n_config_new()
  store ptr %31646, ptr %993, align 8, !tbaa !9
  br label %31647

31647:                                            ; preds = %31644
  %31648 = load i32, ptr @test_count, align 4, !tbaa !5
  %31649 = add nsw i32 %31648, 1
  store i32 %31649, ptr @test_count, align 4, !tbaa !5
  %31650 = load ptr, ptr %993, align 8, !tbaa !9
  %31651 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %31650, ptr noundef @.str.140)
  %31652 = icmp eq i32 %31651, -1
  br i1 %31652, label %31653, label %31706

31653:                                            ; preds = %31647
  br label %31654

31654:                                            ; preds = %31653
  br label %31655

31655:                                            ; preds = %31654
  call void @llvm.lifetime.start.p0(i64 4, ptr %994) #11
  %31656 = call ptr @__errno_location() #12
  %31657 = load i32, ptr %31656, align 4, !tbaa !5
  store i32 %31657, ptr %994, align 4, !tbaa !5
  %31658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31659 = call i32 @s2n_print_stacktrace(ptr noundef %31658)
  %31660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31661 = trunc i8 %31660 to i1
  br i1 %31661, label %31662, label %31684

31662:                                            ; preds = %31655
  %31663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31664 = call i32 @fileno(ptr noundef %31663) #11
  %31665 = call i32 @isatty(i32 noundef %31664) #11
  %31666 = icmp ne i32 %31665, 0
  br i1 %31666, label %31667, label %31684

31667:                                            ; preds = %31662
  %31668 = load i32, ptr %994, align 4, !tbaa !5
  %31669 = call ptr @__errno_location() #12
  store i32 %31668, ptr %31669, align 4, !tbaa !5
  %31670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31671 = load i32, ptr @test_count, align 4, !tbaa !5
  %31672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31673 = load i32, ptr %31672, align 4, !tbaa !5
  %31674 = call ptr @s2n_strerror(i32 noundef %31673, ptr noundef @.str.4)
  %31675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31676 = load i32, ptr %31675, align 4, !tbaa !5
  %31677 = call ptr @s2n_strerror_debug(i32 noundef %31676, ptr noundef @.str.4)
  %31678 = call ptr @__errno_location() #12
  %31679 = load i32, ptr %31678, align 4, !tbaa !5
  %31680 = call ptr @strerror(i32 noundef %31679) #11
  %31681 = call ptr @__errno_location() #12
  %31682 = load i32, ptr %31681, align 4, !tbaa !5
  %31683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31670, ptr noundef @.str.2, i32 noundef %31671, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1939, ptr noundef %31674, ptr noundef %31677, ptr noundef %31680, i32 noundef %31682) #11
  br label %31701

31684:                                            ; preds = %31662, %31655
  %31685 = load i32, ptr %994, align 4, !tbaa !5
  %31686 = call ptr @__errno_location() #12
  store i32 %31685, ptr %31686, align 4, !tbaa !5
  %31687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31688 = load i32, ptr @test_count, align 4, !tbaa !5
  %31689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31690 = load i32, ptr %31689, align 4, !tbaa !5
  %31691 = call ptr @s2n_strerror(i32 noundef %31690, ptr noundef @.str.4)
  %31692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31693 = load i32, ptr %31692, align 4, !tbaa !5
  %31694 = call ptr @s2n_strerror_debug(i32 noundef %31693, ptr noundef @.str.4)
  %31695 = call ptr @__errno_location() #12
  %31696 = load i32, ptr %31695, align 4, !tbaa !5
  %31697 = call ptr @strerror(i32 noundef %31696) #11
  %31698 = call ptr @__errno_location() #12
  %31699 = load i32, ptr %31698, align 4, !tbaa !5
  %31700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31687, ptr noundef @.str.5, i32 noundef %31688, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1939, ptr noundef %31691, ptr noundef %31694, ptr noundef %31697, i32 noundef %31699) #11
  br label %31701

31701:                                            ; preds = %31684, %31667
  call void @llvm.lifetime.end.p0(i64 4, ptr %994) #11
  br label %31702

31702:                                            ; preds = %31701
  br label %31703

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

31704:                                            ; No predecessors!
  br label %31705

31705:                                            ; preds = %31704
  br label %31706

31706:                                            ; preds = %31705, %31647
  br label %31707

31707:                                            ; preds = %31706
  br label %31708

31708:                                            ; preds = %31707
  call void @llvm.lifetime.start.p0(i64 8, ptr %995) #11
  %31709 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %31709, ptr %995, align 8, !tbaa !9
  br label %31710

31710:                                            ; preds = %31708
  %31711 = load i32, ptr @test_count, align 4, !tbaa !5
  %31712 = add nsw i32 %31711, 1
  store i32 %31712, ptr @test_count, align 4, !tbaa !5
  %31713 = load ptr, ptr %995, align 8, !tbaa !9
  %31714 = load ptr, ptr %993, align 8, !tbaa !9
  %31715 = call i32 @s2n_connection_set_config(ptr noundef %31713, ptr noundef %31714)
  %31716 = icmp eq i32 %31715, -1
  br i1 %31716, label %31717, label %31770

31717:                                            ; preds = %31710
  br label %31718

31718:                                            ; preds = %31717
  br label %31719

31719:                                            ; preds = %31718
  call void @llvm.lifetime.start.p0(i64 4, ptr %996) #11
  %31720 = call ptr @__errno_location() #12
  %31721 = load i32, ptr %31720, align 4, !tbaa !5
  store i32 %31721, ptr %996, align 4, !tbaa !5
  %31722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31723 = call i32 @s2n_print_stacktrace(ptr noundef %31722)
  %31724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31725 = trunc i8 %31724 to i1
  br i1 %31725, label %31726, label %31748

31726:                                            ; preds = %31719
  %31727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31728 = call i32 @fileno(ptr noundef %31727) #11
  %31729 = call i32 @isatty(i32 noundef %31728) #11
  %31730 = icmp ne i32 %31729, 0
  br i1 %31730, label %31731, label %31748

31731:                                            ; preds = %31726
  %31732 = load i32, ptr %996, align 4, !tbaa !5
  %31733 = call ptr @__errno_location() #12
  store i32 %31732, ptr %31733, align 4, !tbaa !5
  %31734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31735 = load i32, ptr @test_count, align 4, !tbaa !5
  %31736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31737 = load i32, ptr %31736, align 4, !tbaa !5
  %31738 = call ptr @s2n_strerror(i32 noundef %31737, ptr noundef @.str.4)
  %31739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31740 = load i32, ptr %31739, align 4, !tbaa !5
  %31741 = call ptr @s2n_strerror_debug(i32 noundef %31740, ptr noundef @.str.4)
  %31742 = call ptr @__errno_location() #12
  %31743 = load i32, ptr %31742, align 4, !tbaa !5
  %31744 = call ptr @strerror(i32 noundef %31743) #11
  %31745 = call ptr @__errno_location() #12
  %31746 = load i32, ptr %31745, align 4, !tbaa !5
  %31747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31734, ptr noundef @.str.2, i32 noundef %31735, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1942, ptr noundef %31738, ptr noundef %31741, ptr noundef %31744, i32 noundef %31746) #11
  br label %31765

31748:                                            ; preds = %31726, %31719
  %31749 = load i32, ptr %996, align 4, !tbaa !5
  %31750 = call ptr @__errno_location() #12
  store i32 %31749, ptr %31750, align 4, !tbaa !5
  %31751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31752 = load i32, ptr @test_count, align 4, !tbaa !5
  %31753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31754 = load i32, ptr %31753, align 4, !tbaa !5
  %31755 = call ptr @s2n_strerror(i32 noundef %31754, ptr noundef @.str.4)
  %31756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31757 = load i32, ptr %31756, align 4, !tbaa !5
  %31758 = call ptr @s2n_strerror_debug(i32 noundef %31757, ptr noundef @.str.4)
  %31759 = call ptr @__errno_location() #12
  %31760 = load i32, ptr %31759, align 4, !tbaa !5
  %31761 = call ptr @strerror(i32 noundef %31760) #11
  %31762 = call ptr @__errno_location() #12
  %31763 = load i32, ptr %31762, align 4, !tbaa !5
  %31764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31751, ptr noundef @.str.5, i32 noundef %31752, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1942, ptr noundef %31755, ptr noundef %31758, ptr noundef %31761, i32 noundef %31763) #11
  br label %31765

31765:                                            ; preds = %31748, %31731
  call void @llvm.lifetime.end.p0(i64 4, ptr %996) #11
  br label %31766

31766:                                            ; preds = %31765
  br label %31767

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

31768:                                            ; No predecessors!
  br label %31769

31769:                                            ; preds = %31768
  br label %31770

31770:                                            ; preds = %31769, %31710
  br label %31771

31771:                                            ; preds = %31770
  br label %31772

31772:                                            ; preds = %31771
  br label %31773

31773:                                            ; preds = %31772
  %31774 = load i32, ptr @test_count, align 4, !tbaa !5
  %31775 = add nsw i32 %31774, 1
  store i32 %31775, ptr @test_count, align 4, !tbaa !5
  %31776 = load ptr, ptr %995, align 8, !tbaa !9
  %31777 = icmp eq ptr %31776, null
  br i1 %31777, label %31778, label %31831

31778:                                            ; preds = %31773
  br label %31779

31779:                                            ; preds = %31778
  br label %31780

31780:                                            ; preds = %31779
  call void @llvm.lifetime.start.p0(i64 4, ptr %997) #11
  %31781 = call ptr @__errno_location() #12
  %31782 = load i32, ptr %31781, align 4, !tbaa !5
  store i32 %31782, ptr %997, align 4, !tbaa !5
  %31783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31784 = call i32 @s2n_print_stacktrace(ptr noundef %31783)
  %31785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31786 = trunc i8 %31785 to i1
  br i1 %31786, label %31787, label %31809

31787:                                            ; preds = %31780
  %31788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31789 = call i32 @fileno(ptr noundef %31788) #11
  %31790 = call i32 @isatty(i32 noundef %31789) #11
  %31791 = icmp ne i32 %31790, 0
  br i1 %31791, label %31792, label %31809

31792:                                            ; preds = %31787
  %31793 = load i32, ptr %997, align 4, !tbaa !5
  %31794 = call ptr @__errno_location() #12
  store i32 %31793, ptr %31794, align 4, !tbaa !5
  %31795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31796 = load i32, ptr @test_count, align 4, !tbaa !5
  %31797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31798 = load i32, ptr %31797, align 4, !tbaa !5
  %31799 = call ptr @s2n_strerror(i32 noundef %31798, ptr noundef @.str.4)
  %31800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31801 = load i32, ptr %31800, align 4, !tbaa !5
  %31802 = call ptr @s2n_strerror_debug(i32 noundef %31801, ptr noundef @.str.4)
  %31803 = call ptr @__errno_location() #12
  %31804 = load i32, ptr %31803, align 4, !tbaa !5
  %31805 = call ptr @strerror(i32 noundef %31804) #11
  %31806 = call ptr @__errno_location() #12
  %31807 = load i32, ptr %31806, align 4, !tbaa !5
  %31808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31795, ptr noundef @.str.2, i32 noundef %31796, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1944, ptr noundef %31799, ptr noundef %31802, ptr noundef %31805, i32 noundef %31807) #11
  br label %31826

31809:                                            ; preds = %31787, %31780
  %31810 = load i32, ptr %997, align 4, !tbaa !5
  %31811 = call ptr @__errno_location() #12
  store i32 %31810, ptr %31811, align 4, !tbaa !5
  %31812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31813 = load i32, ptr @test_count, align 4, !tbaa !5
  %31814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31815 = load i32, ptr %31814, align 4, !tbaa !5
  %31816 = call ptr @s2n_strerror(i32 noundef %31815, ptr noundef @.str.4)
  %31817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31818 = load i32, ptr %31817, align 4, !tbaa !5
  %31819 = call ptr @s2n_strerror_debug(i32 noundef %31818, ptr noundef @.str.4)
  %31820 = call ptr @__errno_location() #12
  %31821 = load i32, ptr %31820, align 4, !tbaa !5
  %31822 = call ptr @strerror(i32 noundef %31821) #11
  %31823 = call ptr @__errno_location() #12
  %31824 = load i32, ptr %31823, align 4, !tbaa !5
  %31825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31812, ptr noundef @.str.5, i32 noundef %31813, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1944, ptr noundef %31816, ptr noundef %31819, ptr noundef %31822, i32 noundef %31824) #11
  br label %31826

31826:                                            ; preds = %31809, %31792
  call void @llvm.lifetime.end.p0(i64 4, ptr %997) #11
  br label %31827

31827:                                            ; preds = %31826
  br label %31828

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

31829:                                            ; No predecessors!
  br label %31830

31830:                                            ; preds = %31829
  br label %31831

31831:                                            ; preds = %31830, %31773
  br label %31832

31832:                                            ; preds = %31831
  br label %31833

31833:                                            ; preds = %31832
  %31834 = load ptr, ptr %995, align 8, !tbaa !9
  %31835 = getelementptr inbounds %struct.s2n_connection, ptr %31834, i32 0, i32 23
  store i8 34, ptr %31835, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 16, ptr %998) #11
  call void @llvm.memset.p0.i64(ptr align 8 %998, i8 0, i64 16, i1 false)
  br label %31836

31836:                                            ; preds = %31833
  %31837 = load i32, ptr @test_count, align 4, !tbaa !5
  %31838 = add nsw i32 %31837, 1
  store i32 %31838, ptr @test_count, align 4, !tbaa !5
  %31839 = load ptr, ptr %995, align 8, !tbaa !9
  %31840 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef %31839, ptr noundef @verify_host_accept_everything, ptr noundef %998)
  %31841 = icmp eq i32 %31840, -1
  br i1 %31841, label %31842, label %31895

31842:                                            ; preds = %31836
  br label %31843

31843:                                            ; preds = %31842
  br label %31844

31844:                                            ; preds = %31843
  call void @llvm.lifetime.start.p0(i64 4, ptr %999) #11
  %31845 = call ptr @__errno_location() #12
  %31846 = load i32, ptr %31845, align 4, !tbaa !5
  store i32 %31846, ptr %999, align 4, !tbaa !5
  %31847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31848 = call i32 @s2n_print_stacktrace(ptr noundef %31847)
  %31849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31850 = trunc i8 %31849 to i1
  br i1 %31850, label %31851, label %31873

31851:                                            ; preds = %31844
  %31852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31853 = call i32 @fileno(ptr noundef %31852) #11
  %31854 = call i32 @isatty(i32 noundef %31853) #11
  %31855 = icmp ne i32 %31854, 0
  br i1 %31855, label %31856, label %31873

31856:                                            ; preds = %31851
  %31857 = load i32, ptr %999, align 4, !tbaa !5
  %31858 = call ptr @__errno_location() #12
  store i32 %31857, ptr %31858, align 4, !tbaa !5
  %31859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31860 = load i32, ptr @test_count, align 4, !tbaa !5
  %31861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31862 = load i32, ptr %31861, align 4, !tbaa !5
  %31863 = call ptr @s2n_strerror(i32 noundef %31862, ptr noundef @.str.4)
  %31864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31865 = load i32, ptr %31864, align 4, !tbaa !5
  %31866 = call ptr @s2n_strerror_debug(i32 noundef %31865, ptr noundef @.str.4)
  %31867 = call ptr @__errno_location() #12
  %31868 = load i32, ptr %31867, align 4, !tbaa !5
  %31869 = call ptr @strerror(i32 noundef %31868) #11
  %31870 = call ptr @__errno_location() #12
  %31871 = load i32, ptr %31870, align 4, !tbaa !5
  %31872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31859, ptr noundef @.str.2, i32 noundef %31860, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1948, ptr noundef %31863, ptr noundef %31866, ptr noundef %31869, i32 noundef %31871) #11
  br label %31890

31873:                                            ; preds = %31851, %31844
  %31874 = load i32, ptr %999, align 4, !tbaa !5
  %31875 = call ptr @__errno_location() #12
  store i32 %31874, ptr %31875, align 4, !tbaa !5
  %31876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31877 = load i32, ptr @test_count, align 4, !tbaa !5
  %31878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31879 = load i32, ptr %31878, align 4, !tbaa !5
  %31880 = call ptr @s2n_strerror(i32 noundef %31879, ptr noundef @.str.4)
  %31881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31882 = load i32, ptr %31881, align 4, !tbaa !5
  %31883 = call ptr @s2n_strerror_debug(i32 noundef %31882, ptr noundef @.str.4)
  %31884 = call ptr @__errno_location() #12
  %31885 = load i32, ptr %31884, align 4, !tbaa !5
  %31886 = call ptr @strerror(i32 noundef %31885) #11
  %31887 = call ptr @__errno_location() #12
  %31888 = load i32, ptr %31887, align 4, !tbaa !5
  %31889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31876, ptr noundef @.str.5, i32 noundef %31877, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 1948, ptr noundef %31880, ptr noundef %31883, ptr noundef %31886, i32 noundef %31888) #11
  br label %31890

31890:                                            ; preds = %31873, %31856
  call void @llvm.lifetime.end.p0(i64 4, ptr %999) #11
  br label %31891

31891:                                            ; preds = %31890
  br label %31892

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

31893:                                            ; No predecessors!
  br label %31894

31894:                                            ; preds = %31893
  br label %31895

31895:                                            ; preds = %31894, %31836
  br label %31896

31896:                                            ; preds = %31895
  br label %31897

31897:                                            ; preds = %31896
  call void @llvm.lifetime.start.p0(i64 40, ptr %1000) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1000, i8 0, i64 40, i1 false)
  br label %31898

31898:                                            ; preds = %31897
  %31899 = load i32, ptr @test_count, align 4, !tbaa !5
  %31900 = add nsw i32 %31899, 1
  store i32 %31900, ptr @test_count, align 4, !tbaa !5
  %31901 = load ptr, ptr %995, align 8, !tbaa !9
  %31902 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %31901, ptr noundef @.str.138, ptr noundef %1000)
  %31903 = getelementptr inbounds %struct.s2n_result, ptr %1001, i32 0, i32 0
  store i32 %31902, ptr %31903, align 4
  %31904 = getelementptr inbounds %struct.s2n_result, ptr %1001, i32 0, i32 0
  %31905 = load i32, ptr %31904, align 4
  %31906 = call zeroext i1 @s2n_result_is_ok(i32 %31905)
  br i1 %31906, label %31960, label %31907

31907:                                            ; preds = %31898
  br label %31908

31908:                                            ; preds = %31907
  br label %31909

31909:                                            ; preds = %31908
  call void @llvm.lifetime.start.p0(i64 4, ptr %1002) #11
  %31910 = call ptr @__errno_location() #12
  %31911 = load i32, ptr %31910, align 4, !tbaa !5
  store i32 %31911, ptr %1002, align 4, !tbaa !5
  %31912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31913 = call i32 @s2n_print_stacktrace(ptr noundef %31912)
  %31914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31915 = trunc i8 %31914 to i1
  br i1 %31915, label %31916, label %31938

31916:                                            ; preds = %31909
  %31917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31918 = call i32 @fileno(ptr noundef %31917) #11
  %31919 = call i32 @isatty(i32 noundef %31918) #11
  %31920 = icmp ne i32 %31919, 0
  br i1 %31920, label %31921, label %31938

31921:                                            ; preds = %31916
  %31922 = load i32, ptr %1002, align 4, !tbaa !5
  %31923 = call ptr @__errno_location() #12
  store i32 %31922, ptr %31923, align 4, !tbaa !5
  %31924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31925 = load i32, ptr @test_count, align 4, !tbaa !5
  %31926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31927 = load i32, ptr %31926, align 4, !tbaa !5
  %31928 = call ptr @s2n_strerror(i32 noundef %31927, ptr noundef @.str.4)
  %31929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31930 = load i32, ptr %31929, align 4, !tbaa !5
  %31931 = call ptr @s2n_strerror_debug(i32 noundef %31930, ptr noundef @.str.4)
  %31932 = call ptr @__errno_location() #12
  %31933 = load i32, ptr %31932, align 4, !tbaa !5
  %31934 = call ptr @strerror(i32 noundef %31933) #11
  %31935 = call ptr @__errno_location() #12
  %31936 = load i32, ptr %31935, align 4, !tbaa !5
  %31937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31924, ptr noundef @.str.2, i32 noundef %31925, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 1951, ptr noundef %31928, ptr noundef %31931, ptr noundef %31934, i32 noundef %31936) #11
  br label %31955

31938:                                            ; preds = %31916, %31909
  %31939 = load i32, ptr %1002, align 4, !tbaa !5
  %31940 = call ptr @__errno_location() #12
  store i32 %31939, ptr %31940, align 4, !tbaa !5
  %31941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31942 = load i32, ptr @test_count, align 4, !tbaa !5
  %31943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31944 = load i32, ptr %31943, align 4, !tbaa !5
  %31945 = call ptr @s2n_strerror(i32 noundef %31944, ptr noundef @.str.4)
  %31946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31947 = load i32, ptr %31946, align 4, !tbaa !5
  %31948 = call ptr @s2n_strerror_debug(i32 noundef %31947, ptr noundef @.str.4)
  %31949 = call ptr @__errno_location() #12
  %31950 = load i32, ptr %31949, align 4, !tbaa !5
  %31951 = call ptr @strerror(i32 noundef %31950) #11
  %31952 = call ptr @__errno_location() #12
  %31953 = load i32, ptr %31952, align 4, !tbaa !5
  %31954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31941, ptr noundef @.str.5, i32 noundef %31942, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 1951, ptr noundef %31945, ptr noundef %31948, ptr noundef %31951, i32 noundef %31953) #11
  br label %31955

31955:                                            ; preds = %31938, %31921
  call void @llvm.lifetime.end.p0(i64 4, ptr %1002) #11
  br label %31956

31956:                                            ; preds = %31955
  br label %31957

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

31958:                                            ; No predecessors!
  br label %31959

31959:                                            ; preds = %31958
  br label %31960

31960:                                            ; preds = %31959, %31898
  br label %31961

31961:                                            ; preds = %31960
  br label %31962

31962:                                            ; preds = %31961
  call void @llvm.lifetime.start.p0(i64 4, ptr %1003) #11
  %31963 = getelementptr inbounds %struct.s2n_stuffer, ptr %1000, i32 0, i32 2
  %31964 = load i32, ptr %31963, align 4, !tbaa !15
  %31965 = getelementptr inbounds %struct.s2n_stuffer, ptr %1000, i32 0, i32 1
  %31966 = load i32, ptr %31965, align 8, !tbaa !18
  %31967 = sub i32 %31964, %31966
  store i32 %31967, ptr %1003, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1004) #11
  %31968 = load i32, ptr %1003, align 4, !tbaa !5
  %31969 = call ptr @s2n_stuffer_raw_read(ptr noundef %1000, i32 noundef %31968)
  store ptr %31969, ptr %1004, align 8, !tbaa !9
  br label %31970

31970:                                            ; preds = %31962
  %31971 = load i32, ptr @test_count, align 4, !tbaa !5
  %31972 = add nsw i32 %31971, 1
  store i32 %31972, ptr @test_count, align 4, !tbaa !5
  %31973 = load ptr, ptr %1004, align 8, !tbaa !9
  %31974 = icmp eq ptr %31973, null
  br i1 %31974, label %31975, label %32028

31975:                                            ; preds = %31970
  br label %31976

31976:                                            ; preds = %31975
  br label %31977

31977:                                            ; preds = %31976
  call void @llvm.lifetime.start.p0(i64 4, ptr %1005) #11
  %31978 = call ptr @__errno_location() #12
  %31979 = load i32, ptr %31978, align 4, !tbaa !5
  store i32 %31979, ptr %1005, align 4, !tbaa !5
  %31980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31981 = call i32 @s2n_print_stacktrace(ptr noundef %31980)
  %31982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %31983 = trunc i8 %31982 to i1
  br i1 %31983, label %31984, label %32006

31984:                                            ; preds = %31977
  %31985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31986 = call i32 @fileno(ptr noundef %31985) #11
  %31987 = call i32 @isatty(i32 noundef %31986) #11
  %31988 = icmp ne i32 %31987, 0
  br i1 %31988, label %31989, label %32006

31989:                                            ; preds = %31984
  %31990 = load i32, ptr %1005, align 4, !tbaa !5
  %31991 = call ptr @__errno_location() #12
  store i32 %31990, ptr %31991, align 4, !tbaa !5
  %31992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31993 = load i32, ptr @test_count, align 4, !tbaa !5
  %31994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31995 = load i32, ptr %31994, align 4, !tbaa !5
  %31996 = call ptr @s2n_strerror(i32 noundef %31995, ptr noundef @.str.4)
  %31997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %31998 = load i32, ptr %31997, align 4, !tbaa !5
  %31999 = call ptr @s2n_strerror_debug(i32 noundef %31998, ptr noundef @.str.4)
  %32000 = call ptr @__errno_location() #12
  %32001 = load i32, ptr %32000, align 4, !tbaa !5
  %32002 = call ptr @strerror(i32 noundef %32001) #11
  %32003 = call ptr @__errno_location() #12
  %32004 = load i32, ptr %32003, align 4, !tbaa !5
  %32005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31992, ptr noundef @.str.2, i32 noundef %31993, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1954, ptr noundef %31996, ptr noundef %31999, ptr noundef %32002, i32 noundef %32004) #11
  br label %32023

32006:                                            ; preds = %31984, %31977
  %32007 = load i32, ptr %1005, align 4, !tbaa !5
  %32008 = call ptr @__errno_location() #12
  store i32 %32007, ptr %32008, align 4, !tbaa !5
  %32009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32010 = load i32, ptr @test_count, align 4, !tbaa !5
  %32011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32012 = load i32, ptr %32011, align 4, !tbaa !5
  %32013 = call ptr @s2n_strerror(i32 noundef %32012, ptr noundef @.str.4)
  %32014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32015 = load i32, ptr %32014, align 4, !tbaa !5
  %32016 = call ptr @s2n_strerror_debug(i32 noundef %32015, ptr noundef @.str.4)
  %32017 = call ptr @__errno_location() #12
  %32018 = load i32, ptr %32017, align 4, !tbaa !5
  %32019 = call ptr @strerror(i32 noundef %32018) #11
  %32020 = call ptr @__errno_location() #12
  %32021 = load i32, ptr %32020, align 4, !tbaa !5
  %32022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32009, ptr noundef @.str.5, i32 noundef %32010, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 1954, ptr noundef %32013, ptr noundef %32016, ptr noundef %32019, i32 noundef %32021) #11
  br label %32023

32023:                                            ; preds = %32006, %31989
  call void @llvm.lifetime.end.p0(i64 4, ptr %1005) #11
  br label %32024

32024:                                            ; preds = %32023
  br label %32025

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

32026:                                            ; No predecessors!
  br label %32027

32027:                                            ; preds = %32026
  br label %32028

32028:                                            ; preds = %32027, %31970
  br label %32029

32029:                                            ; preds = %32028
  br label %32030

32030:                                            ; preds = %32029
  call void @llvm.lifetime.start.p0(i64 48, ptr %1006) #11
  br label %32031

32031:                                            ; preds = %32030
  %32032 = load i32, ptr @test_count, align 4, !tbaa !5
  %32033 = add nsw i32 %32032, 1
  store i32 %32033, ptr @test_count, align 4, !tbaa !5
  %32034 = call i32 @s2n_pkey_zero_init(ptr noundef %1006)
  %32035 = icmp eq i32 %32034, -1
  br i1 %32035, label %32036, label %32089

32036:                                            ; preds = %32031
  br label %32037

32037:                                            ; preds = %32036
  br label %32038

32038:                                            ; preds = %32037
  call void @llvm.lifetime.start.p0(i64 4, ptr %1007) #11
  %32039 = call ptr @__errno_location() #12
  %32040 = load i32, ptr %32039, align 4, !tbaa !5
  store i32 %32040, ptr %1007, align 4, !tbaa !5
  %32041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32042 = call i32 @s2n_print_stacktrace(ptr noundef %32041)
  %32043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32044 = trunc i8 %32043 to i1
  br i1 %32044, label %32045, label %32067

32045:                                            ; preds = %32038
  %32046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32047 = call i32 @fileno(ptr noundef %32046) #11
  %32048 = call i32 @isatty(i32 noundef %32047) #11
  %32049 = icmp ne i32 %32048, 0
  br i1 %32049, label %32050, label %32067

32050:                                            ; preds = %32045
  %32051 = load i32, ptr %1007, align 4, !tbaa !5
  %32052 = call ptr @__errno_location() #12
  store i32 %32051, ptr %32052, align 4, !tbaa !5
  %32053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32054 = load i32, ptr @test_count, align 4, !tbaa !5
  %32055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32056 = load i32, ptr %32055, align 4, !tbaa !5
  %32057 = call ptr @s2n_strerror(i32 noundef %32056, ptr noundef @.str.4)
  %32058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32059 = load i32, ptr %32058, align 4, !tbaa !5
  %32060 = call ptr @s2n_strerror_debug(i32 noundef %32059, ptr noundef @.str.4)
  %32061 = call ptr @__errno_location() #12
  %32062 = load i32, ptr %32061, align 4, !tbaa !5
  %32063 = call ptr @strerror(i32 noundef %32062) #11
  %32064 = call ptr @__errno_location() #12
  %32065 = load i32, ptr %32064, align 4, !tbaa !5
  %32066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32053, ptr noundef @.str.2, i32 noundef %32054, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1957, ptr noundef %32057, ptr noundef %32060, ptr noundef %32063, i32 noundef %32065) #11
  br label %32084

32067:                                            ; preds = %32045, %32038
  %32068 = load i32, ptr %1007, align 4, !tbaa !5
  %32069 = call ptr @__errno_location() #12
  store i32 %32068, ptr %32069, align 4, !tbaa !5
  %32070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32071 = load i32, ptr @test_count, align 4, !tbaa !5
  %32072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32073 = load i32, ptr %32072, align 4, !tbaa !5
  %32074 = call ptr @s2n_strerror(i32 noundef %32073, ptr noundef @.str.4)
  %32075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32076 = load i32, ptr %32075, align 4, !tbaa !5
  %32077 = call ptr @s2n_strerror_debug(i32 noundef %32076, ptr noundef @.str.4)
  %32078 = call ptr @__errno_location() #12
  %32079 = load i32, ptr %32078, align 4, !tbaa !5
  %32080 = call ptr @strerror(i32 noundef %32079) #11
  %32081 = call ptr @__errno_location() #12
  %32082 = load i32, ptr %32081, align 4, !tbaa !5
  %32083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32070, ptr noundef @.str.5, i32 noundef %32071, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 1957, ptr noundef %32074, ptr noundef %32077, ptr noundef %32080, i32 noundef %32082) #11
  br label %32084

32084:                                            ; preds = %32067, %32050
  call void @llvm.lifetime.end.p0(i64 4, ptr %1007) #11
  br label %32085

32085:                                            ; preds = %32084
  br label %32086

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

32087:                                            ; No predecessors!
  br label %32088

32088:                                            ; preds = %32087
  br label %32089

32089:                                            ; preds = %32088, %32031
  br label %32090

32090:                                            ; preds = %32089
  br label %32091

32091:                                            ; preds = %32090
  call void @llvm.lifetime.start.p0(i64 4, ptr %1008) #11
  store i32 -1, ptr %1008, align 4, !tbaa !5
  br label %32092

32092:                                            ; preds = %32091
  br label %32093

32093:                                            ; preds = %32092
  br label %32094

32094:                                            ; preds = %32093
  %32095 = load i32, ptr @test_count, align 4, !tbaa !5
  %32096 = add nsw i32 %32095, 1
  store i32 %32096, ptr @test_count, align 4, !tbaa !5
  %32097 = load ptr, ptr %995, align 8, !tbaa !9
  %32098 = load ptr, ptr %1004, align 8, !tbaa !9
  %32099 = load i32, ptr %1003, align 4, !tbaa !5
  %32100 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %992, ptr noundef %32097, ptr noundef %32098, i32 noundef %32099, ptr noundef %1008, ptr noundef %1006)
  %32101 = getelementptr inbounds %struct.s2n_result, ptr %1009, i32 0, i32 0
  store i32 %32100, ptr %32101, align 4
  %32102 = getelementptr inbounds %struct.s2n_result, ptr %1009, i32 0, i32 0
  %32103 = load i32, ptr %32102, align 4
  %32104 = call zeroext i1 @s2n_result_is_error(i32 %32103)
  br i1 %32104, label %32158, label %32105

32105:                                            ; preds = %32094
  br label %32106

32106:                                            ; preds = %32105
  br label %32107

32107:                                            ; preds = %32106
  call void @llvm.lifetime.start.p0(i64 4, ptr %1010) #11
  %32108 = call ptr @__errno_location() #12
  %32109 = load i32, ptr %32108, align 4, !tbaa !5
  store i32 %32109, ptr %1010, align 4, !tbaa !5
  %32110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32111 = call i32 @s2n_print_stacktrace(ptr noundef %32110)
  %32112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32113 = trunc i8 %32112 to i1
  br i1 %32113, label %32114, label %32136

32114:                                            ; preds = %32107
  %32115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32116 = call i32 @fileno(ptr noundef %32115) #11
  %32117 = call i32 @isatty(i32 noundef %32116) #11
  %32118 = icmp ne i32 %32117, 0
  br i1 %32118, label %32119, label %32136

32119:                                            ; preds = %32114
  %32120 = load i32, ptr %1010, align 4, !tbaa !5
  %32121 = call ptr @__errno_location() #12
  store i32 %32120, ptr %32121, align 4, !tbaa !5
  %32122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32123 = load i32, ptr @test_count, align 4, !tbaa !5
  %32124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32125 = load i32, ptr %32124, align 4, !tbaa !5
  %32126 = call ptr @s2n_strerror(i32 noundef %32125, ptr noundef @.str.4)
  %32127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32128 = load i32, ptr %32127, align 4, !tbaa !5
  %32129 = call ptr @s2n_strerror_debug(i32 noundef %32128, ptr noundef @.str.4)
  %32130 = call ptr @__errno_location() #12
  %32131 = load i32, ptr %32130, align 4, !tbaa !5
  %32132 = call ptr @strerror(i32 noundef %32131) #11
  %32133 = call ptr @__errno_location() #12
  %32134 = load i32, ptr %32133, align 4, !tbaa !5
  %32135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32122, ptr noundef @.str.2, i32 noundef %32123, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1961, ptr noundef %32126, ptr noundef %32129, ptr noundef %32132, i32 noundef %32134) #11
  br label %32153

32136:                                            ; preds = %32114, %32107
  %32137 = load i32, ptr %1010, align 4, !tbaa !5
  %32138 = call ptr @__errno_location() #12
  store i32 %32137, ptr %32138, align 4, !tbaa !5
  %32139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32140 = load i32, ptr @test_count, align 4, !tbaa !5
  %32141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32142 = load i32, ptr %32141, align 4, !tbaa !5
  %32143 = call ptr @s2n_strerror(i32 noundef %32142, ptr noundef @.str.4)
  %32144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32145 = load i32, ptr %32144, align 4, !tbaa !5
  %32146 = call ptr @s2n_strerror_debug(i32 noundef %32145, ptr noundef @.str.4)
  %32147 = call ptr @__errno_location() #12
  %32148 = load i32, ptr %32147, align 4, !tbaa !5
  %32149 = call ptr @strerror(i32 noundef %32148) #11
  %32150 = call ptr @__errno_location() #12
  %32151 = load i32, ptr %32150, align 4, !tbaa !5
  %32152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32139, ptr noundef @.str.5, i32 noundef %32140, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 1961, ptr noundef %32143, ptr noundef %32146, ptr noundef %32149, i32 noundef %32151) #11
  br label %32153

32153:                                            ; preds = %32136, %32119
  call void @llvm.lifetime.end.p0(i64 4, ptr %1010) #11
  br label %32154

32154:                                            ; preds = %32153
  br label %32155

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

32156:                                            ; No predecessors!
  br label %32157

32157:                                            ; preds = %32156
  br label %32158

32158:                                            ; preds = %32157, %32094
  br label %32159

32159:                                            ; preds = %32158
  br label %32160

32160:                                            ; preds = %32159
  br label %32161

32161:                                            ; preds = %32160
  %32162 = load i32, ptr @test_count, align 4, !tbaa !5
  %32163 = add nsw i32 %32162, 1
  store i32 %32163, ptr @test_count, align 4, !tbaa !5
  %32164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32165 = load i32, ptr %32164, align 4, !tbaa !5
  %32166 = icmp eq i32 %32165, 335544366
  br i1 %32166, label %32220, label %32167

32167:                                            ; preds = %32161
  br label %32168

32168:                                            ; preds = %32167
  br label %32169

32169:                                            ; preds = %32168
  call void @llvm.lifetime.start.p0(i64 4, ptr %1011) #11
  %32170 = call ptr @__errno_location() #12
  %32171 = load i32, ptr %32170, align 4, !tbaa !5
  store i32 %32171, ptr %1011, align 4, !tbaa !5
  %32172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32173 = call i32 @s2n_print_stacktrace(ptr noundef %32172)
  %32174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32175 = trunc i8 %32174 to i1
  br i1 %32175, label %32176, label %32198

32176:                                            ; preds = %32169
  %32177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32178 = call i32 @fileno(ptr noundef %32177) #11
  %32179 = call i32 @isatty(i32 noundef %32178) #11
  %32180 = icmp ne i32 %32179, 0
  br i1 %32180, label %32181, label %32198

32181:                                            ; preds = %32176
  %32182 = load i32, ptr %1011, align 4, !tbaa !5
  %32183 = call ptr @__errno_location() #12
  store i32 %32182, ptr %32183, align 4, !tbaa !5
  %32184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32185 = load i32, ptr @test_count, align 4, !tbaa !5
  %32186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32187 = load i32, ptr %32186, align 4, !tbaa !5
  %32188 = call ptr @s2n_strerror(i32 noundef %32187, ptr noundef @.str.4)
  %32189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32190 = load i32, ptr %32189, align 4, !tbaa !5
  %32191 = call ptr @s2n_strerror_debug(i32 noundef %32190, ptr noundef @.str.4)
  %32192 = call ptr @__errno_location() #12
  %32193 = load i32, ptr %32192, align 4, !tbaa !5
  %32194 = call ptr @strerror(i32 noundef %32193) #11
  %32195 = call ptr @__errno_location() #12
  %32196 = load i32, ptr %32195, align 4, !tbaa !5
  %32197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32184, ptr noundef @.str.2, i32 noundef %32185, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1961, ptr noundef %32188, ptr noundef %32191, ptr noundef %32194, i32 noundef %32196) #11
  br label %32215

32198:                                            ; preds = %32176, %32169
  %32199 = load i32, ptr %1011, align 4, !tbaa !5
  %32200 = call ptr @__errno_location() #12
  store i32 %32199, ptr %32200, align 4, !tbaa !5
  %32201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32202 = load i32, ptr @test_count, align 4, !tbaa !5
  %32203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32204 = load i32, ptr %32203, align 4, !tbaa !5
  %32205 = call ptr @s2n_strerror(i32 noundef %32204, ptr noundef @.str.4)
  %32206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32207 = load i32, ptr %32206, align 4, !tbaa !5
  %32208 = call ptr @s2n_strerror_debug(i32 noundef %32207, ptr noundef @.str.4)
  %32209 = call ptr @__errno_location() #12
  %32210 = load i32, ptr %32209, align 4, !tbaa !5
  %32211 = call ptr @strerror(i32 noundef %32210) #11
  %32212 = call ptr @__errno_location() #12
  %32213 = load i32, ptr %32212, align 4, !tbaa !5
  %32214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32201, ptr noundef @.str.5, i32 noundef %32202, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 1961, ptr noundef %32205, ptr noundef %32208, ptr noundef %32211, i32 noundef %32213) #11
  br label %32215

32215:                                            ; preds = %32198, %32181
  call void @llvm.lifetime.end.p0(i64 4, ptr %1011) #11
  br label %32216

32216:                                            ; preds = %32215
  br label %32217

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

32218:                                            ; No predecessors!
  br label %32219

32219:                                            ; preds = %32218
  br label %32220

32220:                                            ; preds = %32219, %32161
  br label %32221

32221:                                            ; preds = %32220
  br label %32222

32222:                                            ; preds = %32221
  br label %32223

32223:                                            ; preds = %32222
  %32224 = load i32, ptr @test_count, align 4, !tbaa !5
  %32225 = add nsw i32 %32224, 1
  store i32 %32225, ptr @test_count, align 4, !tbaa !5
  %32226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32227 = load i32, ptr %32226, align 4, !tbaa !5
  %32228 = call ptr @s2n_strerror_debug(i32 noundef %32227, ptr noundef @.str.4)
  %32229 = icmp eq ptr %32228, null
  br i1 %32229, label %32230, label %32283

32230:                                            ; preds = %32223
  br label %32231

32231:                                            ; preds = %32230
  br label %32232

32232:                                            ; preds = %32231
  call void @llvm.lifetime.start.p0(i64 4, ptr %1012) #11
  %32233 = call ptr @__errno_location() #12
  %32234 = load i32, ptr %32233, align 4, !tbaa !5
  store i32 %32234, ptr %1012, align 4, !tbaa !5
  %32235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32236 = call i32 @s2n_print_stacktrace(ptr noundef %32235)
  %32237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32238 = trunc i8 %32237 to i1
  br i1 %32238, label %32239, label %32261

32239:                                            ; preds = %32232
  %32240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32241 = call i32 @fileno(ptr noundef %32240) #11
  %32242 = call i32 @isatty(i32 noundef %32241) #11
  %32243 = icmp ne i32 %32242, 0
  br i1 %32243, label %32244, label %32261

32244:                                            ; preds = %32239
  %32245 = load i32, ptr %1012, align 4, !tbaa !5
  %32246 = call ptr @__errno_location() #12
  store i32 %32245, ptr %32246, align 4, !tbaa !5
  %32247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32248 = load i32, ptr @test_count, align 4, !tbaa !5
  %32249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32250 = load i32, ptr %32249, align 4, !tbaa !5
  %32251 = call ptr @s2n_strerror(i32 noundef %32250, ptr noundef @.str.4)
  %32252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32253 = load i32, ptr %32252, align 4, !tbaa !5
  %32254 = call ptr @s2n_strerror_debug(i32 noundef %32253, ptr noundef @.str.4)
  %32255 = call ptr @__errno_location() #12
  %32256 = load i32, ptr %32255, align 4, !tbaa !5
  %32257 = call ptr @strerror(i32 noundef %32256) #11
  %32258 = call ptr @__errno_location() #12
  %32259 = load i32, ptr %32258, align 4, !tbaa !5
  %32260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32247, ptr noundef @.str.2, i32 noundef %32248, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1961, ptr noundef %32251, ptr noundef %32254, ptr noundef %32257, i32 noundef %32259) #11
  br label %32278

32261:                                            ; preds = %32239, %32232
  %32262 = load i32, ptr %1012, align 4, !tbaa !5
  %32263 = call ptr @__errno_location() #12
  store i32 %32262, ptr %32263, align 4, !tbaa !5
  %32264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32265 = load i32, ptr @test_count, align 4, !tbaa !5
  %32266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32267 = load i32, ptr %32266, align 4, !tbaa !5
  %32268 = call ptr @s2n_strerror(i32 noundef %32267, ptr noundef @.str.4)
  %32269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32270 = load i32, ptr %32269, align 4, !tbaa !5
  %32271 = call ptr @s2n_strerror_debug(i32 noundef %32270, ptr noundef @.str.4)
  %32272 = call ptr @__errno_location() #12
  %32273 = load i32, ptr %32272, align 4, !tbaa !5
  %32274 = call ptr @strerror(i32 noundef %32273) #11
  %32275 = call ptr @__errno_location() #12
  %32276 = load i32, ptr %32275, align 4, !tbaa !5
  %32277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32264, ptr noundef @.str.5, i32 noundef %32265, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1961, ptr noundef %32268, ptr noundef %32271, ptr noundef %32274, i32 noundef %32276) #11
  br label %32278

32278:                                            ; preds = %32261, %32244
  call void @llvm.lifetime.end.p0(i64 4, ptr %1012) #11
  br label %32279

32279:                                            ; preds = %32278
  br label %32280

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

32281:                                            ; No predecessors!
  br label %32282

32282:                                            ; preds = %32281
  br label %32283

32283:                                            ; preds = %32282, %32223
  br label %32284

32284:                                            ; preds = %32283
  br label %32285

32285:                                            ; preds = %32284
  br label %32286

32286:                                            ; preds = %32285
  br label %32287

32287:                                            ; preds = %32286
  br label %32288

32288:                                            ; preds = %32287
  %32289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %32289, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %32290 = call ptr @__errno_location() #12
  store i32 0, ptr %32290, align 4, !tbaa !5
  br label %32291

32291:                                            ; preds = %32288
  br label %32292

32292:                                            ; preds = %32291
  br label %32293

32293:                                            ; preds = %32292
  br label %32294

32294:                                            ; preds = %32293
  %32295 = load ptr, ptr %995, align 8, !tbaa !9
  %32296 = call i32 @s2n_connection_free(ptr noundef %32295)
  %32297 = call i32 @s2n_pkey_free(ptr noundef %1006)
  %32298 = load ptr, ptr %993, align 8, !tbaa !9
  %32299 = call i32 @s2n_config_free(ptr noundef %32298)
  %32300 = call i32 @s2n_x509_validator_wipe(ptr noundef %992)
  call void @s2n_x509_trust_store_wipe(ptr noundef %990)
  call void @llvm.lifetime.end.p0(i64 4, ptr %1008) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %1006) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1004) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1003) #11
  %32301 = call i32 @s2n_stuffer_free(ptr noundef %1000)
  call void @llvm.lifetime.end.p0(i64 40, ptr %1000) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %998) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %995) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %993) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %992) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %990) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %1013) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1013, i8 0, i64 56, i1 false)
  br label %32302

32302:                                            ; preds = %32294
  %32303 = load i32, ptr @test_count, align 4, !tbaa !5
  %32304 = add nsw i32 %32303, 1
  store i32 %32304, ptr @test_count, align 4, !tbaa !5
  %32305 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %1013)
  %32306 = icmp eq i32 %32305, -1
  br i1 %32306, label %32307, label %32360

32307:                                            ; preds = %32302
  br label %32308

32308:                                            ; preds = %32307
  br label %32309

32309:                                            ; preds = %32308
  call void @llvm.lifetime.start.p0(i64 4, ptr %1014) #11
  %32310 = call ptr @__errno_location() #12
  %32311 = load i32, ptr %32310, align 4, !tbaa !5
  store i32 %32311, ptr %1014, align 4, !tbaa !5
  %32312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32313 = call i32 @s2n_print_stacktrace(ptr noundef %32312)
  %32314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32315 = trunc i8 %32314 to i1
  br i1 %32315, label %32316, label %32338

32316:                                            ; preds = %32309
  %32317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32318 = call i32 @fileno(ptr noundef %32317) #11
  %32319 = call i32 @isatty(i32 noundef %32318) #11
  %32320 = icmp ne i32 %32319, 0
  br i1 %32320, label %32321, label %32338

32321:                                            ; preds = %32316
  %32322 = load i32, ptr %1014, align 4, !tbaa !5
  %32323 = call ptr @__errno_location() #12
  store i32 %32322, ptr %32323, align 4, !tbaa !5
  %32324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32325 = load i32, ptr @test_count, align 4, !tbaa !5
  %32326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32327 = load i32, ptr %32326, align 4, !tbaa !5
  %32328 = call ptr @s2n_strerror(i32 noundef %32327, ptr noundef @.str.4)
  %32329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32330 = load i32, ptr %32329, align 4, !tbaa !5
  %32331 = call ptr @s2n_strerror_debug(i32 noundef %32330, ptr noundef @.str.4)
  %32332 = call ptr @__errno_location() #12
  %32333 = load i32, ptr %32332, align 4, !tbaa !5
  %32334 = call ptr @strerror(i32 noundef %32333) #11
  %32335 = call ptr @__errno_location() #12
  %32336 = load i32, ptr %32335, align 4, !tbaa !5
  %32337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32324, ptr noundef @.str.2, i32 noundef %32325, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1974, ptr noundef %32328, ptr noundef %32331, ptr noundef %32334, i32 noundef %32336) #11
  br label %32355

32338:                                            ; preds = %32316, %32309
  %32339 = load i32, ptr %1014, align 4, !tbaa !5
  %32340 = call ptr @__errno_location() #12
  store i32 %32339, ptr %32340, align 4, !tbaa !5
  %32341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32342 = load i32, ptr @test_count, align 4, !tbaa !5
  %32343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32344 = load i32, ptr %32343, align 4, !tbaa !5
  %32345 = call ptr @s2n_strerror(i32 noundef %32344, ptr noundef @.str.4)
  %32346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32347 = load i32, ptr %32346, align 4, !tbaa !5
  %32348 = call ptr @s2n_strerror_debug(i32 noundef %32347, ptr noundef @.str.4)
  %32349 = call ptr @__errno_location() #12
  %32350 = load i32, ptr %32349, align 4, !tbaa !5
  %32351 = call ptr @strerror(i32 noundef %32350) #11
  %32352 = call ptr @__errno_location() #12
  %32353 = load i32, ptr %32352, align 4, !tbaa !5
  %32354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32341, ptr noundef @.str.5, i32 noundef %32342, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 1974, ptr noundef %32345, ptr noundef %32348, ptr noundef %32351, i32 noundef %32353) #11
  br label %32355

32355:                                            ; preds = %32338, %32321
  call void @llvm.lifetime.end.p0(i64 4, ptr %1014) #11
  br label %32356

32356:                                            ; preds = %32355
  br label %32357

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

32358:                                            ; No predecessors!
  br label %32359

32359:                                            ; preds = %32358
  br label %32360

32360:                                            ; preds = %32359, %32302
  br label %32361

32361:                                            ; preds = %32360
  br label %32362

32362:                                            ; preds = %32361
  call void @llvm.lifetime.start.p0(i64 8, ptr %1015) #11
  %32363 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %32363, ptr %1015, align 8, !tbaa !9
  br label %32364

32364:                                            ; preds = %32362
  %32365 = load i32, ptr @test_count, align 4, !tbaa !5
  %32366 = add nsw i32 %32365, 1
  store i32 %32366, ptr @test_count, align 4, !tbaa !5
  %32367 = load ptr, ptr %1015, align 8, !tbaa !9
  %32368 = icmp eq ptr %32367, null
  br i1 %32368, label %32369, label %32422

32369:                                            ; preds = %32364
  br label %32370

32370:                                            ; preds = %32369
  br label %32371

32371:                                            ; preds = %32370
  call void @llvm.lifetime.start.p0(i64 4, ptr %1016) #11
  %32372 = call ptr @__errno_location() #12
  %32373 = load i32, ptr %32372, align 4, !tbaa !5
  store i32 %32373, ptr %1016, align 4, !tbaa !5
  %32374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32375 = call i32 @s2n_print_stacktrace(ptr noundef %32374)
  %32376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32377 = trunc i8 %32376 to i1
  br i1 %32377, label %32378, label %32400

32378:                                            ; preds = %32371
  %32379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32380 = call i32 @fileno(ptr noundef %32379) #11
  %32381 = call i32 @isatty(i32 noundef %32380) #11
  %32382 = icmp ne i32 %32381, 0
  br i1 %32382, label %32383, label %32400

32383:                                            ; preds = %32378
  %32384 = load i32, ptr %1016, align 4, !tbaa !5
  %32385 = call ptr @__errno_location() #12
  store i32 %32384, ptr %32385, align 4, !tbaa !5
  %32386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32387 = load i32, ptr @test_count, align 4, !tbaa !5
  %32388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32389 = load i32, ptr %32388, align 4, !tbaa !5
  %32390 = call ptr @s2n_strerror(i32 noundef %32389, ptr noundef @.str.4)
  %32391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32392 = load i32, ptr %32391, align 4, !tbaa !5
  %32393 = call ptr @s2n_strerror_debug(i32 noundef %32392, ptr noundef @.str.4)
  %32394 = call ptr @__errno_location() #12
  %32395 = load i32, ptr %32394, align 4, !tbaa !5
  %32396 = call ptr @strerror(i32 noundef %32395) #11
  %32397 = call ptr @__errno_location() #12
  %32398 = load i32, ptr %32397, align 4, !tbaa !5
  %32399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32386, ptr noundef @.str.2, i32 noundef %32387, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1977, ptr noundef %32390, ptr noundef %32393, ptr noundef %32396, i32 noundef %32398) #11
  br label %32417

32400:                                            ; preds = %32378, %32371
  %32401 = load i32, ptr %1016, align 4, !tbaa !5
  %32402 = call ptr @__errno_location() #12
  store i32 %32401, ptr %32402, align 4, !tbaa !5
  %32403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32404 = load i32, ptr @test_count, align 4, !tbaa !5
  %32405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32406 = load i32, ptr %32405, align 4, !tbaa !5
  %32407 = call ptr @s2n_strerror(i32 noundef %32406, ptr noundef @.str.4)
  %32408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32409 = load i32, ptr %32408, align 4, !tbaa !5
  %32410 = call ptr @s2n_strerror_debug(i32 noundef %32409, ptr noundef @.str.4)
  %32411 = call ptr @__errno_location() #12
  %32412 = load i32, ptr %32411, align 4, !tbaa !5
  %32413 = call ptr @strerror(i32 noundef %32412) #11
  %32414 = call ptr @__errno_location() #12
  %32415 = load i32, ptr %32414, align 4, !tbaa !5
  %32416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32403, ptr noundef @.str.5, i32 noundef %32404, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 1977, ptr noundef %32407, ptr noundef %32410, ptr noundef %32413, i32 noundef %32415) #11
  br label %32417

32417:                                            ; preds = %32400, %32383
  call void @llvm.lifetime.end.p0(i64 4, ptr %1016) #11
  br label %32418

32418:                                            ; preds = %32417
  br label %32419

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

32420:                                            ; No predecessors!
  br label %32421

32421:                                            ; preds = %32420
  br label %32422

32422:                                            ; preds = %32421, %32364
  br label %32423

32423:                                            ; preds = %32422
  br label %32424

32424:                                            ; preds = %32423
  call void @llvm.lifetime.start.p0(i64 48, ptr %1017) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1017, i8 0, i64 48, i1 false)
  br label %32425

32425:                                            ; preds = %32424
  %32426 = load i32, ptr @test_count, align 4, !tbaa !5
  %32427 = add nsw i32 %32426, 1
  store i32 %32427, ptr @test_count, align 4, !tbaa !5
  %32428 = call i32 @s2n_pkey_zero_init(ptr noundef %1017)
  %32429 = icmp eq i32 %32428, -1
  br i1 %32429, label %32430, label %32483

32430:                                            ; preds = %32425
  br label %32431

32431:                                            ; preds = %32430
  br label %32432

32432:                                            ; preds = %32431
  call void @llvm.lifetime.start.p0(i64 4, ptr %1018) #11
  %32433 = call ptr @__errno_location() #12
  %32434 = load i32, ptr %32433, align 4, !tbaa !5
  store i32 %32434, ptr %1018, align 4, !tbaa !5
  %32435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32436 = call i32 @s2n_print_stacktrace(ptr noundef %32435)
  %32437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32438 = trunc i8 %32437 to i1
  br i1 %32438, label %32439, label %32461

32439:                                            ; preds = %32432
  %32440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32441 = call i32 @fileno(ptr noundef %32440) #11
  %32442 = call i32 @isatty(i32 noundef %32441) #11
  %32443 = icmp ne i32 %32442, 0
  br i1 %32443, label %32444, label %32461

32444:                                            ; preds = %32439
  %32445 = load i32, ptr %1018, align 4, !tbaa !5
  %32446 = call ptr @__errno_location() #12
  store i32 %32445, ptr %32446, align 4, !tbaa !5
  %32447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32448 = load i32, ptr @test_count, align 4, !tbaa !5
  %32449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32450 = load i32, ptr %32449, align 4, !tbaa !5
  %32451 = call ptr @s2n_strerror(i32 noundef %32450, ptr noundef @.str.4)
  %32452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32453 = load i32, ptr %32452, align 4, !tbaa !5
  %32454 = call ptr @s2n_strerror_debug(i32 noundef %32453, ptr noundef @.str.4)
  %32455 = call ptr @__errno_location() #12
  %32456 = load i32, ptr %32455, align 4, !tbaa !5
  %32457 = call ptr @strerror(i32 noundef %32456) #11
  %32458 = call ptr @__errno_location() #12
  %32459 = load i32, ptr %32458, align 4, !tbaa !5
  %32460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32447, ptr noundef @.str.2, i32 noundef %32448, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 1980, ptr noundef %32451, ptr noundef %32454, ptr noundef %32457, i32 noundef %32459) #11
  br label %32478

32461:                                            ; preds = %32439, %32432
  %32462 = load i32, ptr %1018, align 4, !tbaa !5
  %32463 = call ptr @__errno_location() #12
  store i32 %32462, ptr %32463, align 4, !tbaa !5
  %32464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32465 = load i32, ptr @test_count, align 4, !tbaa !5
  %32466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32467 = load i32, ptr %32466, align 4, !tbaa !5
  %32468 = call ptr @s2n_strerror(i32 noundef %32467, ptr noundef @.str.4)
  %32469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32470 = load i32, ptr %32469, align 4, !tbaa !5
  %32471 = call ptr @s2n_strerror_debug(i32 noundef %32470, ptr noundef @.str.4)
  %32472 = call ptr @__errno_location() #12
  %32473 = load i32, ptr %32472, align 4, !tbaa !5
  %32474 = call ptr @strerror(i32 noundef %32473) #11
  %32475 = call ptr @__errno_location() #12
  %32476 = load i32, ptr %32475, align 4, !tbaa !5
  %32477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32464, ptr noundef @.str.5, i32 noundef %32465, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 1980, ptr noundef %32468, ptr noundef %32471, ptr noundef %32474, i32 noundef %32476) #11
  br label %32478

32478:                                            ; preds = %32461, %32444
  call void @llvm.lifetime.end.p0(i64 4, ptr %1018) #11
  br label %32479

32479:                                            ; preds = %32478
  br label %32480

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

32481:                                            ; No predecessors!
  br label %32482

32482:                                            ; preds = %32481
  br label %32483

32483:                                            ; preds = %32482, %32425
  br label %32484

32484:                                            ; preds = %32483
  br label %32485

32485:                                            ; preds = %32484
  call void @llvm.lifetime.start.p0(i64 4, ptr %1019) #11
  store i32 -1, ptr %1019, align 4, !tbaa !5
  br label %32486

32486:                                            ; preds = %32485
  br label %32487

32487:                                            ; preds = %32486
  br label %32488

32488:                                            ; preds = %32487
  %32489 = load i32, ptr @test_count, align 4, !tbaa !5
  %32490 = add nsw i32 %32489, 1
  store i32 %32490, ptr @test_count, align 4, !tbaa !5
  %32491 = load ptr, ptr %1015, align 8, !tbaa !9
  %32492 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %1013, ptr noundef %32491, ptr noundef null, i32 noundef 0, ptr noundef %1019, ptr noundef %1017)
  %32493 = getelementptr inbounds %struct.s2n_result, ptr %1020, i32 0, i32 0
  store i32 %32492, ptr %32493, align 4
  %32494 = getelementptr inbounds %struct.s2n_result, ptr %1020, i32 0, i32 0
  %32495 = load i32, ptr %32494, align 4
  %32496 = call zeroext i1 @s2n_result_is_error(i32 %32495)
  br i1 %32496, label %32550, label %32497

32497:                                            ; preds = %32488
  br label %32498

32498:                                            ; preds = %32497
  br label %32499

32499:                                            ; preds = %32498
  call void @llvm.lifetime.start.p0(i64 4, ptr %1021) #11
  %32500 = call ptr @__errno_location() #12
  %32501 = load i32, ptr %32500, align 4, !tbaa !5
  store i32 %32501, ptr %1021, align 4, !tbaa !5
  %32502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32503 = call i32 @s2n_print_stacktrace(ptr noundef %32502)
  %32504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32505 = trunc i8 %32504 to i1
  br i1 %32505, label %32506, label %32528

32506:                                            ; preds = %32499
  %32507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32508 = call i32 @fileno(ptr noundef %32507) #11
  %32509 = call i32 @isatty(i32 noundef %32508) #11
  %32510 = icmp ne i32 %32509, 0
  br i1 %32510, label %32511, label %32528

32511:                                            ; preds = %32506
  %32512 = load i32, ptr %1021, align 4, !tbaa !5
  %32513 = call ptr @__errno_location() #12
  store i32 %32512, ptr %32513, align 4, !tbaa !5
  %32514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32515 = load i32, ptr @test_count, align 4, !tbaa !5
  %32516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32517 = load i32, ptr %32516, align 4, !tbaa !5
  %32518 = call ptr @s2n_strerror(i32 noundef %32517, ptr noundef @.str.4)
  %32519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32520 = load i32, ptr %32519, align 4, !tbaa !5
  %32521 = call ptr @s2n_strerror_debug(i32 noundef %32520, ptr noundef @.str.4)
  %32522 = call ptr @__errno_location() #12
  %32523 = load i32, ptr %32522, align 4, !tbaa !5
  %32524 = call ptr @strerror(i32 noundef %32523) #11
  %32525 = call ptr @__errno_location() #12
  %32526 = load i32, ptr %32525, align 4, !tbaa !5
  %32527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32514, ptr noundef @.str.2, i32 noundef %32515, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 1985, ptr noundef %32518, ptr noundef %32521, ptr noundef %32524, i32 noundef %32526) #11
  br label %32545

32528:                                            ; preds = %32506, %32499
  %32529 = load i32, ptr %1021, align 4, !tbaa !5
  %32530 = call ptr @__errno_location() #12
  store i32 %32529, ptr %32530, align 4, !tbaa !5
  %32531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32532 = load i32, ptr @test_count, align 4, !tbaa !5
  %32533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32534 = load i32, ptr %32533, align 4, !tbaa !5
  %32535 = call ptr @s2n_strerror(i32 noundef %32534, ptr noundef @.str.4)
  %32536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32537 = load i32, ptr %32536, align 4, !tbaa !5
  %32538 = call ptr @s2n_strerror_debug(i32 noundef %32537, ptr noundef @.str.4)
  %32539 = call ptr @__errno_location() #12
  %32540 = load i32, ptr %32539, align 4, !tbaa !5
  %32541 = call ptr @strerror(i32 noundef %32540) #11
  %32542 = call ptr @__errno_location() #12
  %32543 = load i32, ptr %32542, align 4, !tbaa !5
  %32544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32531, ptr noundef @.str.5, i32 noundef %32532, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 1985, ptr noundef %32535, ptr noundef %32538, ptr noundef %32541, i32 noundef %32543) #11
  br label %32545

32545:                                            ; preds = %32528, %32511
  call void @llvm.lifetime.end.p0(i64 4, ptr %1021) #11
  br label %32546

32546:                                            ; preds = %32545
  br label %32547

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

32548:                                            ; No predecessors!
  br label %32549

32549:                                            ; preds = %32548
  br label %32550

32550:                                            ; preds = %32549, %32488
  br label %32551

32551:                                            ; preds = %32550
  br label %32552

32552:                                            ; preds = %32551
  br label %32553

32553:                                            ; preds = %32552
  %32554 = load i32, ptr @test_count, align 4, !tbaa !5
  %32555 = add nsw i32 %32554, 1
  store i32 %32555, ptr @test_count, align 4, !tbaa !5
  %32556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32557 = load i32, ptr %32556, align 4, !tbaa !5
  %32558 = icmp eq i32 %32557, 469762114
  br i1 %32558, label %32612, label %32559

32559:                                            ; preds = %32553
  br label %32560

32560:                                            ; preds = %32559
  br label %32561

32561:                                            ; preds = %32560
  call void @llvm.lifetime.start.p0(i64 4, ptr %1022) #11
  %32562 = call ptr @__errno_location() #12
  %32563 = load i32, ptr %32562, align 4, !tbaa !5
  store i32 %32563, ptr %1022, align 4, !tbaa !5
  %32564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32565 = call i32 @s2n_print_stacktrace(ptr noundef %32564)
  %32566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32567 = trunc i8 %32566 to i1
  br i1 %32567, label %32568, label %32590

32568:                                            ; preds = %32561
  %32569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32570 = call i32 @fileno(ptr noundef %32569) #11
  %32571 = call i32 @isatty(i32 noundef %32570) #11
  %32572 = icmp ne i32 %32571, 0
  br i1 %32572, label %32573, label %32590

32573:                                            ; preds = %32568
  %32574 = load i32, ptr %1022, align 4, !tbaa !5
  %32575 = call ptr @__errno_location() #12
  store i32 %32574, ptr %32575, align 4, !tbaa !5
  %32576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32577 = load i32, ptr @test_count, align 4, !tbaa !5
  %32578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32579 = load i32, ptr %32578, align 4, !tbaa !5
  %32580 = call ptr @s2n_strerror(i32 noundef %32579, ptr noundef @.str.4)
  %32581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32582 = load i32, ptr %32581, align 4, !tbaa !5
  %32583 = call ptr @s2n_strerror_debug(i32 noundef %32582, ptr noundef @.str.4)
  %32584 = call ptr @__errno_location() #12
  %32585 = load i32, ptr %32584, align 4, !tbaa !5
  %32586 = call ptr @strerror(i32 noundef %32585) #11
  %32587 = call ptr @__errno_location() #12
  %32588 = load i32, ptr %32587, align 4, !tbaa !5
  %32589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32576, ptr noundef @.str.2, i32 noundef %32577, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 1985, ptr noundef %32580, ptr noundef %32583, ptr noundef %32586, i32 noundef %32588) #11
  br label %32607

32590:                                            ; preds = %32568, %32561
  %32591 = load i32, ptr %1022, align 4, !tbaa !5
  %32592 = call ptr @__errno_location() #12
  store i32 %32591, ptr %32592, align 4, !tbaa !5
  %32593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32594 = load i32, ptr @test_count, align 4, !tbaa !5
  %32595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32596 = load i32, ptr %32595, align 4, !tbaa !5
  %32597 = call ptr @s2n_strerror(i32 noundef %32596, ptr noundef @.str.4)
  %32598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32599 = load i32, ptr %32598, align 4, !tbaa !5
  %32600 = call ptr @s2n_strerror_debug(i32 noundef %32599, ptr noundef @.str.4)
  %32601 = call ptr @__errno_location() #12
  %32602 = load i32, ptr %32601, align 4, !tbaa !5
  %32603 = call ptr @strerror(i32 noundef %32602) #11
  %32604 = call ptr @__errno_location() #12
  %32605 = load i32, ptr %32604, align 4, !tbaa !5
  %32606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32593, ptr noundef @.str.5, i32 noundef %32594, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 1985, ptr noundef %32597, ptr noundef %32600, ptr noundef %32603, i32 noundef %32605) #11
  br label %32607

32607:                                            ; preds = %32590, %32573
  call void @llvm.lifetime.end.p0(i64 4, ptr %1022) #11
  br label %32608

32608:                                            ; preds = %32607
  br label %32609

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

32610:                                            ; No predecessors!
  br label %32611

32611:                                            ; preds = %32610
  br label %32612

32612:                                            ; preds = %32611, %32553
  br label %32613

32613:                                            ; preds = %32612
  br label %32614

32614:                                            ; preds = %32613
  br label %32615

32615:                                            ; preds = %32614
  %32616 = load i32, ptr @test_count, align 4, !tbaa !5
  %32617 = add nsw i32 %32616, 1
  store i32 %32617, ptr @test_count, align 4, !tbaa !5
  %32618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32619 = load i32, ptr %32618, align 4, !tbaa !5
  %32620 = call ptr @s2n_strerror_debug(i32 noundef %32619, ptr noundef @.str.4)
  %32621 = icmp eq ptr %32620, null
  br i1 %32621, label %32622, label %32675

32622:                                            ; preds = %32615
  br label %32623

32623:                                            ; preds = %32622
  br label %32624

32624:                                            ; preds = %32623
  call void @llvm.lifetime.start.p0(i64 4, ptr %1023) #11
  %32625 = call ptr @__errno_location() #12
  %32626 = load i32, ptr %32625, align 4, !tbaa !5
  store i32 %32626, ptr %1023, align 4, !tbaa !5
  %32627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32628 = call i32 @s2n_print_stacktrace(ptr noundef %32627)
  %32629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32630 = trunc i8 %32629 to i1
  br i1 %32630, label %32631, label %32653

32631:                                            ; preds = %32624
  %32632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32633 = call i32 @fileno(ptr noundef %32632) #11
  %32634 = call i32 @isatty(i32 noundef %32633) #11
  %32635 = icmp ne i32 %32634, 0
  br i1 %32635, label %32636, label %32653

32636:                                            ; preds = %32631
  %32637 = load i32, ptr %1023, align 4, !tbaa !5
  %32638 = call ptr @__errno_location() #12
  store i32 %32637, ptr %32638, align 4, !tbaa !5
  %32639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32640 = load i32, ptr @test_count, align 4, !tbaa !5
  %32641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32642 = load i32, ptr %32641, align 4, !tbaa !5
  %32643 = call ptr @s2n_strerror(i32 noundef %32642, ptr noundef @.str.4)
  %32644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32645 = load i32, ptr %32644, align 4, !tbaa !5
  %32646 = call ptr @s2n_strerror_debug(i32 noundef %32645, ptr noundef @.str.4)
  %32647 = call ptr @__errno_location() #12
  %32648 = load i32, ptr %32647, align 4, !tbaa !5
  %32649 = call ptr @strerror(i32 noundef %32648) #11
  %32650 = call ptr @__errno_location() #12
  %32651 = load i32, ptr %32650, align 4, !tbaa !5
  %32652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32639, ptr noundef @.str.2, i32 noundef %32640, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1985, ptr noundef %32643, ptr noundef %32646, ptr noundef %32649, i32 noundef %32651) #11
  br label %32670

32653:                                            ; preds = %32631, %32624
  %32654 = load i32, ptr %1023, align 4, !tbaa !5
  %32655 = call ptr @__errno_location() #12
  store i32 %32654, ptr %32655, align 4, !tbaa !5
  %32656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32657 = load i32, ptr @test_count, align 4, !tbaa !5
  %32658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32659 = load i32, ptr %32658, align 4, !tbaa !5
  %32660 = call ptr @s2n_strerror(i32 noundef %32659, ptr noundef @.str.4)
  %32661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32662 = load i32, ptr %32661, align 4, !tbaa !5
  %32663 = call ptr @s2n_strerror_debug(i32 noundef %32662, ptr noundef @.str.4)
  %32664 = call ptr @__errno_location() #12
  %32665 = load i32, ptr %32664, align 4, !tbaa !5
  %32666 = call ptr @strerror(i32 noundef %32665) #11
  %32667 = call ptr @__errno_location() #12
  %32668 = load i32, ptr %32667, align 4, !tbaa !5
  %32669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32656, ptr noundef @.str.5, i32 noundef %32657, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 1985, ptr noundef %32660, ptr noundef %32663, ptr noundef %32666, i32 noundef %32668) #11
  br label %32670

32670:                                            ; preds = %32653, %32636
  call void @llvm.lifetime.end.p0(i64 4, ptr %1023) #11
  br label %32671

32671:                                            ; preds = %32670
  br label %32672

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

32673:                                            ; No predecessors!
  br label %32674

32674:                                            ; preds = %32673
  br label %32675

32675:                                            ; preds = %32674, %32615
  br label %32676

32676:                                            ; preds = %32675
  br label %32677

32677:                                            ; preds = %32676
  br label %32678

32678:                                            ; preds = %32677
  br label %32679

32679:                                            ; preds = %32678
  br label %32680

32680:                                            ; preds = %32679
  %32681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %32681, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %32682 = call ptr @__errno_location() #12
  store i32 0, ptr %32682, align 4, !tbaa !5
  br label %32683

32683:                                            ; preds = %32680
  br label %32684

32684:                                            ; preds = %32683
  br label %32685

32685:                                            ; preds = %32684
  br label %32686

32686:                                            ; preds = %32685
  call void @llvm.lifetime.end.p0(i64 4, ptr %1019) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %1017) #11
  %32687 = call i32 @s2n_connection_ptr_free(ptr noundef %1015)
  %32688 = getelementptr inbounds %struct.s2n_result, ptr %1024, i32 0, i32 0
  store i32 %32687, ptr %32688, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1015) #11
  %32689 = call i32 @s2n_x509_validator_wipe(ptr noundef %1013)
  call void @llvm.lifetime.end.p0(i64 56, ptr %1013) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1025) #11
  %32690 = call ptr @s2n_config_new()
  store ptr %32690, ptr %1025, align 8, !tbaa !9
  br label %32691

32691:                                            ; preds = %32686
  %32692 = load i32, ptr @test_count, align 4, !tbaa !5
  %32693 = add nsw i32 %32692, 1
  store i32 %32693, ptr @test_count, align 4, !tbaa !5
  %32694 = load ptr, ptr %1025, align 8, !tbaa !9
  %32695 = call i32 @s2n_config_wipe_trust_store(ptr noundef %32694)
  %32696 = icmp eq i32 %32695, -1
  br i1 %32696, label %32697, label %32750

32697:                                            ; preds = %32691
  br label %32698

32698:                                            ; preds = %32697
  br label %32699

32699:                                            ; preds = %32698
  call void @llvm.lifetime.start.p0(i64 4, ptr %1026) #11
  %32700 = call ptr @__errno_location() #12
  %32701 = load i32, ptr %32700, align 4, !tbaa !5
  store i32 %32701, ptr %1026, align 4, !tbaa !5
  %32702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32703 = call i32 @s2n_print_stacktrace(ptr noundef %32702)
  %32704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32705 = trunc i8 %32704 to i1
  br i1 %32705, label %32706, label %32728

32706:                                            ; preds = %32699
  %32707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32708 = call i32 @fileno(ptr noundef %32707) #11
  %32709 = call i32 @isatty(i32 noundef %32708) #11
  %32710 = icmp ne i32 %32709, 0
  br i1 %32710, label %32711, label %32728

32711:                                            ; preds = %32706
  %32712 = load i32, ptr %1026, align 4, !tbaa !5
  %32713 = call ptr @__errno_location() #12
  store i32 %32712, ptr %32713, align 4, !tbaa !5
  %32714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32715 = load i32, ptr @test_count, align 4, !tbaa !5
  %32716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32717 = load i32, ptr %32716, align 4, !tbaa !5
  %32718 = call ptr @s2n_strerror(i32 noundef %32717, ptr noundef @.str.4)
  %32719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32720 = load i32, ptr %32719, align 4, !tbaa !5
  %32721 = call ptr @s2n_strerror_debug(i32 noundef %32720, ptr noundef @.str.4)
  %32722 = call ptr @__errno_location() #12
  %32723 = load i32, ptr %32722, align 4, !tbaa !5
  %32724 = call ptr @strerror(i32 noundef %32723) #11
  %32725 = call ptr @__errno_location() #12
  %32726 = load i32, ptr %32725, align 4, !tbaa !5
  %32727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32714, ptr noundef @.str.2, i32 noundef %32715, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 1993, ptr noundef %32718, ptr noundef %32721, ptr noundef %32724, i32 noundef %32726) #11
  br label %32745

32728:                                            ; preds = %32706, %32699
  %32729 = load i32, ptr %1026, align 4, !tbaa !5
  %32730 = call ptr @__errno_location() #12
  store i32 %32729, ptr %32730, align 4, !tbaa !5
  %32731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32732 = load i32, ptr @test_count, align 4, !tbaa !5
  %32733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32734 = load i32, ptr %32733, align 4, !tbaa !5
  %32735 = call ptr @s2n_strerror(i32 noundef %32734, ptr noundef @.str.4)
  %32736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32737 = load i32, ptr %32736, align 4, !tbaa !5
  %32738 = call ptr @s2n_strerror_debug(i32 noundef %32737, ptr noundef @.str.4)
  %32739 = call ptr @__errno_location() #12
  %32740 = load i32, ptr %32739, align 4, !tbaa !5
  %32741 = call ptr @strerror(i32 noundef %32740) #11
  %32742 = call ptr @__errno_location() #12
  %32743 = load i32, ptr %32742, align 4, !tbaa !5
  %32744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32731, ptr noundef @.str.5, i32 noundef %32732, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 1993, ptr noundef %32735, ptr noundef %32738, ptr noundef %32741, i32 noundef %32743) #11
  br label %32745

32745:                                            ; preds = %32728, %32711
  call void @llvm.lifetime.end.p0(i64 4, ptr %1026) #11
  br label %32746

32746:                                            ; preds = %32745
  br label %32747

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

32748:                                            ; No predecessors!
  br label %32749

32749:                                            ; preds = %32748
  br label %32750

32750:                                            ; preds = %32749, %32691
  br label %32751

32751:                                            ; preds = %32750
  br label %32752

32752:                                            ; preds = %32751
  br label %32753

32753:                                            ; preds = %32752
  %32754 = load i32, ptr @test_count, align 4, !tbaa !5
  %32755 = add nsw i32 %32754, 1
  store i32 %32755, ptr @test_count, align 4, !tbaa !5
  %32756 = load ptr, ptr %1025, align 8, !tbaa !9
  %32757 = getelementptr inbounds %struct.s2n_config, ptr %32756, i32 0, i32 37
  %32758 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %32757)
  %32759 = icmp ne i8 %32758, 0
  br i1 %32759, label %32760, label %32813

32760:                                            ; preds = %32753
  br label %32761

32761:                                            ; preds = %32760
  br label %32762

32762:                                            ; preds = %32761
  call void @llvm.lifetime.start.p0(i64 4, ptr %1027) #11
  %32763 = call ptr @__errno_location() #12
  %32764 = load i32, ptr %32763, align 4, !tbaa !5
  store i32 %32764, ptr %1027, align 4, !tbaa !5
  %32765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32766 = call i32 @s2n_print_stacktrace(ptr noundef %32765)
  %32767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32768 = trunc i8 %32767 to i1
  br i1 %32768, label %32769, label %32791

32769:                                            ; preds = %32762
  %32770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32771 = call i32 @fileno(ptr noundef %32770) #11
  %32772 = call i32 @isatty(i32 noundef %32771) #11
  %32773 = icmp ne i32 %32772, 0
  br i1 %32773, label %32774, label %32791

32774:                                            ; preds = %32769
  %32775 = load i32, ptr %1027, align 4, !tbaa !5
  %32776 = call ptr @__errno_location() #12
  store i32 %32775, ptr %32776, align 4, !tbaa !5
  %32777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32778 = load i32, ptr @test_count, align 4, !tbaa !5
  %32779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32780 = load i32, ptr %32779, align 4, !tbaa !5
  %32781 = call ptr @s2n_strerror(i32 noundef %32780, ptr noundef @.str.4)
  %32782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32783 = load i32, ptr %32782, align 4, !tbaa !5
  %32784 = call ptr @s2n_strerror_debug(i32 noundef %32783, ptr noundef @.str.4)
  %32785 = call ptr @__errno_location() #12
  %32786 = load i32, ptr %32785, align 4, !tbaa !5
  %32787 = call ptr @strerror(i32 noundef %32786) #11
  %32788 = call ptr @__errno_location() #12
  %32789 = load i32, ptr %32788, align 4, !tbaa !5
  %32790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32777, ptr noundef @.str.2, i32 noundef %32778, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1994, ptr noundef %32781, ptr noundef %32784, ptr noundef %32787, i32 noundef %32789) #11
  br label %32808

32791:                                            ; preds = %32769, %32762
  %32792 = load i32, ptr %1027, align 4, !tbaa !5
  %32793 = call ptr @__errno_location() #12
  store i32 %32792, ptr %32793, align 4, !tbaa !5
  %32794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32795 = load i32, ptr @test_count, align 4, !tbaa !5
  %32796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32797 = load i32, ptr %32796, align 4, !tbaa !5
  %32798 = call ptr @s2n_strerror(i32 noundef %32797, ptr noundef @.str.4)
  %32799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32800 = load i32, ptr %32799, align 4, !tbaa !5
  %32801 = call ptr @s2n_strerror_debug(i32 noundef %32800, ptr noundef @.str.4)
  %32802 = call ptr @__errno_location() #12
  %32803 = load i32, ptr %32802, align 4, !tbaa !5
  %32804 = call ptr @strerror(i32 noundef %32803) #11
  %32805 = call ptr @__errno_location() #12
  %32806 = load i32, ptr %32805, align 4, !tbaa !5
  %32807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32794, ptr noundef @.str.5, i32 noundef %32795, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1994, ptr noundef %32798, ptr noundef %32801, ptr noundef %32804, i32 noundef %32806) #11
  br label %32808

32808:                                            ; preds = %32791, %32774
  call void @llvm.lifetime.end.p0(i64 4, ptr %1027) #11
  br label %32809

32809:                                            ; preds = %32808
  br label %32810

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

32811:                                            ; No predecessors!
  br label %32812

32812:                                            ; preds = %32811
  br label %32813

32813:                                            ; preds = %32812, %32753
  br label %32814

32814:                                            ; preds = %32813
  br label %32815

32815:                                            ; preds = %32814
  %32816 = load ptr, ptr %1025, align 8, !tbaa !9
  %32817 = call i32 @s2n_config_free(ptr noundef %32816)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1025) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1028) #11
  %32818 = call ptr @s2n_config_new()
  store ptr %32818, ptr %1028, align 8, !tbaa !9
  br label %32819

32819:                                            ; preds = %32815
  %32820 = load i32, ptr @test_count, align 4, !tbaa !5
  %32821 = add nsw i32 %32820, 1
  store i32 %32821, ptr @test_count, align 4, !tbaa !5
  %32822 = load ptr, ptr %1028, align 8, !tbaa !9
  %32823 = call i32 @s2n_config_wipe_trust_store(ptr noundef %32822)
  %32824 = icmp eq i32 %32823, -1
  br i1 %32824, label %32825, label %32878

32825:                                            ; preds = %32819
  br label %32826

32826:                                            ; preds = %32825
  br label %32827

32827:                                            ; preds = %32826
  call void @llvm.lifetime.start.p0(i64 4, ptr %1029) #11
  %32828 = call ptr @__errno_location() #12
  %32829 = load i32, ptr %32828, align 4, !tbaa !5
  store i32 %32829, ptr %1029, align 4, !tbaa !5
  %32830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32831 = call i32 @s2n_print_stacktrace(ptr noundef %32830)
  %32832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32833 = trunc i8 %32832 to i1
  br i1 %32833, label %32834, label %32856

32834:                                            ; preds = %32827
  %32835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32836 = call i32 @fileno(ptr noundef %32835) #11
  %32837 = call i32 @isatty(i32 noundef %32836) #11
  %32838 = icmp ne i32 %32837, 0
  br i1 %32838, label %32839, label %32856

32839:                                            ; preds = %32834
  %32840 = load i32, ptr %1029, align 4, !tbaa !5
  %32841 = call ptr @__errno_location() #12
  store i32 %32840, ptr %32841, align 4, !tbaa !5
  %32842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32843 = load i32, ptr @test_count, align 4, !tbaa !5
  %32844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32845 = load i32, ptr %32844, align 4, !tbaa !5
  %32846 = call ptr @s2n_strerror(i32 noundef %32845, ptr noundef @.str.4)
  %32847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32848 = load i32, ptr %32847, align 4, !tbaa !5
  %32849 = call ptr @s2n_strerror_debug(i32 noundef %32848, ptr noundef @.str.4)
  %32850 = call ptr @__errno_location() #12
  %32851 = load i32, ptr %32850, align 4, !tbaa !5
  %32852 = call ptr @strerror(i32 noundef %32851) #11
  %32853 = call ptr @__errno_location() #12
  %32854 = load i32, ptr %32853, align 4, !tbaa !5
  %32855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32842, ptr noundef @.str.2, i32 noundef %32843, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2001, ptr noundef %32846, ptr noundef %32849, ptr noundef %32852, i32 noundef %32854) #11
  br label %32873

32856:                                            ; preds = %32834, %32827
  %32857 = load i32, ptr %1029, align 4, !tbaa !5
  %32858 = call ptr @__errno_location() #12
  store i32 %32857, ptr %32858, align 4, !tbaa !5
  %32859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32860 = load i32, ptr @test_count, align 4, !tbaa !5
  %32861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32862 = load i32, ptr %32861, align 4, !tbaa !5
  %32863 = call ptr @s2n_strerror(i32 noundef %32862, ptr noundef @.str.4)
  %32864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32865 = load i32, ptr %32864, align 4, !tbaa !5
  %32866 = call ptr @s2n_strerror_debug(i32 noundef %32865, ptr noundef @.str.4)
  %32867 = call ptr @__errno_location() #12
  %32868 = load i32, ptr %32867, align 4, !tbaa !5
  %32869 = call ptr @strerror(i32 noundef %32868) #11
  %32870 = call ptr @__errno_location() #12
  %32871 = load i32, ptr %32870, align 4, !tbaa !5
  %32872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32859, ptr noundef @.str.5, i32 noundef %32860, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2001, ptr noundef %32863, ptr noundef %32866, ptr noundef %32869, i32 noundef %32871) #11
  br label %32873

32873:                                            ; preds = %32856, %32839
  call void @llvm.lifetime.end.p0(i64 4, ptr %1029) #11
  br label %32874

32874:                                            ; preds = %32873
  br label %32875

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

32876:                                            ; No predecessors!
  br label %32877

32877:                                            ; preds = %32876
  br label %32878

32878:                                            ; preds = %32877, %32819
  br label %32879

32879:                                            ; preds = %32878
  br label %32880

32880:                                            ; preds = %32879
  br label %32881

32881:                                            ; preds = %32880
  %32882 = load i32, ptr @test_count, align 4, !tbaa !5
  %32883 = add nsw i32 %32882, 1
  store i32 %32883, ptr @test_count, align 4, !tbaa !5
  %32884 = load ptr, ptr %1028, align 8, !tbaa !9
  %32885 = call i32 @s2n_config_wipe_trust_store(ptr noundef %32884)
  %32886 = icmp eq i32 %32885, -1
  br i1 %32886, label %32887, label %32940

32887:                                            ; preds = %32881
  br label %32888

32888:                                            ; preds = %32887
  br label %32889

32889:                                            ; preds = %32888
  call void @llvm.lifetime.start.p0(i64 4, ptr %1030) #11
  %32890 = call ptr @__errno_location() #12
  %32891 = load i32, ptr %32890, align 4, !tbaa !5
  store i32 %32891, ptr %1030, align 4, !tbaa !5
  %32892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32893 = call i32 @s2n_print_stacktrace(ptr noundef %32892)
  %32894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32895 = trunc i8 %32894 to i1
  br i1 %32895, label %32896, label %32918

32896:                                            ; preds = %32889
  %32897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32898 = call i32 @fileno(ptr noundef %32897) #11
  %32899 = call i32 @isatty(i32 noundef %32898) #11
  %32900 = icmp ne i32 %32899, 0
  br i1 %32900, label %32901, label %32918

32901:                                            ; preds = %32896
  %32902 = load i32, ptr %1030, align 4, !tbaa !5
  %32903 = call ptr @__errno_location() #12
  store i32 %32902, ptr %32903, align 4, !tbaa !5
  %32904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32905 = load i32, ptr @test_count, align 4, !tbaa !5
  %32906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32907 = load i32, ptr %32906, align 4, !tbaa !5
  %32908 = call ptr @s2n_strerror(i32 noundef %32907, ptr noundef @.str.4)
  %32909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32910 = load i32, ptr %32909, align 4, !tbaa !5
  %32911 = call ptr @s2n_strerror_debug(i32 noundef %32910, ptr noundef @.str.4)
  %32912 = call ptr @__errno_location() #12
  %32913 = load i32, ptr %32912, align 4, !tbaa !5
  %32914 = call ptr @strerror(i32 noundef %32913) #11
  %32915 = call ptr @__errno_location() #12
  %32916 = load i32, ptr %32915, align 4, !tbaa !5
  %32917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32904, ptr noundef @.str.2, i32 noundef %32905, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2002, ptr noundef %32908, ptr noundef %32911, ptr noundef %32914, i32 noundef %32916) #11
  br label %32935

32918:                                            ; preds = %32896, %32889
  %32919 = load i32, ptr %1030, align 4, !tbaa !5
  %32920 = call ptr @__errno_location() #12
  store i32 %32919, ptr %32920, align 4, !tbaa !5
  %32921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32922 = load i32, ptr @test_count, align 4, !tbaa !5
  %32923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32924 = load i32, ptr %32923, align 4, !tbaa !5
  %32925 = call ptr @s2n_strerror(i32 noundef %32924, ptr noundef @.str.4)
  %32926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32927 = load i32, ptr %32926, align 4, !tbaa !5
  %32928 = call ptr @s2n_strerror_debug(i32 noundef %32927, ptr noundef @.str.4)
  %32929 = call ptr @__errno_location() #12
  %32930 = load i32, ptr %32929, align 4, !tbaa !5
  %32931 = call ptr @strerror(i32 noundef %32930) #11
  %32932 = call ptr @__errno_location() #12
  %32933 = load i32, ptr %32932, align 4, !tbaa !5
  %32934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32921, ptr noundef @.str.5, i32 noundef %32922, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2002, ptr noundef %32925, ptr noundef %32928, ptr noundef %32931, i32 noundef %32933) #11
  br label %32935

32935:                                            ; preds = %32918, %32901
  call void @llvm.lifetime.end.p0(i64 4, ptr %1030) #11
  br label %32936

32936:                                            ; preds = %32935
  br label %32937

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

32938:                                            ; No predecessors!
  br label %32939

32939:                                            ; preds = %32938
  br label %32940

32940:                                            ; preds = %32939, %32881
  br label %32941

32941:                                            ; preds = %32940
  br label %32942

32942:                                            ; preds = %32941
  br label %32943

32943:                                            ; preds = %32942
  %32944 = load i32, ptr @test_count, align 4, !tbaa !5
  %32945 = add nsw i32 %32944, 1
  store i32 %32945, ptr @test_count, align 4, !tbaa !5
  %32946 = load ptr, ptr %1028, align 8, !tbaa !9
  %32947 = getelementptr inbounds %struct.s2n_config, ptr %32946, i32 0, i32 37
  %32948 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %32947)
  %32949 = icmp ne i8 %32948, 0
  br i1 %32949, label %32950, label %33003

32950:                                            ; preds = %32943
  br label %32951

32951:                                            ; preds = %32950
  br label %32952

32952:                                            ; preds = %32951
  call void @llvm.lifetime.start.p0(i64 4, ptr %1031) #11
  %32953 = call ptr @__errno_location() #12
  %32954 = load i32, ptr %32953, align 4, !tbaa !5
  store i32 %32954, ptr %1031, align 4, !tbaa !5
  %32955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32956 = call i32 @s2n_print_stacktrace(ptr noundef %32955)
  %32957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32958 = trunc i8 %32957 to i1
  br i1 %32958, label %32959, label %32981

32959:                                            ; preds = %32952
  %32960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32961 = call i32 @fileno(ptr noundef %32960) #11
  %32962 = call i32 @isatty(i32 noundef %32961) #11
  %32963 = icmp ne i32 %32962, 0
  br i1 %32963, label %32964, label %32981

32964:                                            ; preds = %32959
  %32965 = load i32, ptr %1031, align 4, !tbaa !5
  %32966 = call ptr @__errno_location() #12
  store i32 %32965, ptr %32966, align 4, !tbaa !5
  %32967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32968 = load i32, ptr @test_count, align 4, !tbaa !5
  %32969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32970 = load i32, ptr %32969, align 4, !tbaa !5
  %32971 = call ptr @s2n_strerror(i32 noundef %32970, ptr noundef @.str.4)
  %32972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32973 = load i32, ptr %32972, align 4, !tbaa !5
  %32974 = call ptr @s2n_strerror_debug(i32 noundef %32973, ptr noundef @.str.4)
  %32975 = call ptr @__errno_location() #12
  %32976 = load i32, ptr %32975, align 4, !tbaa !5
  %32977 = call ptr @strerror(i32 noundef %32976) #11
  %32978 = call ptr @__errno_location() #12
  %32979 = load i32, ptr %32978, align 4, !tbaa !5
  %32980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32967, ptr noundef @.str.2, i32 noundef %32968, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2003, ptr noundef %32971, ptr noundef %32974, ptr noundef %32977, i32 noundef %32979) #11
  br label %32998

32981:                                            ; preds = %32959, %32952
  %32982 = load i32, ptr %1031, align 4, !tbaa !5
  %32983 = call ptr @__errno_location() #12
  store i32 %32982, ptr %32983, align 4, !tbaa !5
  %32984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32985 = load i32, ptr @test_count, align 4, !tbaa !5
  %32986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32987 = load i32, ptr %32986, align 4, !tbaa !5
  %32988 = call ptr @s2n_strerror(i32 noundef %32987, ptr noundef @.str.4)
  %32989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32990 = load i32, ptr %32989, align 4, !tbaa !5
  %32991 = call ptr @s2n_strerror_debug(i32 noundef %32990, ptr noundef @.str.4)
  %32992 = call ptr @__errno_location() #12
  %32993 = load i32, ptr %32992, align 4, !tbaa !5
  %32994 = call ptr @strerror(i32 noundef %32993) #11
  %32995 = call ptr @__errno_location() #12
  %32996 = load i32, ptr %32995, align 4, !tbaa !5
  %32997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32984, ptr noundef @.str.5, i32 noundef %32985, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2003, ptr noundef %32988, ptr noundef %32991, ptr noundef %32994, i32 noundef %32996) #11
  br label %32998

32998:                                            ; preds = %32981, %32964
  call void @llvm.lifetime.end.p0(i64 4, ptr %1031) #11
  br label %32999

32999:                                            ; preds = %32998
  br label %33000

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

33001:                                            ; No predecessors!
  br label %33002

33002:                                            ; preds = %33001
  br label %33003

33003:                                            ; preds = %33002, %32943
  br label %33004

33004:                                            ; preds = %33003
  br label %33005

33005:                                            ; preds = %33004
  %33006 = load ptr, ptr %1028, align 8, !tbaa !9
  %33007 = call i32 @s2n_config_free(ptr noundef %33006)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1028) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1032) #11
  %33008 = call ptr @s2n_config_new()
  store ptr %33008, ptr %1032, align 8, !tbaa !9
  br label %33009

33009:                                            ; preds = %33005
  %33010 = load i32, ptr @test_count, align 4, !tbaa !5
  %33011 = add nsw i32 %33010, 1
  store i32 %33011, ptr @test_count, align 4, !tbaa !5
  %33012 = load ptr, ptr %1032, align 8, !tbaa !9
  %33013 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %33012, ptr noundef @.str.11, ptr noundef null)
  %33014 = icmp eq i32 %33013, -1
  br i1 %33014, label %33015, label %33068

33015:                                            ; preds = %33009
  br label %33016

33016:                                            ; preds = %33015
  br label %33017

33017:                                            ; preds = %33016
  call void @llvm.lifetime.start.p0(i64 4, ptr %1033) #11
  %33018 = call ptr @__errno_location() #12
  %33019 = load i32, ptr %33018, align 4, !tbaa !5
  store i32 %33019, ptr %1033, align 4, !tbaa !5
  %33020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33021 = call i32 @s2n_print_stacktrace(ptr noundef %33020)
  %33022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33023 = trunc i8 %33022 to i1
  br i1 %33023, label %33024, label %33046

33024:                                            ; preds = %33017
  %33025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33026 = call i32 @fileno(ptr noundef %33025) #11
  %33027 = call i32 @isatty(i32 noundef %33026) #11
  %33028 = icmp ne i32 %33027, 0
  br i1 %33028, label %33029, label %33046

33029:                                            ; preds = %33024
  %33030 = load i32, ptr %1033, align 4, !tbaa !5
  %33031 = call ptr @__errno_location() #12
  store i32 %33030, ptr %33031, align 4, !tbaa !5
  %33032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33033 = load i32, ptr @test_count, align 4, !tbaa !5
  %33034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33035 = load i32, ptr %33034, align 4, !tbaa !5
  %33036 = call ptr @s2n_strerror(i32 noundef %33035, ptr noundef @.str.4)
  %33037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33038 = load i32, ptr %33037, align 4, !tbaa !5
  %33039 = call ptr @s2n_strerror_debug(i32 noundef %33038, ptr noundef @.str.4)
  %33040 = call ptr @__errno_location() #12
  %33041 = load i32, ptr %33040, align 4, !tbaa !5
  %33042 = call ptr @strerror(i32 noundef %33041) #11
  %33043 = call ptr @__errno_location() #12
  %33044 = load i32, ptr %33043, align 4, !tbaa !5
  %33045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33032, ptr noundef @.str.2, i32 noundef %33033, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 2010, ptr noundef %33036, ptr noundef %33039, ptr noundef %33042, i32 noundef %33044) #11
  br label %33063

33046:                                            ; preds = %33024, %33017
  %33047 = load i32, ptr %1033, align 4, !tbaa !5
  %33048 = call ptr @__errno_location() #12
  store i32 %33047, ptr %33048, align 4, !tbaa !5
  %33049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33050 = load i32, ptr @test_count, align 4, !tbaa !5
  %33051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33052 = load i32, ptr %33051, align 4, !tbaa !5
  %33053 = call ptr @s2n_strerror(i32 noundef %33052, ptr noundef @.str.4)
  %33054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33055 = load i32, ptr %33054, align 4, !tbaa !5
  %33056 = call ptr @s2n_strerror_debug(i32 noundef %33055, ptr noundef @.str.4)
  %33057 = call ptr @__errno_location() #12
  %33058 = load i32, ptr %33057, align 4, !tbaa !5
  %33059 = call ptr @strerror(i32 noundef %33058) #11
  %33060 = call ptr @__errno_location() #12
  %33061 = load i32, ptr %33060, align 4, !tbaa !5
  %33062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33049, ptr noundef @.str.5, i32 noundef %33050, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 2010, ptr noundef %33053, ptr noundef %33056, ptr noundef %33059, i32 noundef %33061) #11
  br label %33063

33063:                                            ; preds = %33046, %33029
  call void @llvm.lifetime.end.p0(i64 4, ptr %1033) #11
  br label %33064

33064:                                            ; preds = %33063
  br label %33065

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

33066:                                            ; No predecessors!
  br label %33067

33067:                                            ; preds = %33066
  br label %33068

33068:                                            ; preds = %33067, %33009
  br label %33069

33069:                                            ; preds = %33068
  br label %33070

33070:                                            ; preds = %33069
  br label %33071

33071:                                            ; preds = %33070
  %33072 = load i32, ptr @test_count, align 4, !tbaa !5
  %33073 = add nsw i32 %33072, 1
  store i32 %33073, ptr @test_count, align 4, !tbaa !5
  %33074 = load ptr, ptr %1032, align 8, !tbaa !9
  %33075 = getelementptr inbounds %struct.s2n_config, ptr %33074, i32 0, i32 37
  %33076 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %33075)
  %33077 = icmp ne i8 %33076, 0
  br i1 %33077, label %33131, label %33078

33078:                                            ; preds = %33071
  br label %33079

33079:                                            ; preds = %33078
  br label %33080

33080:                                            ; preds = %33079
  call void @llvm.lifetime.start.p0(i64 4, ptr %1034) #11
  %33081 = call ptr @__errno_location() #12
  %33082 = load i32, ptr %33081, align 4, !tbaa !5
  store i32 %33082, ptr %1034, align 4, !tbaa !5
  %33083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33084 = call i32 @s2n_print_stacktrace(ptr noundef %33083)
  %33085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33086 = trunc i8 %33085 to i1
  br i1 %33086, label %33087, label %33109

33087:                                            ; preds = %33080
  %33088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33089 = call i32 @fileno(ptr noundef %33088) #11
  %33090 = call i32 @isatty(i32 noundef %33089) #11
  %33091 = icmp ne i32 %33090, 0
  br i1 %33091, label %33092, label %33109

33092:                                            ; preds = %33087
  %33093 = load i32, ptr %1034, align 4, !tbaa !5
  %33094 = call ptr @__errno_location() #12
  store i32 %33093, ptr %33094, align 4, !tbaa !5
  %33095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33096 = load i32, ptr @test_count, align 4, !tbaa !5
  %33097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33098 = load i32, ptr %33097, align 4, !tbaa !5
  %33099 = call ptr @s2n_strerror(i32 noundef %33098, ptr noundef @.str.4)
  %33100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33101 = load i32, ptr %33100, align 4, !tbaa !5
  %33102 = call ptr @s2n_strerror_debug(i32 noundef %33101, ptr noundef @.str.4)
  %33103 = call ptr @__errno_location() #12
  %33104 = load i32, ptr %33103, align 4, !tbaa !5
  %33105 = call ptr @strerror(i32 noundef %33104) #11
  %33106 = call ptr @__errno_location() #12
  %33107 = load i32, ptr %33106, align 4, !tbaa !5
  %33108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33095, ptr noundef @.str.2, i32 noundef %33096, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2011, ptr noundef %33099, ptr noundef %33102, ptr noundef %33105, i32 noundef %33107) #11
  br label %33126

33109:                                            ; preds = %33087, %33080
  %33110 = load i32, ptr %1034, align 4, !tbaa !5
  %33111 = call ptr @__errno_location() #12
  store i32 %33110, ptr %33111, align 4, !tbaa !5
  %33112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33113 = load i32, ptr @test_count, align 4, !tbaa !5
  %33114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33115 = load i32, ptr %33114, align 4, !tbaa !5
  %33116 = call ptr @s2n_strerror(i32 noundef %33115, ptr noundef @.str.4)
  %33117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33118 = load i32, ptr %33117, align 4, !tbaa !5
  %33119 = call ptr @s2n_strerror_debug(i32 noundef %33118, ptr noundef @.str.4)
  %33120 = call ptr @__errno_location() #12
  %33121 = load i32, ptr %33120, align 4, !tbaa !5
  %33122 = call ptr @strerror(i32 noundef %33121) #11
  %33123 = call ptr @__errno_location() #12
  %33124 = load i32, ptr %33123, align 4, !tbaa !5
  %33125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33112, ptr noundef @.str.5, i32 noundef %33113, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2011, ptr noundef %33116, ptr noundef %33119, ptr noundef %33122, i32 noundef %33124) #11
  br label %33126

33126:                                            ; preds = %33109, %33092
  call void @llvm.lifetime.end.p0(i64 4, ptr %1034) #11
  br label %33127

33127:                                            ; preds = %33126
  br label %33128

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

33129:                                            ; No predecessors!
  br label %33130

33130:                                            ; preds = %33129
  br label %33131

33131:                                            ; preds = %33130, %33071
  br label %33132

33132:                                            ; preds = %33131
  br label %33133

33133:                                            ; preds = %33132
  br label %33134

33134:                                            ; preds = %33133
  %33135 = load i32, ptr @test_count, align 4, !tbaa !5
  %33136 = add nsw i32 %33135, 1
  store i32 %33136, ptr @test_count, align 4, !tbaa !5
  %33137 = load ptr, ptr %1032, align 8, !tbaa !9
  %33138 = call i32 @s2n_config_wipe_trust_store(ptr noundef %33137)
  %33139 = icmp eq i32 %33138, -1
  br i1 %33139, label %33140, label %33193

33140:                                            ; preds = %33134
  br label %33141

33141:                                            ; preds = %33140
  br label %33142

33142:                                            ; preds = %33141
  call void @llvm.lifetime.start.p0(i64 4, ptr %1035) #11
  %33143 = call ptr @__errno_location() #12
  %33144 = load i32, ptr %33143, align 4, !tbaa !5
  store i32 %33144, ptr %1035, align 4, !tbaa !5
  %33145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33146 = call i32 @s2n_print_stacktrace(ptr noundef %33145)
  %33147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33148 = trunc i8 %33147 to i1
  br i1 %33148, label %33149, label %33171

33149:                                            ; preds = %33142
  %33150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33151 = call i32 @fileno(ptr noundef %33150) #11
  %33152 = call i32 @isatty(i32 noundef %33151) #11
  %33153 = icmp ne i32 %33152, 0
  br i1 %33153, label %33154, label %33171

33154:                                            ; preds = %33149
  %33155 = load i32, ptr %1035, align 4, !tbaa !5
  %33156 = call ptr @__errno_location() #12
  store i32 %33155, ptr %33156, align 4, !tbaa !5
  %33157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33158 = load i32, ptr @test_count, align 4, !tbaa !5
  %33159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33160 = load i32, ptr %33159, align 4, !tbaa !5
  %33161 = call ptr @s2n_strerror(i32 noundef %33160, ptr noundef @.str.4)
  %33162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33163 = load i32, ptr %33162, align 4, !tbaa !5
  %33164 = call ptr @s2n_strerror_debug(i32 noundef %33163, ptr noundef @.str.4)
  %33165 = call ptr @__errno_location() #12
  %33166 = load i32, ptr %33165, align 4, !tbaa !5
  %33167 = call ptr @strerror(i32 noundef %33166) #11
  %33168 = call ptr @__errno_location() #12
  %33169 = load i32, ptr %33168, align 4, !tbaa !5
  %33170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33157, ptr noundef @.str.2, i32 noundef %33158, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2013, ptr noundef %33161, ptr noundef %33164, ptr noundef %33167, i32 noundef %33169) #11
  br label %33188

33171:                                            ; preds = %33149, %33142
  %33172 = load i32, ptr %1035, align 4, !tbaa !5
  %33173 = call ptr @__errno_location() #12
  store i32 %33172, ptr %33173, align 4, !tbaa !5
  %33174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33175 = load i32, ptr @test_count, align 4, !tbaa !5
  %33176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33177 = load i32, ptr %33176, align 4, !tbaa !5
  %33178 = call ptr @s2n_strerror(i32 noundef %33177, ptr noundef @.str.4)
  %33179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33180 = load i32, ptr %33179, align 4, !tbaa !5
  %33181 = call ptr @s2n_strerror_debug(i32 noundef %33180, ptr noundef @.str.4)
  %33182 = call ptr @__errno_location() #12
  %33183 = load i32, ptr %33182, align 4, !tbaa !5
  %33184 = call ptr @strerror(i32 noundef %33183) #11
  %33185 = call ptr @__errno_location() #12
  %33186 = load i32, ptr %33185, align 4, !tbaa !5
  %33187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33174, ptr noundef @.str.5, i32 noundef %33175, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2013, ptr noundef %33178, ptr noundef %33181, ptr noundef %33184, i32 noundef %33186) #11
  br label %33188

33188:                                            ; preds = %33171, %33154
  call void @llvm.lifetime.end.p0(i64 4, ptr %1035) #11
  br label %33189

33189:                                            ; preds = %33188
  br label %33190

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

33191:                                            ; No predecessors!
  br label %33192

33192:                                            ; preds = %33191
  br label %33193

33193:                                            ; preds = %33192, %33134
  br label %33194

33194:                                            ; preds = %33193
  br label %33195

33195:                                            ; preds = %33194
  br label %33196

33196:                                            ; preds = %33195
  %33197 = load i32, ptr @test_count, align 4, !tbaa !5
  %33198 = add nsw i32 %33197, 1
  store i32 %33198, ptr @test_count, align 4, !tbaa !5
  %33199 = load ptr, ptr %1032, align 8, !tbaa !9
  %33200 = getelementptr inbounds %struct.s2n_config, ptr %33199, i32 0, i32 37
  %33201 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %33200)
  %33202 = icmp ne i8 %33201, 0
  br i1 %33202, label %33203, label %33256

33203:                                            ; preds = %33196
  br label %33204

33204:                                            ; preds = %33203
  br label %33205

33205:                                            ; preds = %33204
  call void @llvm.lifetime.start.p0(i64 4, ptr %1036) #11
  %33206 = call ptr @__errno_location() #12
  %33207 = load i32, ptr %33206, align 4, !tbaa !5
  store i32 %33207, ptr %1036, align 4, !tbaa !5
  %33208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33209 = call i32 @s2n_print_stacktrace(ptr noundef %33208)
  %33210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33211 = trunc i8 %33210 to i1
  br i1 %33211, label %33212, label %33234

33212:                                            ; preds = %33205
  %33213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33214 = call i32 @fileno(ptr noundef %33213) #11
  %33215 = call i32 @isatty(i32 noundef %33214) #11
  %33216 = icmp ne i32 %33215, 0
  br i1 %33216, label %33217, label %33234

33217:                                            ; preds = %33212
  %33218 = load i32, ptr %1036, align 4, !tbaa !5
  %33219 = call ptr @__errno_location() #12
  store i32 %33218, ptr %33219, align 4, !tbaa !5
  %33220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33221 = load i32, ptr @test_count, align 4, !tbaa !5
  %33222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33223 = load i32, ptr %33222, align 4, !tbaa !5
  %33224 = call ptr @s2n_strerror(i32 noundef %33223, ptr noundef @.str.4)
  %33225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33226 = load i32, ptr %33225, align 4, !tbaa !5
  %33227 = call ptr @s2n_strerror_debug(i32 noundef %33226, ptr noundef @.str.4)
  %33228 = call ptr @__errno_location() #12
  %33229 = load i32, ptr %33228, align 4, !tbaa !5
  %33230 = call ptr @strerror(i32 noundef %33229) #11
  %33231 = call ptr @__errno_location() #12
  %33232 = load i32, ptr %33231, align 4, !tbaa !5
  %33233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33220, ptr noundef @.str.2, i32 noundef %33221, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2014, ptr noundef %33224, ptr noundef %33227, ptr noundef %33230, i32 noundef %33232) #11
  br label %33251

33234:                                            ; preds = %33212, %33205
  %33235 = load i32, ptr %1036, align 4, !tbaa !5
  %33236 = call ptr @__errno_location() #12
  store i32 %33235, ptr %33236, align 4, !tbaa !5
  %33237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33238 = load i32, ptr @test_count, align 4, !tbaa !5
  %33239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33240 = load i32, ptr %33239, align 4, !tbaa !5
  %33241 = call ptr @s2n_strerror(i32 noundef %33240, ptr noundef @.str.4)
  %33242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33243 = load i32, ptr %33242, align 4, !tbaa !5
  %33244 = call ptr @s2n_strerror_debug(i32 noundef %33243, ptr noundef @.str.4)
  %33245 = call ptr @__errno_location() #12
  %33246 = load i32, ptr %33245, align 4, !tbaa !5
  %33247 = call ptr @strerror(i32 noundef %33246) #11
  %33248 = call ptr @__errno_location() #12
  %33249 = load i32, ptr %33248, align 4, !tbaa !5
  %33250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33237, ptr noundef @.str.5, i32 noundef %33238, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2014, ptr noundef %33241, ptr noundef %33244, ptr noundef %33247, i32 noundef %33249) #11
  br label %33251

33251:                                            ; preds = %33234, %33217
  call void @llvm.lifetime.end.p0(i64 4, ptr %1036) #11
  br label %33252

33252:                                            ; preds = %33251
  br label %33253

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

33254:                                            ; No predecessors!
  br label %33255

33255:                                            ; preds = %33254
  br label %33256

33256:                                            ; preds = %33255, %33196
  br label %33257

33257:                                            ; preds = %33256
  br label %33258

33258:                                            ; preds = %33257
  %33259 = load ptr, ptr %1032, align 8, !tbaa !9
  %33260 = call i32 @s2n_config_free(ptr noundef %33259)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1032) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1037) #11
  %33261 = call ptr @s2n_config_new()
  store ptr %33261, ptr %1037, align 8, !tbaa !9
  br label %33262

33262:                                            ; preds = %33258
  %33263 = load i32, ptr @test_count, align 4, !tbaa !5
  %33264 = add nsw i32 %33263, 1
  store i32 %33264, ptr @test_count, align 4, !tbaa !5
  %33265 = load ptr, ptr %1037, align 8, !tbaa !9
  %33266 = call i32 @s2n_config_wipe_trust_store(ptr noundef %33265)
  %33267 = icmp eq i32 %33266, -1
  br i1 %33267, label %33268, label %33321

33268:                                            ; preds = %33262
  br label %33269

33269:                                            ; preds = %33268
  br label %33270

33270:                                            ; preds = %33269
  call void @llvm.lifetime.start.p0(i64 4, ptr %1038) #11
  %33271 = call ptr @__errno_location() #12
  %33272 = load i32, ptr %33271, align 4, !tbaa !5
  store i32 %33272, ptr %1038, align 4, !tbaa !5
  %33273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33274 = call i32 @s2n_print_stacktrace(ptr noundef %33273)
  %33275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33276 = trunc i8 %33275 to i1
  br i1 %33276, label %33277, label %33299

33277:                                            ; preds = %33270
  %33278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33279 = call i32 @fileno(ptr noundef %33278) #11
  %33280 = call i32 @isatty(i32 noundef %33279) #11
  %33281 = icmp ne i32 %33280, 0
  br i1 %33281, label %33282, label %33299

33282:                                            ; preds = %33277
  %33283 = load i32, ptr %1038, align 4, !tbaa !5
  %33284 = call ptr @__errno_location() #12
  store i32 %33283, ptr %33284, align 4, !tbaa !5
  %33285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33286 = load i32, ptr @test_count, align 4, !tbaa !5
  %33287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33288 = load i32, ptr %33287, align 4, !tbaa !5
  %33289 = call ptr @s2n_strerror(i32 noundef %33288, ptr noundef @.str.4)
  %33290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33291 = load i32, ptr %33290, align 4, !tbaa !5
  %33292 = call ptr @s2n_strerror_debug(i32 noundef %33291, ptr noundef @.str.4)
  %33293 = call ptr @__errno_location() #12
  %33294 = load i32, ptr %33293, align 4, !tbaa !5
  %33295 = call ptr @strerror(i32 noundef %33294) #11
  %33296 = call ptr @__errno_location() #12
  %33297 = load i32, ptr %33296, align 4, !tbaa !5
  %33298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33285, ptr noundef @.str.2, i32 noundef %33286, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2021, ptr noundef %33289, ptr noundef %33292, ptr noundef %33295, i32 noundef %33297) #11
  br label %33316

33299:                                            ; preds = %33277, %33270
  %33300 = load i32, ptr %1038, align 4, !tbaa !5
  %33301 = call ptr @__errno_location() #12
  store i32 %33300, ptr %33301, align 4, !tbaa !5
  %33302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33303 = load i32, ptr @test_count, align 4, !tbaa !5
  %33304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33305 = load i32, ptr %33304, align 4, !tbaa !5
  %33306 = call ptr @s2n_strerror(i32 noundef %33305, ptr noundef @.str.4)
  %33307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33308 = load i32, ptr %33307, align 4, !tbaa !5
  %33309 = call ptr @s2n_strerror_debug(i32 noundef %33308, ptr noundef @.str.4)
  %33310 = call ptr @__errno_location() #12
  %33311 = load i32, ptr %33310, align 4, !tbaa !5
  %33312 = call ptr @strerror(i32 noundef %33311) #11
  %33313 = call ptr @__errno_location() #12
  %33314 = load i32, ptr %33313, align 4, !tbaa !5
  %33315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33302, ptr noundef @.str.5, i32 noundef %33303, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2021, ptr noundef %33306, ptr noundef %33309, ptr noundef %33312, i32 noundef %33314) #11
  br label %33316

33316:                                            ; preds = %33299, %33282
  call void @llvm.lifetime.end.p0(i64 4, ptr %1038) #11
  br label %33317

33317:                                            ; preds = %33316
  br label %33318

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

33319:                                            ; No predecessors!
  br label %33320

33320:                                            ; preds = %33319
  br label %33321

33321:                                            ; preds = %33320, %33262
  br label %33322

33322:                                            ; preds = %33321
  br label %33323

33323:                                            ; preds = %33322
  br label %33324

33324:                                            ; preds = %33323
  %33325 = load i32, ptr @test_count, align 4, !tbaa !5
  %33326 = add nsw i32 %33325, 1
  store i32 %33326, ptr @test_count, align 4, !tbaa !5
  %33327 = load ptr, ptr %1037, align 8, !tbaa !9
  %33328 = getelementptr inbounds %struct.s2n_config, ptr %33327, i32 0, i32 37
  %33329 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %33328)
  %33330 = icmp ne i8 %33329, 0
  br i1 %33330, label %33331, label %33384

33331:                                            ; preds = %33324
  br label %33332

33332:                                            ; preds = %33331
  br label %33333

33333:                                            ; preds = %33332
  call void @llvm.lifetime.start.p0(i64 4, ptr %1039) #11
  %33334 = call ptr @__errno_location() #12
  %33335 = load i32, ptr %33334, align 4, !tbaa !5
  store i32 %33335, ptr %1039, align 4, !tbaa !5
  %33336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33337 = call i32 @s2n_print_stacktrace(ptr noundef %33336)
  %33338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33339 = trunc i8 %33338 to i1
  br i1 %33339, label %33340, label %33362

33340:                                            ; preds = %33333
  %33341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33342 = call i32 @fileno(ptr noundef %33341) #11
  %33343 = call i32 @isatty(i32 noundef %33342) #11
  %33344 = icmp ne i32 %33343, 0
  br i1 %33344, label %33345, label %33362

33345:                                            ; preds = %33340
  %33346 = load i32, ptr %1039, align 4, !tbaa !5
  %33347 = call ptr @__errno_location() #12
  store i32 %33346, ptr %33347, align 4, !tbaa !5
  %33348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33349 = load i32, ptr @test_count, align 4, !tbaa !5
  %33350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33351 = load i32, ptr %33350, align 4, !tbaa !5
  %33352 = call ptr @s2n_strerror(i32 noundef %33351, ptr noundef @.str.4)
  %33353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33354 = load i32, ptr %33353, align 4, !tbaa !5
  %33355 = call ptr @s2n_strerror_debug(i32 noundef %33354, ptr noundef @.str.4)
  %33356 = call ptr @__errno_location() #12
  %33357 = load i32, ptr %33356, align 4, !tbaa !5
  %33358 = call ptr @strerror(i32 noundef %33357) #11
  %33359 = call ptr @__errno_location() #12
  %33360 = load i32, ptr %33359, align 4, !tbaa !5
  %33361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33348, ptr noundef @.str.2, i32 noundef %33349, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2022, ptr noundef %33352, ptr noundef %33355, ptr noundef %33358, i32 noundef %33360) #11
  br label %33379

33362:                                            ; preds = %33340, %33333
  %33363 = load i32, ptr %1039, align 4, !tbaa !5
  %33364 = call ptr @__errno_location() #12
  store i32 %33363, ptr %33364, align 4, !tbaa !5
  %33365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33366 = load i32, ptr @test_count, align 4, !tbaa !5
  %33367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33368 = load i32, ptr %33367, align 4, !tbaa !5
  %33369 = call ptr @s2n_strerror(i32 noundef %33368, ptr noundef @.str.4)
  %33370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33371 = load i32, ptr %33370, align 4, !tbaa !5
  %33372 = call ptr @s2n_strerror_debug(i32 noundef %33371, ptr noundef @.str.4)
  %33373 = call ptr @__errno_location() #12
  %33374 = load i32, ptr %33373, align 4, !tbaa !5
  %33375 = call ptr @strerror(i32 noundef %33374) #11
  %33376 = call ptr @__errno_location() #12
  %33377 = load i32, ptr %33376, align 4, !tbaa !5
  %33378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33365, ptr noundef @.str.5, i32 noundef %33366, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2022, ptr noundef %33369, ptr noundef %33372, ptr noundef %33375, i32 noundef %33377) #11
  br label %33379

33379:                                            ; preds = %33362, %33345
  call void @llvm.lifetime.end.p0(i64 4, ptr %1039) #11
  br label %33380

33380:                                            ; preds = %33379
  br label %33381

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

33382:                                            ; No predecessors!
  br label %33383

33383:                                            ; preds = %33382
  br label %33384

33384:                                            ; preds = %33383, %33324
  br label %33385

33385:                                            ; preds = %33384
  br label %33386

33386:                                            ; preds = %33385
  br label %33387

33387:                                            ; preds = %33386
  %33388 = load i32, ptr @test_count, align 4, !tbaa !5
  %33389 = add nsw i32 %33388, 1
  store i32 %33389, ptr @test_count, align 4, !tbaa !5
  %33390 = load ptr, ptr %1037, align 8, !tbaa !9
  %33391 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %33390, ptr noundef @.str.11, ptr noundef null)
  %33392 = icmp eq i32 %33391, -1
  br i1 %33392, label %33393, label %33446

33393:                                            ; preds = %33387
  br label %33394

33394:                                            ; preds = %33393
  br label %33395

33395:                                            ; preds = %33394
  call void @llvm.lifetime.start.p0(i64 4, ptr %1040) #11
  %33396 = call ptr @__errno_location() #12
  %33397 = load i32, ptr %33396, align 4, !tbaa !5
  store i32 %33397, ptr %1040, align 4, !tbaa !5
  %33398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33399 = call i32 @s2n_print_stacktrace(ptr noundef %33398)
  %33400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33401 = trunc i8 %33400 to i1
  br i1 %33401, label %33402, label %33424

33402:                                            ; preds = %33395
  %33403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33404 = call i32 @fileno(ptr noundef %33403) #11
  %33405 = call i32 @isatty(i32 noundef %33404) #11
  %33406 = icmp ne i32 %33405, 0
  br i1 %33406, label %33407, label %33424

33407:                                            ; preds = %33402
  %33408 = load i32, ptr %1040, align 4, !tbaa !5
  %33409 = call ptr @__errno_location() #12
  store i32 %33408, ptr %33409, align 4, !tbaa !5
  %33410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33411 = load i32, ptr @test_count, align 4, !tbaa !5
  %33412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33413 = load i32, ptr %33412, align 4, !tbaa !5
  %33414 = call ptr @s2n_strerror(i32 noundef %33413, ptr noundef @.str.4)
  %33415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33416 = load i32, ptr %33415, align 4, !tbaa !5
  %33417 = call ptr @s2n_strerror_debug(i32 noundef %33416, ptr noundef @.str.4)
  %33418 = call ptr @__errno_location() #12
  %33419 = load i32, ptr %33418, align 4, !tbaa !5
  %33420 = call ptr @strerror(i32 noundef %33419) #11
  %33421 = call ptr @__errno_location() #12
  %33422 = load i32, ptr %33421, align 4, !tbaa !5
  %33423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33410, ptr noundef @.str.2, i32 noundef %33411, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 2024, ptr noundef %33414, ptr noundef %33417, ptr noundef %33420, i32 noundef %33422) #11
  br label %33441

33424:                                            ; preds = %33402, %33395
  %33425 = load i32, ptr %1040, align 4, !tbaa !5
  %33426 = call ptr @__errno_location() #12
  store i32 %33425, ptr %33426, align 4, !tbaa !5
  %33427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33428 = load i32, ptr @test_count, align 4, !tbaa !5
  %33429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33430 = load i32, ptr %33429, align 4, !tbaa !5
  %33431 = call ptr @s2n_strerror(i32 noundef %33430, ptr noundef @.str.4)
  %33432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33433 = load i32, ptr %33432, align 4, !tbaa !5
  %33434 = call ptr @s2n_strerror_debug(i32 noundef %33433, ptr noundef @.str.4)
  %33435 = call ptr @__errno_location() #12
  %33436 = load i32, ptr %33435, align 4, !tbaa !5
  %33437 = call ptr @strerror(i32 noundef %33436) #11
  %33438 = call ptr @__errno_location() #12
  %33439 = load i32, ptr %33438, align 4, !tbaa !5
  %33440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33427, ptr noundef @.str.5, i32 noundef %33428, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 2024, ptr noundef %33431, ptr noundef %33434, ptr noundef %33437, i32 noundef %33439) #11
  br label %33441

33441:                                            ; preds = %33424, %33407
  call void @llvm.lifetime.end.p0(i64 4, ptr %1040) #11
  br label %33442

33442:                                            ; preds = %33441
  br label %33443

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

33444:                                            ; No predecessors!
  br label %33445

33445:                                            ; preds = %33444
  br label %33446

33446:                                            ; preds = %33445, %33387
  br label %33447

33447:                                            ; preds = %33446
  br label %33448

33448:                                            ; preds = %33447
  br label %33449

33449:                                            ; preds = %33448
  %33450 = load i32, ptr @test_count, align 4, !tbaa !5
  %33451 = add nsw i32 %33450, 1
  store i32 %33451, ptr @test_count, align 4, !tbaa !5
  %33452 = load ptr, ptr %1037, align 8, !tbaa !9
  %33453 = getelementptr inbounds %struct.s2n_config, ptr %33452, i32 0, i32 37
  %33454 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %33453)
  %33455 = icmp ne i8 %33454, 0
  br i1 %33455, label %33509, label %33456

33456:                                            ; preds = %33449
  br label %33457

33457:                                            ; preds = %33456
  br label %33458

33458:                                            ; preds = %33457
  call void @llvm.lifetime.start.p0(i64 4, ptr %1041) #11
  %33459 = call ptr @__errno_location() #12
  %33460 = load i32, ptr %33459, align 4, !tbaa !5
  store i32 %33460, ptr %1041, align 4, !tbaa !5
  %33461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33462 = call i32 @s2n_print_stacktrace(ptr noundef %33461)
  %33463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33464 = trunc i8 %33463 to i1
  br i1 %33464, label %33465, label %33487

33465:                                            ; preds = %33458
  %33466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33467 = call i32 @fileno(ptr noundef %33466) #11
  %33468 = call i32 @isatty(i32 noundef %33467) #11
  %33469 = icmp ne i32 %33468, 0
  br i1 %33469, label %33470, label %33487

33470:                                            ; preds = %33465
  %33471 = load i32, ptr %1041, align 4, !tbaa !5
  %33472 = call ptr @__errno_location() #12
  store i32 %33471, ptr %33472, align 4, !tbaa !5
  %33473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33474 = load i32, ptr @test_count, align 4, !tbaa !5
  %33475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33476 = load i32, ptr %33475, align 4, !tbaa !5
  %33477 = call ptr @s2n_strerror(i32 noundef %33476, ptr noundef @.str.4)
  %33478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33479 = load i32, ptr %33478, align 4, !tbaa !5
  %33480 = call ptr @s2n_strerror_debug(i32 noundef %33479, ptr noundef @.str.4)
  %33481 = call ptr @__errno_location() #12
  %33482 = load i32, ptr %33481, align 4, !tbaa !5
  %33483 = call ptr @strerror(i32 noundef %33482) #11
  %33484 = call ptr @__errno_location() #12
  %33485 = load i32, ptr %33484, align 4, !tbaa !5
  %33486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33473, ptr noundef @.str.2, i32 noundef %33474, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2025, ptr noundef %33477, ptr noundef %33480, ptr noundef %33483, i32 noundef %33485) #11
  br label %33504

33487:                                            ; preds = %33465, %33458
  %33488 = load i32, ptr %1041, align 4, !tbaa !5
  %33489 = call ptr @__errno_location() #12
  store i32 %33488, ptr %33489, align 4, !tbaa !5
  %33490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33491 = load i32, ptr @test_count, align 4, !tbaa !5
  %33492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33493 = load i32, ptr %33492, align 4, !tbaa !5
  %33494 = call ptr @s2n_strerror(i32 noundef %33493, ptr noundef @.str.4)
  %33495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33496 = load i32, ptr %33495, align 4, !tbaa !5
  %33497 = call ptr @s2n_strerror_debug(i32 noundef %33496, ptr noundef @.str.4)
  %33498 = call ptr @__errno_location() #12
  %33499 = load i32, ptr %33498, align 4, !tbaa !5
  %33500 = call ptr @strerror(i32 noundef %33499) #11
  %33501 = call ptr @__errno_location() #12
  %33502 = load i32, ptr %33501, align 4, !tbaa !5
  %33503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33490, ptr noundef @.str.5, i32 noundef %33491, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2025, ptr noundef %33494, ptr noundef %33497, ptr noundef %33500, i32 noundef %33502) #11
  br label %33504

33504:                                            ; preds = %33487, %33470
  call void @llvm.lifetime.end.p0(i64 4, ptr %1041) #11
  br label %33505

33505:                                            ; preds = %33504
  br label %33506

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

33507:                                            ; No predecessors!
  br label %33508

33508:                                            ; preds = %33507
  br label %33509

33509:                                            ; preds = %33508, %33449
  br label %33510

33510:                                            ; preds = %33509
  br label %33511

33511:                                            ; preds = %33510
  %33512 = load ptr, ptr %1037, align 8, !tbaa !9
  %33513 = call i32 @s2n_config_free(ptr noundef %33512)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1037) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1042) #11
  %33514 = call ptr @s2n_config_new()
  store ptr %33514, ptr %1042, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1043) #11
  store ptr null, ptr %1043, align 8, !tbaa !9
  br label %33515

33515:                                            ; preds = %33511
  %33516 = load i32, ptr @test_count, align 4, !tbaa !5
  %33517 = add nsw i32 %33516, 1
  store i32 %33517, ptr @test_count, align 4, !tbaa !5
  %33518 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %33518, ptr %1043, align 8, !tbaa !9
  %33519 = icmp eq ptr %33518, null
  br i1 %33519, label %33520, label %33573

33520:                                            ; preds = %33515
  br label %33521

33521:                                            ; preds = %33520
  br label %33522

33522:                                            ; preds = %33521
  call void @llvm.lifetime.start.p0(i64 4, ptr %1044) #11
  %33523 = call ptr @__errno_location() #12
  %33524 = load i32, ptr %33523, align 4, !tbaa !5
  store i32 %33524, ptr %1044, align 4, !tbaa !5
  %33525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33526 = call i32 @s2n_print_stacktrace(ptr noundef %33525)
  %33527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33528 = trunc i8 %33527 to i1
  br i1 %33528, label %33529, label %33551

33529:                                            ; preds = %33522
  %33530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33531 = call i32 @fileno(ptr noundef %33530) #11
  %33532 = call i32 @isatty(i32 noundef %33531) #11
  %33533 = icmp ne i32 %33532, 0
  br i1 %33533, label %33534, label %33551

33534:                                            ; preds = %33529
  %33535 = load i32, ptr %1044, align 4, !tbaa !5
  %33536 = call ptr @__errno_location() #12
  store i32 %33535, ptr %33536, align 4, !tbaa !5
  %33537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33538 = load i32, ptr @test_count, align 4, !tbaa !5
  %33539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33540 = load i32, ptr %33539, align 4, !tbaa !5
  %33541 = call ptr @s2n_strerror(i32 noundef %33540, ptr noundef @.str.4)
  %33542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33543 = load i32, ptr %33542, align 4, !tbaa !5
  %33544 = call ptr @s2n_strerror_debug(i32 noundef %33543, ptr noundef @.str.4)
  %33545 = call ptr @__errno_location() #12
  %33546 = load i32, ptr %33545, align 4, !tbaa !5
  %33547 = call ptr @strerror(i32 noundef %33546) #11
  %33548 = call ptr @__errno_location() #12
  %33549 = load i32, ptr %33548, align 4, !tbaa !5
  %33550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33537, ptr noundef @.str.2, i32 noundef %33538, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2033, ptr noundef %33541, ptr noundef %33544, ptr noundef %33547, i32 noundef %33549) #11
  br label %33568

33551:                                            ; preds = %33529, %33522
  %33552 = load i32, ptr %1044, align 4, !tbaa !5
  %33553 = call ptr @__errno_location() #12
  store i32 %33552, ptr %33553, align 4, !tbaa !5
  %33554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33555 = load i32, ptr @test_count, align 4, !tbaa !5
  %33556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33557 = load i32, ptr %33556, align 4, !tbaa !5
  %33558 = call ptr @s2n_strerror(i32 noundef %33557, ptr noundef @.str.4)
  %33559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33560 = load i32, ptr %33559, align 4, !tbaa !5
  %33561 = call ptr @s2n_strerror_debug(i32 noundef %33560, ptr noundef @.str.4)
  %33562 = call ptr @__errno_location() #12
  %33563 = load i32, ptr %33562, align 4, !tbaa !5
  %33564 = call ptr @strerror(i32 noundef %33563) #11
  %33565 = call ptr @__errno_location() #12
  %33566 = load i32, ptr %33565, align 4, !tbaa !5
  %33567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33554, ptr noundef @.str.5, i32 noundef %33555, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2033, ptr noundef %33558, ptr noundef %33561, ptr noundef %33564, i32 noundef %33566) #11
  br label %33568

33568:                                            ; preds = %33551, %33534
  call void @llvm.lifetime.end.p0(i64 4, ptr %1044) #11
  br label %33569

33569:                                            ; preds = %33568
  br label %33570

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

33571:                                            ; No predecessors!
  br label %33572

33572:                                            ; preds = %33571
  br label %33573

33573:                                            ; preds = %33572, %33515
  br label %33574

33574:                                            ; preds = %33573
  br label %33575

33575:                                            ; preds = %33574
  br label %33576

33576:                                            ; preds = %33575
  %33577 = load i32, ptr @test_count, align 4, !tbaa !5
  %33578 = add nsw i32 %33577, 1
  store i32 %33578, ptr @test_count, align 4, !tbaa !5
  %33579 = load ptr, ptr %1043, align 8, !tbaa !9
  %33580 = call i32 @s2n_read_test_pem(ptr noundef @.str.11, ptr noundef %33579, i64 noundef 12000)
  %33581 = icmp eq i32 %33580, -1
  br i1 %33581, label %33582, label %33635

33582:                                            ; preds = %33576
  br label %33583

33583:                                            ; preds = %33582
  br label %33584

33584:                                            ; preds = %33583
  call void @llvm.lifetime.start.p0(i64 4, ptr %1045) #11
  %33585 = call ptr @__errno_location() #12
  %33586 = load i32, ptr %33585, align 4, !tbaa !5
  store i32 %33586, ptr %1045, align 4, !tbaa !5
  %33587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33588 = call i32 @s2n_print_stacktrace(ptr noundef %33587)
  %33589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33590 = trunc i8 %33589 to i1
  br i1 %33590, label %33591, label %33613

33591:                                            ; preds = %33584
  %33592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33593 = call i32 @fileno(ptr noundef %33592) #11
  %33594 = call i32 @isatty(i32 noundef %33593) #11
  %33595 = icmp ne i32 %33594, 0
  br i1 %33595, label %33596, label %33613

33596:                                            ; preds = %33591
  %33597 = load i32, ptr %1045, align 4, !tbaa !5
  %33598 = call ptr @__errno_location() #12
  store i32 %33597, ptr %33598, align 4, !tbaa !5
  %33599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33600 = load i32, ptr @test_count, align 4, !tbaa !5
  %33601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33602 = load i32, ptr %33601, align 4, !tbaa !5
  %33603 = call ptr @s2n_strerror(i32 noundef %33602, ptr noundef @.str.4)
  %33604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33605 = load i32, ptr %33604, align 4, !tbaa !5
  %33606 = call ptr @s2n_strerror_debug(i32 noundef %33605, ptr noundef @.str.4)
  %33607 = call ptr @__errno_location() #12
  %33608 = load i32, ptr %33607, align 4, !tbaa !5
  %33609 = call ptr @strerror(i32 noundef %33608) #11
  %33610 = call ptr @__errno_location() #12
  %33611 = load i32, ptr %33610, align 4, !tbaa !5
  %33612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33599, ptr noundef @.str.2, i32 noundef %33600, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 2034, ptr noundef %33603, ptr noundef %33606, ptr noundef %33609, i32 noundef %33611) #11
  br label %33630

33613:                                            ; preds = %33591, %33584
  %33614 = load i32, ptr %1045, align 4, !tbaa !5
  %33615 = call ptr @__errno_location() #12
  store i32 %33614, ptr %33615, align 4, !tbaa !5
  %33616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33617 = load i32, ptr @test_count, align 4, !tbaa !5
  %33618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33619 = load i32, ptr %33618, align 4, !tbaa !5
  %33620 = call ptr @s2n_strerror(i32 noundef %33619, ptr noundef @.str.4)
  %33621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33622 = load i32, ptr %33621, align 4, !tbaa !5
  %33623 = call ptr @s2n_strerror_debug(i32 noundef %33622, ptr noundef @.str.4)
  %33624 = call ptr @__errno_location() #12
  %33625 = load i32, ptr %33624, align 4, !tbaa !5
  %33626 = call ptr @strerror(i32 noundef %33625) #11
  %33627 = call ptr @__errno_location() #12
  %33628 = load i32, ptr %33627, align 4, !tbaa !5
  %33629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33616, ptr noundef @.str.5, i32 noundef %33617, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 2034, ptr noundef %33620, ptr noundef %33623, ptr noundef %33626, i32 noundef %33628) #11
  br label %33630

33630:                                            ; preds = %33613, %33596
  call void @llvm.lifetime.end.p0(i64 4, ptr %1045) #11
  br label %33631

33631:                                            ; preds = %33630
  br label %33632

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

33633:                                            ; No predecessors!
  br label %33634

33634:                                            ; preds = %33633
  br label %33635

33635:                                            ; preds = %33634, %33576
  br label %33636

33636:                                            ; preds = %33635
  br label %33637

33637:                                            ; preds = %33636
  br label %33638

33638:                                            ; preds = %33637
  %33639 = load i32, ptr @test_count, align 4, !tbaa !5
  %33640 = add nsw i32 %33639, 1
  store i32 %33640, ptr @test_count, align 4, !tbaa !5
  %33641 = load ptr, ptr %1042, align 8, !tbaa !9
  %33642 = load ptr, ptr %1043, align 8, !tbaa !9
  %33643 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %33641, ptr noundef %33642)
  %33644 = icmp eq i32 %33643, -1
  br i1 %33644, label %33645, label %33698

33645:                                            ; preds = %33638
  br label %33646

33646:                                            ; preds = %33645
  br label %33647

33647:                                            ; preds = %33646
  call void @llvm.lifetime.start.p0(i64 4, ptr %1046) #11
  %33648 = call ptr @__errno_location() #12
  %33649 = load i32, ptr %33648, align 4, !tbaa !5
  store i32 %33649, ptr %1046, align 4, !tbaa !5
  %33650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33651 = call i32 @s2n_print_stacktrace(ptr noundef %33650)
  %33652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33653 = trunc i8 %33652 to i1
  br i1 %33653, label %33654, label %33676

33654:                                            ; preds = %33647
  %33655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33656 = call i32 @fileno(ptr noundef %33655) #11
  %33657 = call i32 @isatty(i32 noundef %33656) #11
  %33658 = icmp ne i32 %33657, 0
  br i1 %33658, label %33659, label %33676

33659:                                            ; preds = %33654
  %33660 = load i32, ptr %1046, align 4, !tbaa !5
  %33661 = call ptr @__errno_location() #12
  store i32 %33660, ptr %33661, align 4, !tbaa !5
  %33662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33663 = load i32, ptr @test_count, align 4, !tbaa !5
  %33664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33665 = load i32, ptr %33664, align 4, !tbaa !5
  %33666 = call ptr @s2n_strerror(i32 noundef %33665, ptr noundef @.str.4)
  %33667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33668 = load i32, ptr %33667, align 4, !tbaa !5
  %33669 = call ptr @s2n_strerror_debug(i32 noundef %33668, ptr noundef @.str.4)
  %33670 = call ptr @__errno_location() #12
  %33671 = load i32, ptr %33670, align 4, !tbaa !5
  %33672 = call ptr @strerror(i32 noundef %33671) #11
  %33673 = call ptr @__errno_location() #12
  %33674 = load i32, ptr %33673, align 4, !tbaa !5
  %33675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33662, ptr noundef @.str.2, i32 noundef %33663, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 2035, ptr noundef %33666, ptr noundef %33669, ptr noundef %33672, i32 noundef %33674) #11
  br label %33693

33676:                                            ; preds = %33654, %33647
  %33677 = load i32, ptr %1046, align 4, !tbaa !5
  %33678 = call ptr @__errno_location() #12
  store i32 %33677, ptr %33678, align 4, !tbaa !5
  %33679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33680 = load i32, ptr @test_count, align 4, !tbaa !5
  %33681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33682 = load i32, ptr %33681, align 4, !tbaa !5
  %33683 = call ptr @s2n_strerror(i32 noundef %33682, ptr noundef @.str.4)
  %33684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33685 = load i32, ptr %33684, align 4, !tbaa !5
  %33686 = call ptr @s2n_strerror_debug(i32 noundef %33685, ptr noundef @.str.4)
  %33687 = call ptr @__errno_location() #12
  %33688 = load i32, ptr %33687, align 4, !tbaa !5
  %33689 = call ptr @strerror(i32 noundef %33688) #11
  %33690 = call ptr @__errno_location() #12
  %33691 = load i32, ptr %33690, align 4, !tbaa !5
  %33692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33679, ptr noundef @.str.5, i32 noundef %33680, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 2035, ptr noundef %33683, ptr noundef %33686, ptr noundef %33689, i32 noundef %33691) #11
  br label %33693

33693:                                            ; preds = %33676, %33659
  call void @llvm.lifetime.end.p0(i64 4, ptr %1046) #11
  br label %33694

33694:                                            ; preds = %33693
  br label %33695

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

33696:                                            ; No predecessors!
  br label %33697

33697:                                            ; preds = %33696
  br label %33698

33698:                                            ; preds = %33697, %33638
  br label %33699

33699:                                            ; preds = %33698
  br label %33700

33700:                                            ; preds = %33699
  br label %33701

33701:                                            ; preds = %33700
  %33702 = load i32, ptr @test_count, align 4, !tbaa !5
  %33703 = add nsw i32 %33702, 1
  store i32 %33703, ptr @test_count, align 4, !tbaa !5
  %33704 = load ptr, ptr %1042, align 8, !tbaa !9
  %33705 = getelementptr inbounds %struct.s2n_config, ptr %33704, i32 0, i32 37
  %33706 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %33705)
  %33707 = icmp ne i8 %33706, 0
  br i1 %33707, label %33761, label %33708

33708:                                            ; preds = %33701
  br label %33709

33709:                                            ; preds = %33708
  br label %33710

33710:                                            ; preds = %33709
  call void @llvm.lifetime.start.p0(i64 4, ptr %1047) #11
  %33711 = call ptr @__errno_location() #12
  %33712 = load i32, ptr %33711, align 4, !tbaa !5
  store i32 %33712, ptr %1047, align 4, !tbaa !5
  %33713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33714 = call i32 @s2n_print_stacktrace(ptr noundef %33713)
  %33715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33716 = trunc i8 %33715 to i1
  br i1 %33716, label %33717, label %33739

33717:                                            ; preds = %33710
  %33718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33719 = call i32 @fileno(ptr noundef %33718) #11
  %33720 = call i32 @isatty(i32 noundef %33719) #11
  %33721 = icmp ne i32 %33720, 0
  br i1 %33721, label %33722, label %33739

33722:                                            ; preds = %33717
  %33723 = load i32, ptr %1047, align 4, !tbaa !5
  %33724 = call ptr @__errno_location() #12
  store i32 %33723, ptr %33724, align 4, !tbaa !5
  %33725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33726 = load i32, ptr @test_count, align 4, !tbaa !5
  %33727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33728 = load i32, ptr %33727, align 4, !tbaa !5
  %33729 = call ptr @s2n_strerror(i32 noundef %33728, ptr noundef @.str.4)
  %33730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33731 = load i32, ptr %33730, align 4, !tbaa !5
  %33732 = call ptr @s2n_strerror_debug(i32 noundef %33731, ptr noundef @.str.4)
  %33733 = call ptr @__errno_location() #12
  %33734 = load i32, ptr %33733, align 4, !tbaa !5
  %33735 = call ptr @strerror(i32 noundef %33734) #11
  %33736 = call ptr @__errno_location() #12
  %33737 = load i32, ptr %33736, align 4, !tbaa !5
  %33738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33725, ptr noundef @.str.2, i32 noundef %33726, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2036, ptr noundef %33729, ptr noundef %33732, ptr noundef %33735, i32 noundef %33737) #11
  br label %33756

33739:                                            ; preds = %33717, %33710
  %33740 = load i32, ptr %1047, align 4, !tbaa !5
  %33741 = call ptr @__errno_location() #12
  store i32 %33740, ptr %33741, align 4, !tbaa !5
  %33742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33743 = load i32, ptr @test_count, align 4, !tbaa !5
  %33744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33745 = load i32, ptr %33744, align 4, !tbaa !5
  %33746 = call ptr @s2n_strerror(i32 noundef %33745, ptr noundef @.str.4)
  %33747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33748 = load i32, ptr %33747, align 4, !tbaa !5
  %33749 = call ptr @s2n_strerror_debug(i32 noundef %33748, ptr noundef @.str.4)
  %33750 = call ptr @__errno_location() #12
  %33751 = load i32, ptr %33750, align 4, !tbaa !5
  %33752 = call ptr @strerror(i32 noundef %33751) #11
  %33753 = call ptr @__errno_location() #12
  %33754 = load i32, ptr %33753, align 4, !tbaa !5
  %33755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33742, ptr noundef @.str.5, i32 noundef %33743, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2036, ptr noundef %33746, ptr noundef %33749, ptr noundef %33752, i32 noundef %33754) #11
  br label %33756

33756:                                            ; preds = %33739, %33722
  call void @llvm.lifetime.end.p0(i64 4, ptr %1047) #11
  br label %33757

33757:                                            ; preds = %33756
  br label %33758

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

33759:                                            ; No predecessors!
  br label %33760

33760:                                            ; preds = %33759
  br label %33761

33761:                                            ; preds = %33760, %33701
  br label %33762

33762:                                            ; preds = %33761
  br label %33763

33763:                                            ; preds = %33762
  br label %33764

33764:                                            ; preds = %33763
  %33765 = load i32, ptr @test_count, align 4, !tbaa !5
  %33766 = add nsw i32 %33765, 1
  store i32 %33766, ptr @test_count, align 4, !tbaa !5
  %33767 = load ptr, ptr %1042, align 8, !tbaa !9
  %33768 = call i32 @s2n_config_wipe_trust_store(ptr noundef %33767)
  %33769 = icmp eq i32 %33768, -1
  br i1 %33769, label %33770, label %33823

33770:                                            ; preds = %33764
  br label %33771

33771:                                            ; preds = %33770
  br label %33772

33772:                                            ; preds = %33771
  call void @llvm.lifetime.start.p0(i64 4, ptr %1048) #11
  %33773 = call ptr @__errno_location() #12
  %33774 = load i32, ptr %33773, align 4, !tbaa !5
  store i32 %33774, ptr %1048, align 4, !tbaa !5
  %33775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33776 = call i32 @s2n_print_stacktrace(ptr noundef %33775)
  %33777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33778 = trunc i8 %33777 to i1
  br i1 %33778, label %33779, label %33801

33779:                                            ; preds = %33772
  %33780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33781 = call i32 @fileno(ptr noundef %33780) #11
  %33782 = call i32 @isatty(i32 noundef %33781) #11
  %33783 = icmp ne i32 %33782, 0
  br i1 %33783, label %33784, label %33801

33784:                                            ; preds = %33779
  %33785 = load i32, ptr %1048, align 4, !tbaa !5
  %33786 = call ptr @__errno_location() #12
  store i32 %33785, ptr %33786, align 4, !tbaa !5
  %33787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33788 = load i32, ptr @test_count, align 4, !tbaa !5
  %33789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33790 = load i32, ptr %33789, align 4, !tbaa !5
  %33791 = call ptr @s2n_strerror(i32 noundef %33790, ptr noundef @.str.4)
  %33792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33793 = load i32, ptr %33792, align 4, !tbaa !5
  %33794 = call ptr @s2n_strerror_debug(i32 noundef %33793, ptr noundef @.str.4)
  %33795 = call ptr @__errno_location() #12
  %33796 = load i32, ptr %33795, align 4, !tbaa !5
  %33797 = call ptr @strerror(i32 noundef %33796) #11
  %33798 = call ptr @__errno_location() #12
  %33799 = load i32, ptr %33798, align 4, !tbaa !5
  %33800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33787, ptr noundef @.str.2, i32 noundef %33788, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2038, ptr noundef %33791, ptr noundef %33794, ptr noundef %33797, i32 noundef %33799) #11
  br label %33818

33801:                                            ; preds = %33779, %33772
  %33802 = load i32, ptr %1048, align 4, !tbaa !5
  %33803 = call ptr @__errno_location() #12
  store i32 %33802, ptr %33803, align 4, !tbaa !5
  %33804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33805 = load i32, ptr @test_count, align 4, !tbaa !5
  %33806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33807 = load i32, ptr %33806, align 4, !tbaa !5
  %33808 = call ptr @s2n_strerror(i32 noundef %33807, ptr noundef @.str.4)
  %33809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33810 = load i32, ptr %33809, align 4, !tbaa !5
  %33811 = call ptr @s2n_strerror_debug(i32 noundef %33810, ptr noundef @.str.4)
  %33812 = call ptr @__errno_location() #12
  %33813 = load i32, ptr %33812, align 4, !tbaa !5
  %33814 = call ptr @strerror(i32 noundef %33813) #11
  %33815 = call ptr @__errno_location() #12
  %33816 = load i32, ptr %33815, align 4, !tbaa !5
  %33817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33804, ptr noundef @.str.5, i32 noundef %33805, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2038, ptr noundef %33808, ptr noundef %33811, ptr noundef %33814, i32 noundef %33816) #11
  br label %33818

33818:                                            ; preds = %33801, %33784
  call void @llvm.lifetime.end.p0(i64 4, ptr %1048) #11
  br label %33819

33819:                                            ; preds = %33818
  br label %33820

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

33821:                                            ; No predecessors!
  br label %33822

33822:                                            ; preds = %33821
  br label %33823

33823:                                            ; preds = %33822, %33764
  br label %33824

33824:                                            ; preds = %33823
  br label %33825

33825:                                            ; preds = %33824
  br label %33826

33826:                                            ; preds = %33825
  %33827 = load i32, ptr @test_count, align 4, !tbaa !5
  %33828 = add nsw i32 %33827, 1
  store i32 %33828, ptr @test_count, align 4, !tbaa !5
  %33829 = load ptr, ptr %1042, align 8, !tbaa !9
  %33830 = getelementptr inbounds %struct.s2n_config, ptr %33829, i32 0, i32 37
  %33831 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %33830)
  %33832 = icmp ne i8 %33831, 0
  br i1 %33832, label %33833, label %33886

33833:                                            ; preds = %33826
  br label %33834

33834:                                            ; preds = %33833
  br label %33835

33835:                                            ; preds = %33834
  call void @llvm.lifetime.start.p0(i64 4, ptr %1049) #11
  %33836 = call ptr @__errno_location() #12
  %33837 = load i32, ptr %33836, align 4, !tbaa !5
  store i32 %33837, ptr %1049, align 4, !tbaa !5
  %33838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33839 = call i32 @s2n_print_stacktrace(ptr noundef %33838)
  %33840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33841 = trunc i8 %33840 to i1
  br i1 %33841, label %33842, label %33864

33842:                                            ; preds = %33835
  %33843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33844 = call i32 @fileno(ptr noundef %33843) #11
  %33845 = call i32 @isatty(i32 noundef %33844) #11
  %33846 = icmp ne i32 %33845, 0
  br i1 %33846, label %33847, label %33864

33847:                                            ; preds = %33842
  %33848 = load i32, ptr %1049, align 4, !tbaa !5
  %33849 = call ptr @__errno_location() #12
  store i32 %33848, ptr %33849, align 4, !tbaa !5
  %33850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33851 = load i32, ptr @test_count, align 4, !tbaa !5
  %33852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33853 = load i32, ptr %33852, align 4, !tbaa !5
  %33854 = call ptr @s2n_strerror(i32 noundef %33853, ptr noundef @.str.4)
  %33855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33856 = load i32, ptr %33855, align 4, !tbaa !5
  %33857 = call ptr @s2n_strerror_debug(i32 noundef %33856, ptr noundef @.str.4)
  %33858 = call ptr @__errno_location() #12
  %33859 = load i32, ptr %33858, align 4, !tbaa !5
  %33860 = call ptr @strerror(i32 noundef %33859) #11
  %33861 = call ptr @__errno_location() #12
  %33862 = load i32, ptr %33861, align 4, !tbaa !5
  %33863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33850, ptr noundef @.str.2, i32 noundef %33851, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2039, ptr noundef %33854, ptr noundef %33857, ptr noundef %33860, i32 noundef %33862) #11
  br label %33881

33864:                                            ; preds = %33842, %33835
  %33865 = load i32, ptr %1049, align 4, !tbaa !5
  %33866 = call ptr @__errno_location() #12
  store i32 %33865, ptr %33866, align 4, !tbaa !5
  %33867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33868 = load i32, ptr @test_count, align 4, !tbaa !5
  %33869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33870 = load i32, ptr %33869, align 4, !tbaa !5
  %33871 = call ptr @s2n_strerror(i32 noundef %33870, ptr noundef @.str.4)
  %33872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33873 = load i32, ptr %33872, align 4, !tbaa !5
  %33874 = call ptr @s2n_strerror_debug(i32 noundef %33873, ptr noundef @.str.4)
  %33875 = call ptr @__errno_location() #12
  %33876 = load i32, ptr %33875, align 4, !tbaa !5
  %33877 = call ptr @strerror(i32 noundef %33876) #11
  %33878 = call ptr @__errno_location() #12
  %33879 = load i32, ptr %33878, align 4, !tbaa !5
  %33880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33867, ptr noundef @.str.5, i32 noundef %33868, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2039, ptr noundef %33871, ptr noundef %33874, ptr noundef %33877, i32 noundef %33879) #11
  br label %33881

33881:                                            ; preds = %33864, %33847
  call void @llvm.lifetime.end.p0(i64 4, ptr %1049) #11
  br label %33882

33882:                                            ; preds = %33881
  br label %33883

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

33884:                                            ; No predecessors!
  br label %33885

33885:                                            ; preds = %33884
  br label %33886

33886:                                            ; preds = %33885, %33826
  br label %33887

33887:                                            ; preds = %33886
  br label %33888

33888:                                            ; preds = %33887
  %33889 = load ptr, ptr %1043, align 8, !tbaa !9
  call void @free(ptr noundef %33889) #11
  %33890 = load ptr, ptr %1042, align 8, !tbaa !9
  %33891 = call i32 @s2n_config_free(ptr noundef %33890)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1043) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1042) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1050) #11
  %33892 = call ptr @s2n_config_new()
  store ptr %33892, ptr %1050, align 8, !tbaa !9
  br label %33893

33893:                                            ; preds = %33888
  %33894 = load i32, ptr @test_count, align 4, !tbaa !5
  %33895 = add nsw i32 %33894, 1
  store i32 %33895, ptr @test_count, align 4, !tbaa !5
  %33896 = load ptr, ptr %1050, align 8, !tbaa !9
  %33897 = call i32 @s2n_config_wipe_trust_store(ptr noundef %33896)
  %33898 = icmp eq i32 %33897, -1
  br i1 %33898, label %33899, label %33952

33899:                                            ; preds = %33893
  br label %33900

33900:                                            ; preds = %33899
  br label %33901

33901:                                            ; preds = %33900
  call void @llvm.lifetime.start.p0(i64 4, ptr %1051) #11
  %33902 = call ptr @__errno_location() #12
  %33903 = load i32, ptr %33902, align 4, !tbaa !5
  store i32 %33903, ptr %1051, align 4, !tbaa !5
  %33904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33905 = call i32 @s2n_print_stacktrace(ptr noundef %33904)
  %33906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33907 = trunc i8 %33906 to i1
  br i1 %33907, label %33908, label %33930

33908:                                            ; preds = %33901
  %33909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33910 = call i32 @fileno(ptr noundef %33909) #11
  %33911 = call i32 @isatty(i32 noundef %33910) #11
  %33912 = icmp ne i32 %33911, 0
  br i1 %33912, label %33913, label %33930

33913:                                            ; preds = %33908
  %33914 = load i32, ptr %1051, align 4, !tbaa !5
  %33915 = call ptr @__errno_location() #12
  store i32 %33914, ptr %33915, align 4, !tbaa !5
  %33916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33917 = load i32, ptr @test_count, align 4, !tbaa !5
  %33918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33919 = load i32, ptr %33918, align 4, !tbaa !5
  %33920 = call ptr @s2n_strerror(i32 noundef %33919, ptr noundef @.str.4)
  %33921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33922 = load i32, ptr %33921, align 4, !tbaa !5
  %33923 = call ptr @s2n_strerror_debug(i32 noundef %33922, ptr noundef @.str.4)
  %33924 = call ptr @__errno_location() #12
  %33925 = load i32, ptr %33924, align 4, !tbaa !5
  %33926 = call ptr @strerror(i32 noundef %33925) #11
  %33927 = call ptr @__errno_location() #12
  %33928 = load i32, ptr %33927, align 4, !tbaa !5
  %33929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33916, ptr noundef @.str.2, i32 noundef %33917, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2047, ptr noundef %33920, ptr noundef %33923, ptr noundef %33926, i32 noundef %33928) #11
  br label %33947

33930:                                            ; preds = %33908, %33901
  %33931 = load i32, ptr %1051, align 4, !tbaa !5
  %33932 = call ptr @__errno_location() #12
  store i32 %33931, ptr %33932, align 4, !tbaa !5
  %33933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33934 = load i32, ptr @test_count, align 4, !tbaa !5
  %33935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33936 = load i32, ptr %33935, align 4, !tbaa !5
  %33937 = call ptr @s2n_strerror(i32 noundef %33936, ptr noundef @.str.4)
  %33938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33939 = load i32, ptr %33938, align 4, !tbaa !5
  %33940 = call ptr @s2n_strerror_debug(i32 noundef %33939, ptr noundef @.str.4)
  %33941 = call ptr @__errno_location() #12
  %33942 = load i32, ptr %33941, align 4, !tbaa !5
  %33943 = call ptr @strerror(i32 noundef %33942) #11
  %33944 = call ptr @__errno_location() #12
  %33945 = load i32, ptr %33944, align 4, !tbaa !5
  %33946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33933, ptr noundef @.str.5, i32 noundef %33934, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 2047, ptr noundef %33937, ptr noundef %33940, ptr noundef %33943, i32 noundef %33945) #11
  br label %33947

33947:                                            ; preds = %33930, %33913
  call void @llvm.lifetime.end.p0(i64 4, ptr %1051) #11
  br label %33948

33948:                                            ; preds = %33947
  br label %33949

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

33950:                                            ; No predecessors!
  br label %33951

33951:                                            ; preds = %33950
  br label %33952

33952:                                            ; preds = %33951, %33893
  br label %33953

33953:                                            ; preds = %33952
  br label %33954

33954:                                            ; preds = %33953
  br label %33955

33955:                                            ; preds = %33954
  %33956 = load i32, ptr @test_count, align 4, !tbaa !5
  %33957 = add nsw i32 %33956, 1
  store i32 %33957, ptr @test_count, align 4, !tbaa !5
  %33958 = load ptr, ptr %1050, align 8, !tbaa !9
  %33959 = getelementptr inbounds %struct.s2n_config, ptr %33958, i32 0, i32 37
  %33960 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %33959)
  %33961 = icmp ne i8 %33960, 0
  br i1 %33961, label %33962, label %34015

33962:                                            ; preds = %33955
  br label %33963

33963:                                            ; preds = %33962
  br label %33964

33964:                                            ; preds = %33963
  call void @llvm.lifetime.start.p0(i64 4, ptr %1052) #11
  %33965 = call ptr @__errno_location() #12
  %33966 = load i32, ptr %33965, align 4, !tbaa !5
  store i32 %33966, ptr %1052, align 4, !tbaa !5
  %33967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33968 = call i32 @s2n_print_stacktrace(ptr noundef %33967)
  %33969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33970 = trunc i8 %33969 to i1
  br i1 %33970, label %33971, label %33993

33971:                                            ; preds = %33964
  %33972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33973 = call i32 @fileno(ptr noundef %33972) #11
  %33974 = call i32 @isatty(i32 noundef %33973) #11
  %33975 = icmp ne i32 %33974, 0
  br i1 %33975, label %33976, label %33993

33976:                                            ; preds = %33971
  %33977 = load i32, ptr %1052, align 4, !tbaa !5
  %33978 = call ptr @__errno_location() #12
  store i32 %33977, ptr %33978, align 4, !tbaa !5
  %33979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33980 = load i32, ptr @test_count, align 4, !tbaa !5
  %33981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33982 = load i32, ptr %33981, align 4, !tbaa !5
  %33983 = call ptr @s2n_strerror(i32 noundef %33982, ptr noundef @.str.4)
  %33984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33985 = load i32, ptr %33984, align 4, !tbaa !5
  %33986 = call ptr @s2n_strerror_debug(i32 noundef %33985, ptr noundef @.str.4)
  %33987 = call ptr @__errno_location() #12
  %33988 = load i32, ptr %33987, align 4, !tbaa !5
  %33989 = call ptr @strerror(i32 noundef %33988) #11
  %33990 = call ptr @__errno_location() #12
  %33991 = load i32, ptr %33990, align 4, !tbaa !5
  %33992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33979, ptr noundef @.str.2, i32 noundef %33980, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2048, ptr noundef %33983, ptr noundef %33986, ptr noundef %33989, i32 noundef %33991) #11
  br label %34010

33993:                                            ; preds = %33971, %33964
  %33994 = load i32, ptr %1052, align 4, !tbaa !5
  %33995 = call ptr @__errno_location() #12
  store i32 %33994, ptr %33995, align 4, !tbaa !5
  %33996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33997 = load i32, ptr @test_count, align 4, !tbaa !5
  %33998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33999 = load i32, ptr %33998, align 4, !tbaa !5
  %34000 = call ptr @s2n_strerror(i32 noundef %33999, ptr noundef @.str.4)
  %34001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34002 = load i32, ptr %34001, align 4, !tbaa !5
  %34003 = call ptr @s2n_strerror_debug(i32 noundef %34002, ptr noundef @.str.4)
  %34004 = call ptr @__errno_location() #12
  %34005 = load i32, ptr %34004, align 4, !tbaa !5
  %34006 = call ptr @strerror(i32 noundef %34005) #11
  %34007 = call ptr @__errno_location() #12
  %34008 = load i32, ptr %34007, align 4, !tbaa !5
  %34009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33996, ptr noundef @.str.5, i32 noundef %33997, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 2048, ptr noundef %34000, ptr noundef %34003, ptr noundef %34006, i32 noundef %34008) #11
  br label %34010

34010:                                            ; preds = %33993, %33976
  call void @llvm.lifetime.end.p0(i64 4, ptr %1052) #11
  br label %34011

34011:                                            ; preds = %34010
  br label %34012

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

34013:                                            ; No predecessors!
  br label %34014

34014:                                            ; preds = %34013
  br label %34015

34015:                                            ; preds = %34014, %33955
  br label %34016

34016:                                            ; preds = %34015
  br label %34017

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

34018:                                            ; preds = %34017
  %34019 = load i32, ptr @test_count, align 4, !tbaa !5
  %34020 = add nsw i32 %34019, 1
  store i32 %34020, ptr @test_count, align 4, !tbaa !5
  %34021 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %34021, ptr %1053, align 8, !tbaa !9
  %34022 = icmp eq ptr %34021, null
  br i1 %34022, label %34023, label %34076

34023:                                            ; preds = %34018
  br label %34024

34024:                                            ; preds = %34023
  br label %34025

34025:                                            ; preds = %34024
  call void @llvm.lifetime.start.p0(i64 4, ptr %1054) #11
  %34026 = call ptr @__errno_location() #12
  %34027 = load i32, ptr %34026, align 4, !tbaa !5
  store i32 %34027, ptr %1054, align 4, !tbaa !5
  %34028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34029 = call i32 @s2n_print_stacktrace(ptr noundef %34028)
  %34030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34031 = trunc i8 %34030 to i1
  br i1 %34031, label %34032, label %34054

34032:                                            ; preds = %34025
  %34033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34034 = call i32 @fileno(ptr noundef %34033) #11
  %34035 = call i32 @isatty(i32 noundef %34034) #11
  %34036 = icmp ne i32 %34035, 0
  br i1 %34036, label %34037, label %34054

34037:                                            ; preds = %34032
  %34038 = load i32, ptr %1054, align 4, !tbaa !5
  %34039 = call ptr @__errno_location() #12
  store i32 %34038, ptr %34039, align 4, !tbaa !5
  %34040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34041 = load i32, ptr @test_count, align 4, !tbaa !5
  %34042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34043 = load i32, ptr %34042, align 4, !tbaa !5
  %34044 = call ptr @s2n_strerror(i32 noundef %34043, ptr noundef @.str.4)
  %34045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34046 = load i32, ptr %34045, align 4, !tbaa !5
  %34047 = call ptr @s2n_strerror_debug(i32 noundef %34046, ptr noundef @.str.4)
  %34048 = call ptr @__errno_location() #12
  %34049 = load i32, ptr %34048, align 4, !tbaa !5
  %34050 = call ptr @strerror(i32 noundef %34049) #11
  %34051 = call ptr @__errno_location() #12
  %34052 = load i32, ptr %34051, align 4, !tbaa !5
  %34053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34040, ptr noundef @.str.2, i32 noundef %34041, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2051, ptr noundef %34044, ptr noundef %34047, ptr noundef %34050, i32 noundef %34052) #11
  br label %34071

34054:                                            ; preds = %34032, %34025
  %34055 = load i32, ptr %1054, align 4, !tbaa !5
  %34056 = call ptr @__errno_location() #12
  store i32 %34055, ptr %34056, align 4, !tbaa !5
  %34057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34058 = load i32, ptr @test_count, align 4, !tbaa !5
  %34059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34060 = load i32, ptr %34059, align 4, !tbaa !5
  %34061 = call ptr @s2n_strerror(i32 noundef %34060, ptr noundef @.str.4)
  %34062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34063 = load i32, ptr %34062, align 4, !tbaa !5
  %34064 = call ptr @s2n_strerror_debug(i32 noundef %34063, ptr noundef @.str.4)
  %34065 = call ptr @__errno_location() #12
  %34066 = load i32, ptr %34065, align 4, !tbaa !5
  %34067 = call ptr @strerror(i32 noundef %34066) #11
  %34068 = call ptr @__errno_location() #12
  %34069 = load i32, ptr %34068, align 4, !tbaa !5
  %34070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34057, ptr noundef @.str.5, i32 noundef %34058, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2051, ptr noundef %34061, ptr noundef %34064, ptr noundef %34067, i32 noundef %34069) #11
  br label %34071

34071:                                            ; preds = %34054, %34037
  call void @llvm.lifetime.end.p0(i64 4, ptr %1054) #11
  br label %34072

34072:                                            ; preds = %34071
  br label %34073

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

34074:                                            ; No predecessors!
  br label %34075

34075:                                            ; preds = %34074
  br label %34076

34076:                                            ; preds = %34075, %34018
  br label %34077

34077:                                            ; preds = %34076
  br label %34078

34078:                                            ; preds = %34077
  br label %34079

34079:                                            ; preds = %34078
  %34080 = load i32, ptr @test_count, align 4, !tbaa !5
  %34081 = add nsw i32 %34080, 1
  store i32 %34081, ptr @test_count, align 4, !tbaa !5
  %34082 = load ptr, ptr %1053, align 8, !tbaa !9
  %34083 = call i32 @s2n_read_test_pem(ptr noundef @.str.11, ptr noundef %34082, i64 noundef 12000)
  %34084 = icmp eq i32 %34083, -1
  br i1 %34084, label %34085, label %34138

34085:                                            ; preds = %34079
  br label %34086

34086:                                            ; preds = %34085
  br label %34087

34087:                                            ; preds = %34086
  call void @llvm.lifetime.start.p0(i64 4, ptr %1055) #11
  %34088 = call ptr @__errno_location() #12
  %34089 = load i32, ptr %34088, align 4, !tbaa !5
  store i32 %34089, ptr %1055, align 4, !tbaa !5
  %34090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34091 = call i32 @s2n_print_stacktrace(ptr noundef %34090)
  %34092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34093 = trunc i8 %34092 to i1
  br i1 %34093, label %34094, label %34116

34094:                                            ; preds = %34087
  %34095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34096 = call i32 @fileno(ptr noundef %34095) #11
  %34097 = call i32 @isatty(i32 noundef %34096) #11
  %34098 = icmp ne i32 %34097, 0
  br i1 %34098, label %34099, label %34116

34099:                                            ; preds = %34094
  %34100 = load i32, ptr %1055, align 4, !tbaa !5
  %34101 = call ptr @__errno_location() #12
  store i32 %34100, ptr %34101, align 4, !tbaa !5
  %34102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34103 = load i32, ptr @test_count, align 4, !tbaa !5
  %34104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34105 = load i32, ptr %34104, align 4, !tbaa !5
  %34106 = call ptr @s2n_strerror(i32 noundef %34105, ptr noundef @.str.4)
  %34107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34108 = load i32, ptr %34107, align 4, !tbaa !5
  %34109 = call ptr @s2n_strerror_debug(i32 noundef %34108, ptr noundef @.str.4)
  %34110 = call ptr @__errno_location() #12
  %34111 = load i32, ptr %34110, align 4, !tbaa !5
  %34112 = call ptr @strerror(i32 noundef %34111) #11
  %34113 = call ptr @__errno_location() #12
  %34114 = load i32, ptr %34113, align 4, !tbaa !5
  %34115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34102, ptr noundef @.str.2, i32 noundef %34103, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 2052, ptr noundef %34106, ptr noundef %34109, ptr noundef %34112, i32 noundef %34114) #11
  br label %34133

34116:                                            ; preds = %34094, %34087
  %34117 = load i32, ptr %1055, align 4, !tbaa !5
  %34118 = call ptr @__errno_location() #12
  store i32 %34117, ptr %34118, align 4, !tbaa !5
  %34119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34120 = load i32, ptr @test_count, align 4, !tbaa !5
  %34121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34122 = load i32, ptr %34121, align 4, !tbaa !5
  %34123 = call ptr @s2n_strerror(i32 noundef %34122, ptr noundef @.str.4)
  %34124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34125 = load i32, ptr %34124, align 4, !tbaa !5
  %34126 = call ptr @s2n_strerror_debug(i32 noundef %34125, ptr noundef @.str.4)
  %34127 = call ptr @__errno_location() #12
  %34128 = load i32, ptr %34127, align 4, !tbaa !5
  %34129 = call ptr @strerror(i32 noundef %34128) #11
  %34130 = call ptr @__errno_location() #12
  %34131 = load i32, ptr %34130, align 4, !tbaa !5
  %34132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34119, ptr noundef @.str.5, i32 noundef %34120, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 2052, ptr noundef %34123, ptr noundef %34126, ptr noundef %34129, i32 noundef %34131) #11
  br label %34133

34133:                                            ; preds = %34116, %34099
  call void @llvm.lifetime.end.p0(i64 4, ptr %1055) #11
  br label %34134

34134:                                            ; preds = %34133
  br label %34135

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

34136:                                            ; No predecessors!
  br label %34137

34137:                                            ; preds = %34136
  br label %34138

34138:                                            ; preds = %34137, %34079
  br label %34139

34139:                                            ; preds = %34138
  br label %34140

34140:                                            ; preds = %34139
  br label %34141

34141:                                            ; preds = %34140
  %34142 = load i32, ptr @test_count, align 4, !tbaa !5
  %34143 = add nsw i32 %34142, 1
  store i32 %34143, ptr @test_count, align 4, !tbaa !5
  %34144 = load ptr, ptr %1050, align 8, !tbaa !9
  %34145 = load ptr, ptr %1053, align 8, !tbaa !9
  %34146 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %34144, ptr noundef %34145)
  %34147 = icmp eq i32 %34146, -1
  br i1 %34147, label %34148, label %34201

34148:                                            ; preds = %34141
  br label %34149

34149:                                            ; preds = %34148
  br label %34150

34150:                                            ; preds = %34149
  call void @llvm.lifetime.start.p0(i64 4, ptr %1056) #11
  %34151 = call ptr @__errno_location() #12
  %34152 = load i32, ptr %34151, align 4, !tbaa !5
  store i32 %34152, ptr %1056, align 4, !tbaa !5
  %34153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34154 = call i32 @s2n_print_stacktrace(ptr noundef %34153)
  %34155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34156 = trunc i8 %34155 to i1
  br i1 %34156, label %34157, label %34179

34157:                                            ; preds = %34150
  %34158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34159 = call i32 @fileno(ptr noundef %34158) #11
  %34160 = call i32 @isatty(i32 noundef %34159) #11
  %34161 = icmp ne i32 %34160, 0
  br i1 %34161, label %34162, label %34179

34162:                                            ; preds = %34157
  %34163 = load i32, ptr %1056, align 4, !tbaa !5
  %34164 = call ptr @__errno_location() #12
  store i32 %34163, ptr %34164, align 4, !tbaa !5
  %34165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34166 = load i32, ptr @test_count, align 4, !tbaa !5
  %34167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34168 = load i32, ptr %34167, align 4, !tbaa !5
  %34169 = call ptr @s2n_strerror(i32 noundef %34168, ptr noundef @.str.4)
  %34170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34171 = load i32, ptr %34170, align 4, !tbaa !5
  %34172 = call ptr @s2n_strerror_debug(i32 noundef %34171, ptr noundef @.str.4)
  %34173 = call ptr @__errno_location() #12
  %34174 = load i32, ptr %34173, align 4, !tbaa !5
  %34175 = call ptr @strerror(i32 noundef %34174) #11
  %34176 = call ptr @__errno_location() #12
  %34177 = load i32, ptr %34176, align 4, !tbaa !5
  %34178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34165, ptr noundef @.str.2, i32 noundef %34166, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 2053, ptr noundef %34169, ptr noundef %34172, ptr noundef %34175, i32 noundef %34177) #11
  br label %34196

34179:                                            ; preds = %34157, %34150
  %34180 = load i32, ptr %1056, align 4, !tbaa !5
  %34181 = call ptr @__errno_location() #12
  store i32 %34180, ptr %34181, align 4, !tbaa !5
  %34182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34183 = load i32, ptr @test_count, align 4, !tbaa !5
  %34184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34185 = load i32, ptr %34184, align 4, !tbaa !5
  %34186 = call ptr @s2n_strerror(i32 noundef %34185, ptr noundef @.str.4)
  %34187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34188 = load i32, ptr %34187, align 4, !tbaa !5
  %34189 = call ptr @s2n_strerror_debug(i32 noundef %34188, ptr noundef @.str.4)
  %34190 = call ptr @__errno_location() #12
  %34191 = load i32, ptr %34190, align 4, !tbaa !5
  %34192 = call ptr @strerror(i32 noundef %34191) #11
  %34193 = call ptr @__errno_location() #12
  %34194 = load i32, ptr %34193, align 4, !tbaa !5
  %34195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34182, ptr noundef @.str.5, i32 noundef %34183, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 2053, ptr noundef %34186, ptr noundef %34189, ptr noundef %34192, i32 noundef %34194) #11
  br label %34196

34196:                                            ; preds = %34179, %34162
  call void @llvm.lifetime.end.p0(i64 4, ptr %1056) #11
  br label %34197

34197:                                            ; preds = %34196
  br label %34198

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

34199:                                            ; No predecessors!
  br label %34200

34200:                                            ; preds = %34199
  br label %34201

34201:                                            ; preds = %34200, %34141
  br label %34202

34202:                                            ; preds = %34201
  br label %34203

34203:                                            ; preds = %34202
  br label %34204

34204:                                            ; preds = %34203
  %34205 = load i32, ptr @test_count, align 4, !tbaa !5
  %34206 = add nsw i32 %34205, 1
  store i32 %34206, ptr @test_count, align 4, !tbaa !5
  %34207 = load ptr, ptr %1050, align 8, !tbaa !9
  %34208 = getelementptr inbounds %struct.s2n_config, ptr %34207, i32 0, i32 37
  %34209 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef %34208)
  %34210 = icmp ne i8 %34209, 0
  br i1 %34210, label %34264, label %34211

34211:                                            ; preds = %34204
  br label %34212

34212:                                            ; preds = %34211
  br label %34213

34213:                                            ; preds = %34212
  call void @llvm.lifetime.start.p0(i64 4, ptr %1057) #11
  %34214 = call ptr @__errno_location() #12
  %34215 = load i32, ptr %34214, align 4, !tbaa !5
  store i32 %34215, ptr %1057, align 4, !tbaa !5
  %34216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34217 = call i32 @s2n_print_stacktrace(ptr noundef %34216)
  %34218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34219 = trunc i8 %34218 to i1
  br i1 %34219, label %34220, label %34242

34220:                                            ; preds = %34213
  %34221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34222 = call i32 @fileno(ptr noundef %34221) #11
  %34223 = call i32 @isatty(i32 noundef %34222) #11
  %34224 = icmp ne i32 %34223, 0
  br i1 %34224, label %34225, label %34242

34225:                                            ; preds = %34220
  %34226 = load i32, ptr %1057, align 4, !tbaa !5
  %34227 = call ptr @__errno_location() #12
  store i32 %34226, ptr %34227, align 4, !tbaa !5
  %34228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34229 = load i32, ptr @test_count, align 4, !tbaa !5
  %34230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34231 = load i32, ptr %34230, align 4, !tbaa !5
  %34232 = call ptr @s2n_strerror(i32 noundef %34231, ptr noundef @.str.4)
  %34233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34234 = load i32, ptr %34233, align 4, !tbaa !5
  %34235 = call ptr @s2n_strerror_debug(i32 noundef %34234, ptr noundef @.str.4)
  %34236 = call ptr @__errno_location() #12
  %34237 = load i32, ptr %34236, align 4, !tbaa !5
  %34238 = call ptr @strerror(i32 noundef %34237) #11
  %34239 = call ptr @__errno_location() #12
  %34240 = load i32, ptr %34239, align 4, !tbaa !5
  %34241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34228, ptr noundef @.str.2, i32 noundef %34229, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2054, ptr noundef %34232, ptr noundef %34235, ptr noundef %34238, i32 noundef %34240) #11
  br label %34259

34242:                                            ; preds = %34220, %34213
  %34243 = load i32, ptr %1057, align 4, !tbaa !5
  %34244 = call ptr @__errno_location() #12
  store i32 %34243, ptr %34244, align 4, !tbaa !5
  %34245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34246 = load i32, ptr @test_count, align 4, !tbaa !5
  %34247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34248 = load i32, ptr %34247, align 4, !tbaa !5
  %34249 = call ptr @s2n_strerror(i32 noundef %34248, ptr noundef @.str.4)
  %34250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34251 = load i32, ptr %34250, align 4, !tbaa !5
  %34252 = call ptr @s2n_strerror_debug(i32 noundef %34251, ptr noundef @.str.4)
  %34253 = call ptr @__errno_location() #12
  %34254 = load i32, ptr %34253, align 4, !tbaa !5
  %34255 = call ptr @strerror(i32 noundef %34254) #11
  %34256 = call ptr @__errno_location() #12
  %34257 = load i32, ptr %34256, align 4, !tbaa !5
  %34258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34245, ptr noundef @.str.5, i32 noundef %34246, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 2054, ptr noundef %34249, ptr noundef %34252, ptr noundef %34255, i32 noundef %34257) #11
  br label %34259

34259:                                            ; preds = %34242, %34225
  call void @llvm.lifetime.end.p0(i64 4, ptr %1057) #11
  br label %34260

34260:                                            ; preds = %34259
  br label %34261

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

34262:                                            ; No predecessors!
  br label %34263

34263:                                            ; preds = %34262
  br label %34264

34264:                                            ; preds = %34263, %34204
  br label %34265

34265:                                            ; preds = %34264
  br label %34266

34266:                                            ; preds = %34265
  %34267 = load ptr, ptr %1053, align 8, !tbaa !9
  call void @free(ptr noundef %34267) #11
  %34268 = load ptr, ptr %1050, align 8, !tbaa !9
  %34269 = call i32 @s2n_config_free(ptr noundef %34268)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1053) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1050) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1058) #11
  store ptr @.str.151, ptr %1058, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1059) #11
  store ptr @.str.152, ptr %1059, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1060) #11
  store ptr null, ptr %1060, align 8, !tbaa !9
  br label %34270

34270:                                            ; preds = %34266
  %34271 = load i32, ptr @test_count, align 4, !tbaa !5
  %34272 = add nsw i32 %34271, 1
  store i32 %34272, ptr @test_count, align 4, !tbaa !5
  %34273 = load ptr, ptr %1058, align 8, !tbaa !9
  %34274 = load ptr, ptr %1059, align 8, !tbaa !9
  %34275 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %1060, ptr noundef %34273, ptr noundef %34274)
  %34276 = icmp eq i32 %34275, -1
  br i1 %34276, label %34277, label %34330

34277:                                            ; preds = %34270
  br label %34278

34278:                                            ; preds = %34277
  br label %34279

34279:                                            ; preds = %34278
  call void @llvm.lifetime.start.p0(i64 4, ptr %1061) #11
  %34280 = call ptr @__errno_location() #12
  %34281 = load i32, ptr %34280, align 4, !tbaa !5
  store i32 %34281, ptr %1061, align 4, !tbaa !5
  %34282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34283 = call i32 @s2n_print_stacktrace(ptr noundef %34282)
  %34284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34285 = trunc i8 %34284 to i1
  br i1 %34285, label %34286, label %34308

34286:                                            ; preds = %34279
  %34287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34288 = call i32 @fileno(ptr noundef %34287) #11
  %34289 = call i32 @isatty(i32 noundef %34288) #11
  %34290 = icmp ne i32 %34289, 0
  br i1 %34290, label %34291, label %34308

34291:                                            ; preds = %34286
  %34292 = load i32, ptr %1061, align 4, !tbaa !5
  %34293 = call ptr @__errno_location() #12
  store i32 %34292, ptr %34293, align 4, !tbaa !5
  %34294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34295 = load i32, ptr @test_count, align 4, !tbaa !5
  %34296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34297 = load i32, ptr %34296, align 4, !tbaa !5
  %34298 = call ptr @s2n_strerror(i32 noundef %34297, ptr noundef @.str.4)
  %34299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34300 = load i32, ptr %34299, align 4, !tbaa !5
  %34301 = call ptr @s2n_strerror_debug(i32 noundef %34300, ptr noundef @.str.4)
  %34302 = call ptr @__errno_location() #12
  %34303 = load i32, ptr %34302, align 4, !tbaa !5
  %34304 = call ptr @strerror(i32 noundef %34303) #11
  %34305 = call ptr @__errno_location() #12
  %34306 = load i32, ptr %34305, align 4, !tbaa !5
  %34307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34294, ptr noundef @.str.2, i32 noundef %34295, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 2073, ptr noundef %34298, ptr noundef %34301, ptr noundef %34304, i32 noundef %34306) #11
  br label %34325

34308:                                            ; preds = %34286, %34279
  %34309 = load i32, ptr %1061, align 4, !tbaa !5
  %34310 = call ptr @__errno_location() #12
  store i32 %34309, ptr %34310, align 4, !tbaa !5
  %34311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34312 = load i32, ptr @test_count, align 4, !tbaa !5
  %34313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34314 = load i32, ptr %34313, align 4, !tbaa !5
  %34315 = call ptr @s2n_strerror(i32 noundef %34314, ptr noundef @.str.4)
  %34316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34317 = load i32, ptr %34316, align 4, !tbaa !5
  %34318 = call ptr @s2n_strerror_debug(i32 noundef %34317, ptr noundef @.str.4)
  %34319 = call ptr @__errno_location() #12
  %34320 = load i32, ptr %34319, align 4, !tbaa !5
  %34321 = call ptr @strerror(i32 noundef %34320) #11
  %34322 = call ptr @__errno_location() #12
  %34323 = load i32, ptr %34322, align 4, !tbaa !5
  %34324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34311, ptr noundef @.str.5, i32 noundef %34312, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 2073, ptr noundef %34315, ptr noundef %34318, ptr noundef %34321, i32 noundef %34323) #11
  br label %34325

34325:                                            ; preds = %34308, %34291
  call void @llvm.lifetime.end.p0(i64 4, ptr %1061) #11
  br label %34326

34326:                                            ; preds = %34325
  br label %34327

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

34328:                                            ; No predecessors!
  br label %34329

34329:                                            ; preds = %34328
  br label %34330

34330:                                            ; preds = %34329, %34270
  br label %34331

34331:                                            ; preds = %34330
  br label %34332

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

34333:                                            ; preds = %34332
  %34334 = load i32, ptr @test_count, align 4, !tbaa !5
  %34335 = add nsw i32 %34334, 1
  store i32 %34335, ptr @test_count, align 4, !tbaa !5
  %34336 = load ptr, ptr %1060, align 8, !tbaa !9
  %34337 = call i32 @s2n_cert_chain_get_cert(ptr noundef %34336, ptr noundef %1062, i32 noundef 0)
  %34338 = icmp eq i32 %34337, -1
  br i1 %34338, label %34339, label %34392

34339:                                            ; preds = %34333
  br label %34340

34340:                                            ; preds = %34339
  br label %34341

34341:                                            ; preds = %34340
  call void @llvm.lifetime.start.p0(i64 4, ptr %1063) #11
  %34342 = call ptr @__errno_location() #12
  %34343 = load i32, ptr %34342, align 4, !tbaa !5
  store i32 %34343, ptr %1063, align 4, !tbaa !5
  %34344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34345 = call i32 @s2n_print_stacktrace(ptr noundef %34344)
  %34346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34347 = trunc i8 %34346 to i1
  br i1 %34347, label %34348, label %34370

34348:                                            ; preds = %34341
  %34349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34350 = call i32 @fileno(ptr noundef %34349) #11
  %34351 = call i32 @isatty(i32 noundef %34350) #11
  %34352 = icmp ne i32 %34351, 0
  br i1 %34352, label %34353, label %34370

34353:                                            ; preds = %34348
  %34354 = load i32, ptr %1063, align 4, !tbaa !5
  %34355 = call ptr @__errno_location() #12
  store i32 %34354, ptr %34355, align 4, !tbaa !5
  %34356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34357 = load i32, ptr @test_count, align 4, !tbaa !5
  %34358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34359 = load i32, ptr %34358, align 4, !tbaa !5
  %34360 = call ptr @s2n_strerror(i32 noundef %34359, ptr noundef @.str.4)
  %34361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34362 = load i32, ptr %34361, align 4, !tbaa !5
  %34363 = call ptr @s2n_strerror_debug(i32 noundef %34362, ptr noundef @.str.4)
  %34364 = call ptr @__errno_location() #12
  %34365 = load i32, ptr %34364, align 4, !tbaa !5
  %34366 = call ptr @strerror(i32 noundef %34365) #11
  %34367 = call ptr @__errno_location() #12
  %34368 = load i32, ptr %34367, align 4, !tbaa !5
  %34369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34356, ptr noundef @.str.2, i32 noundef %34357, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 2075, ptr noundef %34360, ptr noundef %34363, ptr noundef %34366, i32 noundef %34368) #11
  br label %34387

34370:                                            ; preds = %34348, %34341
  %34371 = load i32, ptr %1063, align 4, !tbaa !5
  %34372 = call ptr @__errno_location() #12
  store i32 %34371, ptr %34372, align 4, !tbaa !5
  %34373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34374 = load i32, ptr @test_count, align 4, !tbaa !5
  %34375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34376 = load i32, ptr %34375, align 4, !tbaa !5
  %34377 = call ptr @s2n_strerror(i32 noundef %34376, ptr noundef @.str.4)
  %34378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34379 = load i32, ptr %34378, align 4, !tbaa !5
  %34380 = call ptr @s2n_strerror_debug(i32 noundef %34379, ptr noundef @.str.4)
  %34381 = call ptr @__errno_location() #12
  %34382 = load i32, ptr %34381, align 4, !tbaa !5
  %34383 = call ptr @strerror(i32 noundef %34382) #11
  %34384 = call ptr @__errno_location() #12
  %34385 = load i32, ptr %34384, align 4, !tbaa !5
  %34386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34373, ptr noundef @.str.5, i32 noundef %34374, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 2075, ptr noundef %34377, ptr noundef %34380, ptr noundef %34383, i32 noundef %34385) #11
  br label %34387

34387:                                            ; preds = %34370, %34353
  call void @llvm.lifetime.end.p0(i64 4, ptr %1063) #11
  br label %34388

34388:                                            ; preds = %34387
  br label %34389

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

34390:                                            ; No predecessors!
  br label %34391

34391:                                            ; preds = %34390
  br label %34392

34392:                                            ; preds = %34391, %34333
  br label %34393

34393:                                            ; preds = %34392
  br label %34394

34394:                                            ; preds = %34393
  br label %34395

34395:                                            ; preds = %34394
  %34396 = load i32, ptr @test_count, align 4, !tbaa !5
  %34397 = add nsw i32 %34396, 1
  store i32 %34397, ptr @test_count, align 4, !tbaa !5
  %34398 = load ptr, ptr %1062, align 8, !tbaa !9
  %34399 = icmp eq ptr %34398, null
  br i1 %34399, label %34400, label %34453

34400:                                            ; preds = %34395
  br label %34401

34401:                                            ; preds = %34400
  br label %34402

34402:                                            ; preds = %34401
  call void @llvm.lifetime.start.p0(i64 4, ptr %1064) #11
  %34403 = call ptr @__errno_location() #12
  %34404 = load i32, ptr %34403, align 4, !tbaa !5
  store i32 %34404, ptr %1064, align 4, !tbaa !5
  %34405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34406 = call i32 @s2n_print_stacktrace(ptr noundef %34405)
  %34407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34408 = trunc i8 %34407 to i1
  br i1 %34408, label %34409, label %34431

34409:                                            ; preds = %34402
  %34410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34411 = call i32 @fileno(ptr noundef %34410) #11
  %34412 = call i32 @isatty(i32 noundef %34411) #11
  %34413 = icmp ne i32 %34412, 0
  br i1 %34413, label %34414, label %34431

34414:                                            ; preds = %34409
  %34415 = load i32, ptr %1064, align 4, !tbaa !5
  %34416 = call ptr @__errno_location() #12
  store i32 %34415, ptr %34416, align 4, !tbaa !5
  %34417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34418 = load i32, ptr @test_count, align 4, !tbaa !5
  %34419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34420 = load i32, ptr %34419, align 4, !tbaa !5
  %34421 = call ptr @s2n_strerror(i32 noundef %34420, ptr noundef @.str.4)
  %34422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34423 = load i32, ptr %34422, align 4, !tbaa !5
  %34424 = call ptr @s2n_strerror_debug(i32 noundef %34423, ptr noundef @.str.4)
  %34425 = call ptr @__errno_location() #12
  %34426 = load i32, ptr %34425, align 4, !tbaa !5
  %34427 = call ptr @strerror(i32 noundef %34426) #11
  %34428 = call ptr @__errno_location() #12
  %34429 = load i32, ptr %34428, align 4, !tbaa !5
  %34430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34417, ptr noundef @.str.2, i32 noundef %34418, ptr noundef @.str.155, ptr noundef @.str.1, i32 noundef 2076, ptr noundef %34421, ptr noundef %34424, ptr noundef %34427, i32 noundef %34429) #11
  br label %34448

34431:                                            ; preds = %34409, %34402
  %34432 = load i32, ptr %1064, align 4, !tbaa !5
  %34433 = call ptr @__errno_location() #12
  store i32 %34432, ptr %34433, align 4, !tbaa !5
  %34434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34435 = load i32, ptr @test_count, align 4, !tbaa !5
  %34436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34437 = load i32, ptr %34436, align 4, !tbaa !5
  %34438 = call ptr @s2n_strerror(i32 noundef %34437, ptr noundef @.str.4)
  %34439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34440 = load i32, ptr %34439, align 4, !tbaa !5
  %34441 = call ptr @s2n_strerror_debug(i32 noundef %34440, ptr noundef @.str.4)
  %34442 = call ptr @__errno_location() #12
  %34443 = load i32, ptr %34442, align 4, !tbaa !5
  %34444 = call ptr @strerror(i32 noundef %34443) #11
  %34445 = call ptr @__errno_location() #12
  %34446 = load i32, ptr %34445, align 4, !tbaa !5
  %34447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34434, ptr noundef @.str.5, i32 noundef %34435, ptr noundef @.str.155, ptr noundef @.str.1, i32 noundef 2076, ptr noundef %34438, ptr noundef %34441, ptr noundef %34444, i32 noundef %34446) #11
  br label %34448

34448:                                            ; preds = %34431, %34414
  call void @llvm.lifetime.end.p0(i64 4, ptr %1064) #11
  br label %34449

34449:                                            ; preds = %34448
  br label %34450

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

34451:                                            ; No predecessors!
  br label %34452

34452:                                            ; preds = %34451
  br label %34453

34453:                                            ; preds = %34452, %34395
  br label %34454

34454:                                            ; preds = %34453
  br label %34455

34455:                                            ; preds = %34454
  call void @llvm.lifetime.start.p0(i64 8, ptr %1065) #11
  store ptr null, ptr %1065, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %1066) #11
  store i32 0, ptr %1066, align 4, !tbaa !5
  br label %34456

34456:                                            ; preds = %34455
  %34457 = load i32, ptr @test_count, align 4, !tbaa !5
  %34458 = add nsw i32 %34457, 1
  store i32 %34458, ptr @test_count, align 4, !tbaa !5
  %34459 = load ptr, ptr %1062, align 8, !tbaa !9
  %34460 = call i32 @s2n_cert_get_der(ptr noundef %34459, ptr noundef %1065, ptr noundef %1066)
  %34461 = icmp eq i32 %34460, -1
  br i1 %34461, label %34462, label %34515

34462:                                            ; preds = %34456
  br label %34463

34463:                                            ; preds = %34462
  br label %34464

34464:                                            ; preds = %34463
  call void @llvm.lifetime.start.p0(i64 4, ptr %1067) #11
  %34465 = call ptr @__errno_location() #12
  %34466 = load i32, ptr %34465, align 4, !tbaa !5
  store i32 %34466, ptr %1067, align 4, !tbaa !5
  %34467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34468 = call i32 @s2n_print_stacktrace(ptr noundef %34467)
  %34469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34470 = trunc i8 %34469 to i1
  br i1 %34470, label %34471, label %34493

34471:                                            ; preds = %34464
  %34472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34473 = call i32 @fileno(ptr noundef %34472) #11
  %34474 = call i32 @isatty(i32 noundef %34473) #11
  %34475 = icmp ne i32 %34474, 0
  br i1 %34475, label %34476, label %34493

34476:                                            ; preds = %34471
  %34477 = load i32, ptr %1067, align 4, !tbaa !5
  %34478 = call ptr @__errno_location() #12
  store i32 %34477, ptr %34478, align 4, !tbaa !5
  %34479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34480 = load i32, ptr @test_count, align 4, !tbaa !5
  %34481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34482 = load i32, ptr %34481, align 4, !tbaa !5
  %34483 = call ptr @s2n_strerror(i32 noundef %34482, ptr noundef @.str.4)
  %34484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34485 = load i32, ptr %34484, align 4, !tbaa !5
  %34486 = call ptr @s2n_strerror_debug(i32 noundef %34485, ptr noundef @.str.4)
  %34487 = call ptr @__errno_location() #12
  %34488 = load i32, ptr %34487, align 4, !tbaa !5
  %34489 = call ptr @strerror(i32 noundef %34488) #11
  %34490 = call ptr @__errno_location() #12
  %34491 = load i32, ptr %34490, align 4, !tbaa !5
  %34492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34479, ptr noundef @.str.2, i32 noundef %34480, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 2081, ptr noundef %34483, ptr noundef %34486, ptr noundef %34489, i32 noundef %34491) #11
  br label %34510

34493:                                            ; preds = %34471, %34464
  %34494 = load i32, ptr %1067, align 4, !tbaa !5
  %34495 = call ptr @__errno_location() #12
  store i32 %34494, ptr %34495, align 4, !tbaa !5
  %34496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34497 = load i32, ptr @test_count, align 4, !tbaa !5
  %34498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34499 = load i32, ptr %34498, align 4, !tbaa !5
  %34500 = call ptr @s2n_strerror(i32 noundef %34499, ptr noundef @.str.4)
  %34501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34502 = load i32, ptr %34501, align 4, !tbaa !5
  %34503 = call ptr @s2n_strerror_debug(i32 noundef %34502, ptr noundef @.str.4)
  %34504 = call ptr @__errno_location() #12
  %34505 = load i32, ptr %34504, align 4, !tbaa !5
  %34506 = call ptr @strerror(i32 noundef %34505) #11
  %34507 = call ptr @__errno_location() #12
  %34508 = load i32, ptr %34507, align 4, !tbaa !5
  %34509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34496, ptr noundef @.str.5, i32 noundef %34497, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 2081, ptr noundef %34500, ptr noundef %34503, ptr noundef %34506, i32 noundef %34508) #11
  br label %34510

34510:                                            ; preds = %34493, %34476
  call void @llvm.lifetime.end.p0(i64 4, ptr %1067) #11
  br label %34511

34511:                                            ; preds = %34510
  br label %34512

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

34513:                                            ; No predecessors!
  br label %34514

34514:                                            ; preds = %34513
  br label %34515

34515:                                            ; preds = %34514, %34456
  br label %34516

34516:                                            ; preds = %34515
  br label %34517

34517:                                            ; preds = %34516
  br label %34518

34518:                                            ; preds = %34517
  %34519 = load i32, ptr @test_count, align 4, !tbaa !5
  %34520 = add nsw i32 %34519, 1
  store i32 %34520, ptr @test_count, align 4, !tbaa !5
  %34521 = load ptr, ptr %1065, align 8, !tbaa !9
  %34522 = icmp eq ptr %34521, null
  br i1 %34522, label %34523, label %34576

34523:                                            ; preds = %34518
  br label %34524

34524:                                            ; preds = %34523
  br label %34525

34525:                                            ; preds = %34524
  call void @llvm.lifetime.start.p0(i64 4, ptr %1068) #11
  %34526 = call ptr @__errno_location() #12
  %34527 = load i32, ptr %34526, align 4, !tbaa !5
  store i32 %34527, ptr %1068, align 4, !tbaa !5
  %34528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34529 = call i32 @s2n_print_stacktrace(ptr noundef %34528)
  %34530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34531 = trunc i8 %34530 to i1
  br i1 %34531, label %34532, label %34554

34532:                                            ; preds = %34525
  %34533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34534 = call i32 @fileno(ptr noundef %34533) #11
  %34535 = call i32 @isatty(i32 noundef %34534) #11
  %34536 = icmp ne i32 %34535, 0
  br i1 %34536, label %34537, label %34554

34537:                                            ; preds = %34532
  %34538 = load i32, ptr %1068, align 4, !tbaa !5
  %34539 = call ptr @__errno_location() #12
  store i32 %34538, ptr %34539, align 4, !tbaa !5
  %34540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34541 = load i32, ptr @test_count, align 4, !tbaa !5
  %34542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34543 = load i32, ptr %34542, align 4, !tbaa !5
  %34544 = call ptr @s2n_strerror(i32 noundef %34543, ptr noundef @.str.4)
  %34545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34546 = load i32, ptr %34545, align 4, !tbaa !5
  %34547 = call ptr @s2n_strerror_debug(i32 noundef %34546, ptr noundef @.str.4)
  %34548 = call ptr @__errno_location() #12
  %34549 = load i32, ptr %34548, align 4, !tbaa !5
  %34550 = call ptr @strerror(i32 noundef %34549) #11
  %34551 = call ptr @__errno_location() #12
  %34552 = load i32, ptr %34551, align 4, !tbaa !5
  %34553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34540, ptr noundef @.str.2, i32 noundef %34541, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 2082, ptr noundef %34544, ptr noundef %34547, ptr noundef %34550, i32 noundef %34552) #11
  br label %34571

34554:                                            ; preds = %34532, %34525
  %34555 = load i32, ptr %1068, align 4, !tbaa !5
  %34556 = call ptr @__errno_location() #12
  store i32 %34555, ptr %34556, align 4, !tbaa !5
  %34557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34558 = load i32, ptr @test_count, align 4, !tbaa !5
  %34559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34560 = load i32, ptr %34559, align 4, !tbaa !5
  %34561 = call ptr @s2n_strerror(i32 noundef %34560, ptr noundef @.str.4)
  %34562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34563 = load i32, ptr %34562, align 4, !tbaa !5
  %34564 = call ptr @s2n_strerror_debug(i32 noundef %34563, ptr noundef @.str.4)
  %34565 = call ptr @__errno_location() #12
  %34566 = load i32, ptr %34565, align 4, !tbaa !5
  %34567 = call ptr @strerror(i32 noundef %34566) #11
  %34568 = call ptr @__errno_location() #12
  %34569 = load i32, ptr %34568, align 4, !tbaa !5
  %34570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34557, ptr noundef @.str.5, i32 noundef %34558, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 2082, ptr noundef %34561, ptr noundef %34564, ptr noundef %34567, i32 noundef %34569) #11
  br label %34571

34571:                                            ; preds = %34554, %34537
  call void @llvm.lifetime.end.p0(i64 4, ptr %1068) #11
  br label %34572

34572:                                            ; preds = %34571
  br label %34573

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

34574:                                            ; No predecessors!
  br label %34575

34575:                                            ; preds = %34574
  br label %34576

34576:                                            ; preds = %34575, %34518
  br label %34577

34577:                                            ; preds = %34576
  br label %34578

34578:                                            ; preds = %34577
  call void @llvm.lifetime.start.p0(i64 8, ptr %1069) #11
  %34579 = load i32, ptr %1066, align 4, !tbaa !5
  %34580 = zext i32 %34579 to i64
  %34581 = call ptr @d2i_X509(ptr noundef null, ptr noundef %1065, i64 noundef %34580)
  store ptr %34581, ptr %1069, align 8, !tbaa !9
  br label %34582

34582:                                            ; preds = %34578
  %34583 = load i32, ptr @test_count, align 4, !tbaa !5
  %34584 = add nsw i32 %34583, 1
  store i32 %34584, ptr @test_count, align 4, !tbaa !5
  %34585 = load ptr, ptr %1069, align 8, !tbaa !9
  %34586 = icmp eq ptr %34585, null
  br i1 %34586, label %34587, label %34640

34587:                                            ; preds = %34582
  br label %34588

34588:                                            ; preds = %34587
  br label %34589

34589:                                            ; preds = %34588
  call void @llvm.lifetime.start.p0(i64 4, ptr %1070) #11
  %34590 = call ptr @__errno_location() #12
  %34591 = load i32, ptr %34590, align 4, !tbaa !5
  store i32 %34591, ptr %1070, align 4, !tbaa !5
  %34592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34593 = call i32 @s2n_print_stacktrace(ptr noundef %34592)
  %34594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34595 = trunc i8 %34594 to i1
  br i1 %34595, label %34596, label %34618

34596:                                            ; preds = %34589
  %34597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34598 = call i32 @fileno(ptr noundef %34597) #11
  %34599 = call i32 @isatty(i32 noundef %34598) #11
  %34600 = icmp ne i32 %34599, 0
  br i1 %34600, label %34601, label %34618

34601:                                            ; preds = %34596
  %34602 = load i32, ptr %1070, align 4, !tbaa !5
  %34603 = call ptr @__errno_location() #12
  store i32 %34602, ptr %34603, align 4, !tbaa !5
  %34604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34605 = load i32, ptr @test_count, align 4, !tbaa !5
  %34606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34607 = load i32, ptr %34606, align 4, !tbaa !5
  %34608 = call ptr @s2n_strerror(i32 noundef %34607, ptr noundef @.str.4)
  %34609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34610 = load i32, ptr %34609, align 4, !tbaa !5
  %34611 = call ptr @s2n_strerror_debug(i32 noundef %34610, ptr noundef @.str.4)
  %34612 = call ptr @__errno_location() #12
  %34613 = load i32, ptr %34612, align 4, !tbaa !5
  %34614 = call ptr @strerror(i32 noundef %34613) #11
  %34615 = call ptr @__errno_location() #12
  %34616 = load i32, ptr %34615, align 4, !tbaa !5
  %34617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34604, ptr noundef @.str.2, i32 noundef %34605, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 2086, ptr noundef %34608, ptr noundef %34611, ptr noundef %34614, i32 noundef %34616) #11
  br label %34635

34618:                                            ; preds = %34596, %34589
  %34619 = load i32, ptr %1070, align 4, !tbaa !5
  %34620 = call ptr @__errno_location() #12
  store i32 %34619, ptr %34620, align 4, !tbaa !5
  %34621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34622 = load i32, ptr @test_count, align 4, !tbaa !5
  %34623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34624 = load i32, ptr %34623, align 4, !tbaa !5
  %34625 = call ptr @s2n_strerror(i32 noundef %34624, ptr noundef @.str.4)
  %34626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34627 = load i32, ptr %34626, align 4, !tbaa !5
  %34628 = call ptr @s2n_strerror_debug(i32 noundef %34627, ptr noundef @.str.4)
  %34629 = call ptr @__errno_location() #12
  %34630 = load i32, ptr %34629, align 4, !tbaa !5
  %34631 = call ptr @strerror(i32 noundef %34630) #11
  %34632 = call ptr @__errno_location() #12
  %34633 = load i32, ptr %34632, align 4, !tbaa !5
  %34634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34621, ptr noundef @.str.5, i32 noundef %34622, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 2086, ptr noundef %34625, ptr noundef %34628, ptr noundef %34631, i32 noundef %34633) #11
  br label %34635

34635:                                            ; preds = %34618, %34601
  call void @llvm.lifetime.end.p0(i64 4, ptr %1070) #11
  br label %34636

34636:                                            ; preds = %34635
  br label %34637

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

34638:                                            ; No predecessors!
  br label %34639

34639:                                            ; preds = %34638
  br label %34640

34640:                                            ; preds = %34639, %34582
  br label %34641

34641:                                            ; preds = %34640
  br label %34642

34642:                                            ; preds = %34641
  call void @llvm.lifetime.start.p0(i64 4, ptr %1071) #11
  %34643 = load ptr, ptr %1069, align 8, !tbaa !9
  %34644 = call i32 @X509_get_extension_flags(ptr noundef %34643)
  store i32 %34644, ptr %1071, align 4, !tbaa !5
  br label %34645

34645:                                            ; preds = %34642
  %34646 = load i32, ptr @test_count, align 4, !tbaa !5
  %34647 = add nsw i32 %34646, 1
  store i32 %34647, ptr @test_count, align 4, !tbaa !5
  %34648 = load i32, ptr %1071, align 4, !tbaa !5
  %34649 = and i32 %34648, 8192
  %34650 = icmp eq i32 %34649, 0
  br i1 %34650, label %34704, label %34651

34651:                                            ; preds = %34645
  br label %34652

34652:                                            ; preds = %34651
  br label %34653

34653:                                            ; preds = %34652
  call void @llvm.lifetime.start.p0(i64 4, ptr %1072) #11
  %34654 = call ptr @__errno_location() #12
  %34655 = load i32, ptr %34654, align 4, !tbaa !5
  store i32 %34655, ptr %1072, align 4, !tbaa !5
  %34656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34657 = call i32 @s2n_print_stacktrace(ptr noundef %34656)
  %34658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34659 = trunc i8 %34658 to i1
  br i1 %34659, label %34660, label %34682

34660:                                            ; preds = %34653
  %34661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34662 = call i32 @fileno(ptr noundef %34661) #11
  %34663 = call i32 @isatty(i32 noundef %34662) #11
  %34664 = icmp ne i32 %34663, 0
  br i1 %34664, label %34665, label %34682

34665:                                            ; preds = %34660
  %34666 = load i32, ptr %1072, align 4, !tbaa !5
  %34667 = call ptr @__errno_location() #12
  store i32 %34666, ptr %34667, align 4, !tbaa !5
  %34668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34669 = load i32, ptr @test_count, align 4, !tbaa !5
  %34670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34671 = load i32, ptr %34670, align 4, !tbaa !5
  %34672 = call ptr @s2n_strerror(i32 noundef %34671, ptr noundef @.str.4)
  %34673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34674 = load i32, ptr %34673, align 4, !tbaa !5
  %34675 = call ptr @s2n_strerror_debug(i32 noundef %34674, ptr noundef @.str.4)
  %34676 = call ptr @__errno_location() #12
  %34677 = load i32, ptr %34676, align 4, !tbaa !5
  %34678 = call ptr @strerror(i32 noundef %34677) #11
  %34679 = call ptr @__errno_location() #12
  %34680 = load i32, ptr %34679, align 4, !tbaa !5
  %34681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34668, ptr noundef @.str.2, i32 noundef %34669, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 2090, ptr noundef %34672, ptr noundef %34675, ptr noundef %34678, i32 noundef %34680) #11
  br label %34699

34682:                                            ; preds = %34660, %34653
  %34683 = load i32, ptr %1072, align 4, !tbaa !5
  %34684 = call ptr @__errno_location() #12
  store i32 %34683, ptr %34684, align 4, !tbaa !5
  %34685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34686 = load i32, ptr @test_count, align 4, !tbaa !5
  %34687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34688 = load i32, ptr %34687, align 4, !tbaa !5
  %34689 = call ptr @s2n_strerror(i32 noundef %34688, ptr noundef @.str.4)
  %34690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34691 = load i32, ptr %34690, align 4, !tbaa !5
  %34692 = call ptr @s2n_strerror_debug(i32 noundef %34691, ptr noundef @.str.4)
  %34693 = call ptr @__errno_location() #12
  %34694 = load i32, ptr %34693, align 4, !tbaa !5
  %34695 = call ptr @strerror(i32 noundef %34694) #11
  %34696 = call ptr @__errno_location() #12
  %34697 = load i32, ptr %34696, align 4, !tbaa !5
  %34698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34685, ptr noundef @.str.5, i32 noundef %34686, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 2090, ptr noundef %34689, ptr noundef %34692, ptr noundef %34695, i32 noundef %34697) #11
  br label %34699

34699:                                            ; preds = %34682, %34665
  call void @llvm.lifetime.end.p0(i64 4, ptr %1072) #11
  br label %34700

34700:                                            ; preds = %34699
  br label %34701

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

34702:                                            ; No predecessors!
  br label %34703

34703:                                            ; preds = %34702
  br label %34704

34704:                                            ; preds = %34703, %34645
  br label %34705

34705:                                            ; preds = %34704
  br label %34706

34706:                                            ; preds = %34705
  call void @llvm.lifetime.end.p0(i64 4, ptr %1071) #11
  call void @X509_free_pointer(ptr noundef %1069)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1069) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1066) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1065) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1062) #11
  %34707 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %1060)
  %34708 = getelementptr inbounds %struct.s2n_result, ptr %1073, i32 0, i32 0
  store i32 %34707, ptr %34708, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1060) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1059) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1074) #11
  %34709 = call ptr @s2n_config_new()
  store ptr %34709, ptr %1074, align 8, !tbaa !9
  br label %34710

34710:                                            ; preds = %34706
  %34711 = load i32, ptr @test_count, align 4, !tbaa !5
  %34712 = add nsw i32 %34711, 1
  store i32 %34712, ptr @test_count, align 4, !tbaa !5
  %34713 = load ptr, ptr %1074, align 8, !tbaa !9
  %34714 = load ptr, ptr %1058, align 8, !tbaa !9
  %34715 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %34713, ptr noundef %34714, ptr noundef null)
  %34716 = icmp eq i32 %34715, -1
  br i1 %34716, label %34717, label %34770

34717:                                            ; preds = %34710
  br label %34718

34718:                                            ; preds = %34717
  br label %34719

34719:                                            ; preds = %34718
  call void @llvm.lifetime.start.p0(i64 4, ptr %1075) #11
  %34720 = call ptr @__errno_location() #12
  %34721 = load i32, ptr %34720, align 4, !tbaa !5
  store i32 %34721, ptr %1075, align 4, !tbaa !5
  %34722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34723 = call i32 @s2n_print_stacktrace(ptr noundef %34722)
  %34724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34725 = trunc i8 %34724 to i1
  br i1 %34725, label %34726, label %34748

34726:                                            ; preds = %34719
  %34727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34728 = call i32 @fileno(ptr noundef %34727) #11
  %34729 = call i32 @isatty(i32 noundef %34728) #11
  %34730 = icmp ne i32 %34729, 0
  br i1 %34730, label %34731, label %34748

34731:                                            ; preds = %34726
  %34732 = load i32, ptr %1075, align 4, !tbaa !5
  %34733 = call ptr @__errno_location() #12
  store i32 %34732, ptr %34733, align 4, !tbaa !5
  %34734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34735 = load i32, ptr @test_count, align 4, !tbaa !5
  %34736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34737 = load i32, ptr %34736, align 4, !tbaa !5
  %34738 = call ptr @s2n_strerror(i32 noundef %34737, ptr noundef @.str.4)
  %34739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34740 = load i32, ptr %34739, align 4, !tbaa !5
  %34741 = call ptr @s2n_strerror_debug(i32 noundef %34740, ptr noundef @.str.4)
  %34742 = call ptr @__errno_location() #12
  %34743 = load i32, ptr %34742, align 4, !tbaa !5
  %34744 = call ptr @strerror(i32 noundef %34743) #11
  %34745 = call ptr @__errno_location() #12
  %34746 = load i32, ptr %34745, align 4, !tbaa !5
  %34747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34734, ptr noundef @.str.2, i32 noundef %34735, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 2097, ptr noundef %34738, ptr noundef %34741, ptr noundef %34744, i32 noundef %34746) #11
  br label %34765

34748:                                            ; preds = %34726, %34719
  %34749 = load i32, ptr %1075, align 4, !tbaa !5
  %34750 = call ptr @__errno_location() #12
  store i32 %34749, ptr %34750, align 4, !tbaa !5
  %34751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34752 = load i32, ptr @test_count, align 4, !tbaa !5
  %34753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34754 = load i32, ptr %34753, align 4, !tbaa !5
  %34755 = call ptr @s2n_strerror(i32 noundef %34754, ptr noundef @.str.4)
  %34756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34757 = load i32, ptr %34756, align 4, !tbaa !5
  %34758 = call ptr @s2n_strerror_debug(i32 noundef %34757, ptr noundef @.str.4)
  %34759 = call ptr @__errno_location() #12
  %34760 = load i32, ptr %34759, align 4, !tbaa !5
  %34761 = call ptr @strerror(i32 noundef %34760) #11
  %34762 = call ptr @__errno_location() #12
  %34763 = load i32, ptr %34762, align 4, !tbaa !5
  %34764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34751, ptr noundef @.str.5, i32 noundef %34752, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 2097, ptr noundef %34755, ptr noundef %34758, ptr noundef %34761, i32 noundef %34763) #11
  br label %34765

34765:                                            ; preds = %34748, %34731
  call void @llvm.lifetime.end.p0(i64 4, ptr %1075) #11
  br label %34766

34766:                                            ; preds = %34765
  br label %34767

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

34768:                                            ; No predecessors!
  br label %34769

34769:                                            ; preds = %34768
  br label %34770

34770:                                            ; preds = %34769, %34710
  br label %34771

34771:                                            ; preds = %34770
  br label %34772

34772:                                            ; preds = %34771
  call void @llvm.lifetime.start.p0(i64 56, ptr %1076) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1076, i8 0, i64 56, i1 false)
  br label %34773

34773:                                            ; preds = %34772
  %34774 = load i32, ptr @test_count, align 4, !tbaa !5
  %34775 = add nsw i32 %34774, 1
  store i32 %34775, ptr @test_count, align 4, !tbaa !5
  %34776 = load ptr, ptr %1074, align 8, !tbaa !9
  %34777 = getelementptr inbounds %struct.s2n_config, ptr %34776, i32 0, i32 37
  %34778 = call i32 @s2n_x509_validator_init(ptr noundef %1076, ptr noundef %34777, i8 noundef zeroext 0)
  %34779 = icmp eq i32 %34778, -1
  br i1 %34779, label %34780, label %34833

34780:                                            ; preds = %34773
  br label %34781

34781:                                            ; preds = %34780
  br label %34782

34782:                                            ; preds = %34781
  call void @llvm.lifetime.start.p0(i64 4, ptr %1077) #11
  %34783 = call ptr @__errno_location() #12
  %34784 = load i32, ptr %34783, align 4, !tbaa !5
  store i32 %34784, ptr %1077, align 4, !tbaa !5
  %34785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34786 = call i32 @s2n_print_stacktrace(ptr noundef %34785)
  %34787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34788 = trunc i8 %34787 to i1
  br i1 %34788, label %34789, label %34811

34789:                                            ; preds = %34782
  %34790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34791 = call i32 @fileno(ptr noundef %34790) #11
  %34792 = call i32 @isatty(i32 noundef %34791) #11
  %34793 = icmp ne i32 %34792, 0
  br i1 %34793, label %34794, label %34811

34794:                                            ; preds = %34789
  %34795 = load i32, ptr %1077, align 4, !tbaa !5
  %34796 = call ptr @__errno_location() #12
  store i32 %34795, ptr %34796, align 4, !tbaa !5
  %34797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34798 = load i32, ptr @test_count, align 4, !tbaa !5
  %34799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34800 = load i32, ptr %34799, align 4, !tbaa !5
  %34801 = call ptr @s2n_strerror(i32 noundef %34800, ptr noundef @.str.4)
  %34802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34803 = load i32, ptr %34802, align 4, !tbaa !5
  %34804 = call ptr @s2n_strerror_debug(i32 noundef %34803, ptr noundef @.str.4)
  %34805 = call ptr @__errno_location() #12
  %34806 = load i32, ptr %34805, align 4, !tbaa !5
  %34807 = call ptr @strerror(i32 noundef %34806) #11
  %34808 = call ptr @__errno_location() #12
  %34809 = load i32, ptr %34808, align 4, !tbaa !5
  %34810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34797, ptr noundef @.str.2, i32 noundef %34798, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2100, ptr noundef %34801, ptr noundef %34804, ptr noundef %34807, i32 noundef %34809) #11
  br label %34828

34811:                                            ; preds = %34789, %34782
  %34812 = load i32, ptr %1077, align 4, !tbaa !5
  %34813 = call ptr @__errno_location() #12
  store i32 %34812, ptr %34813, align 4, !tbaa !5
  %34814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34815 = load i32, ptr @test_count, align 4, !tbaa !5
  %34816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34817 = load i32, ptr %34816, align 4, !tbaa !5
  %34818 = call ptr @s2n_strerror(i32 noundef %34817, ptr noundef @.str.4)
  %34819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34820 = load i32, ptr %34819, align 4, !tbaa !5
  %34821 = call ptr @s2n_strerror_debug(i32 noundef %34820, ptr noundef @.str.4)
  %34822 = call ptr @__errno_location() #12
  %34823 = load i32, ptr %34822, align 4, !tbaa !5
  %34824 = call ptr @strerror(i32 noundef %34823) #11
  %34825 = call ptr @__errno_location() #12
  %34826 = load i32, ptr %34825, align 4, !tbaa !5
  %34827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34814, ptr noundef @.str.5, i32 noundef %34815, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2100, ptr noundef %34818, ptr noundef %34821, ptr noundef %34824, i32 noundef %34826) #11
  br label %34828

34828:                                            ; preds = %34811, %34794
  call void @llvm.lifetime.end.p0(i64 4, ptr %1077) #11
  br label %34829

34829:                                            ; preds = %34828
  br label %34830

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

34831:                                            ; No predecessors!
  br label %34832

34832:                                            ; preds = %34831
  br label %34833

34833:                                            ; preds = %34832, %34773
  br label %34834

34834:                                            ; preds = %34833
  br label %34835

34835:                                            ; preds = %34834
  call void @llvm.lifetime.start.p0(i64 8, ptr %1078) #11
  %34836 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %34836, ptr %1078, align 8, !tbaa !9
  br label %34837

34837:                                            ; preds = %34835
  %34838 = load i32, ptr @test_count, align 4, !tbaa !5
  %34839 = add nsw i32 %34838, 1
  store i32 %34839, ptr @test_count, align 4, !tbaa !5
  %34840 = load ptr, ptr %1078, align 8, !tbaa !9
  %34841 = icmp eq ptr %34840, null
  br i1 %34841, label %34842, label %34895

34842:                                            ; preds = %34837
  br label %34843

34843:                                            ; preds = %34842
  br label %34844

34844:                                            ; preds = %34843
  call void @llvm.lifetime.start.p0(i64 4, ptr %1079) #11
  %34845 = call ptr @__errno_location() #12
  %34846 = load i32, ptr %34845, align 4, !tbaa !5
  store i32 %34846, ptr %1079, align 4, !tbaa !5
  %34847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34848 = call i32 @s2n_print_stacktrace(ptr noundef %34847)
  %34849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34850 = trunc i8 %34849 to i1
  br i1 %34850, label %34851, label %34873

34851:                                            ; preds = %34844
  %34852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34853 = call i32 @fileno(ptr noundef %34852) #11
  %34854 = call i32 @isatty(i32 noundef %34853) #11
  %34855 = icmp ne i32 %34854, 0
  br i1 %34855, label %34856, label %34873

34856:                                            ; preds = %34851
  %34857 = load i32, ptr %1079, align 4, !tbaa !5
  %34858 = call ptr @__errno_location() #12
  store i32 %34857, ptr %34858, align 4, !tbaa !5
  %34859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34860 = load i32, ptr @test_count, align 4, !tbaa !5
  %34861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34862 = load i32, ptr %34861, align 4, !tbaa !5
  %34863 = call ptr @s2n_strerror(i32 noundef %34862, ptr noundef @.str.4)
  %34864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34865 = load i32, ptr %34864, align 4, !tbaa !5
  %34866 = call ptr @s2n_strerror_debug(i32 noundef %34865, ptr noundef @.str.4)
  %34867 = call ptr @__errno_location() #12
  %34868 = load i32, ptr %34867, align 4, !tbaa !5
  %34869 = call ptr @strerror(i32 noundef %34868) #11
  %34870 = call ptr @__errno_location() #12
  %34871 = load i32, ptr %34870, align 4, !tbaa !5
  %34872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34859, ptr noundef @.str.2, i32 noundef %34860, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2103, ptr noundef %34863, ptr noundef %34866, ptr noundef %34869, i32 noundef %34871) #11
  br label %34890

34873:                                            ; preds = %34851, %34844
  %34874 = load i32, ptr %1079, align 4, !tbaa !5
  %34875 = call ptr @__errno_location() #12
  store i32 %34874, ptr %34875, align 4, !tbaa !5
  %34876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34877 = load i32, ptr @test_count, align 4, !tbaa !5
  %34878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34879 = load i32, ptr %34878, align 4, !tbaa !5
  %34880 = call ptr @s2n_strerror(i32 noundef %34879, ptr noundef @.str.4)
  %34881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34882 = load i32, ptr %34881, align 4, !tbaa !5
  %34883 = call ptr @s2n_strerror_debug(i32 noundef %34882, ptr noundef @.str.4)
  %34884 = call ptr @__errno_location() #12
  %34885 = load i32, ptr %34884, align 4, !tbaa !5
  %34886 = call ptr @strerror(i32 noundef %34885) #11
  %34887 = call ptr @__errno_location() #12
  %34888 = load i32, ptr %34887, align 4, !tbaa !5
  %34889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34876, ptr noundef @.str.5, i32 noundef %34877, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2103, ptr noundef %34880, ptr noundef %34883, ptr noundef %34886, i32 noundef %34888) #11
  br label %34890

34890:                                            ; preds = %34873, %34856
  call void @llvm.lifetime.end.p0(i64 4, ptr %1079) #11
  br label %34891

34891:                                            ; preds = %34890
  br label %34892

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

34893:                                            ; No predecessors!
  br label %34894

34894:                                            ; preds = %34893
  br label %34895

34895:                                            ; preds = %34894, %34837
  br label %34896

34896:                                            ; preds = %34895
  br label %34897

34897:                                            ; preds = %34896
  br label %34898

34898:                                            ; preds = %34897
  %34899 = load i32, ptr @test_count, align 4, !tbaa !5
  %34900 = add nsw i32 %34899, 1
  store i32 %34900, ptr @test_count, align 4, !tbaa !5
  %34901 = load ptr, ptr %1078, align 8, !tbaa !9
  %34902 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %34901, ptr noundef @.str.23)
  %34903 = icmp eq i32 %34902, -1
  br i1 %34903, label %34904, label %34957

34904:                                            ; preds = %34898
  br label %34905

34905:                                            ; preds = %34904
  br label %34906

34906:                                            ; preds = %34905
  call void @llvm.lifetime.start.p0(i64 4, ptr %1080) #11
  %34907 = call ptr @__errno_location() #12
  %34908 = load i32, ptr %34907, align 4, !tbaa !5
  store i32 %34908, ptr %1080, align 4, !tbaa !5
  %34909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34910 = call i32 @s2n_print_stacktrace(ptr noundef %34909)
  %34911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34912 = trunc i8 %34911 to i1
  br i1 %34912, label %34913, label %34935

34913:                                            ; preds = %34906
  %34914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34915 = call i32 @fileno(ptr noundef %34914) #11
  %34916 = call i32 @isatty(i32 noundef %34915) #11
  %34917 = icmp ne i32 %34916, 0
  br i1 %34917, label %34918, label %34935

34918:                                            ; preds = %34913
  %34919 = load i32, ptr %1080, align 4, !tbaa !5
  %34920 = call ptr @__errno_location() #12
  store i32 %34919, ptr %34920, align 4, !tbaa !5
  %34921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34922 = load i32, ptr @test_count, align 4, !tbaa !5
  %34923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34924 = load i32, ptr %34923, align 4, !tbaa !5
  %34925 = call ptr @s2n_strerror(i32 noundef %34924, ptr noundef @.str.4)
  %34926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34927 = load i32, ptr %34926, align 4, !tbaa !5
  %34928 = call ptr @s2n_strerror_debug(i32 noundef %34927, ptr noundef @.str.4)
  %34929 = call ptr @__errno_location() #12
  %34930 = load i32, ptr %34929, align 4, !tbaa !5
  %34931 = call ptr @strerror(i32 noundef %34930) #11
  %34932 = call ptr @__errno_location() #12
  %34933 = load i32, ptr %34932, align 4, !tbaa !5
  %34934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34921, ptr noundef @.str.2, i32 noundef %34922, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2104, ptr noundef %34925, ptr noundef %34928, ptr noundef %34931, i32 noundef %34933) #11
  br label %34952

34935:                                            ; preds = %34913, %34906
  %34936 = load i32, ptr %1080, align 4, !tbaa !5
  %34937 = call ptr @__errno_location() #12
  store i32 %34936, ptr %34937, align 4, !tbaa !5
  %34938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34939 = load i32, ptr @test_count, align 4, !tbaa !5
  %34940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34941 = load i32, ptr %34940, align 4, !tbaa !5
  %34942 = call ptr @s2n_strerror(i32 noundef %34941, ptr noundef @.str.4)
  %34943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34944 = load i32, ptr %34943, align 4, !tbaa !5
  %34945 = call ptr @s2n_strerror_debug(i32 noundef %34944, ptr noundef @.str.4)
  %34946 = call ptr @__errno_location() #12
  %34947 = load i32, ptr %34946, align 4, !tbaa !5
  %34948 = call ptr @strerror(i32 noundef %34947) #11
  %34949 = call ptr @__errno_location() #12
  %34950 = load i32, ptr %34949, align 4, !tbaa !5
  %34951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34938, ptr noundef @.str.5, i32 noundef %34939, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2104, ptr noundef %34942, ptr noundef %34945, ptr noundef %34948, i32 noundef %34950) #11
  br label %34952

34952:                                            ; preds = %34935, %34918
  call void @llvm.lifetime.end.p0(i64 4, ptr %1080) #11
  br label %34953

34953:                                            ; preds = %34952
  br label %34954

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

34955:                                            ; No predecessors!
  br label %34956

34956:                                            ; preds = %34955
  br label %34957

34957:                                            ; preds = %34956, %34898
  br label %34958

34958:                                            ; preds = %34957
  br label %34959

34959:                                            ; preds = %34958
  br label %34960

34960:                                            ; preds = %34959
  %34961 = load i32, ptr @test_count, align 4, !tbaa !5
  %34962 = add nsw i32 %34961, 1
  store i32 %34962, ptr @test_count, align 4, !tbaa !5
  %34963 = load ptr, ptr %1078, align 8, !tbaa !9
  %34964 = call i32 @s2n_set_server_name(ptr noundef %34963, ptr noundef @.str.162)
  %34965 = icmp eq i32 %34964, -1
  br i1 %34965, label %34966, label %35019

34966:                                            ; preds = %34960
  br label %34967

34967:                                            ; preds = %34966
  br label %34968

34968:                                            ; preds = %34967
  call void @llvm.lifetime.start.p0(i64 4, ptr %1081) #11
  %34969 = call ptr @__errno_location() #12
  %34970 = load i32, ptr %34969, align 4, !tbaa !5
  store i32 %34970, ptr %1081, align 4, !tbaa !5
  %34971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34972 = call i32 @s2n_print_stacktrace(ptr noundef %34971)
  %34973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34974 = trunc i8 %34973 to i1
  br i1 %34974, label %34975, label %34997

34975:                                            ; preds = %34968
  %34976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34977 = call i32 @fileno(ptr noundef %34976) #11
  %34978 = call i32 @isatty(i32 noundef %34977) #11
  %34979 = icmp ne i32 %34978, 0
  br i1 %34979, label %34980, label %34997

34980:                                            ; preds = %34975
  %34981 = load i32, ptr %1081, align 4, !tbaa !5
  %34982 = call ptr @__errno_location() #12
  store i32 %34981, ptr %34982, align 4, !tbaa !5
  %34983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34984 = load i32, ptr @test_count, align 4, !tbaa !5
  %34985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34986 = load i32, ptr %34985, align 4, !tbaa !5
  %34987 = call ptr @s2n_strerror(i32 noundef %34986, ptr noundef @.str.4)
  %34988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %34989 = load i32, ptr %34988, align 4, !tbaa !5
  %34990 = call ptr @s2n_strerror_debug(i32 noundef %34989, ptr noundef @.str.4)
  %34991 = call ptr @__errno_location() #12
  %34992 = load i32, ptr %34991, align 4, !tbaa !5
  %34993 = call ptr @strerror(i32 noundef %34992) #11
  %34994 = call ptr @__errno_location() #12
  %34995 = load i32, ptr %34994, align 4, !tbaa !5
  %34996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34983, ptr noundef @.str.2, i32 noundef %34984, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 2105, ptr noundef %34987, ptr noundef %34990, ptr noundef %34993, i32 noundef %34995) #11
  br label %35014

34997:                                            ; preds = %34975, %34968
  %34998 = load i32, ptr %1081, align 4, !tbaa !5
  %34999 = call ptr @__errno_location() #12
  store i32 %34998, ptr %34999, align 4, !tbaa !5
  %35000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35001 = load i32, ptr @test_count, align 4, !tbaa !5
  %35002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35003 = load i32, ptr %35002, align 4, !tbaa !5
  %35004 = call ptr @s2n_strerror(i32 noundef %35003, ptr noundef @.str.4)
  %35005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35006 = load i32, ptr %35005, align 4, !tbaa !5
  %35007 = call ptr @s2n_strerror_debug(i32 noundef %35006, ptr noundef @.str.4)
  %35008 = call ptr @__errno_location() #12
  %35009 = load i32, ptr %35008, align 4, !tbaa !5
  %35010 = call ptr @strerror(i32 noundef %35009) #11
  %35011 = call ptr @__errno_location() #12
  %35012 = load i32, ptr %35011, align 4, !tbaa !5
  %35013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35000, ptr noundef @.str.5, i32 noundef %35001, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 2105, ptr noundef %35004, ptr noundef %35007, ptr noundef %35010, i32 noundef %35012) #11
  br label %35014

35014:                                            ; preds = %34997, %34980
  call void @llvm.lifetime.end.p0(i64 4, ptr %1081) #11
  br label %35015

35015:                                            ; preds = %35014
  br label %35016

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

35017:                                            ; No predecessors!
  br label %35018

35018:                                            ; preds = %35017
  br label %35019

35019:                                            ; preds = %35018, %34960
  br label %35020

35020:                                            ; preds = %35019
  br label %35021

35021:                                            ; preds = %35020
  call void @llvm.lifetime.start.p0(i64 40, ptr %1082) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1082, i8 0, i64 40, i1 false)
  br label %35022

35022:                                            ; preds = %35021
  %35023 = load i32, ptr @test_count, align 4, !tbaa !5
  %35024 = add nsw i32 %35023, 1
  store i32 %35024, ptr @test_count, align 4, !tbaa !5
  %35025 = load ptr, ptr %1078, align 8, !tbaa !9
  %35026 = load ptr, ptr %1058, align 8, !tbaa !9
  %35027 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %35025, ptr noundef %35026, ptr noundef %1082)
  %35028 = getelementptr inbounds %struct.s2n_result, ptr %1083, i32 0, i32 0
  store i32 %35027, ptr %35028, align 4
  %35029 = getelementptr inbounds %struct.s2n_result, ptr %1083, i32 0, i32 0
  %35030 = load i32, ptr %35029, align 4
  %35031 = call zeroext i1 @s2n_result_is_ok(i32 %35030)
  br i1 %35031, label %35085, label %35032

35032:                                            ; preds = %35022
  br label %35033

35033:                                            ; preds = %35032
  br label %35034

35034:                                            ; preds = %35033
  call void @llvm.lifetime.start.p0(i64 4, ptr %1084) #11
  %35035 = call ptr @__errno_location() #12
  %35036 = load i32, ptr %35035, align 4, !tbaa !5
  store i32 %35036, ptr %1084, align 4, !tbaa !5
  %35037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35038 = call i32 @s2n_print_stacktrace(ptr noundef %35037)
  %35039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35040 = trunc i8 %35039 to i1
  br i1 %35040, label %35041, label %35063

35041:                                            ; preds = %35034
  %35042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35043 = call i32 @fileno(ptr noundef %35042) #11
  %35044 = call i32 @isatty(i32 noundef %35043) #11
  %35045 = icmp ne i32 %35044, 0
  br i1 %35045, label %35046, label %35063

35046:                                            ; preds = %35041
  %35047 = load i32, ptr %1084, align 4, !tbaa !5
  %35048 = call ptr @__errno_location() #12
  store i32 %35047, ptr %35048, align 4, !tbaa !5
  %35049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35050 = load i32, ptr @test_count, align 4, !tbaa !5
  %35051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35052 = load i32, ptr %35051, align 4, !tbaa !5
  %35053 = call ptr @s2n_strerror(i32 noundef %35052, ptr noundef @.str.4)
  %35054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35055 = load i32, ptr %35054, align 4, !tbaa !5
  %35056 = call ptr @s2n_strerror_debug(i32 noundef %35055, ptr noundef @.str.4)
  %35057 = call ptr @__errno_location() #12
  %35058 = load i32, ptr %35057, align 4, !tbaa !5
  %35059 = call ptr @strerror(i32 noundef %35058) #11
  %35060 = call ptr @__errno_location() #12
  %35061 = load i32, ptr %35060, align 4, !tbaa !5
  %35062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35049, ptr noundef @.str.2, i32 noundef %35050, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 2108, ptr noundef %35053, ptr noundef %35056, ptr noundef %35059, i32 noundef %35061) #11
  br label %35080

35063:                                            ; preds = %35041, %35034
  %35064 = load i32, ptr %1084, align 4, !tbaa !5
  %35065 = call ptr @__errno_location() #12
  store i32 %35064, ptr %35065, align 4, !tbaa !5
  %35066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35067 = load i32, ptr @test_count, align 4, !tbaa !5
  %35068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35069 = load i32, ptr %35068, align 4, !tbaa !5
  %35070 = call ptr @s2n_strerror(i32 noundef %35069, ptr noundef @.str.4)
  %35071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35072 = load i32, ptr %35071, align 4, !tbaa !5
  %35073 = call ptr @s2n_strerror_debug(i32 noundef %35072, ptr noundef @.str.4)
  %35074 = call ptr @__errno_location() #12
  %35075 = load i32, ptr %35074, align 4, !tbaa !5
  %35076 = call ptr @strerror(i32 noundef %35075) #11
  %35077 = call ptr @__errno_location() #12
  %35078 = load i32, ptr %35077, align 4, !tbaa !5
  %35079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35066, ptr noundef @.str.5, i32 noundef %35067, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 2108, ptr noundef %35070, ptr noundef %35073, ptr noundef %35076, i32 noundef %35078) #11
  br label %35080

35080:                                            ; preds = %35063, %35046
  call void @llvm.lifetime.end.p0(i64 4, ptr %1084) #11
  br label %35081

35081:                                            ; preds = %35080
  br label %35082

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

35083:                                            ; No predecessors!
  br label %35084

35084:                                            ; preds = %35083
  br label %35085

35085:                                            ; preds = %35084, %35022
  br label %35086

35086:                                            ; preds = %35085
  br label %35087

35087:                                            ; preds = %35086
  call void @llvm.lifetime.start.p0(i64 4, ptr %1085) #11
  %35088 = getelementptr inbounds %struct.s2n_stuffer, ptr %1082, i32 0, i32 2
  %35089 = load i32, ptr %35088, align 4, !tbaa !15
  %35090 = getelementptr inbounds %struct.s2n_stuffer, ptr %1082, i32 0, i32 1
  %35091 = load i32, ptr %35090, align 8, !tbaa !18
  %35092 = sub i32 %35089, %35091
  store i32 %35092, ptr %1085, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1086) #11
  %35093 = load i32, ptr %1085, align 4, !tbaa !5
  %35094 = call ptr @s2n_stuffer_raw_read(ptr noundef %1082, i32 noundef %35093)
  store ptr %35094, ptr %1086, align 8, !tbaa !9
  br label %35095

35095:                                            ; preds = %35087
  %35096 = load i32, ptr @test_count, align 4, !tbaa !5
  %35097 = add nsw i32 %35096, 1
  store i32 %35097, ptr @test_count, align 4, !tbaa !5
  %35098 = load ptr, ptr %1086, align 8, !tbaa !9
  %35099 = icmp eq ptr %35098, null
  br i1 %35099, label %35100, label %35153

35100:                                            ; preds = %35095
  br label %35101

35101:                                            ; preds = %35100
  br label %35102

35102:                                            ; preds = %35101
  call void @llvm.lifetime.start.p0(i64 4, ptr %1087) #11
  %35103 = call ptr @__errno_location() #12
  %35104 = load i32, ptr %35103, align 4, !tbaa !5
  store i32 %35104, ptr %1087, align 4, !tbaa !5
  %35105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35106 = call i32 @s2n_print_stacktrace(ptr noundef %35105)
  %35107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35108 = trunc i8 %35107 to i1
  br i1 %35108, label %35109, label %35131

35109:                                            ; preds = %35102
  %35110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35111 = call i32 @fileno(ptr noundef %35110) #11
  %35112 = call i32 @isatty(i32 noundef %35111) #11
  %35113 = icmp ne i32 %35112, 0
  br i1 %35113, label %35114, label %35131

35114:                                            ; preds = %35109
  %35115 = load i32, ptr %1087, align 4, !tbaa !5
  %35116 = call ptr @__errno_location() #12
  store i32 %35115, ptr %35116, align 4, !tbaa !5
  %35117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35118 = load i32, ptr @test_count, align 4, !tbaa !5
  %35119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35120 = load i32, ptr %35119, align 4, !tbaa !5
  %35121 = call ptr @s2n_strerror(i32 noundef %35120, ptr noundef @.str.4)
  %35122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35123 = load i32, ptr %35122, align 4, !tbaa !5
  %35124 = call ptr @s2n_strerror_debug(i32 noundef %35123, ptr noundef @.str.4)
  %35125 = call ptr @__errno_location() #12
  %35126 = load i32, ptr %35125, align 4, !tbaa !5
  %35127 = call ptr @strerror(i32 noundef %35126) #11
  %35128 = call ptr @__errno_location() #12
  %35129 = load i32, ptr %35128, align 4, !tbaa !5
  %35130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35117, ptr noundef @.str.2, i32 noundef %35118, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2111, ptr noundef %35121, ptr noundef %35124, ptr noundef %35127, i32 noundef %35129) #11
  br label %35148

35131:                                            ; preds = %35109, %35102
  %35132 = load i32, ptr %1087, align 4, !tbaa !5
  %35133 = call ptr @__errno_location() #12
  store i32 %35132, ptr %35133, align 4, !tbaa !5
  %35134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35135 = load i32, ptr @test_count, align 4, !tbaa !5
  %35136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35137 = load i32, ptr %35136, align 4, !tbaa !5
  %35138 = call ptr @s2n_strerror(i32 noundef %35137, ptr noundef @.str.4)
  %35139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35140 = load i32, ptr %35139, align 4, !tbaa !5
  %35141 = call ptr @s2n_strerror_debug(i32 noundef %35140, ptr noundef @.str.4)
  %35142 = call ptr @__errno_location() #12
  %35143 = load i32, ptr %35142, align 4, !tbaa !5
  %35144 = call ptr @strerror(i32 noundef %35143) #11
  %35145 = call ptr @__errno_location() #12
  %35146 = load i32, ptr %35145, align 4, !tbaa !5
  %35147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35134, ptr noundef @.str.5, i32 noundef %35135, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2111, ptr noundef %35138, ptr noundef %35141, ptr noundef %35144, i32 noundef %35146) #11
  br label %35148

35148:                                            ; preds = %35131, %35114
  call void @llvm.lifetime.end.p0(i64 4, ptr %1087) #11
  br label %35149

35149:                                            ; preds = %35148
  br label %35150

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

35151:                                            ; No predecessors!
  br label %35152

35152:                                            ; preds = %35151
  br label %35153

35153:                                            ; preds = %35152, %35095
  br label %35154

35154:                                            ; preds = %35153
  br label %35155

35155:                                            ; preds = %35154
  call void @llvm.lifetime.start.p0(i64 48, ptr %1088) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1088, i8 0, i64 48, i1 false)
  br label %35156

35156:                                            ; preds = %35155
  %35157 = load i32, ptr @test_count, align 4, !tbaa !5
  %35158 = add nsw i32 %35157, 1
  store i32 %35158, ptr @test_count, align 4, !tbaa !5
  %35159 = call i32 @s2n_pkey_zero_init(ptr noundef %1088)
  %35160 = icmp eq i32 %35159, -1
  br i1 %35160, label %35161, label %35214

35161:                                            ; preds = %35156
  br label %35162

35162:                                            ; preds = %35161
  br label %35163

35163:                                            ; preds = %35162
  call void @llvm.lifetime.start.p0(i64 4, ptr %1089) #11
  %35164 = call ptr @__errno_location() #12
  %35165 = load i32, ptr %35164, align 4, !tbaa !5
  store i32 %35165, ptr %1089, align 4, !tbaa !5
  %35166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35167 = call i32 @s2n_print_stacktrace(ptr noundef %35166)
  %35168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35169 = trunc i8 %35168 to i1
  br i1 %35169, label %35170, label %35192

35170:                                            ; preds = %35163
  %35171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35172 = call i32 @fileno(ptr noundef %35171) #11
  %35173 = call i32 @isatty(i32 noundef %35172) #11
  %35174 = icmp ne i32 %35173, 0
  br i1 %35174, label %35175, label %35192

35175:                                            ; preds = %35170
  %35176 = load i32, ptr %1089, align 4, !tbaa !5
  %35177 = call ptr @__errno_location() #12
  store i32 %35176, ptr %35177, align 4, !tbaa !5
  %35178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35179 = load i32, ptr @test_count, align 4, !tbaa !5
  %35180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35181 = load i32, ptr %35180, align 4, !tbaa !5
  %35182 = call ptr @s2n_strerror(i32 noundef %35181, ptr noundef @.str.4)
  %35183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35184 = load i32, ptr %35183, align 4, !tbaa !5
  %35185 = call ptr @s2n_strerror_debug(i32 noundef %35184, ptr noundef @.str.4)
  %35186 = call ptr @__errno_location() #12
  %35187 = load i32, ptr %35186, align 4, !tbaa !5
  %35188 = call ptr @strerror(i32 noundef %35187) #11
  %35189 = call ptr @__errno_location() #12
  %35190 = load i32, ptr %35189, align 4, !tbaa !5
  %35191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35178, ptr noundef @.str.2, i32 noundef %35179, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2114, ptr noundef %35182, ptr noundef %35185, ptr noundef %35188, i32 noundef %35190) #11
  br label %35209

35192:                                            ; preds = %35170, %35163
  %35193 = load i32, ptr %1089, align 4, !tbaa !5
  %35194 = call ptr @__errno_location() #12
  store i32 %35193, ptr %35194, align 4, !tbaa !5
  %35195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35196 = load i32, ptr @test_count, align 4, !tbaa !5
  %35197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35198 = load i32, ptr %35197, align 4, !tbaa !5
  %35199 = call ptr @s2n_strerror(i32 noundef %35198, ptr noundef @.str.4)
  %35200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35201 = load i32, ptr %35200, align 4, !tbaa !5
  %35202 = call ptr @s2n_strerror_debug(i32 noundef %35201, ptr noundef @.str.4)
  %35203 = call ptr @__errno_location() #12
  %35204 = load i32, ptr %35203, align 4, !tbaa !5
  %35205 = call ptr @strerror(i32 noundef %35204) #11
  %35206 = call ptr @__errno_location() #12
  %35207 = load i32, ptr %35206, align 4, !tbaa !5
  %35208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35195, ptr noundef @.str.5, i32 noundef %35196, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2114, ptr noundef %35199, ptr noundef %35202, ptr noundef %35205, i32 noundef %35207) #11
  br label %35209

35209:                                            ; preds = %35192, %35175
  call void @llvm.lifetime.end.p0(i64 4, ptr %1089) #11
  br label %35210

35210:                                            ; preds = %35209
  br label %35211

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

35212:                                            ; No predecessors!
  br label %35213

35213:                                            ; preds = %35212
  br label %35214

35214:                                            ; preds = %35213, %35156
  br label %35215

35215:                                            ; preds = %35214
  br label %35216

35216:                                            ; preds = %35215
  call void @llvm.lifetime.start.p0(i64 4, ptr %1090) #11
  store i32 -1, ptr %1090, align 4, !tbaa !5
  br label %35217

35217:                                            ; preds = %35216
  %35218 = load i32, ptr @test_count, align 4, !tbaa !5
  %35219 = add nsw i32 %35218, 1
  store i32 %35219, ptr @test_count, align 4, !tbaa !5
  %35220 = load ptr, ptr %1078, align 8, !tbaa !9
  %35221 = load ptr, ptr %1086, align 8, !tbaa !9
  %35222 = load i32, ptr %1085, align 4, !tbaa !5
  %35223 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %1076, ptr noundef %35220, ptr noundef %35221, i32 noundef %35222, ptr noundef %1090, ptr noundef %1088)
  %35224 = getelementptr inbounds %struct.s2n_result, ptr %1091, i32 0, i32 0
  store i32 %35223, ptr %35224, align 4
  %35225 = getelementptr inbounds %struct.s2n_result, ptr %1091, i32 0, i32 0
  %35226 = load i32, ptr %35225, align 4
  %35227 = call zeroext i1 @s2n_result_is_ok(i32 %35226)
  br i1 %35227, label %35281, label %35228

35228:                                            ; preds = %35217
  br label %35229

35229:                                            ; preds = %35228
  br label %35230

35230:                                            ; preds = %35229
  call void @llvm.lifetime.start.p0(i64 4, ptr %1092) #11
  %35231 = call ptr @__errno_location() #12
  %35232 = load i32, ptr %35231, align 4, !tbaa !5
  store i32 %35232, ptr %1092, align 4, !tbaa !5
  %35233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35234 = call i32 @s2n_print_stacktrace(ptr noundef %35233)
  %35235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35236 = trunc i8 %35235 to i1
  br i1 %35236, label %35237, label %35259

35237:                                            ; preds = %35230
  %35238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35239 = call i32 @fileno(ptr noundef %35238) #11
  %35240 = call i32 @isatty(i32 noundef %35239) #11
  %35241 = icmp ne i32 %35240, 0
  br i1 %35241, label %35242, label %35259

35242:                                            ; preds = %35237
  %35243 = load i32, ptr %1092, align 4, !tbaa !5
  %35244 = call ptr @__errno_location() #12
  store i32 %35243, ptr %35244, align 4, !tbaa !5
  %35245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35246 = load i32, ptr @test_count, align 4, !tbaa !5
  %35247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35248 = load i32, ptr %35247, align 4, !tbaa !5
  %35249 = call ptr @s2n_strerror(i32 noundef %35248, ptr noundef @.str.4)
  %35250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35251 = load i32, ptr %35250, align 4, !tbaa !5
  %35252 = call ptr @s2n_strerror_debug(i32 noundef %35251, ptr noundef @.str.4)
  %35253 = call ptr @__errno_location() #12
  %35254 = load i32, ptr %35253, align 4, !tbaa !5
  %35255 = call ptr @strerror(i32 noundef %35254) #11
  %35256 = call ptr @__errno_location() #12
  %35257 = load i32, ptr %35256, align 4, !tbaa !5
  %35258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35245, ptr noundef @.str.2, i32 noundef %35246, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 2117, ptr noundef %35249, ptr noundef %35252, ptr noundef %35255, i32 noundef %35257) #11
  br label %35276

35259:                                            ; preds = %35237, %35230
  %35260 = load i32, ptr %1092, align 4, !tbaa !5
  %35261 = call ptr @__errno_location() #12
  store i32 %35260, ptr %35261, align 4, !tbaa !5
  %35262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35263 = load i32, ptr @test_count, align 4, !tbaa !5
  %35264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35265 = load i32, ptr %35264, align 4, !tbaa !5
  %35266 = call ptr @s2n_strerror(i32 noundef %35265, ptr noundef @.str.4)
  %35267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35268 = load i32, ptr %35267, align 4, !tbaa !5
  %35269 = call ptr @s2n_strerror_debug(i32 noundef %35268, ptr noundef @.str.4)
  %35270 = call ptr @__errno_location() #12
  %35271 = load i32, ptr %35270, align 4, !tbaa !5
  %35272 = call ptr @strerror(i32 noundef %35271) #11
  %35273 = call ptr @__errno_location() #12
  %35274 = load i32, ptr %35273, align 4, !tbaa !5
  %35275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35262, ptr noundef @.str.5, i32 noundef %35263, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 2117, ptr noundef %35266, ptr noundef %35269, ptr noundef %35272, i32 noundef %35274) #11
  br label %35276

35276:                                            ; preds = %35259, %35242
  call void @llvm.lifetime.end.p0(i64 4, ptr %1092) #11
  br label %35277

35277:                                            ; preds = %35276
  br label %35278

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

35279:                                            ; No predecessors!
  br label %35280

35280:                                            ; preds = %35279
  br label %35281

35281:                                            ; preds = %35280, %35217
  br label %35282

35282:                                            ; preds = %35281
  br label %35283

35283:                                            ; preds = %35282
  call void @llvm.lifetime.end.p0(i64 4, ptr %1090) #11
  %35284 = call i32 @s2n_pkey_free(ptr noundef %1088)
  call void @llvm.lifetime.end.p0(i64 48, ptr %1088) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1086) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1085) #11
  %35285 = call i32 @s2n_stuffer_free(ptr noundef %1082)
  call void @llvm.lifetime.end.p0(i64 40, ptr %1082) #11
  %35286 = call i32 @s2n_connection_ptr_free(ptr noundef %1078)
  %35287 = getelementptr inbounds %struct.s2n_result, ptr %1093, i32 0, i32 0
  store i32 %35286, ptr %35287, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1078) #11
  %35288 = call i32 @s2n_x509_validator_wipe(ptr noundef %1076)
  call void @llvm.lifetime.end.p0(i64 56, ptr %1076) #11
  %35289 = call i32 @s2n_config_ptr_free(ptr noundef %1074)
  %35290 = getelementptr inbounds %struct.s2n_result, ptr %1094, i32 0, i32 0
  store i32 %35289, ptr %35290, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1074) #11
  call void @llvm.lifetime.start.p0(i64 12000, ptr %1095) #11
  call void @llvm.memset.p0.i64(ptr align 16 %1095, i8 0, i64 12000, i1 false)
  br label %35291

35291:                                            ; preds = %35283
  %35292 = load i32, ptr @test_count, align 4, !tbaa !5
  %35293 = add nsw i32 %35292, 1
  store i32 %35293, ptr @test_count, align 4, !tbaa !5
  %35294 = load ptr, ptr %1058, align 8, !tbaa !9
  %35295 = getelementptr inbounds [12000 x i8], ptr %1095, i64 0, i64 0
  %35296 = call i32 @s2n_read_test_pem(ptr noundef %35294, ptr noundef %35295, i64 noundef 12000)
  %35297 = icmp eq i32 %35296, -1
  br i1 %35297, label %35298, label %35351

35298:                                            ; preds = %35291
  br label %35299

35299:                                            ; preds = %35298
  br label %35300

35300:                                            ; preds = %35299
  call void @llvm.lifetime.start.p0(i64 4, ptr %1096) #11
  %35301 = call ptr @__errno_location() #12
  %35302 = load i32, ptr %35301, align 4, !tbaa !5
  store i32 %35302, ptr %1096, align 4, !tbaa !5
  %35303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35304 = call i32 @s2n_print_stacktrace(ptr noundef %35303)
  %35305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35306 = trunc i8 %35305 to i1
  br i1 %35306, label %35307, label %35329

35307:                                            ; preds = %35300
  %35308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35309 = call i32 @fileno(ptr noundef %35308) #11
  %35310 = call i32 @isatty(i32 noundef %35309) #11
  %35311 = icmp ne i32 %35310, 0
  br i1 %35311, label %35312, label %35329

35312:                                            ; preds = %35307
  %35313 = load i32, ptr %1096, align 4, !tbaa !5
  %35314 = call ptr @__errno_location() #12
  store i32 %35313, ptr %35314, align 4, !tbaa !5
  %35315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35316 = load i32, ptr @test_count, align 4, !tbaa !5
  %35317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35318 = load i32, ptr %35317, align 4, !tbaa !5
  %35319 = call ptr @s2n_strerror(i32 noundef %35318, ptr noundef @.str.4)
  %35320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35321 = load i32, ptr %35320, align 4, !tbaa !5
  %35322 = call ptr @s2n_strerror_debug(i32 noundef %35321, ptr noundef @.str.4)
  %35323 = call ptr @__errno_location() #12
  %35324 = load i32, ptr %35323, align 4, !tbaa !5
  %35325 = call ptr @strerror(i32 noundef %35324) #11
  %35326 = call ptr @__errno_location() #12
  %35327 = load i32, ptr %35326, align 4, !tbaa !5
  %35328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35315, ptr noundef @.str.2, i32 noundef %35316, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 2123, ptr noundef %35319, ptr noundef %35322, ptr noundef %35325, i32 noundef %35327) #11
  br label %35346

35329:                                            ; preds = %35307, %35300
  %35330 = load i32, ptr %1096, align 4, !tbaa !5
  %35331 = call ptr @__errno_location() #12
  store i32 %35330, ptr %35331, align 4, !tbaa !5
  %35332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35333 = load i32, ptr @test_count, align 4, !tbaa !5
  %35334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35335 = load i32, ptr %35334, align 4, !tbaa !5
  %35336 = call ptr @s2n_strerror(i32 noundef %35335, ptr noundef @.str.4)
  %35337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35338 = load i32, ptr %35337, align 4, !tbaa !5
  %35339 = call ptr @s2n_strerror_debug(i32 noundef %35338, ptr noundef @.str.4)
  %35340 = call ptr @__errno_location() #12
  %35341 = load i32, ptr %35340, align 4, !tbaa !5
  %35342 = call ptr @strerror(i32 noundef %35341) #11
  %35343 = call ptr @__errno_location() #12
  %35344 = load i32, ptr %35343, align 4, !tbaa !5
  %35345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35332, ptr noundef @.str.5, i32 noundef %35333, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 2123, ptr noundef %35336, ptr noundef %35339, ptr noundef %35342, i32 noundef %35344) #11
  br label %35346

35346:                                            ; preds = %35329, %35312
  call void @llvm.lifetime.end.p0(i64 4, ptr %1096) #11
  br label %35347

35347:                                            ; preds = %35346
  br label %35348

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

35349:                                            ; No predecessors!
  br label %35350

35350:                                            ; preds = %35349
  br label %35351

35351:                                            ; preds = %35350, %35291
  br label %35352

35352:                                            ; preds = %35351
  br label %35353

35353:                                            ; preds = %35352
  call void @llvm.lifetime.start.p0(i64 8, ptr %1097) #11
  %35354 = call ptr @s2n_config_new()
  store ptr %35354, ptr %1097, align 8, !tbaa !9
  br label %35355

35355:                                            ; preds = %35353
  %35356 = load i32, ptr @test_count, align 4, !tbaa !5
  %35357 = add nsw i32 %35356, 1
  store i32 %35357, ptr @test_count, align 4, !tbaa !5
  %35358 = load ptr, ptr %1097, align 8, !tbaa !9
  %35359 = getelementptr inbounds [12000 x i8], ptr %1095, i64 0, i64 0
  %35360 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %35358, ptr noundef %35359)
  %35361 = icmp eq i32 %35360, -1
  br i1 %35361, label %35362, label %35415

35362:                                            ; preds = %35355
  br label %35363

35363:                                            ; preds = %35362
  br label %35364

35364:                                            ; preds = %35363
  call void @llvm.lifetime.start.p0(i64 4, ptr %1098) #11
  %35365 = call ptr @__errno_location() #12
  %35366 = load i32, ptr %35365, align 4, !tbaa !5
  store i32 %35366, ptr %1098, align 4, !tbaa !5
  %35367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35368 = call i32 @s2n_print_stacktrace(ptr noundef %35367)
  %35369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35370 = trunc i8 %35369 to i1
  br i1 %35370, label %35371, label %35393

35371:                                            ; preds = %35364
  %35372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35373 = call i32 @fileno(ptr noundef %35372) #11
  %35374 = call i32 @isatty(i32 noundef %35373) #11
  %35375 = icmp ne i32 %35374, 0
  br i1 %35375, label %35376, label %35393

35376:                                            ; preds = %35371
  %35377 = load i32, ptr %1098, align 4, !tbaa !5
  %35378 = call ptr @__errno_location() #12
  store i32 %35377, ptr %35378, align 4, !tbaa !5
  %35379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35380 = load i32, ptr @test_count, align 4, !tbaa !5
  %35381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35382 = load i32, ptr %35381, align 4, !tbaa !5
  %35383 = call ptr @s2n_strerror(i32 noundef %35382, ptr noundef @.str.4)
  %35384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35385 = load i32, ptr %35384, align 4, !tbaa !5
  %35386 = call ptr @s2n_strerror_debug(i32 noundef %35385, ptr noundef @.str.4)
  %35387 = call ptr @__errno_location() #12
  %35388 = load i32, ptr %35387, align 4, !tbaa !5
  %35389 = call ptr @strerror(i32 noundef %35388) #11
  %35390 = call ptr @__errno_location() #12
  %35391 = load i32, ptr %35390, align 4, !tbaa !5
  %35392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35379, ptr noundef @.str.2, i32 noundef %35380, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 2126, ptr noundef %35383, ptr noundef %35386, ptr noundef %35389, i32 noundef %35391) #11
  br label %35410

35393:                                            ; preds = %35371, %35364
  %35394 = load i32, ptr %1098, align 4, !tbaa !5
  %35395 = call ptr @__errno_location() #12
  store i32 %35394, ptr %35395, align 4, !tbaa !5
  %35396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35397 = load i32, ptr @test_count, align 4, !tbaa !5
  %35398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35399 = load i32, ptr %35398, align 4, !tbaa !5
  %35400 = call ptr @s2n_strerror(i32 noundef %35399, ptr noundef @.str.4)
  %35401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35402 = load i32, ptr %35401, align 4, !tbaa !5
  %35403 = call ptr @s2n_strerror_debug(i32 noundef %35402, ptr noundef @.str.4)
  %35404 = call ptr @__errno_location() #12
  %35405 = load i32, ptr %35404, align 4, !tbaa !5
  %35406 = call ptr @strerror(i32 noundef %35405) #11
  %35407 = call ptr @__errno_location() #12
  %35408 = load i32, ptr %35407, align 4, !tbaa !5
  %35409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35396, ptr noundef @.str.5, i32 noundef %35397, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 2126, ptr noundef %35400, ptr noundef %35403, ptr noundef %35406, i32 noundef %35408) #11
  br label %35410

35410:                                            ; preds = %35393, %35376
  call void @llvm.lifetime.end.p0(i64 4, ptr %1098) #11
  br label %35411

35411:                                            ; preds = %35410
  br label %35412

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

35413:                                            ; No predecessors!
  br label %35414

35414:                                            ; preds = %35413
  br label %35415

35415:                                            ; preds = %35414, %35355
  br label %35416

35416:                                            ; preds = %35415
  br label %35417

35417:                                            ; preds = %35416
  call void @llvm.lifetime.start.p0(i64 56, ptr %1099) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1099, i8 0, i64 56, i1 false)
  br label %35418

35418:                                            ; preds = %35417
  %35419 = load i32, ptr @test_count, align 4, !tbaa !5
  %35420 = add nsw i32 %35419, 1
  store i32 %35420, ptr @test_count, align 4, !tbaa !5
  %35421 = load ptr, ptr %1097, align 8, !tbaa !9
  %35422 = getelementptr inbounds %struct.s2n_config, ptr %35421, i32 0, i32 37
  %35423 = call i32 @s2n_x509_validator_init(ptr noundef %1099, ptr noundef %35422, i8 noundef zeroext 0)
  %35424 = icmp eq i32 %35423, -1
  br i1 %35424, label %35425, label %35478

35425:                                            ; preds = %35418
  br label %35426

35426:                                            ; preds = %35425
  br label %35427

35427:                                            ; preds = %35426
  call void @llvm.lifetime.start.p0(i64 4, ptr %1100) #11
  %35428 = call ptr @__errno_location() #12
  %35429 = load i32, ptr %35428, align 4, !tbaa !5
  store i32 %35429, ptr %1100, align 4, !tbaa !5
  %35430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35431 = call i32 @s2n_print_stacktrace(ptr noundef %35430)
  %35432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35433 = trunc i8 %35432 to i1
  br i1 %35433, label %35434, label %35456

35434:                                            ; preds = %35427
  %35435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35436 = call i32 @fileno(ptr noundef %35435) #11
  %35437 = call i32 @isatty(i32 noundef %35436) #11
  %35438 = icmp ne i32 %35437, 0
  br i1 %35438, label %35439, label %35456

35439:                                            ; preds = %35434
  %35440 = load i32, ptr %1100, align 4, !tbaa !5
  %35441 = call ptr @__errno_location() #12
  store i32 %35440, ptr %35441, align 4, !tbaa !5
  %35442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35443 = load i32, ptr @test_count, align 4, !tbaa !5
  %35444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35445 = load i32, ptr %35444, align 4, !tbaa !5
  %35446 = call ptr @s2n_strerror(i32 noundef %35445, ptr noundef @.str.4)
  %35447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35448 = load i32, ptr %35447, align 4, !tbaa !5
  %35449 = call ptr @s2n_strerror_debug(i32 noundef %35448, ptr noundef @.str.4)
  %35450 = call ptr @__errno_location() #12
  %35451 = load i32, ptr %35450, align 4, !tbaa !5
  %35452 = call ptr @strerror(i32 noundef %35451) #11
  %35453 = call ptr @__errno_location() #12
  %35454 = load i32, ptr %35453, align 4, !tbaa !5
  %35455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35442, ptr noundef @.str.2, i32 noundef %35443, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2129, ptr noundef %35446, ptr noundef %35449, ptr noundef %35452, i32 noundef %35454) #11
  br label %35473

35456:                                            ; preds = %35434, %35427
  %35457 = load i32, ptr %1100, align 4, !tbaa !5
  %35458 = call ptr @__errno_location() #12
  store i32 %35457, ptr %35458, align 4, !tbaa !5
  %35459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35460 = load i32, ptr @test_count, align 4, !tbaa !5
  %35461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35462 = load i32, ptr %35461, align 4, !tbaa !5
  %35463 = call ptr @s2n_strerror(i32 noundef %35462, ptr noundef @.str.4)
  %35464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35465 = load i32, ptr %35464, align 4, !tbaa !5
  %35466 = call ptr @s2n_strerror_debug(i32 noundef %35465, ptr noundef @.str.4)
  %35467 = call ptr @__errno_location() #12
  %35468 = load i32, ptr %35467, align 4, !tbaa !5
  %35469 = call ptr @strerror(i32 noundef %35468) #11
  %35470 = call ptr @__errno_location() #12
  %35471 = load i32, ptr %35470, align 4, !tbaa !5
  %35472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35459, ptr noundef @.str.5, i32 noundef %35460, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2129, ptr noundef %35463, ptr noundef %35466, ptr noundef %35469, i32 noundef %35471) #11
  br label %35473

35473:                                            ; preds = %35456, %35439
  call void @llvm.lifetime.end.p0(i64 4, ptr %1100) #11
  br label %35474

35474:                                            ; preds = %35473
  br label %35475

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

35476:                                            ; No predecessors!
  br label %35477

35477:                                            ; preds = %35476
  br label %35478

35478:                                            ; preds = %35477, %35418
  br label %35479

35479:                                            ; preds = %35478
  br label %35480

35480:                                            ; preds = %35479
  call void @llvm.lifetime.start.p0(i64 8, ptr %1101) #11
  %35481 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %35481, ptr %1101, align 8, !tbaa !9
  br label %35482

35482:                                            ; preds = %35480
  %35483 = load i32, ptr @test_count, align 4, !tbaa !5
  %35484 = add nsw i32 %35483, 1
  store i32 %35484, ptr @test_count, align 4, !tbaa !5
  %35485 = load ptr, ptr %1101, align 8, !tbaa !9
  %35486 = icmp eq ptr %35485, null
  br i1 %35486, label %35487, label %35540

35487:                                            ; preds = %35482
  br label %35488

35488:                                            ; preds = %35487
  br label %35489

35489:                                            ; preds = %35488
  call void @llvm.lifetime.start.p0(i64 4, ptr %1102) #11
  %35490 = call ptr @__errno_location() #12
  %35491 = load i32, ptr %35490, align 4, !tbaa !5
  store i32 %35491, ptr %1102, align 4, !tbaa !5
  %35492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35493 = call i32 @s2n_print_stacktrace(ptr noundef %35492)
  %35494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35495 = trunc i8 %35494 to i1
  br i1 %35495, label %35496, label %35518

35496:                                            ; preds = %35489
  %35497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35498 = call i32 @fileno(ptr noundef %35497) #11
  %35499 = call i32 @isatty(i32 noundef %35498) #11
  %35500 = icmp ne i32 %35499, 0
  br i1 %35500, label %35501, label %35518

35501:                                            ; preds = %35496
  %35502 = load i32, ptr %1102, align 4, !tbaa !5
  %35503 = call ptr @__errno_location() #12
  store i32 %35502, ptr %35503, align 4, !tbaa !5
  %35504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35505 = load i32, ptr @test_count, align 4, !tbaa !5
  %35506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35507 = load i32, ptr %35506, align 4, !tbaa !5
  %35508 = call ptr @s2n_strerror(i32 noundef %35507, ptr noundef @.str.4)
  %35509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35510 = load i32, ptr %35509, align 4, !tbaa !5
  %35511 = call ptr @s2n_strerror_debug(i32 noundef %35510, ptr noundef @.str.4)
  %35512 = call ptr @__errno_location() #12
  %35513 = load i32, ptr %35512, align 4, !tbaa !5
  %35514 = call ptr @strerror(i32 noundef %35513) #11
  %35515 = call ptr @__errno_location() #12
  %35516 = load i32, ptr %35515, align 4, !tbaa !5
  %35517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35504, ptr noundef @.str.2, i32 noundef %35505, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2132, ptr noundef %35508, ptr noundef %35511, ptr noundef %35514, i32 noundef %35516) #11
  br label %35535

35518:                                            ; preds = %35496, %35489
  %35519 = load i32, ptr %1102, align 4, !tbaa !5
  %35520 = call ptr @__errno_location() #12
  store i32 %35519, ptr %35520, align 4, !tbaa !5
  %35521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35522 = load i32, ptr @test_count, align 4, !tbaa !5
  %35523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35524 = load i32, ptr %35523, align 4, !tbaa !5
  %35525 = call ptr @s2n_strerror(i32 noundef %35524, ptr noundef @.str.4)
  %35526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35527 = load i32, ptr %35526, align 4, !tbaa !5
  %35528 = call ptr @s2n_strerror_debug(i32 noundef %35527, ptr noundef @.str.4)
  %35529 = call ptr @__errno_location() #12
  %35530 = load i32, ptr %35529, align 4, !tbaa !5
  %35531 = call ptr @strerror(i32 noundef %35530) #11
  %35532 = call ptr @__errno_location() #12
  %35533 = load i32, ptr %35532, align 4, !tbaa !5
  %35534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35521, ptr noundef @.str.5, i32 noundef %35522, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2132, ptr noundef %35525, ptr noundef %35528, ptr noundef %35531, i32 noundef %35533) #11
  br label %35535

35535:                                            ; preds = %35518, %35501
  call void @llvm.lifetime.end.p0(i64 4, ptr %1102) #11
  br label %35536

35536:                                            ; preds = %35535
  br label %35537

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

35538:                                            ; No predecessors!
  br label %35539

35539:                                            ; preds = %35538
  br label %35540

35540:                                            ; preds = %35539, %35482
  br label %35541

35541:                                            ; preds = %35540
  br label %35542

35542:                                            ; preds = %35541
  br label %35543

35543:                                            ; preds = %35542
  %35544 = load i32, ptr @test_count, align 4, !tbaa !5
  %35545 = add nsw i32 %35544, 1
  store i32 %35545, ptr @test_count, align 4, !tbaa !5
  %35546 = load ptr, ptr %1101, align 8, !tbaa !9
  %35547 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %35546, ptr noundef @.str.23)
  %35548 = icmp eq i32 %35547, -1
  br i1 %35548, label %35549, label %35602

35549:                                            ; preds = %35543
  br label %35550

35550:                                            ; preds = %35549
  br label %35551

35551:                                            ; preds = %35550
  call void @llvm.lifetime.start.p0(i64 4, ptr %1103) #11
  %35552 = call ptr @__errno_location() #12
  %35553 = load i32, ptr %35552, align 4, !tbaa !5
  store i32 %35553, ptr %1103, align 4, !tbaa !5
  %35554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35555 = call i32 @s2n_print_stacktrace(ptr noundef %35554)
  %35556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35557 = trunc i8 %35556 to i1
  br i1 %35557, label %35558, label %35580

35558:                                            ; preds = %35551
  %35559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35560 = call i32 @fileno(ptr noundef %35559) #11
  %35561 = call i32 @isatty(i32 noundef %35560) #11
  %35562 = icmp ne i32 %35561, 0
  br i1 %35562, label %35563, label %35580

35563:                                            ; preds = %35558
  %35564 = load i32, ptr %1103, align 4, !tbaa !5
  %35565 = call ptr @__errno_location() #12
  store i32 %35564, ptr %35565, align 4, !tbaa !5
  %35566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35567 = load i32, ptr @test_count, align 4, !tbaa !5
  %35568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35569 = load i32, ptr %35568, align 4, !tbaa !5
  %35570 = call ptr @s2n_strerror(i32 noundef %35569, ptr noundef @.str.4)
  %35571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35572 = load i32, ptr %35571, align 4, !tbaa !5
  %35573 = call ptr @s2n_strerror_debug(i32 noundef %35572, ptr noundef @.str.4)
  %35574 = call ptr @__errno_location() #12
  %35575 = load i32, ptr %35574, align 4, !tbaa !5
  %35576 = call ptr @strerror(i32 noundef %35575) #11
  %35577 = call ptr @__errno_location() #12
  %35578 = load i32, ptr %35577, align 4, !tbaa !5
  %35579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35566, ptr noundef @.str.2, i32 noundef %35567, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2133, ptr noundef %35570, ptr noundef %35573, ptr noundef %35576, i32 noundef %35578) #11
  br label %35597

35580:                                            ; preds = %35558, %35551
  %35581 = load i32, ptr %1103, align 4, !tbaa !5
  %35582 = call ptr @__errno_location() #12
  store i32 %35581, ptr %35582, align 4, !tbaa !5
  %35583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35584 = load i32, ptr @test_count, align 4, !tbaa !5
  %35585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35586 = load i32, ptr %35585, align 4, !tbaa !5
  %35587 = call ptr @s2n_strerror(i32 noundef %35586, ptr noundef @.str.4)
  %35588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35589 = load i32, ptr %35588, align 4, !tbaa !5
  %35590 = call ptr @s2n_strerror_debug(i32 noundef %35589, ptr noundef @.str.4)
  %35591 = call ptr @__errno_location() #12
  %35592 = load i32, ptr %35591, align 4, !tbaa !5
  %35593 = call ptr @strerror(i32 noundef %35592) #11
  %35594 = call ptr @__errno_location() #12
  %35595 = load i32, ptr %35594, align 4, !tbaa !5
  %35596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35583, ptr noundef @.str.5, i32 noundef %35584, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2133, ptr noundef %35587, ptr noundef %35590, ptr noundef %35593, i32 noundef %35595) #11
  br label %35597

35597:                                            ; preds = %35580, %35563
  call void @llvm.lifetime.end.p0(i64 4, ptr %1103) #11
  br label %35598

35598:                                            ; preds = %35597
  br label %35599

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

35600:                                            ; No predecessors!
  br label %35601

35601:                                            ; preds = %35600
  br label %35602

35602:                                            ; preds = %35601, %35543
  br label %35603

35603:                                            ; preds = %35602
  br label %35604

35604:                                            ; preds = %35603
  br label %35605

35605:                                            ; preds = %35604
  %35606 = load i32, ptr @test_count, align 4, !tbaa !5
  %35607 = add nsw i32 %35606, 1
  store i32 %35607, ptr @test_count, align 4, !tbaa !5
  %35608 = load ptr, ptr %1101, align 8, !tbaa !9
  %35609 = call i32 @s2n_set_server_name(ptr noundef %35608, ptr noundef @.str.162)
  %35610 = icmp eq i32 %35609, -1
  br i1 %35610, label %35611, label %35664

35611:                                            ; preds = %35605
  br label %35612

35612:                                            ; preds = %35611
  br label %35613

35613:                                            ; preds = %35612
  call void @llvm.lifetime.start.p0(i64 4, ptr %1104) #11
  %35614 = call ptr @__errno_location() #12
  %35615 = load i32, ptr %35614, align 4, !tbaa !5
  store i32 %35615, ptr %1104, align 4, !tbaa !5
  %35616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35617 = call i32 @s2n_print_stacktrace(ptr noundef %35616)
  %35618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35619 = trunc i8 %35618 to i1
  br i1 %35619, label %35620, label %35642

35620:                                            ; preds = %35613
  %35621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35622 = call i32 @fileno(ptr noundef %35621) #11
  %35623 = call i32 @isatty(i32 noundef %35622) #11
  %35624 = icmp ne i32 %35623, 0
  br i1 %35624, label %35625, label %35642

35625:                                            ; preds = %35620
  %35626 = load i32, ptr %1104, align 4, !tbaa !5
  %35627 = call ptr @__errno_location() #12
  store i32 %35626, ptr %35627, align 4, !tbaa !5
  %35628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35629 = load i32, ptr @test_count, align 4, !tbaa !5
  %35630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35631 = load i32, ptr %35630, align 4, !tbaa !5
  %35632 = call ptr @s2n_strerror(i32 noundef %35631, ptr noundef @.str.4)
  %35633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35634 = load i32, ptr %35633, align 4, !tbaa !5
  %35635 = call ptr @s2n_strerror_debug(i32 noundef %35634, ptr noundef @.str.4)
  %35636 = call ptr @__errno_location() #12
  %35637 = load i32, ptr %35636, align 4, !tbaa !5
  %35638 = call ptr @strerror(i32 noundef %35637) #11
  %35639 = call ptr @__errno_location() #12
  %35640 = load i32, ptr %35639, align 4, !tbaa !5
  %35641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35628, ptr noundef @.str.2, i32 noundef %35629, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 2134, ptr noundef %35632, ptr noundef %35635, ptr noundef %35638, i32 noundef %35640) #11
  br label %35659

35642:                                            ; preds = %35620, %35613
  %35643 = load i32, ptr %1104, align 4, !tbaa !5
  %35644 = call ptr @__errno_location() #12
  store i32 %35643, ptr %35644, align 4, !tbaa !5
  %35645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35646 = load i32, ptr @test_count, align 4, !tbaa !5
  %35647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35648 = load i32, ptr %35647, align 4, !tbaa !5
  %35649 = call ptr @s2n_strerror(i32 noundef %35648, ptr noundef @.str.4)
  %35650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35651 = load i32, ptr %35650, align 4, !tbaa !5
  %35652 = call ptr @s2n_strerror_debug(i32 noundef %35651, ptr noundef @.str.4)
  %35653 = call ptr @__errno_location() #12
  %35654 = load i32, ptr %35653, align 4, !tbaa !5
  %35655 = call ptr @strerror(i32 noundef %35654) #11
  %35656 = call ptr @__errno_location() #12
  %35657 = load i32, ptr %35656, align 4, !tbaa !5
  %35658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35645, ptr noundef @.str.5, i32 noundef %35646, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 2134, ptr noundef %35649, ptr noundef %35652, ptr noundef %35655, i32 noundef %35657) #11
  br label %35659

35659:                                            ; preds = %35642, %35625
  call void @llvm.lifetime.end.p0(i64 4, ptr %1104) #11
  br label %35660

35660:                                            ; preds = %35659
  br label %35661

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

35662:                                            ; No predecessors!
  br label %35663

35663:                                            ; preds = %35662
  br label %35664

35664:                                            ; preds = %35663, %35605
  br label %35665

35665:                                            ; preds = %35664
  br label %35666

35666:                                            ; preds = %35665
  call void @llvm.lifetime.start.p0(i64 40, ptr %1105) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1105, i8 0, i64 40, i1 false)
  br label %35667

35667:                                            ; preds = %35666
  %35668 = load i32, ptr @test_count, align 4, !tbaa !5
  %35669 = add nsw i32 %35668, 1
  store i32 %35669, ptr @test_count, align 4, !tbaa !5
  %35670 = load ptr, ptr %1101, align 8, !tbaa !9
  %35671 = load ptr, ptr %1058, align 8, !tbaa !9
  %35672 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %35670, ptr noundef %35671, ptr noundef %1105)
  %35673 = getelementptr inbounds %struct.s2n_result, ptr %1106, i32 0, i32 0
  store i32 %35672, ptr %35673, align 4
  %35674 = getelementptr inbounds %struct.s2n_result, ptr %1106, i32 0, i32 0
  %35675 = load i32, ptr %35674, align 4
  %35676 = call zeroext i1 @s2n_result_is_ok(i32 %35675)
  br i1 %35676, label %35730, label %35677

35677:                                            ; preds = %35667
  br label %35678

35678:                                            ; preds = %35677
  br label %35679

35679:                                            ; preds = %35678
  call void @llvm.lifetime.start.p0(i64 4, ptr %1107) #11
  %35680 = call ptr @__errno_location() #12
  %35681 = load i32, ptr %35680, align 4, !tbaa !5
  store i32 %35681, ptr %1107, align 4, !tbaa !5
  %35682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35683 = call i32 @s2n_print_stacktrace(ptr noundef %35682)
  %35684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35685 = trunc i8 %35684 to i1
  br i1 %35685, label %35686, label %35708

35686:                                            ; preds = %35679
  %35687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35688 = call i32 @fileno(ptr noundef %35687) #11
  %35689 = call i32 @isatty(i32 noundef %35688) #11
  %35690 = icmp ne i32 %35689, 0
  br i1 %35690, label %35691, label %35708

35691:                                            ; preds = %35686
  %35692 = load i32, ptr %1107, align 4, !tbaa !5
  %35693 = call ptr @__errno_location() #12
  store i32 %35692, ptr %35693, align 4, !tbaa !5
  %35694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35695 = load i32, ptr @test_count, align 4, !tbaa !5
  %35696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35697 = load i32, ptr %35696, align 4, !tbaa !5
  %35698 = call ptr @s2n_strerror(i32 noundef %35697, ptr noundef @.str.4)
  %35699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35700 = load i32, ptr %35699, align 4, !tbaa !5
  %35701 = call ptr @s2n_strerror_debug(i32 noundef %35700, ptr noundef @.str.4)
  %35702 = call ptr @__errno_location() #12
  %35703 = load i32, ptr %35702, align 4, !tbaa !5
  %35704 = call ptr @strerror(i32 noundef %35703) #11
  %35705 = call ptr @__errno_location() #12
  %35706 = load i32, ptr %35705, align 4, !tbaa !5
  %35707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35694, ptr noundef @.str.2, i32 noundef %35695, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 2137, ptr noundef %35698, ptr noundef %35701, ptr noundef %35704, i32 noundef %35706) #11
  br label %35725

35708:                                            ; preds = %35686, %35679
  %35709 = load i32, ptr %1107, align 4, !tbaa !5
  %35710 = call ptr @__errno_location() #12
  store i32 %35709, ptr %35710, align 4, !tbaa !5
  %35711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35712 = load i32, ptr @test_count, align 4, !tbaa !5
  %35713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35714 = load i32, ptr %35713, align 4, !tbaa !5
  %35715 = call ptr @s2n_strerror(i32 noundef %35714, ptr noundef @.str.4)
  %35716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35717 = load i32, ptr %35716, align 4, !tbaa !5
  %35718 = call ptr @s2n_strerror_debug(i32 noundef %35717, ptr noundef @.str.4)
  %35719 = call ptr @__errno_location() #12
  %35720 = load i32, ptr %35719, align 4, !tbaa !5
  %35721 = call ptr @strerror(i32 noundef %35720) #11
  %35722 = call ptr @__errno_location() #12
  %35723 = load i32, ptr %35722, align 4, !tbaa !5
  %35724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35711, ptr noundef @.str.5, i32 noundef %35712, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 2137, ptr noundef %35715, ptr noundef %35718, ptr noundef %35721, i32 noundef %35723) #11
  br label %35725

35725:                                            ; preds = %35708, %35691
  call void @llvm.lifetime.end.p0(i64 4, ptr %1107) #11
  br label %35726

35726:                                            ; preds = %35725
  br label %35727

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

35728:                                            ; No predecessors!
  br label %35729

35729:                                            ; preds = %35728
  br label %35730

35730:                                            ; preds = %35729, %35667
  br label %35731

35731:                                            ; preds = %35730
  br label %35732

35732:                                            ; preds = %35731
  call void @llvm.lifetime.start.p0(i64 4, ptr %1108) #11
  %35733 = getelementptr inbounds %struct.s2n_stuffer, ptr %1105, i32 0, i32 2
  %35734 = load i32, ptr %35733, align 4, !tbaa !15
  %35735 = getelementptr inbounds %struct.s2n_stuffer, ptr %1105, i32 0, i32 1
  %35736 = load i32, ptr %35735, align 8, !tbaa !18
  %35737 = sub i32 %35734, %35736
  store i32 %35737, ptr %1108, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1109) #11
  %35738 = load i32, ptr %1108, align 4, !tbaa !5
  %35739 = call ptr @s2n_stuffer_raw_read(ptr noundef %1105, i32 noundef %35738)
  store ptr %35739, ptr %1109, align 8, !tbaa !9
  br label %35740

35740:                                            ; preds = %35732
  %35741 = load i32, ptr @test_count, align 4, !tbaa !5
  %35742 = add nsw i32 %35741, 1
  store i32 %35742, ptr @test_count, align 4, !tbaa !5
  %35743 = load ptr, ptr %1109, align 8, !tbaa !9
  %35744 = icmp eq ptr %35743, null
  br i1 %35744, label %35745, label %35798

35745:                                            ; preds = %35740
  br label %35746

35746:                                            ; preds = %35745
  br label %35747

35747:                                            ; preds = %35746
  call void @llvm.lifetime.start.p0(i64 4, ptr %1110) #11
  %35748 = call ptr @__errno_location() #12
  %35749 = load i32, ptr %35748, align 4, !tbaa !5
  store i32 %35749, ptr %1110, align 4, !tbaa !5
  %35750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35751 = call i32 @s2n_print_stacktrace(ptr noundef %35750)
  %35752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35753 = trunc i8 %35752 to i1
  br i1 %35753, label %35754, label %35776

35754:                                            ; preds = %35747
  %35755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35756 = call i32 @fileno(ptr noundef %35755) #11
  %35757 = call i32 @isatty(i32 noundef %35756) #11
  %35758 = icmp ne i32 %35757, 0
  br i1 %35758, label %35759, label %35776

35759:                                            ; preds = %35754
  %35760 = load i32, ptr %1110, align 4, !tbaa !5
  %35761 = call ptr @__errno_location() #12
  store i32 %35760, ptr %35761, align 4, !tbaa !5
  %35762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35763 = load i32, ptr @test_count, align 4, !tbaa !5
  %35764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35765 = load i32, ptr %35764, align 4, !tbaa !5
  %35766 = call ptr @s2n_strerror(i32 noundef %35765, ptr noundef @.str.4)
  %35767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35768 = load i32, ptr %35767, align 4, !tbaa !5
  %35769 = call ptr @s2n_strerror_debug(i32 noundef %35768, ptr noundef @.str.4)
  %35770 = call ptr @__errno_location() #12
  %35771 = load i32, ptr %35770, align 4, !tbaa !5
  %35772 = call ptr @strerror(i32 noundef %35771) #11
  %35773 = call ptr @__errno_location() #12
  %35774 = load i32, ptr %35773, align 4, !tbaa !5
  %35775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35762, ptr noundef @.str.2, i32 noundef %35763, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2140, ptr noundef %35766, ptr noundef %35769, ptr noundef %35772, i32 noundef %35774) #11
  br label %35793

35776:                                            ; preds = %35754, %35747
  %35777 = load i32, ptr %1110, align 4, !tbaa !5
  %35778 = call ptr @__errno_location() #12
  store i32 %35777, ptr %35778, align 4, !tbaa !5
  %35779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35780 = load i32, ptr @test_count, align 4, !tbaa !5
  %35781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35782 = load i32, ptr %35781, align 4, !tbaa !5
  %35783 = call ptr @s2n_strerror(i32 noundef %35782, ptr noundef @.str.4)
  %35784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35785 = load i32, ptr %35784, align 4, !tbaa !5
  %35786 = call ptr @s2n_strerror_debug(i32 noundef %35785, ptr noundef @.str.4)
  %35787 = call ptr @__errno_location() #12
  %35788 = load i32, ptr %35787, align 4, !tbaa !5
  %35789 = call ptr @strerror(i32 noundef %35788) #11
  %35790 = call ptr @__errno_location() #12
  %35791 = load i32, ptr %35790, align 4, !tbaa !5
  %35792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35779, ptr noundef @.str.5, i32 noundef %35780, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2140, ptr noundef %35783, ptr noundef %35786, ptr noundef %35789, i32 noundef %35791) #11
  br label %35793

35793:                                            ; preds = %35776, %35759
  call void @llvm.lifetime.end.p0(i64 4, ptr %1110) #11
  br label %35794

35794:                                            ; preds = %35793
  br label %35795

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

35796:                                            ; No predecessors!
  br label %35797

35797:                                            ; preds = %35796
  br label %35798

35798:                                            ; preds = %35797, %35740
  br label %35799

35799:                                            ; preds = %35798
  br label %35800

35800:                                            ; preds = %35799
  call void @llvm.lifetime.start.p0(i64 48, ptr %1111) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1111, i8 0, i64 48, i1 false)
  br label %35801

35801:                                            ; preds = %35800
  %35802 = load i32, ptr @test_count, align 4, !tbaa !5
  %35803 = add nsw i32 %35802, 1
  store i32 %35803, ptr @test_count, align 4, !tbaa !5
  %35804 = call i32 @s2n_pkey_zero_init(ptr noundef %1111)
  %35805 = icmp eq i32 %35804, -1
  br i1 %35805, label %35806, label %35859

35806:                                            ; preds = %35801
  br label %35807

35807:                                            ; preds = %35806
  br label %35808

35808:                                            ; preds = %35807
  call void @llvm.lifetime.start.p0(i64 4, ptr %1112) #11
  %35809 = call ptr @__errno_location() #12
  %35810 = load i32, ptr %35809, align 4, !tbaa !5
  store i32 %35810, ptr %1112, align 4, !tbaa !5
  %35811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35812 = call i32 @s2n_print_stacktrace(ptr noundef %35811)
  %35813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35814 = trunc i8 %35813 to i1
  br i1 %35814, label %35815, label %35837

35815:                                            ; preds = %35808
  %35816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35817 = call i32 @fileno(ptr noundef %35816) #11
  %35818 = call i32 @isatty(i32 noundef %35817) #11
  %35819 = icmp ne i32 %35818, 0
  br i1 %35819, label %35820, label %35837

35820:                                            ; preds = %35815
  %35821 = load i32, ptr %1112, align 4, !tbaa !5
  %35822 = call ptr @__errno_location() #12
  store i32 %35821, ptr %35822, align 4, !tbaa !5
  %35823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35824 = load i32, ptr @test_count, align 4, !tbaa !5
  %35825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35826 = load i32, ptr %35825, align 4, !tbaa !5
  %35827 = call ptr @s2n_strerror(i32 noundef %35826, ptr noundef @.str.4)
  %35828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35829 = load i32, ptr %35828, align 4, !tbaa !5
  %35830 = call ptr @s2n_strerror_debug(i32 noundef %35829, ptr noundef @.str.4)
  %35831 = call ptr @__errno_location() #12
  %35832 = load i32, ptr %35831, align 4, !tbaa !5
  %35833 = call ptr @strerror(i32 noundef %35832) #11
  %35834 = call ptr @__errno_location() #12
  %35835 = load i32, ptr %35834, align 4, !tbaa !5
  %35836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35823, ptr noundef @.str.2, i32 noundef %35824, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2143, ptr noundef %35827, ptr noundef %35830, ptr noundef %35833, i32 noundef %35835) #11
  br label %35854

35837:                                            ; preds = %35815, %35808
  %35838 = load i32, ptr %1112, align 4, !tbaa !5
  %35839 = call ptr @__errno_location() #12
  store i32 %35838, ptr %35839, align 4, !tbaa !5
  %35840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35841 = load i32, ptr @test_count, align 4, !tbaa !5
  %35842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35843 = load i32, ptr %35842, align 4, !tbaa !5
  %35844 = call ptr @s2n_strerror(i32 noundef %35843, ptr noundef @.str.4)
  %35845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35846 = load i32, ptr %35845, align 4, !tbaa !5
  %35847 = call ptr @s2n_strerror_debug(i32 noundef %35846, ptr noundef @.str.4)
  %35848 = call ptr @__errno_location() #12
  %35849 = load i32, ptr %35848, align 4, !tbaa !5
  %35850 = call ptr @strerror(i32 noundef %35849) #11
  %35851 = call ptr @__errno_location() #12
  %35852 = load i32, ptr %35851, align 4, !tbaa !5
  %35853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35840, ptr noundef @.str.5, i32 noundef %35841, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2143, ptr noundef %35844, ptr noundef %35847, ptr noundef %35850, i32 noundef %35852) #11
  br label %35854

35854:                                            ; preds = %35837, %35820
  call void @llvm.lifetime.end.p0(i64 4, ptr %1112) #11
  br label %35855

35855:                                            ; preds = %35854
  br label %35856

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

35857:                                            ; No predecessors!
  br label %35858

35858:                                            ; preds = %35857
  br label %35859

35859:                                            ; preds = %35858, %35801
  br label %35860

35860:                                            ; preds = %35859
  br label %35861

35861:                                            ; preds = %35860
  call void @llvm.lifetime.start.p0(i64 4, ptr %1113) #11
  store i32 -1, ptr %1113, align 4, !tbaa !5
  br label %35862

35862:                                            ; preds = %35861
  %35863 = load i32, ptr @test_count, align 4, !tbaa !5
  %35864 = add nsw i32 %35863, 1
  store i32 %35864, ptr @test_count, align 4, !tbaa !5
  %35865 = load ptr, ptr %1101, align 8, !tbaa !9
  %35866 = load ptr, ptr %1109, align 8, !tbaa !9
  %35867 = load i32, ptr %1108, align 4, !tbaa !5
  %35868 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %1099, ptr noundef %35865, ptr noundef %35866, i32 noundef %35867, ptr noundef %1113, ptr noundef %1111)
  %35869 = getelementptr inbounds %struct.s2n_result, ptr %1114, i32 0, i32 0
  store i32 %35868, ptr %35869, align 4
  %35870 = getelementptr inbounds %struct.s2n_result, ptr %1114, i32 0, i32 0
  %35871 = load i32, ptr %35870, align 4
  %35872 = call zeroext i1 @s2n_result_is_ok(i32 %35871)
  br i1 %35872, label %35926, label %35873

35873:                                            ; preds = %35862
  br label %35874

35874:                                            ; preds = %35873
  br label %35875

35875:                                            ; preds = %35874
  call void @llvm.lifetime.start.p0(i64 4, ptr %1115) #11
  %35876 = call ptr @__errno_location() #12
  %35877 = load i32, ptr %35876, align 4, !tbaa !5
  store i32 %35877, ptr %1115, align 4, !tbaa !5
  %35878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35879 = call i32 @s2n_print_stacktrace(ptr noundef %35878)
  %35880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35881 = trunc i8 %35880 to i1
  br i1 %35881, label %35882, label %35904

35882:                                            ; preds = %35875
  %35883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35884 = call i32 @fileno(ptr noundef %35883) #11
  %35885 = call i32 @isatty(i32 noundef %35884) #11
  %35886 = icmp ne i32 %35885, 0
  br i1 %35886, label %35887, label %35904

35887:                                            ; preds = %35882
  %35888 = load i32, ptr %1115, align 4, !tbaa !5
  %35889 = call ptr @__errno_location() #12
  store i32 %35888, ptr %35889, align 4, !tbaa !5
  %35890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35891 = load i32, ptr @test_count, align 4, !tbaa !5
  %35892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35893 = load i32, ptr %35892, align 4, !tbaa !5
  %35894 = call ptr @s2n_strerror(i32 noundef %35893, ptr noundef @.str.4)
  %35895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35896 = load i32, ptr %35895, align 4, !tbaa !5
  %35897 = call ptr @s2n_strerror_debug(i32 noundef %35896, ptr noundef @.str.4)
  %35898 = call ptr @__errno_location() #12
  %35899 = load i32, ptr %35898, align 4, !tbaa !5
  %35900 = call ptr @strerror(i32 noundef %35899) #11
  %35901 = call ptr @__errno_location() #12
  %35902 = load i32, ptr %35901, align 4, !tbaa !5
  %35903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35890, ptr noundef @.str.2, i32 noundef %35891, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 2146, ptr noundef %35894, ptr noundef %35897, ptr noundef %35900, i32 noundef %35902) #11
  br label %35921

35904:                                            ; preds = %35882, %35875
  %35905 = load i32, ptr %1115, align 4, !tbaa !5
  %35906 = call ptr @__errno_location() #12
  store i32 %35905, ptr %35906, align 4, !tbaa !5
  %35907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35908 = load i32, ptr @test_count, align 4, !tbaa !5
  %35909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35910 = load i32, ptr %35909, align 4, !tbaa !5
  %35911 = call ptr @s2n_strerror(i32 noundef %35910, ptr noundef @.str.4)
  %35912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35913 = load i32, ptr %35912, align 4, !tbaa !5
  %35914 = call ptr @s2n_strerror_debug(i32 noundef %35913, ptr noundef @.str.4)
  %35915 = call ptr @__errno_location() #12
  %35916 = load i32, ptr %35915, align 4, !tbaa !5
  %35917 = call ptr @strerror(i32 noundef %35916) #11
  %35918 = call ptr @__errno_location() #12
  %35919 = load i32, ptr %35918, align 4, !tbaa !5
  %35920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35907, ptr noundef @.str.5, i32 noundef %35908, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 2146, ptr noundef %35911, ptr noundef %35914, ptr noundef %35917, i32 noundef %35919) #11
  br label %35921

35921:                                            ; preds = %35904, %35887
  call void @llvm.lifetime.end.p0(i64 4, ptr %1115) #11
  br label %35922

35922:                                            ; preds = %35921
  br label %35923

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

35924:                                            ; No predecessors!
  br label %35925

35925:                                            ; preds = %35924
  br label %35926

35926:                                            ; preds = %35925, %35862
  br label %35927

35927:                                            ; preds = %35926
  br label %35928

35928:                                            ; preds = %35927
  call void @llvm.lifetime.end.p0(i64 4, ptr %1113) #11
  %35929 = call i32 @s2n_pkey_free(ptr noundef %1111)
  call void @llvm.lifetime.end.p0(i64 48, ptr %1111) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1109) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1108) #11
  %35930 = call i32 @s2n_stuffer_free(ptr noundef %1105)
  call void @llvm.lifetime.end.p0(i64 40, ptr %1105) #11
  %35931 = call i32 @s2n_connection_ptr_free(ptr noundef %1101)
  %35932 = getelementptr inbounds %struct.s2n_result, ptr %1116, i32 0, i32 0
  store i32 %35931, ptr %35932, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1101) #11
  %35933 = call i32 @s2n_x509_validator_wipe(ptr noundef %1099)
  call void @llvm.lifetime.end.p0(i64 56, ptr %1099) #11
  %35934 = call i32 @s2n_config_ptr_free(ptr noundef %1097)
  %35935 = getelementptr inbounds %struct.s2n_result, ptr %1117, i32 0, i32 0
  store i32 %35934, ptr %35935, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1097) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr %1095) #11
  %35936 = call zeroext i1 @s2n_libcrypto_is_libressl()
  br i1 %35936, label %36580, label %35937

35937:                                            ; preds = %35928
  br label %35938

35938:                                            ; preds = %35937
  %35939 = load i32, ptr @test_count, align 4, !tbaa !5
  %35940 = add nsw i32 %35939, 1
  store i32 %35940, ptr @test_count, align 4, !tbaa !5
  %35941 = load ptr, ptr %1058, align 8, !tbaa !9
  %35942 = call i32 @setenv(ptr noundef @.str.167, ptr noundef %35941, i32 noundef 1) #11
  %35943 = icmp eq i32 %35942, -1
  br i1 %35943, label %35944, label %35997

35944:                                            ; preds = %35938
  br label %35945

35945:                                            ; preds = %35944
  br label %35946

35946:                                            ; preds = %35945
  call void @llvm.lifetime.start.p0(i64 4, ptr %1118) #11
  %35947 = call ptr @__errno_location() #12
  %35948 = load i32, ptr %35947, align 4, !tbaa !5
  store i32 %35948, ptr %1118, align 4, !tbaa !5
  %35949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35950 = call i32 @s2n_print_stacktrace(ptr noundef %35949)
  %35951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35952 = trunc i8 %35951 to i1
  br i1 %35952, label %35953, label %35975

35953:                                            ; preds = %35946
  %35954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35955 = call i32 @fileno(ptr noundef %35954) #11
  %35956 = call i32 @isatty(i32 noundef %35955) #11
  %35957 = icmp ne i32 %35956, 0
  br i1 %35957, label %35958, label %35975

35958:                                            ; preds = %35953
  %35959 = load i32, ptr %1118, align 4, !tbaa !5
  %35960 = call ptr @__errno_location() #12
  store i32 %35959, ptr %35960, align 4, !tbaa !5
  %35961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35962 = load i32, ptr @test_count, align 4, !tbaa !5
  %35963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35964 = load i32, ptr %35963, align 4, !tbaa !5
  %35965 = call ptr @s2n_strerror(i32 noundef %35964, ptr noundef @.str.4)
  %35966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35967 = load i32, ptr %35966, align 4, !tbaa !5
  %35968 = call ptr @s2n_strerror_debug(i32 noundef %35967, ptr noundef @.str.4)
  %35969 = call ptr @__errno_location() #12
  %35970 = load i32, ptr %35969, align 4, !tbaa !5
  %35971 = call ptr @strerror(i32 noundef %35970) #11
  %35972 = call ptr @__errno_location() #12
  %35973 = load i32, ptr %35972, align 4, !tbaa !5
  %35974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35961, ptr noundef @.str.2, i32 noundef %35962, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 2156, ptr noundef %35965, ptr noundef %35968, ptr noundef %35971, i32 noundef %35973) #11
  br label %35992

35975:                                            ; preds = %35953, %35946
  %35976 = load i32, ptr %1118, align 4, !tbaa !5
  %35977 = call ptr @__errno_location() #12
  store i32 %35976, ptr %35977, align 4, !tbaa !5
  %35978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35979 = load i32, ptr @test_count, align 4, !tbaa !5
  %35980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35981 = load i32, ptr %35980, align 4, !tbaa !5
  %35982 = call ptr @s2n_strerror(i32 noundef %35981, ptr noundef @.str.4)
  %35983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35984 = load i32, ptr %35983, align 4, !tbaa !5
  %35985 = call ptr @s2n_strerror_debug(i32 noundef %35984, ptr noundef @.str.4)
  %35986 = call ptr @__errno_location() #12
  %35987 = load i32, ptr %35986, align 4, !tbaa !5
  %35988 = call ptr @strerror(i32 noundef %35987) #11
  %35989 = call ptr @__errno_location() #12
  %35990 = load i32, ptr %35989, align 4, !tbaa !5
  %35991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35978, ptr noundef @.str.5, i32 noundef %35979, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 2156, ptr noundef %35982, ptr noundef %35985, ptr noundef %35988, i32 noundef %35990) #11
  br label %35992

35992:                                            ; preds = %35975, %35958
  call void @llvm.lifetime.end.p0(i64 4, ptr %1118) #11
  br label %35993

35993:                                            ; preds = %35992
  br label %35994

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

35995:                                            ; No predecessors!
  br label %35996

35996:                                            ; preds = %35995
  br label %35997

35997:                                            ; preds = %35996, %35938
  br label %35998

35998:                                            ; preds = %35997
  br label %35999

35999:                                            ; preds = %35998
  call void @llvm.lifetime.start.p0(i64 8, ptr %1119) #11
  %36000 = call ptr @s2n_config_new()
  store ptr %36000, ptr %1119, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1120) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1120, i8 0, i64 56, i1 false)
  br label %36001

36001:                                            ; preds = %35999
  %36002 = load i32, ptr @test_count, align 4, !tbaa !5
  %36003 = add nsw i32 %36002, 1
  store i32 %36003, ptr @test_count, align 4, !tbaa !5
  %36004 = load ptr, ptr %1119, align 8, !tbaa !9
  %36005 = getelementptr inbounds %struct.s2n_config, ptr %36004, i32 0, i32 37
  %36006 = call i32 @s2n_x509_validator_init(ptr noundef %1120, ptr noundef %36005, i8 noundef zeroext 0)
  %36007 = icmp eq i32 %36006, -1
  br i1 %36007, label %36008, label %36061

36008:                                            ; preds = %36001
  br label %36009

36009:                                            ; preds = %36008
  br label %36010

36010:                                            ; preds = %36009
  call void @llvm.lifetime.start.p0(i64 4, ptr %1121) #11
  %36011 = call ptr @__errno_location() #12
  %36012 = load i32, ptr %36011, align 4, !tbaa !5
  store i32 %36012, ptr %1121, align 4, !tbaa !5
  %36013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36014 = call i32 @s2n_print_stacktrace(ptr noundef %36013)
  %36015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36016 = trunc i8 %36015 to i1
  br i1 %36016, label %36017, label %36039

36017:                                            ; preds = %36010
  %36018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36019 = call i32 @fileno(ptr noundef %36018) #11
  %36020 = call i32 @isatty(i32 noundef %36019) #11
  %36021 = icmp ne i32 %36020, 0
  br i1 %36021, label %36022, label %36039

36022:                                            ; preds = %36017
  %36023 = load i32, ptr %1121, align 4, !tbaa !5
  %36024 = call ptr @__errno_location() #12
  store i32 %36023, ptr %36024, align 4, !tbaa !5
  %36025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36026 = load i32, ptr @test_count, align 4, !tbaa !5
  %36027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36028 = load i32, ptr %36027, align 4, !tbaa !5
  %36029 = call ptr @s2n_strerror(i32 noundef %36028, ptr noundef @.str.4)
  %36030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36031 = load i32, ptr %36030, align 4, !tbaa !5
  %36032 = call ptr @s2n_strerror_debug(i32 noundef %36031, ptr noundef @.str.4)
  %36033 = call ptr @__errno_location() #12
  %36034 = load i32, ptr %36033, align 4, !tbaa !5
  %36035 = call ptr @strerror(i32 noundef %36034) #11
  %36036 = call ptr @__errno_location() #12
  %36037 = load i32, ptr %36036, align 4, !tbaa !5
  %36038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36025, ptr noundef @.str.2, i32 noundef %36026, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2160, ptr noundef %36029, ptr noundef %36032, ptr noundef %36035, i32 noundef %36037) #11
  br label %36056

36039:                                            ; preds = %36017, %36010
  %36040 = load i32, ptr %1121, align 4, !tbaa !5
  %36041 = call ptr @__errno_location() #12
  store i32 %36040, ptr %36041, align 4, !tbaa !5
  %36042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36043 = load i32, ptr @test_count, align 4, !tbaa !5
  %36044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36045 = load i32, ptr %36044, align 4, !tbaa !5
  %36046 = call ptr @s2n_strerror(i32 noundef %36045, ptr noundef @.str.4)
  %36047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36048 = load i32, ptr %36047, align 4, !tbaa !5
  %36049 = call ptr @s2n_strerror_debug(i32 noundef %36048, ptr noundef @.str.4)
  %36050 = call ptr @__errno_location() #12
  %36051 = load i32, ptr %36050, align 4, !tbaa !5
  %36052 = call ptr @strerror(i32 noundef %36051) #11
  %36053 = call ptr @__errno_location() #12
  %36054 = load i32, ptr %36053, align 4, !tbaa !5
  %36055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36042, ptr noundef @.str.5, i32 noundef %36043, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2160, ptr noundef %36046, ptr noundef %36049, ptr noundef %36052, i32 noundef %36054) #11
  br label %36056

36056:                                            ; preds = %36039, %36022
  call void @llvm.lifetime.end.p0(i64 4, ptr %1121) #11
  br label %36057

36057:                                            ; preds = %36056
  br label %36058

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

36059:                                            ; No predecessors!
  br label %36060

36060:                                            ; preds = %36059
  br label %36061

36061:                                            ; preds = %36060, %36001
  br label %36062

36062:                                            ; preds = %36061
  br label %36063

36063:                                            ; preds = %36062
  call void @llvm.lifetime.start.p0(i64 8, ptr %1122) #11
  %36064 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %36064, ptr %1122, align 8, !tbaa !9
  br label %36065

36065:                                            ; preds = %36063
  %36066 = load i32, ptr @test_count, align 4, !tbaa !5
  %36067 = add nsw i32 %36066, 1
  store i32 %36067, ptr @test_count, align 4, !tbaa !5
  %36068 = load ptr, ptr %1122, align 8, !tbaa !9
  %36069 = icmp eq ptr %36068, null
  br i1 %36069, label %36070, label %36123

36070:                                            ; preds = %36065
  br label %36071

36071:                                            ; preds = %36070
  br label %36072

36072:                                            ; preds = %36071
  call void @llvm.lifetime.start.p0(i64 4, ptr %1123) #11
  %36073 = call ptr @__errno_location() #12
  %36074 = load i32, ptr %36073, align 4, !tbaa !5
  store i32 %36074, ptr %1123, align 4, !tbaa !5
  %36075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36076 = call i32 @s2n_print_stacktrace(ptr noundef %36075)
  %36077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36078 = trunc i8 %36077 to i1
  br i1 %36078, label %36079, label %36101

36079:                                            ; preds = %36072
  %36080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36081 = call i32 @fileno(ptr noundef %36080) #11
  %36082 = call i32 @isatty(i32 noundef %36081) #11
  %36083 = icmp ne i32 %36082, 0
  br i1 %36083, label %36084, label %36101

36084:                                            ; preds = %36079
  %36085 = load i32, ptr %1123, align 4, !tbaa !5
  %36086 = call ptr @__errno_location() #12
  store i32 %36085, ptr %36086, align 4, !tbaa !5
  %36087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36088 = load i32, ptr @test_count, align 4, !tbaa !5
  %36089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36090 = load i32, ptr %36089, align 4, !tbaa !5
  %36091 = call ptr @s2n_strerror(i32 noundef %36090, ptr noundef @.str.4)
  %36092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36093 = load i32, ptr %36092, align 4, !tbaa !5
  %36094 = call ptr @s2n_strerror_debug(i32 noundef %36093, ptr noundef @.str.4)
  %36095 = call ptr @__errno_location() #12
  %36096 = load i32, ptr %36095, align 4, !tbaa !5
  %36097 = call ptr @strerror(i32 noundef %36096) #11
  %36098 = call ptr @__errno_location() #12
  %36099 = load i32, ptr %36098, align 4, !tbaa !5
  %36100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36087, ptr noundef @.str.2, i32 noundef %36088, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2163, ptr noundef %36091, ptr noundef %36094, ptr noundef %36097, i32 noundef %36099) #11
  br label %36118

36101:                                            ; preds = %36079, %36072
  %36102 = load i32, ptr %1123, align 4, !tbaa !5
  %36103 = call ptr @__errno_location() #12
  store i32 %36102, ptr %36103, align 4, !tbaa !5
  %36104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36105 = load i32, ptr @test_count, align 4, !tbaa !5
  %36106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36107 = load i32, ptr %36106, align 4, !tbaa !5
  %36108 = call ptr @s2n_strerror(i32 noundef %36107, ptr noundef @.str.4)
  %36109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36110 = load i32, ptr %36109, align 4, !tbaa !5
  %36111 = call ptr @s2n_strerror_debug(i32 noundef %36110, ptr noundef @.str.4)
  %36112 = call ptr @__errno_location() #12
  %36113 = load i32, ptr %36112, align 4, !tbaa !5
  %36114 = call ptr @strerror(i32 noundef %36113) #11
  %36115 = call ptr @__errno_location() #12
  %36116 = load i32, ptr %36115, align 4, !tbaa !5
  %36117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36104, ptr noundef @.str.5, i32 noundef %36105, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2163, ptr noundef %36108, ptr noundef %36111, ptr noundef %36114, i32 noundef %36116) #11
  br label %36118

36118:                                            ; preds = %36101, %36084
  call void @llvm.lifetime.end.p0(i64 4, ptr %1123) #11
  br label %36119

36119:                                            ; preds = %36118
  br label %36120

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

36121:                                            ; No predecessors!
  br label %36122

36122:                                            ; preds = %36121
  br label %36123

36123:                                            ; preds = %36122, %36065
  br label %36124

36124:                                            ; preds = %36123
  br label %36125

36125:                                            ; preds = %36124
  br label %36126

36126:                                            ; preds = %36125
  %36127 = load i32, ptr @test_count, align 4, !tbaa !5
  %36128 = add nsw i32 %36127, 1
  store i32 %36128, ptr @test_count, align 4, !tbaa !5
  %36129 = load ptr, ptr %1122, align 8, !tbaa !9
  %36130 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %36129, ptr noundef @.str.23)
  %36131 = icmp eq i32 %36130, -1
  br i1 %36131, label %36132, label %36185

36132:                                            ; preds = %36126
  br label %36133

36133:                                            ; preds = %36132
  br label %36134

36134:                                            ; preds = %36133
  call void @llvm.lifetime.start.p0(i64 4, ptr %1124) #11
  %36135 = call ptr @__errno_location() #12
  %36136 = load i32, ptr %36135, align 4, !tbaa !5
  store i32 %36136, ptr %1124, align 4, !tbaa !5
  %36137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36138 = call i32 @s2n_print_stacktrace(ptr noundef %36137)
  %36139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36140 = trunc i8 %36139 to i1
  br i1 %36140, label %36141, label %36163

36141:                                            ; preds = %36134
  %36142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36143 = call i32 @fileno(ptr noundef %36142) #11
  %36144 = call i32 @isatty(i32 noundef %36143) #11
  %36145 = icmp ne i32 %36144, 0
  br i1 %36145, label %36146, label %36163

36146:                                            ; preds = %36141
  %36147 = load i32, ptr %1124, align 4, !tbaa !5
  %36148 = call ptr @__errno_location() #12
  store i32 %36147, ptr %36148, align 4, !tbaa !5
  %36149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36150 = load i32, ptr @test_count, align 4, !tbaa !5
  %36151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36152 = load i32, ptr %36151, align 4, !tbaa !5
  %36153 = call ptr @s2n_strerror(i32 noundef %36152, ptr noundef @.str.4)
  %36154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36155 = load i32, ptr %36154, align 4, !tbaa !5
  %36156 = call ptr @s2n_strerror_debug(i32 noundef %36155, ptr noundef @.str.4)
  %36157 = call ptr @__errno_location() #12
  %36158 = load i32, ptr %36157, align 4, !tbaa !5
  %36159 = call ptr @strerror(i32 noundef %36158) #11
  %36160 = call ptr @__errno_location() #12
  %36161 = load i32, ptr %36160, align 4, !tbaa !5
  %36162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36149, ptr noundef @.str.2, i32 noundef %36150, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2164, ptr noundef %36153, ptr noundef %36156, ptr noundef %36159, i32 noundef %36161) #11
  br label %36180

36163:                                            ; preds = %36141, %36134
  %36164 = load i32, ptr %1124, align 4, !tbaa !5
  %36165 = call ptr @__errno_location() #12
  store i32 %36164, ptr %36165, align 4, !tbaa !5
  %36166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36167 = load i32, ptr @test_count, align 4, !tbaa !5
  %36168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36169 = load i32, ptr %36168, align 4, !tbaa !5
  %36170 = call ptr @s2n_strerror(i32 noundef %36169, ptr noundef @.str.4)
  %36171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36172 = load i32, ptr %36171, align 4, !tbaa !5
  %36173 = call ptr @s2n_strerror_debug(i32 noundef %36172, ptr noundef @.str.4)
  %36174 = call ptr @__errno_location() #12
  %36175 = load i32, ptr %36174, align 4, !tbaa !5
  %36176 = call ptr @strerror(i32 noundef %36175) #11
  %36177 = call ptr @__errno_location() #12
  %36178 = load i32, ptr %36177, align 4, !tbaa !5
  %36179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36166, ptr noundef @.str.5, i32 noundef %36167, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2164, ptr noundef %36170, ptr noundef %36173, ptr noundef %36176, i32 noundef %36178) #11
  br label %36180

36180:                                            ; preds = %36163, %36146
  call void @llvm.lifetime.end.p0(i64 4, ptr %1124) #11
  br label %36181

36181:                                            ; preds = %36180
  br label %36182

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

36183:                                            ; No predecessors!
  br label %36184

36184:                                            ; preds = %36183
  br label %36185

36185:                                            ; preds = %36184, %36126
  br label %36186

36186:                                            ; preds = %36185
  br label %36187

36187:                                            ; preds = %36186
  br label %36188

36188:                                            ; preds = %36187
  %36189 = load i32, ptr @test_count, align 4, !tbaa !5
  %36190 = add nsw i32 %36189, 1
  store i32 %36190, ptr @test_count, align 4, !tbaa !5
  %36191 = load ptr, ptr %1122, align 8, !tbaa !9
  %36192 = call i32 @s2n_set_server_name(ptr noundef %36191, ptr noundef @.str.162)
  %36193 = icmp eq i32 %36192, -1
  br i1 %36193, label %36194, label %36247

36194:                                            ; preds = %36188
  br label %36195

36195:                                            ; preds = %36194
  br label %36196

36196:                                            ; preds = %36195
  call void @llvm.lifetime.start.p0(i64 4, ptr %1125) #11
  %36197 = call ptr @__errno_location() #12
  %36198 = load i32, ptr %36197, align 4, !tbaa !5
  store i32 %36198, ptr %1125, align 4, !tbaa !5
  %36199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36200 = call i32 @s2n_print_stacktrace(ptr noundef %36199)
  %36201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36202 = trunc i8 %36201 to i1
  br i1 %36202, label %36203, label %36225

36203:                                            ; preds = %36196
  %36204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36205 = call i32 @fileno(ptr noundef %36204) #11
  %36206 = call i32 @isatty(i32 noundef %36205) #11
  %36207 = icmp ne i32 %36206, 0
  br i1 %36207, label %36208, label %36225

36208:                                            ; preds = %36203
  %36209 = load i32, ptr %1125, align 4, !tbaa !5
  %36210 = call ptr @__errno_location() #12
  store i32 %36209, ptr %36210, align 4, !tbaa !5
  %36211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36212 = load i32, ptr @test_count, align 4, !tbaa !5
  %36213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36214 = load i32, ptr %36213, align 4, !tbaa !5
  %36215 = call ptr @s2n_strerror(i32 noundef %36214, ptr noundef @.str.4)
  %36216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36217 = load i32, ptr %36216, align 4, !tbaa !5
  %36218 = call ptr @s2n_strerror_debug(i32 noundef %36217, ptr noundef @.str.4)
  %36219 = call ptr @__errno_location() #12
  %36220 = load i32, ptr %36219, align 4, !tbaa !5
  %36221 = call ptr @strerror(i32 noundef %36220) #11
  %36222 = call ptr @__errno_location() #12
  %36223 = load i32, ptr %36222, align 4, !tbaa !5
  %36224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36211, ptr noundef @.str.2, i32 noundef %36212, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 2165, ptr noundef %36215, ptr noundef %36218, ptr noundef %36221, i32 noundef %36223) #11
  br label %36242

36225:                                            ; preds = %36203, %36196
  %36226 = load i32, ptr %1125, align 4, !tbaa !5
  %36227 = call ptr @__errno_location() #12
  store i32 %36226, ptr %36227, align 4, !tbaa !5
  %36228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36229 = load i32, ptr @test_count, align 4, !tbaa !5
  %36230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36231 = load i32, ptr %36230, align 4, !tbaa !5
  %36232 = call ptr @s2n_strerror(i32 noundef %36231, ptr noundef @.str.4)
  %36233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36234 = load i32, ptr %36233, align 4, !tbaa !5
  %36235 = call ptr @s2n_strerror_debug(i32 noundef %36234, ptr noundef @.str.4)
  %36236 = call ptr @__errno_location() #12
  %36237 = load i32, ptr %36236, align 4, !tbaa !5
  %36238 = call ptr @strerror(i32 noundef %36237) #11
  %36239 = call ptr @__errno_location() #12
  %36240 = load i32, ptr %36239, align 4, !tbaa !5
  %36241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36228, ptr noundef @.str.5, i32 noundef %36229, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 2165, ptr noundef %36232, ptr noundef %36235, ptr noundef %36238, i32 noundef %36240) #11
  br label %36242

36242:                                            ; preds = %36225, %36208
  call void @llvm.lifetime.end.p0(i64 4, ptr %1125) #11
  br label %36243

36243:                                            ; preds = %36242
  br label %36244

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

36245:                                            ; No predecessors!
  br label %36246

36246:                                            ; preds = %36245
  br label %36247

36247:                                            ; preds = %36246, %36188
  br label %36248

36248:                                            ; preds = %36247
  br label %36249

36249:                                            ; preds = %36248
  call void @llvm.lifetime.start.p0(i64 40, ptr %1126) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1126, i8 0, i64 40, i1 false)
  br label %36250

36250:                                            ; preds = %36249
  %36251 = load i32, ptr @test_count, align 4, !tbaa !5
  %36252 = add nsw i32 %36251, 1
  store i32 %36252, ptr @test_count, align 4, !tbaa !5
  %36253 = load ptr, ptr %1122, align 8, !tbaa !9
  %36254 = load ptr, ptr %1058, align 8, !tbaa !9
  %36255 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %36253, ptr noundef %36254, ptr noundef %1126)
  %36256 = getelementptr inbounds %struct.s2n_result, ptr %1127, i32 0, i32 0
  store i32 %36255, ptr %36256, align 4
  %36257 = getelementptr inbounds %struct.s2n_result, ptr %1127, i32 0, i32 0
  %36258 = load i32, ptr %36257, align 4
  %36259 = call zeroext i1 @s2n_result_is_ok(i32 %36258)
  br i1 %36259, label %36313, label %36260

36260:                                            ; preds = %36250
  br label %36261

36261:                                            ; preds = %36260
  br label %36262

36262:                                            ; preds = %36261
  call void @llvm.lifetime.start.p0(i64 4, ptr %1128) #11
  %36263 = call ptr @__errno_location() #12
  %36264 = load i32, ptr %36263, align 4, !tbaa !5
  store i32 %36264, ptr %1128, align 4, !tbaa !5
  %36265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36266 = call i32 @s2n_print_stacktrace(ptr noundef %36265)
  %36267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36268 = trunc i8 %36267 to i1
  br i1 %36268, label %36269, label %36291

36269:                                            ; preds = %36262
  %36270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36271 = call i32 @fileno(ptr noundef %36270) #11
  %36272 = call i32 @isatty(i32 noundef %36271) #11
  %36273 = icmp ne i32 %36272, 0
  br i1 %36273, label %36274, label %36291

36274:                                            ; preds = %36269
  %36275 = load i32, ptr %1128, align 4, !tbaa !5
  %36276 = call ptr @__errno_location() #12
  store i32 %36275, ptr %36276, align 4, !tbaa !5
  %36277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36278 = load i32, ptr @test_count, align 4, !tbaa !5
  %36279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36280 = load i32, ptr %36279, align 4, !tbaa !5
  %36281 = call ptr @s2n_strerror(i32 noundef %36280, ptr noundef @.str.4)
  %36282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36283 = load i32, ptr %36282, align 4, !tbaa !5
  %36284 = call ptr @s2n_strerror_debug(i32 noundef %36283, ptr noundef @.str.4)
  %36285 = call ptr @__errno_location() #12
  %36286 = load i32, ptr %36285, align 4, !tbaa !5
  %36287 = call ptr @strerror(i32 noundef %36286) #11
  %36288 = call ptr @__errno_location() #12
  %36289 = load i32, ptr %36288, align 4, !tbaa !5
  %36290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36277, ptr noundef @.str.2, i32 noundef %36278, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 2168, ptr noundef %36281, ptr noundef %36284, ptr noundef %36287, i32 noundef %36289) #11
  br label %36308

36291:                                            ; preds = %36269, %36262
  %36292 = load i32, ptr %1128, align 4, !tbaa !5
  %36293 = call ptr @__errno_location() #12
  store i32 %36292, ptr %36293, align 4, !tbaa !5
  %36294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36295 = load i32, ptr @test_count, align 4, !tbaa !5
  %36296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36297 = load i32, ptr %36296, align 4, !tbaa !5
  %36298 = call ptr @s2n_strerror(i32 noundef %36297, ptr noundef @.str.4)
  %36299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36300 = load i32, ptr %36299, align 4, !tbaa !5
  %36301 = call ptr @s2n_strerror_debug(i32 noundef %36300, ptr noundef @.str.4)
  %36302 = call ptr @__errno_location() #12
  %36303 = load i32, ptr %36302, align 4, !tbaa !5
  %36304 = call ptr @strerror(i32 noundef %36303) #11
  %36305 = call ptr @__errno_location() #12
  %36306 = load i32, ptr %36305, align 4, !tbaa !5
  %36307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36294, ptr noundef @.str.5, i32 noundef %36295, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 2168, ptr noundef %36298, ptr noundef %36301, ptr noundef %36304, i32 noundef %36306) #11
  br label %36308

36308:                                            ; preds = %36291, %36274
  call void @llvm.lifetime.end.p0(i64 4, ptr %1128) #11
  br label %36309

36309:                                            ; preds = %36308
  br label %36310

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

36311:                                            ; No predecessors!
  br label %36312

36312:                                            ; preds = %36311
  br label %36313

36313:                                            ; preds = %36312, %36250
  br label %36314

36314:                                            ; preds = %36313
  br label %36315

36315:                                            ; preds = %36314
  call void @llvm.lifetime.start.p0(i64 4, ptr %1129) #11
  %36316 = getelementptr inbounds %struct.s2n_stuffer, ptr %1126, i32 0, i32 2
  %36317 = load i32, ptr %36316, align 4, !tbaa !15
  %36318 = getelementptr inbounds %struct.s2n_stuffer, ptr %1126, i32 0, i32 1
  %36319 = load i32, ptr %36318, align 8, !tbaa !18
  %36320 = sub i32 %36317, %36319
  store i32 %36320, ptr %1129, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1130) #11
  %36321 = load i32, ptr %1129, align 4, !tbaa !5
  %36322 = call ptr @s2n_stuffer_raw_read(ptr noundef %1126, i32 noundef %36321)
  store ptr %36322, ptr %1130, align 8, !tbaa !9
  br label %36323

36323:                                            ; preds = %36315
  %36324 = load i32, ptr @test_count, align 4, !tbaa !5
  %36325 = add nsw i32 %36324, 1
  store i32 %36325, ptr @test_count, align 4, !tbaa !5
  %36326 = load ptr, ptr %1130, align 8, !tbaa !9
  %36327 = icmp eq ptr %36326, null
  br i1 %36327, label %36328, label %36381

36328:                                            ; preds = %36323
  br label %36329

36329:                                            ; preds = %36328
  br label %36330

36330:                                            ; preds = %36329
  call void @llvm.lifetime.start.p0(i64 4, ptr %1131) #11
  %36331 = call ptr @__errno_location() #12
  %36332 = load i32, ptr %36331, align 4, !tbaa !5
  store i32 %36332, ptr %1131, align 4, !tbaa !5
  %36333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36334 = call i32 @s2n_print_stacktrace(ptr noundef %36333)
  %36335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36336 = trunc i8 %36335 to i1
  br i1 %36336, label %36337, label %36359

36337:                                            ; preds = %36330
  %36338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36339 = call i32 @fileno(ptr noundef %36338) #11
  %36340 = call i32 @isatty(i32 noundef %36339) #11
  %36341 = icmp ne i32 %36340, 0
  br i1 %36341, label %36342, label %36359

36342:                                            ; preds = %36337
  %36343 = load i32, ptr %1131, align 4, !tbaa !5
  %36344 = call ptr @__errno_location() #12
  store i32 %36343, ptr %36344, align 4, !tbaa !5
  %36345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36346 = load i32, ptr @test_count, align 4, !tbaa !5
  %36347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36348 = load i32, ptr %36347, align 4, !tbaa !5
  %36349 = call ptr @s2n_strerror(i32 noundef %36348, ptr noundef @.str.4)
  %36350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36351 = load i32, ptr %36350, align 4, !tbaa !5
  %36352 = call ptr @s2n_strerror_debug(i32 noundef %36351, ptr noundef @.str.4)
  %36353 = call ptr @__errno_location() #12
  %36354 = load i32, ptr %36353, align 4, !tbaa !5
  %36355 = call ptr @strerror(i32 noundef %36354) #11
  %36356 = call ptr @__errno_location() #12
  %36357 = load i32, ptr %36356, align 4, !tbaa !5
  %36358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36345, ptr noundef @.str.2, i32 noundef %36346, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2171, ptr noundef %36349, ptr noundef %36352, ptr noundef %36355, i32 noundef %36357) #11
  br label %36376

36359:                                            ; preds = %36337, %36330
  %36360 = load i32, ptr %1131, align 4, !tbaa !5
  %36361 = call ptr @__errno_location() #12
  store i32 %36360, ptr %36361, align 4, !tbaa !5
  %36362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36363 = load i32, ptr @test_count, align 4, !tbaa !5
  %36364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36365 = load i32, ptr %36364, align 4, !tbaa !5
  %36366 = call ptr @s2n_strerror(i32 noundef %36365, ptr noundef @.str.4)
  %36367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36368 = load i32, ptr %36367, align 4, !tbaa !5
  %36369 = call ptr @s2n_strerror_debug(i32 noundef %36368, ptr noundef @.str.4)
  %36370 = call ptr @__errno_location() #12
  %36371 = load i32, ptr %36370, align 4, !tbaa !5
  %36372 = call ptr @strerror(i32 noundef %36371) #11
  %36373 = call ptr @__errno_location() #12
  %36374 = load i32, ptr %36373, align 4, !tbaa !5
  %36375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36362, ptr noundef @.str.5, i32 noundef %36363, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2171, ptr noundef %36366, ptr noundef %36369, ptr noundef %36372, i32 noundef %36374) #11
  br label %36376

36376:                                            ; preds = %36359, %36342
  call void @llvm.lifetime.end.p0(i64 4, ptr %1131) #11
  br label %36377

36377:                                            ; preds = %36376
  br label %36378

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

36379:                                            ; No predecessors!
  br label %36380

36380:                                            ; preds = %36379
  br label %36381

36381:                                            ; preds = %36380, %36323
  br label %36382

36382:                                            ; preds = %36381
  br label %36383

36383:                                            ; preds = %36382
  call void @llvm.lifetime.start.p0(i64 48, ptr %1132) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1132, i8 0, i64 48, i1 false)
  br label %36384

36384:                                            ; preds = %36383
  %36385 = load i32, ptr @test_count, align 4, !tbaa !5
  %36386 = add nsw i32 %36385, 1
  store i32 %36386, ptr @test_count, align 4, !tbaa !5
  %36387 = call i32 @s2n_pkey_zero_init(ptr noundef %1132)
  %36388 = icmp eq i32 %36387, -1
  br i1 %36388, label %36389, label %36442

36389:                                            ; preds = %36384
  br label %36390

36390:                                            ; preds = %36389
  br label %36391

36391:                                            ; preds = %36390
  call void @llvm.lifetime.start.p0(i64 4, ptr %1133) #11
  %36392 = call ptr @__errno_location() #12
  %36393 = load i32, ptr %36392, align 4, !tbaa !5
  store i32 %36393, ptr %1133, align 4, !tbaa !5
  %36394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36395 = call i32 @s2n_print_stacktrace(ptr noundef %36394)
  %36396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36397 = trunc i8 %36396 to i1
  br i1 %36397, label %36398, label %36420

36398:                                            ; preds = %36391
  %36399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36400 = call i32 @fileno(ptr noundef %36399) #11
  %36401 = call i32 @isatty(i32 noundef %36400) #11
  %36402 = icmp ne i32 %36401, 0
  br i1 %36402, label %36403, label %36420

36403:                                            ; preds = %36398
  %36404 = load i32, ptr %1133, align 4, !tbaa !5
  %36405 = call ptr @__errno_location() #12
  store i32 %36404, ptr %36405, align 4, !tbaa !5
  %36406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36407 = load i32, ptr @test_count, align 4, !tbaa !5
  %36408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36409 = load i32, ptr %36408, align 4, !tbaa !5
  %36410 = call ptr @s2n_strerror(i32 noundef %36409, ptr noundef @.str.4)
  %36411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36412 = load i32, ptr %36411, align 4, !tbaa !5
  %36413 = call ptr @s2n_strerror_debug(i32 noundef %36412, ptr noundef @.str.4)
  %36414 = call ptr @__errno_location() #12
  %36415 = load i32, ptr %36414, align 4, !tbaa !5
  %36416 = call ptr @strerror(i32 noundef %36415) #11
  %36417 = call ptr @__errno_location() #12
  %36418 = load i32, ptr %36417, align 4, !tbaa !5
  %36419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36406, ptr noundef @.str.2, i32 noundef %36407, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2174, ptr noundef %36410, ptr noundef %36413, ptr noundef %36416, i32 noundef %36418) #11
  br label %36437

36420:                                            ; preds = %36398, %36391
  %36421 = load i32, ptr %1133, align 4, !tbaa !5
  %36422 = call ptr @__errno_location() #12
  store i32 %36421, ptr %36422, align 4, !tbaa !5
  %36423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36424 = load i32, ptr @test_count, align 4, !tbaa !5
  %36425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36426 = load i32, ptr %36425, align 4, !tbaa !5
  %36427 = call ptr @s2n_strerror(i32 noundef %36426, ptr noundef @.str.4)
  %36428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36429 = load i32, ptr %36428, align 4, !tbaa !5
  %36430 = call ptr @s2n_strerror_debug(i32 noundef %36429, ptr noundef @.str.4)
  %36431 = call ptr @__errno_location() #12
  %36432 = load i32, ptr %36431, align 4, !tbaa !5
  %36433 = call ptr @strerror(i32 noundef %36432) #11
  %36434 = call ptr @__errno_location() #12
  %36435 = load i32, ptr %36434, align 4, !tbaa !5
  %36436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36423, ptr noundef @.str.5, i32 noundef %36424, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2174, ptr noundef %36427, ptr noundef %36430, ptr noundef %36433, i32 noundef %36435) #11
  br label %36437

36437:                                            ; preds = %36420, %36403
  call void @llvm.lifetime.end.p0(i64 4, ptr %1133) #11
  br label %36438

36438:                                            ; preds = %36437
  br label %36439

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

36440:                                            ; No predecessors!
  br label %36441

36441:                                            ; preds = %36440
  br label %36442

36442:                                            ; preds = %36441, %36384
  br label %36443

36443:                                            ; preds = %36442
  br label %36444

36444:                                            ; preds = %36443
  call void @llvm.lifetime.start.p0(i64 4, ptr %1134) #11
  store i32 -1, ptr %1134, align 4, !tbaa !5
  br label %36445

36445:                                            ; preds = %36444
  %36446 = load i32, ptr @test_count, align 4, !tbaa !5
  %36447 = add nsw i32 %36446, 1
  store i32 %36447, ptr @test_count, align 4, !tbaa !5
  %36448 = load ptr, ptr %1122, align 8, !tbaa !9
  %36449 = load ptr, ptr %1130, align 8, !tbaa !9
  %36450 = load i32, ptr %1129, align 4, !tbaa !5
  %36451 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %1120, ptr noundef %36448, ptr noundef %36449, i32 noundef %36450, ptr noundef %1134, ptr noundef %1132)
  %36452 = getelementptr inbounds %struct.s2n_result, ptr %1135, i32 0, i32 0
  store i32 %36451, ptr %36452, align 4
  %36453 = getelementptr inbounds %struct.s2n_result, ptr %1135, i32 0, i32 0
  %36454 = load i32, ptr %36453, align 4
  %36455 = call zeroext i1 @s2n_result_is_ok(i32 %36454)
  br i1 %36455, label %36509, label %36456

36456:                                            ; preds = %36445
  br label %36457

36457:                                            ; preds = %36456
  br label %36458

36458:                                            ; preds = %36457
  call void @llvm.lifetime.start.p0(i64 4, ptr %1136) #11
  %36459 = call ptr @__errno_location() #12
  %36460 = load i32, ptr %36459, align 4, !tbaa !5
  store i32 %36460, ptr %1136, align 4, !tbaa !5
  %36461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36462 = call i32 @s2n_print_stacktrace(ptr noundef %36461)
  %36463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36464 = trunc i8 %36463 to i1
  br i1 %36464, label %36465, label %36487

36465:                                            ; preds = %36458
  %36466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36467 = call i32 @fileno(ptr noundef %36466) #11
  %36468 = call i32 @isatty(i32 noundef %36467) #11
  %36469 = icmp ne i32 %36468, 0
  br i1 %36469, label %36470, label %36487

36470:                                            ; preds = %36465
  %36471 = load i32, ptr %1136, align 4, !tbaa !5
  %36472 = call ptr @__errno_location() #12
  store i32 %36471, ptr %36472, align 4, !tbaa !5
  %36473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36474 = load i32, ptr @test_count, align 4, !tbaa !5
  %36475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36476 = load i32, ptr %36475, align 4, !tbaa !5
  %36477 = call ptr @s2n_strerror(i32 noundef %36476, ptr noundef @.str.4)
  %36478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36479 = load i32, ptr %36478, align 4, !tbaa !5
  %36480 = call ptr @s2n_strerror_debug(i32 noundef %36479, ptr noundef @.str.4)
  %36481 = call ptr @__errno_location() #12
  %36482 = load i32, ptr %36481, align 4, !tbaa !5
  %36483 = call ptr @strerror(i32 noundef %36482) #11
  %36484 = call ptr @__errno_location() #12
  %36485 = load i32, ptr %36484, align 4, !tbaa !5
  %36486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36473, ptr noundef @.str.2, i32 noundef %36474, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 2177, ptr noundef %36477, ptr noundef %36480, ptr noundef %36483, i32 noundef %36485) #11
  br label %36504

36487:                                            ; preds = %36465, %36458
  %36488 = load i32, ptr %1136, align 4, !tbaa !5
  %36489 = call ptr @__errno_location() #12
  store i32 %36488, ptr %36489, align 4, !tbaa !5
  %36490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36491 = load i32, ptr @test_count, align 4, !tbaa !5
  %36492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36493 = load i32, ptr %36492, align 4, !tbaa !5
  %36494 = call ptr @s2n_strerror(i32 noundef %36493, ptr noundef @.str.4)
  %36495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36496 = load i32, ptr %36495, align 4, !tbaa !5
  %36497 = call ptr @s2n_strerror_debug(i32 noundef %36496, ptr noundef @.str.4)
  %36498 = call ptr @__errno_location() #12
  %36499 = load i32, ptr %36498, align 4, !tbaa !5
  %36500 = call ptr @strerror(i32 noundef %36499) #11
  %36501 = call ptr @__errno_location() #12
  %36502 = load i32, ptr %36501, align 4, !tbaa !5
  %36503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36490, ptr noundef @.str.5, i32 noundef %36491, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 2177, ptr noundef %36494, ptr noundef %36497, ptr noundef %36500, i32 noundef %36502) #11
  br label %36504

36504:                                            ; preds = %36487, %36470
  call void @llvm.lifetime.end.p0(i64 4, ptr %1136) #11
  br label %36505

36505:                                            ; preds = %36504
  br label %36506

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

36507:                                            ; No predecessors!
  br label %36508

36508:                                            ; preds = %36507
  br label %36509

36509:                                            ; preds = %36508, %36445
  br label %36510

36510:                                            ; preds = %36509
  br label %36511

36511:                                            ; preds = %36510
  br label %36512

36512:                                            ; preds = %36511
  %36513 = load i32, ptr @test_count, align 4, !tbaa !5
  %36514 = add nsw i32 %36513, 1
  store i32 %36514, ptr @test_count, align 4, !tbaa !5
  %36515 = call i32 @unsetenv(ptr noundef @.str.167) #11
  %36516 = icmp eq i32 %36515, -1
  br i1 %36516, label %36517, label %36570

36517:                                            ; preds = %36512
  br label %36518

36518:                                            ; preds = %36517
  br label %36519

36519:                                            ; preds = %36518
  call void @llvm.lifetime.start.p0(i64 4, ptr %1137) #11
  %36520 = call ptr @__errno_location() #12
  %36521 = load i32, ptr %36520, align 4, !tbaa !5
  store i32 %36521, ptr %1137, align 4, !tbaa !5
  %36522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36523 = call i32 @s2n_print_stacktrace(ptr noundef %36522)
  %36524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36525 = trunc i8 %36524 to i1
  br i1 %36525, label %36526, label %36548

36526:                                            ; preds = %36519
  %36527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36528 = call i32 @fileno(ptr noundef %36527) #11
  %36529 = call i32 @isatty(i32 noundef %36528) #11
  %36530 = icmp ne i32 %36529, 0
  br i1 %36530, label %36531, label %36548

36531:                                            ; preds = %36526
  %36532 = load i32, ptr %1137, align 4, !tbaa !5
  %36533 = call ptr @__errno_location() #12
  store i32 %36532, ptr %36533, align 4, !tbaa !5
  %36534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36535 = load i32, ptr @test_count, align 4, !tbaa !5
  %36536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36537 = load i32, ptr %36536, align 4, !tbaa !5
  %36538 = call ptr @s2n_strerror(i32 noundef %36537, ptr noundef @.str.4)
  %36539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36540 = load i32, ptr %36539, align 4, !tbaa !5
  %36541 = call ptr @s2n_strerror_debug(i32 noundef %36540, ptr noundef @.str.4)
  %36542 = call ptr @__errno_location() #12
  %36543 = load i32, ptr %36542, align 4, !tbaa !5
  %36544 = call ptr @strerror(i32 noundef %36543) #11
  %36545 = call ptr @__errno_location() #12
  %36546 = load i32, ptr %36545, align 4, !tbaa !5
  %36547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36534, ptr noundef @.str.2, i32 noundef %36535, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 2179, ptr noundef %36538, ptr noundef %36541, ptr noundef %36544, i32 noundef %36546) #11
  br label %36565

36548:                                            ; preds = %36526, %36519
  %36549 = load i32, ptr %1137, align 4, !tbaa !5
  %36550 = call ptr @__errno_location() #12
  store i32 %36549, ptr %36550, align 4, !tbaa !5
  %36551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36552 = load i32, ptr @test_count, align 4, !tbaa !5
  %36553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36554 = load i32, ptr %36553, align 4, !tbaa !5
  %36555 = call ptr @s2n_strerror(i32 noundef %36554, ptr noundef @.str.4)
  %36556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36557 = load i32, ptr %36556, align 4, !tbaa !5
  %36558 = call ptr @s2n_strerror_debug(i32 noundef %36557, ptr noundef @.str.4)
  %36559 = call ptr @__errno_location() #12
  %36560 = load i32, ptr %36559, align 4, !tbaa !5
  %36561 = call ptr @strerror(i32 noundef %36560) #11
  %36562 = call ptr @__errno_location() #12
  %36563 = load i32, ptr %36562, align 4, !tbaa !5
  %36564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36551, ptr noundef @.str.5, i32 noundef %36552, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 2179, ptr noundef %36555, ptr noundef %36558, ptr noundef %36561, i32 noundef %36563) #11
  br label %36565

36565:                                            ; preds = %36548, %36531
  call void @llvm.lifetime.end.p0(i64 4, ptr %1137) #11
  br label %36566

36566:                                            ; preds = %36565
  br label %36567

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

36568:                                            ; No predecessors!
  br label %36569

36569:                                            ; preds = %36568
  br label %36570

36570:                                            ; preds = %36569, %36512
  br label %36571

36571:                                            ; preds = %36570
  br label %36572

36572:                                            ; preds = %36571
  call void @llvm.lifetime.end.p0(i64 4, ptr %1134) #11
  %36573 = call i32 @s2n_pkey_free(ptr noundef %1132)
  call void @llvm.lifetime.end.p0(i64 48, ptr %1132) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1130) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1129) #11
  %36574 = call i32 @s2n_stuffer_free(ptr noundef %1126)
  call void @llvm.lifetime.end.p0(i64 40, ptr %1126) #11
  %36575 = call i32 @s2n_connection_ptr_free(ptr noundef %1122)
  %36576 = getelementptr inbounds %struct.s2n_result, ptr %1138, i32 0, i32 0
  store i32 %36575, ptr %36576, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1122) #11
  %36577 = call i32 @s2n_x509_validator_wipe(ptr noundef %1120)
  call void @llvm.lifetime.end.p0(i64 56, ptr %1120) #11
  %36578 = call i32 @s2n_config_ptr_free(ptr noundef %1119)
  %36579 = getelementptr inbounds %struct.s2n_result, ptr %1139, i32 0, i32 0
  store i32 %36578, ptr %36579, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1119) #11
  br label %36580

36580:                                            ; preds = %36572, %35928
  call void @llvm.lifetime.end.p0(i64 8, ptr %1058) #11
  call void @llvm.lifetime.start.p0(i64 12000, ptr %1140) #11
  call void @llvm.memset.p0.i64(ptr align 16 %1140, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %1141) #11
  store i32 0, ptr %1141, align 4, !tbaa !5
  br label %36581

36581:                                            ; preds = %36580
  %36582 = load i32, ptr @test_count, align 4, !tbaa !5
  %36583 = add nsw i32 %36582, 1
  store i32 %36583, ptr @test_count, align 4, !tbaa !5
  %36584 = getelementptr inbounds [12000 x i8], ptr %1140, i64 0, i64 0
  %36585 = call i32 @s2n_read_test_pem_and_len(ptr noundef @.str.170, ptr noundef %36584, ptr noundef %1141, i64 noundef 12000)
  %36586 = icmp eq i32 %36585, -1
  br i1 %36586, label %36587, label %36640

36587:                                            ; preds = %36581
  br label %36588

36588:                                            ; preds = %36587
  br label %36589

36589:                                            ; preds = %36588
  call void @llvm.lifetime.start.p0(i64 4, ptr %1142) #11
  %36590 = call ptr @__errno_location() #12
  %36591 = load i32, ptr %36590, align 4, !tbaa !5
  store i32 %36591, ptr %1142, align 4, !tbaa !5
  %36592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36593 = call i32 @s2n_print_stacktrace(ptr noundef %36592)
  %36594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36595 = trunc i8 %36594 to i1
  br i1 %36595, label %36596, label %36618

36596:                                            ; preds = %36589
  %36597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36598 = call i32 @fileno(ptr noundef %36597) #11
  %36599 = call i32 @isatty(i32 noundef %36598) #11
  %36600 = icmp ne i32 %36599, 0
  br i1 %36600, label %36601, label %36618

36601:                                            ; preds = %36596
  %36602 = load i32, ptr %1142, align 4, !tbaa !5
  %36603 = call ptr @__errno_location() #12
  store i32 %36602, ptr %36603, align 4, !tbaa !5
  %36604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36605 = load i32, ptr @test_count, align 4, !tbaa !5
  %36606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36607 = load i32, ptr %36606, align 4, !tbaa !5
  %36608 = call ptr @s2n_strerror(i32 noundef %36607, ptr noundef @.str.4)
  %36609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36610 = load i32, ptr %36609, align 4, !tbaa !5
  %36611 = call ptr @s2n_strerror_debug(i32 noundef %36610, ptr noundef @.str.4)
  %36612 = call ptr @__errno_location() #12
  %36613 = load i32, ptr %36612, align 4, !tbaa !5
  %36614 = call ptr @strerror(i32 noundef %36613) #11
  %36615 = call ptr @__errno_location() #12
  %36616 = load i32, ptr %36615, align 4, !tbaa !5
  %36617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36604, ptr noundef @.str.2, i32 noundef %36605, ptr noundef @.str.171, ptr noundef @.str.1, i32 noundef 2188, ptr noundef %36608, ptr noundef %36611, ptr noundef %36614, i32 noundef %36616) #11
  br label %36635

36618:                                            ; preds = %36596, %36589
  %36619 = load i32, ptr %1142, align 4, !tbaa !5
  %36620 = call ptr @__errno_location() #12
  store i32 %36619, ptr %36620, align 4, !tbaa !5
  %36621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36622 = load i32, ptr @test_count, align 4, !tbaa !5
  %36623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36624 = load i32, ptr %36623, align 4, !tbaa !5
  %36625 = call ptr @s2n_strerror(i32 noundef %36624, ptr noundef @.str.4)
  %36626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36627 = load i32, ptr %36626, align 4, !tbaa !5
  %36628 = call ptr @s2n_strerror_debug(i32 noundef %36627, ptr noundef @.str.4)
  %36629 = call ptr @__errno_location() #12
  %36630 = load i32, ptr %36629, align 4, !tbaa !5
  %36631 = call ptr @strerror(i32 noundef %36630) #11
  %36632 = call ptr @__errno_location() #12
  %36633 = load i32, ptr %36632, align 4, !tbaa !5
  %36634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36621, ptr noundef @.str.5, i32 noundef %36622, ptr noundef @.str.171, ptr noundef @.str.1, i32 noundef 2188, ptr noundef %36625, ptr noundef %36628, ptr noundef %36631, i32 noundef %36633) #11
  br label %36635

36635:                                            ; preds = %36618, %36601
  call void @llvm.lifetime.end.p0(i64 4, ptr %1142) #11
  br label %36636

36636:                                            ; preds = %36635
  br label %36637

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

36638:                                            ; No predecessors!
  br label %36639

36639:                                            ; preds = %36638
  br label %36640

36640:                                            ; preds = %36639, %36581
  br label %36641

36641:                                            ; preds = %36640
  br label %36642

36642:                                            ; preds = %36641
  call void @llvm.lifetime.start.p0(i64 12000, ptr %1143) #11
  call void @llvm.memset.p0.i64(ptr align 16 %1143, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %1144) #11
  store i32 0, ptr %1144, align 4, !tbaa !5
  br label %36643

36643:                                            ; preds = %36642
  %36644 = load i32, ptr @test_count, align 4, !tbaa !5
  %36645 = add nsw i32 %36644, 1
  store i32 %36645, ptr @test_count, align 4, !tbaa !5
  %36646 = getelementptr inbounds [12000 x i8], ptr %1143, i64 0, i64 0
  %36647 = call i32 @s2n_read_test_pem_and_len(ptr noundef @.str.172, ptr noundef %36646, ptr noundef %1144, i64 noundef 12000)
  %36648 = icmp eq i32 %36647, -1
  br i1 %36648, label %36649, label %36702

36649:                                            ; preds = %36643
  br label %36650

36650:                                            ; preds = %36649
  br label %36651

36651:                                            ; preds = %36650
  call void @llvm.lifetime.start.p0(i64 4, ptr %1145) #11
  %36652 = call ptr @__errno_location() #12
  %36653 = load i32, ptr %36652, align 4, !tbaa !5
  store i32 %36653, ptr %1145, align 4, !tbaa !5
  %36654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36655 = call i32 @s2n_print_stacktrace(ptr noundef %36654)
  %36656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36657 = trunc i8 %36656 to i1
  br i1 %36657, label %36658, label %36680

36658:                                            ; preds = %36651
  %36659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36660 = call i32 @fileno(ptr noundef %36659) #11
  %36661 = call i32 @isatty(i32 noundef %36660) #11
  %36662 = icmp ne i32 %36661, 0
  br i1 %36662, label %36663, label %36680

36663:                                            ; preds = %36658
  %36664 = load i32, ptr %1145, align 4, !tbaa !5
  %36665 = call ptr @__errno_location() #12
  store i32 %36664, ptr %36665, align 4, !tbaa !5
  %36666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36667 = load i32, ptr @test_count, align 4, !tbaa !5
  %36668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36669 = load i32, ptr %36668, align 4, !tbaa !5
  %36670 = call ptr @s2n_strerror(i32 noundef %36669, ptr noundef @.str.4)
  %36671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36672 = load i32, ptr %36671, align 4, !tbaa !5
  %36673 = call ptr @s2n_strerror_debug(i32 noundef %36672, ptr noundef @.str.4)
  %36674 = call ptr @__errno_location() #12
  %36675 = load i32, ptr %36674, align 4, !tbaa !5
  %36676 = call ptr @strerror(i32 noundef %36675) #11
  %36677 = call ptr @__errno_location() #12
  %36678 = load i32, ptr %36677, align 4, !tbaa !5
  %36679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36666, ptr noundef @.str.2, i32 noundef %36667, ptr noundef @.str.173, ptr noundef @.str.1, i32 noundef 2193, ptr noundef %36670, ptr noundef %36673, ptr noundef %36676, i32 noundef %36678) #11
  br label %36697

36680:                                            ; preds = %36658, %36651
  %36681 = load i32, ptr %1145, align 4, !tbaa !5
  %36682 = call ptr @__errno_location() #12
  store i32 %36681, ptr %36682, align 4, !tbaa !5
  %36683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36684 = load i32, ptr @test_count, align 4, !tbaa !5
  %36685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36686 = load i32, ptr %36685, align 4, !tbaa !5
  %36687 = call ptr @s2n_strerror(i32 noundef %36686, ptr noundef @.str.4)
  %36688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36689 = load i32, ptr %36688, align 4, !tbaa !5
  %36690 = call ptr @s2n_strerror_debug(i32 noundef %36689, ptr noundef @.str.4)
  %36691 = call ptr @__errno_location() #12
  %36692 = load i32, ptr %36691, align 4, !tbaa !5
  %36693 = call ptr @strerror(i32 noundef %36692) #11
  %36694 = call ptr @__errno_location() #12
  %36695 = load i32, ptr %36694, align 4, !tbaa !5
  %36696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36683, ptr noundef @.str.5, i32 noundef %36684, ptr noundef @.str.173, ptr noundef @.str.1, i32 noundef 2193, ptr noundef %36687, ptr noundef %36690, ptr noundef %36693, i32 noundef %36695) #11
  br label %36697

36697:                                            ; preds = %36680, %36663
  call void @llvm.lifetime.end.p0(i64 4, ptr %1145) #11
  br label %36698

36698:                                            ; preds = %36697
  br label %36699

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

36700:                                            ; No predecessors!
  br label %36701

36701:                                            ; preds = %36700
  br label %36702

36702:                                            ; preds = %36701, %36643
  br label %36703

36703:                                            ; preds = %36702
  br label %36704

36704:                                            ; preds = %36703
  call void @llvm.lifetime.start.p0(i64 64, ptr %1146) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1146, ptr align 8 @security_policy_rfc9151, i64 64, i1 false), !tbaa.struct !61
  %36705 = getelementptr inbounds %struct.s2n_security_policy, ptr %1146, i32 0, i32 7
  store i8 0, ptr %36705, align 8, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 8, ptr %1147) #11
  %36706 = call ptr @s2n_config_new_minimal()
  store ptr %36706, ptr %1147, align 8, !tbaa !9
  br label %36707

36707:                                            ; preds = %36704
  %36708 = load i32, ptr @test_count, align 4, !tbaa !5
  %36709 = add nsw i32 %36708, 1
  store i32 %36709, ptr @test_count, align 4, !tbaa !5
  %36710 = load ptr, ptr %1147, align 8, !tbaa !9
  %36711 = getelementptr inbounds [12000 x i8], ptr %1140, i64 0, i64 0
  %36712 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %36710, ptr noundef %36711)
  %36713 = icmp eq i32 %36712, -1
  br i1 %36713, label %36714, label %36767

36714:                                            ; preds = %36707
  br label %36715

36715:                                            ; preds = %36714
  br label %36716

36716:                                            ; preds = %36715
  call void @llvm.lifetime.start.p0(i64 4, ptr %1148) #11
  %36717 = call ptr @__errno_location() #12
  %36718 = load i32, ptr %36717, align 4, !tbaa !5
  store i32 %36718, ptr %1148, align 4, !tbaa !5
  %36719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36720 = call i32 @s2n_print_stacktrace(ptr noundef %36719)
  %36721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36722 = trunc i8 %36721 to i1
  br i1 %36722, label %36723, label %36745

36723:                                            ; preds = %36716
  %36724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36725 = call i32 @fileno(ptr noundef %36724) #11
  %36726 = call i32 @isatty(i32 noundef %36725) #11
  %36727 = icmp ne i32 %36726, 0
  br i1 %36727, label %36728, label %36745

36728:                                            ; preds = %36723
  %36729 = load i32, ptr %1148, align 4, !tbaa !5
  %36730 = call ptr @__errno_location() #12
  store i32 %36729, ptr %36730, align 4, !tbaa !5
  %36731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36732 = load i32, ptr @test_count, align 4, !tbaa !5
  %36733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36734 = load i32, ptr %36733, align 4, !tbaa !5
  %36735 = call ptr @s2n_strerror(i32 noundef %36734, ptr noundef @.str.4)
  %36736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36737 = load i32, ptr %36736, align 4, !tbaa !5
  %36738 = call ptr @s2n_strerror_debug(i32 noundef %36737, ptr noundef @.str.4)
  %36739 = call ptr @__errno_location() #12
  %36740 = load i32, ptr %36739, align 4, !tbaa !5
  %36741 = call ptr @strerror(i32 noundef %36740) #11
  %36742 = call ptr @__errno_location() #12
  %36743 = load i32, ptr %36742, align 4, !tbaa !5
  %36744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36731, ptr noundef @.str.2, i32 noundef %36732, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 2201, ptr noundef %36735, ptr noundef %36738, ptr noundef %36741, i32 noundef %36743) #11
  br label %36762

36745:                                            ; preds = %36723, %36716
  %36746 = load i32, ptr %1148, align 4, !tbaa !5
  %36747 = call ptr @__errno_location() #12
  store i32 %36746, ptr %36747, align 4, !tbaa !5
  %36748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36749 = load i32, ptr @test_count, align 4, !tbaa !5
  %36750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36751 = load i32, ptr %36750, align 4, !tbaa !5
  %36752 = call ptr @s2n_strerror(i32 noundef %36751, ptr noundef @.str.4)
  %36753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36754 = load i32, ptr %36753, align 4, !tbaa !5
  %36755 = call ptr @s2n_strerror_debug(i32 noundef %36754, ptr noundef @.str.4)
  %36756 = call ptr @__errno_location() #12
  %36757 = load i32, ptr %36756, align 4, !tbaa !5
  %36758 = call ptr @strerror(i32 noundef %36757) #11
  %36759 = call ptr @__errno_location() #12
  %36760 = load i32, ptr %36759, align 4, !tbaa !5
  %36761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36748, ptr noundef @.str.5, i32 noundef %36749, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 2201, ptr noundef %36752, ptr noundef %36755, ptr noundef %36758, i32 noundef %36760) #11
  br label %36762

36762:                                            ; preds = %36745, %36728
  call void @llvm.lifetime.end.p0(i64 4, ptr %1148) #11
  br label %36763

36763:                                            ; preds = %36762
  br label %36764

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

36765:                                            ; No predecessors!
  br label %36766

36766:                                            ; preds = %36765
  br label %36767

36767:                                            ; preds = %36766, %36707
  br label %36768

36768:                                            ; preds = %36767
  br label %36769

36769:                                            ; preds = %36768
  call void @llvm.lifetime.start.p0(i64 56, ptr %1149) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1149, i8 0, i64 56, i1 false)
  br label %36770

36770:                                            ; preds = %36769
  %36771 = load i32, ptr @test_count, align 4, !tbaa !5
  %36772 = add nsw i32 %36771, 1
  store i32 %36772, ptr @test_count, align 4, !tbaa !5
  %36773 = load ptr, ptr %1147, align 8, !tbaa !9
  %36774 = getelementptr inbounds %struct.s2n_config, ptr %36773, i32 0, i32 37
  %36775 = call i32 @s2n_x509_validator_init(ptr noundef %1149, ptr noundef %36774, i8 noundef zeroext 0)
  %36776 = icmp eq i32 %36775, -1
  br i1 %36776, label %36777, label %36830

36777:                                            ; preds = %36770
  br label %36778

36778:                                            ; preds = %36777
  br label %36779

36779:                                            ; preds = %36778
  call void @llvm.lifetime.start.p0(i64 4, ptr %1150) #11
  %36780 = call ptr @__errno_location() #12
  %36781 = load i32, ptr %36780, align 4, !tbaa !5
  store i32 %36781, ptr %1150, align 4, !tbaa !5
  %36782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36783 = call i32 @s2n_print_stacktrace(ptr noundef %36782)
  %36784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36785 = trunc i8 %36784 to i1
  br i1 %36785, label %36786, label %36808

36786:                                            ; preds = %36779
  %36787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36788 = call i32 @fileno(ptr noundef %36787) #11
  %36789 = call i32 @isatty(i32 noundef %36788) #11
  %36790 = icmp ne i32 %36789, 0
  br i1 %36790, label %36791, label %36808

36791:                                            ; preds = %36786
  %36792 = load i32, ptr %1150, align 4, !tbaa !5
  %36793 = call ptr @__errno_location() #12
  store i32 %36792, ptr %36793, align 4, !tbaa !5
  %36794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36795 = load i32, ptr @test_count, align 4, !tbaa !5
  %36796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36797 = load i32, ptr %36796, align 4, !tbaa !5
  %36798 = call ptr @s2n_strerror(i32 noundef %36797, ptr noundef @.str.4)
  %36799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36800 = load i32, ptr %36799, align 4, !tbaa !5
  %36801 = call ptr @s2n_strerror_debug(i32 noundef %36800, ptr noundef @.str.4)
  %36802 = call ptr @__errno_location() #12
  %36803 = load i32, ptr %36802, align 4, !tbaa !5
  %36804 = call ptr @strerror(i32 noundef %36803) #11
  %36805 = call ptr @__errno_location() #12
  %36806 = load i32, ptr %36805, align 4, !tbaa !5
  %36807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36794, ptr noundef @.str.2, i32 noundef %36795, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2204, ptr noundef %36798, ptr noundef %36801, ptr noundef %36804, i32 noundef %36806) #11
  br label %36825

36808:                                            ; preds = %36786, %36779
  %36809 = load i32, ptr %1150, align 4, !tbaa !5
  %36810 = call ptr @__errno_location() #12
  store i32 %36809, ptr %36810, align 4, !tbaa !5
  %36811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36812 = load i32, ptr @test_count, align 4, !tbaa !5
  %36813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36814 = load i32, ptr %36813, align 4, !tbaa !5
  %36815 = call ptr @s2n_strerror(i32 noundef %36814, ptr noundef @.str.4)
  %36816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36817 = load i32, ptr %36816, align 4, !tbaa !5
  %36818 = call ptr @s2n_strerror_debug(i32 noundef %36817, ptr noundef @.str.4)
  %36819 = call ptr @__errno_location() #12
  %36820 = load i32, ptr %36819, align 4, !tbaa !5
  %36821 = call ptr @strerror(i32 noundef %36820) #11
  %36822 = call ptr @__errno_location() #12
  %36823 = load i32, ptr %36822, align 4, !tbaa !5
  %36824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36811, ptr noundef @.str.5, i32 noundef %36812, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2204, ptr noundef %36815, ptr noundef %36818, ptr noundef %36821, i32 noundef %36823) #11
  br label %36825

36825:                                            ; preds = %36808, %36791
  call void @llvm.lifetime.end.p0(i64 4, ptr %1150) #11
  br label %36826

36826:                                            ; preds = %36825
  br label %36827

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

36828:                                            ; No predecessors!
  br label %36829

36829:                                            ; preds = %36828
  br label %36830

36830:                                            ; preds = %36829, %36770
  br label %36831

36831:                                            ; preds = %36830
  br label %36832

36832:                                            ; preds = %36831
  call void @llvm.lifetime.start.p0(i64 8, ptr %1151) #11
  %36833 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %36833, ptr %1151, align 8, !tbaa !9
  br label %36834

36834:                                            ; preds = %36832
  %36835 = load i32, ptr @test_count, align 4, !tbaa !5
  %36836 = add nsw i32 %36835, 1
  store i32 %36836, ptr @test_count, align 4, !tbaa !5
  %36837 = load ptr, ptr %1151, align 8, !tbaa !9
  %36838 = icmp eq ptr %36837, null
  br i1 %36838, label %36839, label %36892

36839:                                            ; preds = %36834
  br label %36840

36840:                                            ; preds = %36839
  br label %36841

36841:                                            ; preds = %36840
  call void @llvm.lifetime.start.p0(i64 4, ptr %1152) #11
  %36842 = call ptr @__errno_location() #12
  %36843 = load i32, ptr %36842, align 4, !tbaa !5
  store i32 %36843, ptr %1152, align 4, !tbaa !5
  %36844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36845 = call i32 @s2n_print_stacktrace(ptr noundef %36844)
  %36846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36847 = trunc i8 %36846 to i1
  br i1 %36847, label %36848, label %36870

36848:                                            ; preds = %36841
  %36849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36850 = call i32 @fileno(ptr noundef %36849) #11
  %36851 = call i32 @isatty(i32 noundef %36850) #11
  %36852 = icmp ne i32 %36851, 0
  br i1 %36852, label %36853, label %36870

36853:                                            ; preds = %36848
  %36854 = load i32, ptr %1152, align 4, !tbaa !5
  %36855 = call ptr @__errno_location() #12
  store i32 %36854, ptr %36855, align 4, !tbaa !5
  %36856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36857 = load i32, ptr @test_count, align 4, !tbaa !5
  %36858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36859 = load i32, ptr %36858, align 4, !tbaa !5
  %36860 = call ptr @s2n_strerror(i32 noundef %36859, ptr noundef @.str.4)
  %36861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36862 = load i32, ptr %36861, align 4, !tbaa !5
  %36863 = call ptr @s2n_strerror_debug(i32 noundef %36862, ptr noundef @.str.4)
  %36864 = call ptr @__errno_location() #12
  %36865 = load i32, ptr %36864, align 4, !tbaa !5
  %36866 = call ptr @strerror(i32 noundef %36865) #11
  %36867 = call ptr @__errno_location() #12
  %36868 = load i32, ptr %36867, align 4, !tbaa !5
  %36869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36856, ptr noundef @.str.2, i32 noundef %36857, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 2207, ptr noundef %36860, ptr noundef %36863, ptr noundef %36866, i32 noundef %36868) #11
  br label %36887

36870:                                            ; preds = %36848, %36841
  %36871 = load i32, ptr %1152, align 4, !tbaa !5
  %36872 = call ptr @__errno_location() #12
  store i32 %36871, ptr %36872, align 4, !tbaa !5
  %36873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36874 = load i32, ptr @test_count, align 4, !tbaa !5
  %36875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36876 = load i32, ptr %36875, align 4, !tbaa !5
  %36877 = call ptr @s2n_strerror(i32 noundef %36876, ptr noundef @.str.4)
  %36878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36879 = load i32, ptr %36878, align 4, !tbaa !5
  %36880 = call ptr @s2n_strerror_debug(i32 noundef %36879, ptr noundef @.str.4)
  %36881 = call ptr @__errno_location() #12
  %36882 = load i32, ptr %36881, align 4, !tbaa !5
  %36883 = call ptr @strerror(i32 noundef %36882) #11
  %36884 = call ptr @__errno_location() #12
  %36885 = load i32, ptr %36884, align 4, !tbaa !5
  %36886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36873, ptr noundef @.str.5, i32 noundef %36874, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 2207, ptr noundef %36877, ptr noundef %36880, ptr noundef %36883, i32 noundef %36885) #11
  br label %36887

36887:                                            ; preds = %36870, %36853
  call void @llvm.lifetime.end.p0(i64 4, ptr %1152) #11
  br label %36888

36888:                                            ; preds = %36887
  br label %36889

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

36890:                                            ; No predecessors!
  br label %36891

36891:                                            ; preds = %36890
  br label %36892

36892:                                            ; preds = %36891, %36834
  br label %36893

36893:                                            ; preds = %36892
  br label %36894

36894:                                            ; preds = %36893
  %36895 = load ptr, ptr %1151, align 8, !tbaa !9
  %36896 = getelementptr inbounds %struct.s2n_connection, ptr %36895, i32 0, i32 2
  store ptr %1146, ptr %36896, align 8, !tbaa !64
  br label %36897

36897:                                            ; preds = %36894
  %36898 = load i32, ptr @test_count, align 4, !tbaa !5
  %36899 = add nsw i32 %36898, 1
  store i32 %36899, ptr @test_count, align 4, !tbaa !5
  %36900 = load ptr, ptr %1151, align 8, !tbaa !9
  %36901 = call i32 @s2n_set_server_name(ptr noundef %36900, ptr noundef @.str.66)
  %36902 = icmp eq i32 %36901, -1
  br i1 %36902, label %36903, label %36956

36903:                                            ; preds = %36897
  br label %36904

36904:                                            ; preds = %36903
  br label %36905

36905:                                            ; preds = %36904
  call void @llvm.lifetime.start.p0(i64 4, ptr %1153) #11
  %36906 = call ptr @__errno_location() #12
  %36907 = load i32, ptr %36906, align 4, !tbaa !5
  store i32 %36907, ptr %1153, align 4, !tbaa !5
  %36908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36909 = call i32 @s2n_print_stacktrace(ptr noundef %36908)
  %36910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36911 = trunc i8 %36910 to i1
  br i1 %36911, label %36912, label %36934

36912:                                            ; preds = %36905
  %36913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36914 = call i32 @fileno(ptr noundef %36913) #11
  %36915 = call i32 @isatty(i32 noundef %36914) #11
  %36916 = icmp ne i32 %36915, 0
  br i1 %36916, label %36917, label %36934

36917:                                            ; preds = %36912
  %36918 = load i32, ptr %1153, align 4, !tbaa !5
  %36919 = call ptr @__errno_location() #12
  store i32 %36918, ptr %36919, align 4, !tbaa !5
  %36920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36921 = load i32, ptr @test_count, align 4, !tbaa !5
  %36922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36923 = load i32, ptr %36922, align 4, !tbaa !5
  %36924 = call ptr @s2n_strerror(i32 noundef %36923, ptr noundef @.str.4)
  %36925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36926 = load i32, ptr %36925, align 4, !tbaa !5
  %36927 = call ptr @s2n_strerror_debug(i32 noundef %36926, ptr noundef @.str.4)
  %36928 = call ptr @__errno_location() #12
  %36929 = load i32, ptr %36928, align 4, !tbaa !5
  %36930 = call ptr @strerror(i32 noundef %36929) #11
  %36931 = call ptr @__errno_location() #12
  %36932 = load i32, ptr %36931, align 4, !tbaa !5
  %36933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36920, ptr noundef @.str.2, i32 noundef %36921, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 2209, ptr noundef %36924, ptr noundef %36927, ptr noundef %36930, i32 noundef %36932) #11
  br label %36951

36934:                                            ; preds = %36912, %36905
  %36935 = load i32, ptr %1153, align 4, !tbaa !5
  %36936 = call ptr @__errno_location() #12
  store i32 %36935, ptr %36936, align 4, !tbaa !5
  %36937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36938 = load i32, ptr @test_count, align 4, !tbaa !5
  %36939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36940 = load i32, ptr %36939, align 4, !tbaa !5
  %36941 = call ptr @s2n_strerror(i32 noundef %36940, ptr noundef @.str.4)
  %36942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36943 = load i32, ptr %36942, align 4, !tbaa !5
  %36944 = call ptr @s2n_strerror_debug(i32 noundef %36943, ptr noundef @.str.4)
  %36945 = call ptr @__errno_location() #12
  %36946 = load i32, ptr %36945, align 4, !tbaa !5
  %36947 = call ptr @strerror(i32 noundef %36946) #11
  %36948 = call ptr @__errno_location() #12
  %36949 = load i32, ptr %36948, align 4, !tbaa !5
  %36950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36937, ptr noundef @.str.5, i32 noundef %36938, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 2209, ptr noundef %36941, ptr noundef %36944, ptr noundef %36947, i32 noundef %36949) #11
  br label %36951

36951:                                            ; preds = %36934, %36917
  call void @llvm.lifetime.end.p0(i64 4, ptr %1153) #11
  br label %36952

36952:                                            ; preds = %36951
  br label %36953

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

36954:                                            ; No predecessors!
  br label %36955

36955:                                            ; preds = %36954
  br label %36956

36956:                                            ; preds = %36955, %36897
  br label %36957

36957:                                            ; preds = %36956
  br label %36958

36958:                                            ; preds = %36957
  call void @llvm.lifetime.start.p0(i64 40, ptr %1154) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1154, i8 0, i64 40, i1 false)
  br label %36959

36959:                                            ; preds = %36958
  %36960 = load i32, ptr @test_count, align 4, !tbaa !5
  %36961 = add nsw i32 %36960, 1
  store i32 %36961, ptr @test_count, align 4, !tbaa !5
  %36962 = load ptr, ptr %1151, align 8, !tbaa !9
  %36963 = getelementptr inbounds [12000 x i8], ptr %1143, i64 0, i64 0
  %36964 = load i32, ptr %1144, align 4, !tbaa !5
  %36965 = call i32 @s2n_test_cert_chain_data_from_pem_data(ptr noundef %36962, ptr noundef %36963, i32 noundef %36964, ptr noundef %1154)
  %36966 = getelementptr inbounds %struct.s2n_result, ptr %1155, i32 0, i32 0
  store i32 %36965, ptr %36966, align 4
  %36967 = getelementptr inbounds %struct.s2n_result, ptr %1155, i32 0, i32 0
  %36968 = load i32, ptr %36967, align 4
  %36969 = call zeroext i1 @s2n_result_is_ok(i32 %36968)
  br i1 %36969, label %37023, label %36970

36970:                                            ; preds = %36959
  br label %36971

36971:                                            ; preds = %36970
  br label %36972

36972:                                            ; preds = %36971
  call void @llvm.lifetime.start.p0(i64 4, ptr %1156) #11
  %36973 = call ptr @__errno_location() #12
  %36974 = load i32, ptr %36973, align 4, !tbaa !5
  store i32 %36974, ptr %1156, align 4, !tbaa !5
  %36975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36976 = call i32 @s2n_print_stacktrace(ptr noundef %36975)
  %36977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %36978 = trunc i8 %36977 to i1
  br i1 %36978, label %36979, label %37001

36979:                                            ; preds = %36972
  %36980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36981 = call i32 @fileno(ptr noundef %36980) #11
  %36982 = call i32 @isatty(i32 noundef %36981) #11
  %36983 = icmp ne i32 %36982, 0
  br i1 %36983, label %36984, label %37001

36984:                                            ; preds = %36979
  %36985 = load i32, ptr %1156, align 4, !tbaa !5
  %36986 = call ptr @__errno_location() #12
  store i32 %36985, ptr %36986, align 4, !tbaa !5
  %36987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36988 = load i32, ptr @test_count, align 4, !tbaa !5
  %36989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36990 = load i32, ptr %36989, align 4, !tbaa !5
  %36991 = call ptr @s2n_strerror(i32 noundef %36990, ptr noundef @.str.4)
  %36992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36993 = load i32, ptr %36992, align 4, !tbaa !5
  %36994 = call ptr @s2n_strerror_debug(i32 noundef %36993, ptr noundef @.str.4)
  %36995 = call ptr @__errno_location() #12
  %36996 = load i32, ptr %36995, align 4, !tbaa !5
  %36997 = call ptr @strerror(i32 noundef %36996) #11
  %36998 = call ptr @__errno_location() #12
  %36999 = load i32, ptr %36998, align 4, !tbaa !5
  %37000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36987, ptr noundef @.str.2, i32 noundef %36988, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 2213, ptr noundef %36991, ptr noundef %36994, ptr noundef %36997, i32 noundef %36999) #11
  br label %37018

37001:                                            ; preds = %36979, %36972
  %37002 = load i32, ptr %1156, align 4, !tbaa !5
  %37003 = call ptr @__errno_location() #12
  store i32 %37002, ptr %37003, align 4, !tbaa !5
  %37004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37005 = load i32, ptr @test_count, align 4, !tbaa !5
  %37006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37007 = load i32, ptr %37006, align 4, !tbaa !5
  %37008 = call ptr @s2n_strerror(i32 noundef %37007, ptr noundef @.str.4)
  %37009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37010 = load i32, ptr %37009, align 4, !tbaa !5
  %37011 = call ptr @s2n_strerror_debug(i32 noundef %37010, ptr noundef @.str.4)
  %37012 = call ptr @__errno_location() #12
  %37013 = load i32, ptr %37012, align 4, !tbaa !5
  %37014 = call ptr @strerror(i32 noundef %37013) #11
  %37015 = call ptr @__errno_location() #12
  %37016 = load i32, ptr %37015, align 4, !tbaa !5
  %37017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37004, ptr noundef @.str.5, i32 noundef %37005, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 2213, ptr noundef %37008, ptr noundef %37011, ptr noundef %37014, i32 noundef %37016) #11
  br label %37018

37018:                                            ; preds = %37001, %36984
  call void @llvm.lifetime.end.p0(i64 4, ptr %1156) #11
  br label %37019

37019:                                            ; preds = %37018
  br label %37020

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

37021:                                            ; No predecessors!
  br label %37022

37022:                                            ; preds = %37021
  br label %37023

37023:                                            ; preds = %37022, %36959
  br label %37024

37024:                                            ; preds = %37023
  br label %37025

37025:                                            ; preds = %37024
  call void @llvm.lifetime.start.p0(i64 4, ptr %1157) #11
  %37026 = getelementptr inbounds %struct.s2n_stuffer, ptr %1154, i32 0, i32 2
  %37027 = load i32, ptr %37026, align 4, !tbaa !15
  %37028 = getelementptr inbounds %struct.s2n_stuffer, ptr %1154, i32 0, i32 1
  %37029 = load i32, ptr %37028, align 8, !tbaa !18
  %37030 = sub i32 %37027, %37029
  store i32 %37030, ptr %1157, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1158) #11
  %37031 = load i32, ptr %1157, align 4, !tbaa !5
  %37032 = call ptr @s2n_stuffer_raw_read(ptr noundef %1154, i32 noundef %37031)
  store ptr %37032, ptr %1158, align 8, !tbaa !9
  br label %37033

37033:                                            ; preds = %37025
  %37034 = load i32, ptr @test_count, align 4, !tbaa !5
  %37035 = add nsw i32 %37034, 1
  store i32 %37035, ptr @test_count, align 4, !tbaa !5
  %37036 = load ptr, ptr %1158, align 8, !tbaa !9
  %37037 = icmp eq ptr %37036, null
  br i1 %37037, label %37038, label %37091

37038:                                            ; preds = %37033
  br label %37039

37039:                                            ; preds = %37038
  br label %37040

37040:                                            ; preds = %37039
  call void @llvm.lifetime.start.p0(i64 4, ptr %1159) #11
  %37041 = call ptr @__errno_location() #12
  %37042 = load i32, ptr %37041, align 4, !tbaa !5
  store i32 %37042, ptr %1159, align 4, !tbaa !5
  %37043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37044 = call i32 @s2n_print_stacktrace(ptr noundef %37043)
  %37045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37046 = trunc i8 %37045 to i1
  br i1 %37046, label %37047, label %37069

37047:                                            ; preds = %37040
  %37048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37049 = call i32 @fileno(ptr noundef %37048) #11
  %37050 = call i32 @isatty(i32 noundef %37049) #11
  %37051 = icmp ne i32 %37050, 0
  br i1 %37051, label %37052, label %37069

37052:                                            ; preds = %37047
  %37053 = load i32, ptr %1159, align 4, !tbaa !5
  %37054 = call ptr @__errno_location() #12
  store i32 %37053, ptr %37054, align 4, !tbaa !5
  %37055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37056 = load i32, ptr @test_count, align 4, !tbaa !5
  %37057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37058 = load i32, ptr %37057, align 4, !tbaa !5
  %37059 = call ptr @s2n_strerror(i32 noundef %37058, ptr noundef @.str.4)
  %37060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37061 = load i32, ptr %37060, align 4, !tbaa !5
  %37062 = call ptr @s2n_strerror_debug(i32 noundef %37061, ptr noundef @.str.4)
  %37063 = call ptr @__errno_location() #12
  %37064 = load i32, ptr %37063, align 4, !tbaa !5
  %37065 = call ptr @strerror(i32 noundef %37064) #11
  %37066 = call ptr @__errno_location() #12
  %37067 = load i32, ptr %37066, align 4, !tbaa !5
  %37068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37055, ptr noundef @.str.2, i32 noundef %37056, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2216, ptr noundef %37059, ptr noundef %37062, ptr noundef %37065, i32 noundef %37067) #11
  br label %37086

37069:                                            ; preds = %37047, %37040
  %37070 = load i32, ptr %1159, align 4, !tbaa !5
  %37071 = call ptr @__errno_location() #12
  store i32 %37070, ptr %37071, align 4, !tbaa !5
  %37072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37073 = load i32, ptr @test_count, align 4, !tbaa !5
  %37074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37075 = load i32, ptr %37074, align 4, !tbaa !5
  %37076 = call ptr @s2n_strerror(i32 noundef %37075, ptr noundef @.str.4)
  %37077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37078 = load i32, ptr %37077, align 4, !tbaa !5
  %37079 = call ptr @s2n_strerror_debug(i32 noundef %37078, ptr noundef @.str.4)
  %37080 = call ptr @__errno_location() #12
  %37081 = load i32, ptr %37080, align 4, !tbaa !5
  %37082 = call ptr @strerror(i32 noundef %37081) #11
  %37083 = call ptr @__errno_location() #12
  %37084 = load i32, ptr %37083, align 4, !tbaa !5
  %37085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37072, ptr noundef @.str.5, i32 noundef %37073, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2216, ptr noundef %37076, ptr noundef %37079, ptr noundef %37082, i32 noundef %37084) #11
  br label %37086

37086:                                            ; preds = %37069, %37052
  call void @llvm.lifetime.end.p0(i64 4, ptr %1159) #11
  br label %37087

37087:                                            ; preds = %37086
  br label %37088

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

37089:                                            ; No predecessors!
  br label %37090

37090:                                            ; preds = %37089
  br label %37091

37091:                                            ; preds = %37090, %37033
  br label %37092

37092:                                            ; preds = %37091
  br label %37093

37093:                                            ; preds = %37092
  call void @llvm.lifetime.start.p0(i64 48, ptr %1160) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1160, i8 0, i64 48, i1 false)
  br label %37094

37094:                                            ; preds = %37093
  %37095 = load i32, ptr @test_count, align 4, !tbaa !5
  %37096 = add nsw i32 %37095, 1
  store i32 %37096, ptr @test_count, align 4, !tbaa !5
  %37097 = call i32 @s2n_pkey_zero_init(ptr noundef %1160)
  %37098 = icmp eq i32 %37097, -1
  br i1 %37098, label %37099, label %37152

37099:                                            ; preds = %37094
  br label %37100

37100:                                            ; preds = %37099
  br label %37101

37101:                                            ; preds = %37100
  call void @llvm.lifetime.start.p0(i64 4, ptr %1161) #11
  %37102 = call ptr @__errno_location() #12
  %37103 = load i32, ptr %37102, align 4, !tbaa !5
  store i32 %37103, ptr %1161, align 4, !tbaa !5
  %37104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37105 = call i32 @s2n_print_stacktrace(ptr noundef %37104)
  %37106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37107 = trunc i8 %37106 to i1
  br i1 %37107, label %37108, label %37130

37108:                                            ; preds = %37101
  %37109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37110 = call i32 @fileno(ptr noundef %37109) #11
  %37111 = call i32 @isatty(i32 noundef %37110) #11
  %37112 = icmp ne i32 %37111, 0
  br i1 %37112, label %37113, label %37130

37113:                                            ; preds = %37108
  %37114 = load i32, ptr %1161, align 4, !tbaa !5
  %37115 = call ptr @__errno_location() #12
  store i32 %37114, ptr %37115, align 4, !tbaa !5
  %37116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37117 = load i32, ptr @test_count, align 4, !tbaa !5
  %37118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37119 = load i32, ptr %37118, align 4, !tbaa !5
  %37120 = call ptr @s2n_strerror(i32 noundef %37119, ptr noundef @.str.4)
  %37121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37122 = load i32, ptr %37121, align 4, !tbaa !5
  %37123 = call ptr @s2n_strerror_debug(i32 noundef %37122, ptr noundef @.str.4)
  %37124 = call ptr @__errno_location() #12
  %37125 = load i32, ptr %37124, align 4, !tbaa !5
  %37126 = call ptr @strerror(i32 noundef %37125) #11
  %37127 = call ptr @__errno_location() #12
  %37128 = load i32, ptr %37127, align 4, !tbaa !5
  %37129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37116, ptr noundef @.str.2, i32 noundef %37117, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2219, ptr noundef %37120, ptr noundef %37123, ptr noundef %37126, i32 noundef %37128) #11
  br label %37147

37130:                                            ; preds = %37108, %37101
  %37131 = load i32, ptr %1161, align 4, !tbaa !5
  %37132 = call ptr @__errno_location() #12
  store i32 %37131, ptr %37132, align 4, !tbaa !5
  %37133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37134 = load i32, ptr @test_count, align 4, !tbaa !5
  %37135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37136 = load i32, ptr %37135, align 4, !tbaa !5
  %37137 = call ptr @s2n_strerror(i32 noundef %37136, ptr noundef @.str.4)
  %37138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37139 = load i32, ptr %37138, align 4, !tbaa !5
  %37140 = call ptr @s2n_strerror_debug(i32 noundef %37139, ptr noundef @.str.4)
  %37141 = call ptr @__errno_location() #12
  %37142 = load i32, ptr %37141, align 4, !tbaa !5
  %37143 = call ptr @strerror(i32 noundef %37142) #11
  %37144 = call ptr @__errno_location() #12
  %37145 = load i32, ptr %37144, align 4, !tbaa !5
  %37146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37133, ptr noundef @.str.5, i32 noundef %37134, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2219, ptr noundef %37137, ptr noundef %37140, ptr noundef %37143, i32 noundef %37145) #11
  br label %37147

37147:                                            ; preds = %37130, %37113
  call void @llvm.lifetime.end.p0(i64 4, ptr %1161) #11
  br label %37148

37148:                                            ; preds = %37147
  br label %37149

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

37150:                                            ; No predecessors!
  br label %37151

37151:                                            ; preds = %37150
  br label %37152

37152:                                            ; preds = %37151, %37094
  br label %37153

37153:                                            ; preds = %37152
  br label %37154

37154:                                            ; preds = %37153
  call void @llvm.lifetime.start.p0(i64 4, ptr %1162) #11
  store i32 -1, ptr %1162, align 4, !tbaa !5
  br label %37155

37155:                                            ; preds = %37154
  br label %37156

37156:                                            ; preds = %37155
  br label %37157

37157:                                            ; preds = %37156
  %37158 = load i32, ptr @test_count, align 4, !tbaa !5
  %37159 = add nsw i32 %37158, 1
  store i32 %37159, ptr @test_count, align 4, !tbaa !5
  %37160 = load ptr, ptr %1151, align 8, !tbaa !9
  %37161 = load ptr, ptr %1158, align 8, !tbaa !9
  %37162 = load i32, ptr %1157, align 4, !tbaa !5
  %37163 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %1149, ptr noundef %37160, ptr noundef %37161, i32 noundef %37162, ptr noundef %1162, ptr noundef %1160)
  %37164 = getelementptr inbounds %struct.s2n_result, ptr %1163, i32 0, i32 0
  store i32 %37163, ptr %37164, align 4
  %37165 = getelementptr inbounds %struct.s2n_result, ptr %1163, i32 0, i32 0
  %37166 = load i32, ptr %37165, align 4
  %37167 = call zeroext i1 @s2n_result_is_error(i32 %37166)
  br i1 %37167, label %37221, label %37168

37168:                                            ; preds = %37157
  br label %37169

37169:                                            ; preds = %37168
  br label %37170

37170:                                            ; preds = %37169
  call void @llvm.lifetime.start.p0(i64 4, ptr %1164) #11
  %37171 = call ptr @__errno_location() #12
  %37172 = load i32, ptr %37171, align 4, !tbaa !5
  store i32 %37172, ptr %1164, align 4, !tbaa !5
  %37173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37174 = call i32 @s2n_print_stacktrace(ptr noundef %37173)
  %37175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37176 = trunc i8 %37175 to i1
  br i1 %37176, label %37177, label %37199

37177:                                            ; preds = %37170
  %37178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37179 = call i32 @fileno(ptr noundef %37178) #11
  %37180 = call i32 @isatty(i32 noundef %37179) #11
  %37181 = icmp ne i32 %37180, 0
  br i1 %37181, label %37182, label %37199

37182:                                            ; preds = %37177
  %37183 = load i32, ptr %1164, align 4, !tbaa !5
  %37184 = call ptr @__errno_location() #12
  store i32 %37183, ptr %37184, align 4, !tbaa !5
  %37185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37186 = load i32, ptr @test_count, align 4, !tbaa !5
  %37187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37188 = load i32, ptr %37187, align 4, !tbaa !5
  %37189 = call ptr @s2n_strerror(i32 noundef %37188, ptr noundef @.str.4)
  %37190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37191 = load i32, ptr %37190, align 4, !tbaa !5
  %37192 = call ptr @s2n_strerror_debug(i32 noundef %37191, ptr noundef @.str.4)
  %37193 = call ptr @__errno_location() #12
  %37194 = load i32, ptr %37193, align 4, !tbaa !5
  %37195 = call ptr @strerror(i32 noundef %37194) #11
  %37196 = call ptr @__errno_location() #12
  %37197 = load i32, ptr %37196, align 4, !tbaa !5
  %37198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37185, ptr noundef @.str.2, i32 noundef %37186, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 2223, ptr noundef %37189, ptr noundef %37192, ptr noundef %37195, i32 noundef %37197) #11
  br label %37216

37199:                                            ; preds = %37177, %37170
  %37200 = load i32, ptr %1164, align 4, !tbaa !5
  %37201 = call ptr @__errno_location() #12
  store i32 %37200, ptr %37201, align 4, !tbaa !5
  %37202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37203 = load i32, ptr @test_count, align 4, !tbaa !5
  %37204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37205 = load i32, ptr %37204, align 4, !tbaa !5
  %37206 = call ptr @s2n_strerror(i32 noundef %37205, ptr noundef @.str.4)
  %37207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37208 = load i32, ptr %37207, align 4, !tbaa !5
  %37209 = call ptr @s2n_strerror_debug(i32 noundef %37208, ptr noundef @.str.4)
  %37210 = call ptr @__errno_location() #12
  %37211 = load i32, ptr %37210, align 4, !tbaa !5
  %37212 = call ptr @strerror(i32 noundef %37211) #11
  %37213 = call ptr @__errno_location() #12
  %37214 = load i32, ptr %37213, align 4, !tbaa !5
  %37215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37202, ptr noundef @.str.5, i32 noundef %37203, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 2223, ptr noundef %37206, ptr noundef %37209, ptr noundef %37212, i32 noundef %37214) #11
  br label %37216

37216:                                            ; preds = %37199, %37182
  call void @llvm.lifetime.end.p0(i64 4, ptr %1164) #11
  br label %37217

37217:                                            ; preds = %37216
  br label %37218

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

37219:                                            ; No predecessors!
  br label %37220

37220:                                            ; preds = %37219
  br label %37221

37221:                                            ; preds = %37220, %37157
  br label %37222

37222:                                            ; preds = %37221
  br label %37223

37223:                                            ; preds = %37222
  br label %37224

37224:                                            ; preds = %37223
  %37225 = load i32, ptr @test_count, align 4, !tbaa !5
  %37226 = add nsw i32 %37225, 1
  store i32 %37226, ptr @test_count, align 4, !tbaa !5
  %37227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37228 = load i32, ptr %37227, align 4, !tbaa !5
  %37229 = icmp eq i32 %37228, 335544366
  br i1 %37229, label %37283, label %37230

37230:                                            ; preds = %37224
  br label %37231

37231:                                            ; preds = %37230
  br label %37232

37232:                                            ; preds = %37231
  call void @llvm.lifetime.start.p0(i64 4, ptr %1165) #11
  %37233 = call ptr @__errno_location() #12
  %37234 = load i32, ptr %37233, align 4, !tbaa !5
  store i32 %37234, ptr %1165, align 4, !tbaa !5
  %37235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37236 = call i32 @s2n_print_stacktrace(ptr noundef %37235)
  %37237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37238 = trunc i8 %37237 to i1
  br i1 %37238, label %37239, label %37261

37239:                                            ; preds = %37232
  %37240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37241 = call i32 @fileno(ptr noundef %37240) #11
  %37242 = call i32 @isatty(i32 noundef %37241) #11
  %37243 = icmp ne i32 %37242, 0
  br i1 %37243, label %37244, label %37261

37244:                                            ; preds = %37239
  %37245 = load i32, ptr %1165, align 4, !tbaa !5
  %37246 = call ptr @__errno_location() #12
  store i32 %37245, ptr %37246, align 4, !tbaa !5
  %37247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37248 = load i32, ptr @test_count, align 4, !tbaa !5
  %37249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37250 = load i32, ptr %37249, align 4, !tbaa !5
  %37251 = call ptr @s2n_strerror(i32 noundef %37250, ptr noundef @.str.4)
  %37252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37253 = load i32, ptr %37252, align 4, !tbaa !5
  %37254 = call ptr @s2n_strerror_debug(i32 noundef %37253, ptr noundef @.str.4)
  %37255 = call ptr @__errno_location() #12
  %37256 = load i32, ptr %37255, align 4, !tbaa !5
  %37257 = call ptr @strerror(i32 noundef %37256) #11
  %37258 = call ptr @__errno_location() #12
  %37259 = load i32, ptr %37258, align 4, !tbaa !5
  %37260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37247, ptr noundef @.str.2, i32 noundef %37248, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 2223, ptr noundef %37251, ptr noundef %37254, ptr noundef %37257, i32 noundef %37259) #11
  br label %37278

37261:                                            ; preds = %37239, %37232
  %37262 = load i32, ptr %1165, align 4, !tbaa !5
  %37263 = call ptr @__errno_location() #12
  store i32 %37262, ptr %37263, align 4, !tbaa !5
  %37264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37265 = load i32, ptr @test_count, align 4, !tbaa !5
  %37266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37267 = load i32, ptr %37266, align 4, !tbaa !5
  %37268 = call ptr @s2n_strerror(i32 noundef %37267, ptr noundef @.str.4)
  %37269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37270 = load i32, ptr %37269, align 4, !tbaa !5
  %37271 = call ptr @s2n_strerror_debug(i32 noundef %37270, ptr noundef @.str.4)
  %37272 = call ptr @__errno_location() #12
  %37273 = load i32, ptr %37272, align 4, !tbaa !5
  %37274 = call ptr @strerror(i32 noundef %37273) #11
  %37275 = call ptr @__errno_location() #12
  %37276 = load i32, ptr %37275, align 4, !tbaa !5
  %37277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37264, ptr noundef @.str.5, i32 noundef %37265, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 2223, ptr noundef %37268, ptr noundef %37271, ptr noundef %37274, i32 noundef %37276) #11
  br label %37278

37278:                                            ; preds = %37261, %37244
  call void @llvm.lifetime.end.p0(i64 4, ptr %1165) #11
  br label %37279

37279:                                            ; preds = %37278
  br label %37280

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

37281:                                            ; No predecessors!
  br label %37282

37282:                                            ; preds = %37281
  br label %37283

37283:                                            ; preds = %37282, %37224
  br label %37284

37284:                                            ; preds = %37283
  br label %37285

37285:                                            ; preds = %37284
  br label %37286

37286:                                            ; preds = %37285
  %37287 = load i32, ptr @test_count, align 4, !tbaa !5
  %37288 = add nsw i32 %37287, 1
  store i32 %37288, ptr @test_count, align 4, !tbaa !5
  %37289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37290 = load i32, ptr %37289, align 4, !tbaa !5
  %37291 = call ptr @s2n_strerror_debug(i32 noundef %37290, ptr noundef @.str.4)
  %37292 = icmp eq ptr %37291, null
  br i1 %37292, label %37293, label %37346

37293:                                            ; preds = %37286
  br label %37294

37294:                                            ; preds = %37293
  br label %37295

37295:                                            ; preds = %37294
  call void @llvm.lifetime.start.p0(i64 4, ptr %1166) #11
  %37296 = call ptr @__errno_location() #12
  %37297 = load i32, ptr %37296, align 4, !tbaa !5
  store i32 %37297, ptr %1166, align 4, !tbaa !5
  %37298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37299 = call i32 @s2n_print_stacktrace(ptr noundef %37298)
  %37300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37301 = trunc i8 %37300 to i1
  br i1 %37301, label %37302, label %37324

37302:                                            ; preds = %37295
  %37303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37304 = call i32 @fileno(ptr noundef %37303) #11
  %37305 = call i32 @isatty(i32 noundef %37304) #11
  %37306 = icmp ne i32 %37305, 0
  br i1 %37306, label %37307, label %37324

37307:                                            ; preds = %37302
  %37308 = load i32, ptr %1166, align 4, !tbaa !5
  %37309 = call ptr @__errno_location() #12
  store i32 %37308, ptr %37309, align 4, !tbaa !5
  %37310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37311 = load i32, ptr @test_count, align 4, !tbaa !5
  %37312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37313 = load i32, ptr %37312, align 4, !tbaa !5
  %37314 = call ptr @s2n_strerror(i32 noundef %37313, ptr noundef @.str.4)
  %37315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37316 = load i32, ptr %37315, align 4, !tbaa !5
  %37317 = call ptr @s2n_strerror_debug(i32 noundef %37316, ptr noundef @.str.4)
  %37318 = call ptr @__errno_location() #12
  %37319 = load i32, ptr %37318, align 4, !tbaa !5
  %37320 = call ptr @strerror(i32 noundef %37319) #11
  %37321 = call ptr @__errno_location() #12
  %37322 = load i32, ptr %37321, align 4, !tbaa !5
  %37323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37310, ptr noundef @.str.2, i32 noundef %37311, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 2223, ptr noundef %37314, ptr noundef %37317, ptr noundef %37320, i32 noundef %37322) #11
  br label %37341

37324:                                            ; preds = %37302, %37295
  %37325 = load i32, ptr %1166, align 4, !tbaa !5
  %37326 = call ptr @__errno_location() #12
  store i32 %37325, ptr %37326, align 4, !tbaa !5
  %37327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37328 = load i32, ptr @test_count, align 4, !tbaa !5
  %37329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37330 = load i32, ptr %37329, align 4, !tbaa !5
  %37331 = call ptr @s2n_strerror(i32 noundef %37330, ptr noundef @.str.4)
  %37332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37333 = load i32, ptr %37332, align 4, !tbaa !5
  %37334 = call ptr @s2n_strerror_debug(i32 noundef %37333, ptr noundef @.str.4)
  %37335 = call ptr @__errno_location() #12
  %37336 = load i32, ptr %37335, align 4, !tbaa !5
  %37337 = call ptr @strerror(i32 noundef %37336) #11
  %37338 = call ptr @__errno_location() #12
  %37339 = load i32, ptr %37338, align 4, !tbaa !5
  %37340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37327, ptr noundef @.str.5, i32 noundef %37328, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 2223, ptr noundef %37331, ptr noundef %37334, ptr noundef %37337, i32 noundef %37339) #11
  br label %37341

37341:                                            ; preds = %37324, %37307
  call void @llvm.lifetime.end.p0(i64 4, ptr %1166) #11
  br label %37342

37342:                                            ; preds = %37341
  br label %37343

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

37344:                                            ; No predecessors!
  br label %37345

37345:                                            ; preds = %37344
  br label %37346

37346:                                            ; preds = %37345, %37286
  br label %37347

37347:                                            ; preds = %37346
  br label %37348

37348:                                            ; preds = %37347
  br label %37349

37349:                                            ; preds = %37348
  br label %37350

37350:                                            ; preds = %37349
  br label %37351

37351:                                            ; preds = %37350
  %37352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %37352, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %37353 = call ptr @__errno_location() #12
  store i32 0, ptr %37353, align 4, !tbaa !5
  br label %37354

37354:                                            ; preds = %37351
  br label %37355

37355:                                            ; preds = %37354
  br label %37356

37356:                                            ; preds = %37355
  br label %37357

37357:                                            ; preds = %37356
  br label %37358

37358:                                            ; preds = %37357
  %37359 = load i32, ptr @test_count, align 4, !tbaa !5
  %37360 = add nsw i32 %37359, 1
  store i32 %37360, ptr @test_count, align 4, !tbaa !5
  %37361 = getelementptr inbounds %struct.s2n_x509_validator, ptr %1149, i32 0, i32 6
  %37362 = load i32, ptr %37361, align 8, !tbaa !65
  %37363 = icmp eq i32 %37362, 1
  br i1 %37363, label %37417, label %37364

37364:                                            ; preds = %37358
  br label %37365

37365:                                            ; preds = %37364
  br label %37366

37366:                                            ; preds = %37365
  call void @llvm.lifetime.start.p0(i64 4, ptr %1167) #11
  %37367 = call ptr @__errno_location() #12
  %37368 = load i32, ptr %37367, align 4, !tbaa !5
  store i32 %37368, ptr %1167, align 4, !tbaa !5
  %37369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37370 = call i32 @s2n_print_stacktrace(ptr noundef %37369)
  %37371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37372 = trunc i8 %37371 to i1
  br i1 %37372, label %37373, label %37395

37373:                                            ; preds = %37366
  %37374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37375 = call i32 @fileno(ptr noundef %37374) #11
  %37376 = call i32 @isatty(i32 noundef %37375) #11
  %37377 = icmp ne i32 %37376, 0
  br i1 %37377, label %37378, label %37395

37378:                                            ; preds = %37373
  %37379 = load i32, ptr %1167, align 4, !tbaa !5
  %37380 = call ptr @__errno_location() #12
  store i32 %37379, ptr %37380, align 4, !tbaa !5
  %37381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37382 = load i32, ptr @test_count, align 4, !tbaa !5
  %37383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37384 = load i32, ptr %37383, align 4, !tbaa !5
  %37385 = call ptr @s2n_strerror(i32 noundef %37384, ptr noundef @.str.4)
  %37386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37387 = load i32, ptr %37386, align 4, !tbaa !5
  %37388 = call ptr @s2n_strerror_debug(i32 noundef %37387, ptr noundef @.str.4)
  %37389 = call ptr @__errno_location() #12
  %37390 = load i32, ptr %37389, align 4, !tbaa !5
  %37391 = call ptr @strerror(i32 noundef %37390) #11
  %37392 = call ptr @__errno_location() #12
  %37393 = load i32, ptr %37392, align 4, !tbaa !5
  %37394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37381, ptr noundef @.str.2, i32 noundef %37382, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 2225, ptr noundef %37385, ptr noundef %37388, ptr noundef %37391, i32 noundef %37393) #11
  br label %37412

37395:                                            ; preds = %37373, %37366
  %37396 = load i32, ptr %1167, align 4, !tbaa !5
  %37397 = call ptr @__errno_location() #12
  store i32 %37396, ptr %37397, align 4, !tbaa !5
  %37398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37399 = load i32, ptr @test_count, align 4, !tbaa !5
  %37400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37401 = load i32, ptr %37400, align 4, !tbaa !5
  %37402 = call ptr @s2n_strerror(i32 noundef %37401, ptr noundef @.str.4)
  %37403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37404 = load i32, ptr %37403, align 4, !tbaa !5
  %37405 = call ptr @s2n_strerror_debug(i32 noundef %37404, ptr noundef @.str.4)
  %37406 = call ptr @__errno_location() #12
  %37407 = load i32, ptr %37406, align 4, !tbaa !5
  %37408 = call ptr @strerror(i32 noundef %37407) #11
  %37409 = call ptr @__errno_location() #12
  %37410 = load i32, ptr %37409, align 4, !tbaa !5
  %37411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37398, ptr noundef @.str.5, i32 noundef %37399, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 2225, ptr noundef %37402, ptr noundef %37405, ptr noundef %37408, i32 noundef %37410) #11
  br label %37412

37412:                                            ; preds = %37395, %37378
  call void @llvm.lifetime.end.p0(i64 4, ptr %1167) #11
  br label %37413

37413:                                            ; preds = %37412
  br label %37414

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

37415:                                            ; No predecessors!
  br label %37416

37416:                                            ; preds = %37415
  br label %37417

37417:                                            ; preds = %37416, %37358
  br label %37418

37418:                                            ; preds = %37417
  br label %37419

37419:                                            ; preds = %37418
  call void @llvm.lifetime.end.p0(i64 4, ptr %1162) #11
  %37420 = call i32 @s2n_pkey_free(ptr noundef %1160)
  call void @llvm.lifetime.end.p0(i64 48, ptr %1160) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1158) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1157) #11
  %37421 = call i32 @s2n_stuffer_free(ptr noundef %1154)
  call void @llvm.lifetime.end.p0(i64 40, ptr %1154) #11
  %37422 = call i32 @s2n_connection_ptr_free(ptr noundef %1151)
  %37423 = getelementptr inbounds %struct.s2n_result, ptr %1168, i32 0, i32 0
  store i32 %37422, ptr %37423, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1151) #11
  %37424 = call i32 @s2n_x509_validator_wipe(ptr noundef %1149)
  call void @llvm.lifetime.end.p0(i64 56, ptr %1149) #11
  %37425 = call i32 @s2n_config_ptr_free(ptr noundef %1147)
  %37426 = getelementptr inbounds %struct.s2n_result, ptr %1169, i32 0, i32 0
  store i32 %37425, ptr %37426, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1147) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1170) #11
  %37427 = call ptr @s2n_config_new_minimal()
  store ptr %37427, ptr %1170, align 8, !tbaa !9
  br label %37428

37428:                                            ; preds = %37419
  %37429 = load i32, ptr @test_count, align 4, !tbaa !5
  %37430 = add nsw i32 %37429, 1
  store i32 %37430, ptr @test_count, align 4, !tbaa !5
  %37431 = load ptr, ptr %1170, align 8, !tbaa !9
  %37432 = getelementptr inbounds [12000 x i8], ptr %1140, i64 0, i64 0
  %37433 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %37431, ptr noundef %37432)
  %37434 = icmp eq i32 %37433, -1
  br i1 %37434, label %37435, label %37488

37435:                                            ; preds = %37428
  br label %37436

37436:                                            ; preds = %37435
  br label %37437

37437:                                            ; preds = %37436
  call void @llvm.lifetime.start.p0(i64 4, ptr %1171) #11
  %37438 = call ptr @__errno_location() #12
  %37439 = load i32, ptr %37438, align 4, !tbaa !5
  store i32 %37439, ptr %1171, align 4, !tbaa !5
  %37440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37441 = call i32 @s2n_print_stacktrace(ptr noundef %37440)
  %37442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37443 = trunc i8 %37442 to i1
  br i1 %37443, label %37444, label %37466

37444:                                            ; preds = %37437
  %37445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37446 = call i32 @fileno(ptr noundef %37445) #11
  %37447 = call i32 @isatty(i32 noundef %37446) #11
  %37448 = icmp ne i32 %37447, 0
  br i1 %37448, label %37449, label %37466

37449:                                            ; preds = %37444
  %37450 = load i32, ptr %1171, align 4, !tbaa !5
  %37451 = call ptr @__errno_location() #12
  store i32 %37450, ptr %37451, align 4, !tbaa !5
  %37452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37453 = load i32, ptr @test_count, align 4, !tbaa !5
  %37454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37455 = load i32, ptr %37454, align 4, !tbaa !5
  %37456 = call ptr @s2n_strerror(i32 noundef %37455, ptr noundef @.str.4)
  %37457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37458 = load i32, ptr %37457, align 4, !tbaa !5
  %37459 = call ptr @s2n_strerror_debug(i32 noundef %37458, ptr noundef @.str.4)
  %37460 = call ptr @__errno_location() #12
  %37461 = load i32, ptr %37460, align 4, !tbaa !5
  %37462 = call ptr @strerror(i32 noundef %37461) #11
  %37463 = call ptr @__errno_location() #12
  %37464 = load i32, ptr %37463, align 4, !tbaa !5
  %37465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37452, ptr noundef @.str.2, i32 noundef %37453, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 2233, ptr noundef %37456, ptr noundef %37459, ptr noundef %37462, i32 noundef %37464) #11
  br label %37483

37466:                                            ; preds = %37444, %37437
  %37467 = load i32, ptr %1171, align 4, !tbaa !5
  %37468 = call ptr @__errno_location() #12
  store i32 %37467, ptr %37468, align 4, !tbaa !5
  %37469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37470 = load i32, ptr @test_count, align 4, !tbaa !5
  %37471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37472 = load i32, ptr %37471, align 4, !tbaa !5
  %37473 = call ptr @s2n_strerror(i32 noundef %37472, ptr noundef @.str.4)
  %37474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37475 = load i32, ptr %37474, align 4, !tbaa !5
  %37476 = call ptr @s2n_strerror_debug(i32 noundef %37475, ptr noundef @.str.4)
  %37477 = call ptr @__errno_location() #12
  %37478 = load i32, ptr %37477, align 4, !tbaa !5
  %37479 = call ptr @strerror(i32 noundef %37478) #11
  %37480 = call ptr @__errno_location() #12
  %37481 = load i32, ptr %37480, align 4, !tbaa !5
  %37482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37469, ptr noundef @.str.5, i32 noundef %37470, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 2233, ptr noundef %37473, ptr noundef %37476, ptr noundef %37479, i32 noundef %37481) #11
  br label %37483

37483:                                            ; preds = %37466, %37449
  call void @llvm.lifetime.end.p0(i64 4, ptr %1171) #11
  br label %37484

37484:                                            ; preds = %37483
  br label %37485

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

37486:                                            ; No predecessors!
  br label %37487

37487:                                            ; preds = %37486
  br label %37488

37488:                                            ; preds = %37487, %37428
  br label %37489

37489:                                            ; preds = %37488
  br label %37490

37490:                                            ; preds = %37489
  call void @llvm.lifetime.start.p0(i64 56, ptr %1172) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1172, i8 0, i64 56, i1 false)
  br label %37491

37491:                                            ; preds = %37490
  %37492 = load i32, ptr @test_count, align 4, !tbaa !5
  %37493 = add nsw i32 %37492, 1
  store i32 %37493, ptr @test_count, align 4, !tbaa !5
  %37494 = load ptr, ptr %1170, align 8, !tbaa !9
  %37495 = getelementptr inbounds %struct.s2n_config, ptr %37494, i32 0, i32 37
  %37496 = call i32 @s2n_x509_validator_init(ptr noundef %1172, ptr noundef %37495, i8 noundef zeroext 0)
  %37497 = icmp eq i32 %37496, -1
  br i1 %37497, label %37498, label %37551

37498:                                            ; preds = %37491
  br label %37499

37499:                                            ; preds = %37498
  br label %37500

37500:                                            ; preds = %37499
  call void @llvm.lifetime.start.p0(i64 4, ptr %1173) #11
  %37501 = call ptr @__errno_location() #12
  %37502 = load i32, ptr %37501, align 4, !tbaa !5
  store i32 %37502, ptr %1173, align 4, !tbaa !5
  %37503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37504 = call i32 @s2n_print_stacktrace(ptr noundef %37503)
  %37505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37506 = trunc i8 %37505 to i1
  br i1 %37506, label %37507, label %37529

37507:                                            ; preds = %37500
  %37508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37509 = call i32 @fileno(ptr noundef %37508) #11
  %37510 = call i32 @isatty(i32 noundef %37509) #11
  %37511 = icmp ne i32 %37510, 0
  br i1 %37511, label %37512, label %37529

37512:                                            ; preds = %37507
  %37513 = load i32, ptr %1173, align 4, !tbaa !5
  %37514 = call ptr @__errno_location() #12
  store i32 %37513, ptr %37514, align 4, !tbaa !5
  %37515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37516 = load i32, ptr @test_count, align 4, !tbaa !5
  %37517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37518 = load i32, ptr %37517, align 4, !tbaa !5
  %37519 = call ptr @s2n_strerror(i32 noundef %37518, ptr noundef @.str.4)
  %37520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37521 = load i32, ptr %37520, align 4, !tbaa !5
  %37522 = call ptr @s2n_strerror_debug(i32 noundef %37521, ptr noundef @.str.4)
  %37523 = call ptr @__errno_location() #12
  %37524 = load i32, ptr %37523, align 4, !tbaa !5
  %37525 = call ptr @strerror(i32 noundef %37524) #11
  %37526 = call ptr @__errno_location() #12
  %37527 = load i32, ptr %37526, align 4, !tbaa !5
  %37528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37515, ptr noundef @.str.2, i32 noundef %37516, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2236, ptr noundef %37519, ptr noundef %37522, ptr noundef %37525, i32 noundef %37527) #11
  br label %37546

37529:                                            ; preds = %37507, %37500
  %37530 = load i32, ptr %1173, align 4, !tbaa !5
  %37531 = call ptr @__errno_location() #12
  store i32 %37530, ptr %37531, align 4, !tbaa !5
  %37532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37533 = load i32, ptr @test_count, align 4, !tbaa !5
  %37534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37535 = load i32, ptr %37534, align 4, !tbaa !5
  %37536 = call ptr @s2n_strerror(i32 noundef %37535, ptr noundef @.str.4)
  %37537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37538 = load i32, ptr %37537, align 4, !tbaa !5
  %37539 = call ptr @s2n_strerror_debug(i32 noundef %37538, ptr noundef @.str.4)
  %37540 = call ptr @__errno_location() #12
  %37541 = load i32, ptr %37540, align 4, !tbaa !5
  %37542 = call ptr @strerror(i32 noundef %37541) #11
  %37543 = call ptr @__errno_location() #12
  %37544 = load i32, ptr %37543, align 4, !tbaa !5
  %37545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37532, ptr noundef @.str.5, i32 noundef %37533, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 2236, ptr noundef %37536, ptr noundef %37539, ptr noundef %37542, i32 noundef %37544) #11
  br label %37546

37546:                                            ; preds = %37529, %37512
  call void @llvm.lifetime.end.p0(i64 4, ptr %1173) #11
  br label %37547

37547:                                            ; preds = %37546
  br label %37548

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

37549:                                            ; No predecessors!
  br label %37550

37550:                                            ; preds = %37549
  br label %37551

37551:                                            ; preds = %37550, %37491
  br label %37552

37552:                                            ; preds = %37551
  br label %37553

37553:                                            ; preds = %37552
  call void @llvm.lifetime.start.p0(i64 8, ptr %1174) #11
  %37554 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %37554, ptr %1174, align 8, !tbaa !9
  br label %37555

37555:                                            ; preds = %37553
  %37556 = load i32, ptr @test_count, align 4, !tbaa !5
  %37557 = add nsw i32 %37556, 1
  store i32 %37557, ptr @test_count, align 4, !tbaa !5
  %37558 = load ptr, ptr %1174, align 8, !tbaa !9
  %37559 = icmp eq ptr %37558, null
  br i1 %37559, label %37560, label %37613

37560:                                            ; preds = %37555
  br label %37561

37561:                                            ; preds = %37560
  br label %37562

37562:                                            ; preds = %37561
  call void @llvm.lifetime.start.p0(i64 4, ptr %1175) #11
  %37563 = call ptr @__errno_location() #12
  %37564 = load i32, ptr %37563, align 4, !tbaa !5
  store i32 %37564, ptr %1175, align 4, !tbaa !5
  %37565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37566 = call i32 @s2n_print_stacktrace(ptr noundef %37565)
  %37567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37568 = trunc i8 %37567 to i1
  br i1 %37568, label %37569, label %37591

37569:                                            ; preds = %37562
  %37570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37571 = call i32 @fileno(ptr noundef %37570) #11
  %37572 = call i32 @isatty(i32 noundef %37571) #11
  %37573 = icmp ne i32 %37572, 0
  br i1 %37573, label %37574, label %37591

37574:                                            ; preds = %37569
  %37575 = load i32, ptr %1175, align 4, !tbaa !5
  %37576 = call ptr @__errno_location() #12
  store i32 %37575, ptr %37576, align 4, !tbaa !5
  %37577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37578 = load i32, ptr @test_count, align 4, !tbaa !5
  %37579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37580 = load i32, ptr %37579, align 4, !tbaa !5
  %37581 = call ptr @s2n_strerror(i32 noundef %37580, ptr noundef @.str.4)
  %37582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37583 = load i32, ptr %37582, align 4, !tbaa !5
  %37584 = call ptr @s2n_strerror_debug(i32 noundef %37583, ptr noundef @.str.4)
  %37585 = call ptr @__errno_location() #12
  %37586 = load i32, ptr %37585, align 4, !tbaa !5
  %37587 = call ptr @strerror(i32 noundef %37586) #11
  %37588 = call ptr @__errno_location() #12
  %37589 = load i32, ptr %37588, align 4, !tbaa !5
  %37590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37577, ptr noundef @.str.2, i32 noundef %37578, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 2239, ptr noundef %37581, ptr noundef %37584, ptr noundef %37587, i32 noundef %37589) #11
  br label %37608

37591:                                            ; preds = %37569, %37562
  %37592 = load i32, ptr %1175, align 4, !tbaa !5
  %37593 = call ptr @__errno_location() #12
  store i32 %37592, ptr %37593, align 4, !tbaa !5
  %37594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37595 = load i32, ptr @test_count, align 4, !tbaa !5
  %37596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37597 = load i32, ptr %37596, align 4, !tbaa !5
  %37598 = call ptr @s2n_strerror(i32 noundef %37597, ptr noundef @.str.4)
  %37599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37600 = load i32, ptr %37599, align 4, !tbaa !5
  %37601 = call ptr @s2n_strerror_debug(i32 noundef %37600, ptr noundef @.str.4)
  %37602 = call ptr @__errno_location() #12
  %37603 = load i32, ptr %37602, align 4, !tbaa !5
  %37604 = call ptr @strerror(i32 noundef %37603) #11
  %37605 = call ptr @__errno_location() #12
  %37606 = load i32, ptr %37605, align 4, !tbaa !5
  %37607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37594, ptr noundef @.str.5, i32 noundef %37595, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 2239, ptr noundef %37598, ptr noundef %37601, ptr noundef %37604, i32 noundef %37606) #11
  br label %37608

37608:                                            ; preds = %37591, %37574
  call void @llvm.lifetime.end.p0(i64 4, ptr %1175) #11
  br label %37609

37609:                                            ; preds = %37608
  br label %37610

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

37611:                                            ; No predecessors!
  br label %37612

37612:                                            ; preds = %37611
  br label %37613

37613:                                            ; preds = %37612, %37555
  br label %37614

37614:                                            ; preds = %37613
  br label %37615

37615:                                            ; preds = %37614
  %37616 = load ptr, ptr %1174, align 8, !tbaa !9
  %37617 = getelementptr inbounds %struct.s2n_connection, ptr %37616, i32 0, i32 2
  store ptr %1146, ptr %37617, align 8, !tbaa !64
  br label %37618

37618:                                            ; preds = %37615
  %37619 = load i32, ptr @test_count, align 4, !tbaa !5
  %37620 = add nsw i32 %37619, 1
  store i32 %37620, ptr @test_count, align 4, !tbaa !5
  %37621 = load ptr, ptr %1174, align 8, !tbaa !9
  %37622 = call i32 @s2n_set_server_name(ptr noundef %37621, ptr noundef @.str.66)
  %37623 = icmp eq i32 %37622, -1
  br i1 %37623, label %37624, label %37677

37624:                                            ; preds = %37618
  br label %37625

37625:                                            ; preds = %37624
  br label %37626

37626:                                            ; preds = %37625
  call void @llvm.lifetime.start.p0(i64 4, ptr %1176) #11
  %37627 = call ptr @__errno_location() #12
  %37628 = load i32, ptr %37627, align 4, !tbaa !5
  store i32 %37628, ptr %1176, align 4, !tbaa !5
  %37629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37630 = call i32 @s2n_print_stacktrace(ptr noundef %37629)
  %37631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37632 = trunc i8 %37631 to i1
  br i1 %37632, label %37633, label %37655

37633:                                            ; preds = %37626
  %37634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37635 = call i32 @fileno(ptr noundef %37634) #11
  %37636 = call i32 @isatty(i32 noundef %37635) #11
  %37637 = icmp ne i32 %37636, 0
  br i1 %37637, label %37638, label %37655

37638:                                            ; preds = %37633
  %37639 = load i32, ptr %1176, align 4, !tbaa !5
  %37640 = call ptr @__errno_location() #12
  store i32 %37639, ptr %37640, align 4, !tbaa !5
  %37641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37642 = load i32, ptr @test_count, align 4, !tbaa !5
  %37643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37644 = load i32, ptr %37643, align 4, !tbaa !5
  %37645 = call ptr @s2n_strerror(i32 noundef %37644, ptr noundef @.str.4)
  %37646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37647 = load i32, ptr %37646, align 4, !tbaa !5
  %37648 = call ptr @s2n_strerror_debug(i32 noundef %37647, ptr noundef @.str.4)
  %37649 = call ptr @__errno_location() #12
  %37650 = load i32, ptr %37649, align 4, !tbaa !5
  %37651 = call ptr @strerror(i32 noundef %37650) #11
  %37652 = call ptr @__errno_location() #12
  %37653 = load i32, ptr %37652, align 4, !tbaa !5
  %37654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37641, ptr noundef @.str.2, i32 noundef %37642, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 2241, ptr noundef %37645, ptr noundef %37648, ptr noundef %37651, i32 noundef %37653) #11
  br label %37672

37655:                                            ; preds = %37633, %37626
  %37656 = load i32, ptr %1176, align 4, !tbaa !5
  %37657 = call ptr @__errno_location() #12
  store i32 %37656, ptr %37657, align 4, !tbaa !5
  %37658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37659 = load i32, ptr @test_count, align 4, !tbaa !5
  %37660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37661 = load i32, ptr %37660, align 4, !tbaa !5
  %37662 = call ptr @s2n_strerror(i32 noundef %37661, ptr noundef @.str.4)
  %37663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37664 = load i32, ptr %37663, align 4, !tbaa !5
  %37665 = call ptr @s2n_strerror_debug(i32 noundef %37664, ptr noundef @.str.4)
  %37666 = call ptr @__errno_location() #12
  %37667 = load i32, ptr %37666, align 4, !tbaa !5
  %37668 = call ptr @strerror(i32 noundef %37667) #11
  %37669 = call ptr @__errno_location() #12
  %37670 = load i32, ptr %37669, align 4, !tbaa !5
  %37671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37658, ptr noundef @.str.5, i32 noundef %37659, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 2241, ptr noundef %37662, ptr noundef %37665, ptr noundef %37668, i32 noundef %37670) #11
  br label %37672

37672:                                            ; preds = %37655, %37638
  call void @llvm.lifetime.end.p0(i64 4, ptr %1176) #11
  br label %37673

37673:                                            ; preds = %37672
  br label %37674

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

37675:                                            ; No predecessors!
  br label %37676

37676:                                            ; preds = %37675
  br label %37677

37677:                                            ; preds = %37676, %37618
  br label %37678

37678:                                            ; preds = %37677
  br label %37679

37679:                                            ; preds = %37678
  call void @llvm.lifetime.start.p0(i64 40, ptr %1177) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1177, i8 0, i64 40, i1 false)
  br label %37680

37680:                                            ; preds = %37679
  %37681 = load i32, ptr @test_count, align 4, !tbaa !5
  %37682 = add nsw i32 %37681, 1
  store i32 %37682, ptr @test_count, align 4, !tbaa !5
  %37683 = load ptr, ptr %1174, align 8, !tbaa !9
  %37684 = getelementptr inbounds [12000 x i8], ptr %1143, i64 0, i64 0
  %37685 = load i32, ptr %1144, align 4, !tbaa !5
  %37686 = load i32, ptr %1141, align 4, !tbaa !5
  %37687 = sub i32 %37685, %37686
  %37688 = call i32 @s2n_test_cert_chain_data_from_pem_data(ptr noundef %37683, ptr noundef %37684, i32 noundef %37687, ptr noundef %1177)
  %37689 = getelementptr inbounds %struct.s2n_result, ptr %1178, i32 0, i32 0
  store i32 %37688, ptr %37689, align 4
  %37690 = getelementptr inbounds %struct.s2n_result, ptr %1178, i32 0, i32 0
  %37691 = load i32, ptr %37690, align 4
  %37692 = call zeroext i1 @s2n_result_is_ok(i32 %37691)
  br i1 %37692, label %37746, label %37693

37693:                                            ; preds = %37680
  br label %37694

37694:                                            ; preds = %37693
  br label %37695

37695:                                            ; preds = %37694
  call void @llvm.lifetime.start.p0(i64 4, ptr %1179) #11
  %37696 = call ptr @__errno_location() #12
  %37697 = load i32, ptr %37696, align 4, !tbaa !5
  store i32 %37697, ptr %1179, align 4, !tbaa !5
  %37698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37699 = call i32 @s2n_print_stacktrace(ptr noundef %37698)
  %37700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37701 = trunc i8 %37700 to i1
  br i1 %37701, label %37702, label %37724

37702:                                            ; preds = %37695
  %37703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37704 = call i32 @fileno(ptr noundef %37703) #11
  %37705 = call i32 @isatty(i32 noundef %37704) #11
  %37706 = icmp ne i32 %37705, 0
  br i1 %37706, label %37707, label %37724

37707:                                            ; preds = %37702
  %37708 = load i32, ptr %1179, align 4, !tbaa !5
  %37709 = call ptr @__errno_location() #12
  store i32 %37708, ptr %37709, align 4, !tbaa !5
  %37710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37711 = load i32, ptr @test_count, align 4, !tbaa !5
  %37712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37713 = load i32, ptr %37712, align 4, !tbaa !5
  %37714 = call ptr @s2n_strerror(i32 noundef %37713, ptr noundef @.str.4)
  %37715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37716 = load i32, ptr %37715, align 4, !tbaa !5
  %37717 = call ptr @s2n_strerror_debug(i32 noundef %37716, ptr noundef @.str.4)
  %37718 = call ptr @__errno_location() #12
  %37719 = load i32, ptr %37718, align 4, !tbaa !5
  %37720 = call ptr @strerror(i32 noundef %37719) #11
  %37721 = call ptr @__errno_location() #12
  %37722 = load i32, ptr %37721, align 4, !tbaa !5
  %37723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37710, ptr noundef @.str.2, i32 noundef %37711, ptr noundef @.str.178, ptr noundef @.str.1, i32 noundef 2249, ptr noundef %37714, ptr noundef %37717, ptr noundef %37720, i32 noundef %37722) #11
  br label %37741

37724:                                            ; preds = %37702, %37695
  %37725 = load i32, ptr %1179, align 4, !tbaa !5
  %37726 = call ptr @__errno_location() #12
  store i32 %37725, ptr %37726, align 4, !tbaa !5
  %37727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37728 = load i32, ptr @test_count, align 4, !tbaa !5
  %37729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37730 = load i32, ptr %37729, align 4, !tbaa !5
  %37731 = call ptr @s2n_strerror(i32 noundef %37730, ptr noundef @.str.4)
  %37732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37733 = load i32, ptr %37732, align 4, !tbaa !5
  %37734 = call ptr @s2n_strerror_debug(i32 noundef %37733, ptr noundef @.str.4)
  %37735 = call ptr @__errno_location() #12
  %37736 = load i32, ptr %37735, align 4, !tbaa !5
  %37737 = call ptr @strerror(i32 noundef %37736) #11
  %37738 = call ptr @__errno_location() #12
  %37739 = load i32, ptr %37738, align 4, !tbaa !5
  %37740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37727, ptr noundef @.str.5, i32 noundef %37728, ptr noundef @.str.178, ptr noundef @.str.1, i32 noundef 2249, ptr noundef %37731, ptr noundef %37734, ptr noundef %37737, i32 noundef %37739) #11
  br label %37741

37741:                                            ; preds = %37724, %37707
  call void @llvm.lifetime.end.p0(i64 4, ptr %1179) #11
  br label %37742

37742:                                            ; preds = %37741
  br label %37743

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

37744:                                            ; No predecessors!
  br label %37745

37745:                                            ; preds = %37744
  br label %37746

37746:                                            ; preds = %37745, %37680
  br label %37747

37747:                                            ; preds = %37746
  br label %37748

37748:                                            ; preds = %37747
  call void @llvm.lifetime.start.p0(i64 4, ptr %1180) #11
  %37749 = getelementptr inbounds %struct.s2n_stuffer, ptr %1177, i32 0, i32 2
  %37750 = load i32, ptr %37749, align 4, !tbaa !15
  %37751 = getelementptr inbounds %struct.s2n_stuffer, ptr %1177, i32 0, i32 1
  %37752 = load i32, ptr %37751, align 8, !tbaa !18
  %37753 = sub i32 %37750, %37752
  store i32 %37753, ptr %1180, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1181) #11
  %37754 = load i32, ptr %1180, align 4, !tbaa !5
  %37755 = call ptr @s2n_stuffer_raw_read(ptr noundef %1177, i32 noundef %37754)
  store ptr %37755, ptr %1181, align 8, !tbaa !9
  br label %37756

37756:                                            ; preds = %37748
  %37757 = load i32, ptr @test_count, align 4, !tbaa !5
  %37758 = add nsw i32 %37757, 1
  store i32 %37758, ptr @test_count, align 4, !tbaa !5
  %37759 = load ptr, ptr %1181, align 8, !tbaa !9
  %37760 = icmp eq ptr %37759, null
  br i1 %37760, label %37761, label %37814

37761:                                            ; preds = %37756
  br label %37762

37762:                                            ; preds = %37761
  br label %37763

37763:                                            ; preds = %37762
  call void @llvm.lifetime.start.p0(i64 4, ptr %1182) #11
  %37764 = call ptr @__errno_location() #12
  %37765 = load i32, ptr %37764, align 4, !tbaa !5
  store i32 %37765, ptr %1182, align 4, !tbaa !5
  %37766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37767 = call i32 @s2n_print_stacktrace(ptr noundef %37766)
  %37768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37769 = trunc i8 %37768 to i1
  br i1 %37769, label %37770, label %37792

37770:                                            ; preds = %37763
  %37771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37772 = call i32 @fileno(ptr noundef %37771) #11
  %37773 = call i32 @isatty(i32 noundef %37772) #11
  %37774 = icmp ne i32 %37773, 0
  br i1 %37774, label %37775, label %37792

37775:                                            ; preds = %37770
  %37776 = load i32, ptr %1182, align 4, !tbaa !5
  %37777 = call ptr @__errno_location() #12
  store i32 %37776, ptr %37777, align 4, !tbaa !5
  %37778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37779 = load i32, ptr @test_count, align 4, !tbaa !5
  %37780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37781 = load i32, ptr %37780, align 4, !tbaa !5
  %37782 = call ptr @s2n_strerror(i32 noundef %37781, ptr noundef @.str.4)
  %37783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37784 = load i32, ptr %37783, align 4, !tbaa !5
  %37785 = call ptr @s2n_strerror_debug(i32 noundef %37784, ptr noundef @.str.4)
  %37786 = call ptr @__errno_location() #12
  %37787 = load i32, ptr %37786, align 4, !tbaa !5
  %37788 = call ptr @strerror(i32 noundef %37787) #11
  %37789 = call ptr @__errno_location() #12
  %37790 = load i32, ptr %37789, align 4, !tbaa !5
  %37791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37778, ptr noundef @.str.2, i32 noundef %37779, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2252, ptr noundef %37782, ptr noundef %37785, ptr noundef %37788, i32 noundef %37790) #11
  br label %37809

37792:                                            ; preds = %37770, %37763
  %37793 = load i32, ptr %1182, align 4, !tbaa !5
  %37794 = call ptr @__errno_location() #12
  store i32 %37793, ptr %37794, align 4, !tbaa !5
  %37795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37796 = load i32, ptr @test_count, align 4, !tbaa !5
  %37797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37798 = load i32, ptr %37797, align 4, !tbaa !5
  %37799 = call ptr @s2n_strerror(i32 noundef %37798, ptr noundef @.str.4)
  %37800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37801 = load i32, ptr %37800, align 4, !tbaa !5
  %37802 = call ptr @s2n_strerror_debug(i32 noundef %37801, ptr noundef @.str.4)
  %37803 = call ptr @__errno_location() #12
  %37804 = load i32, ptr %37803, align 4, !tbaa !5
  %37805 = call ptr @strerror(i32 noundef %37804) #11
  %37806 = call ptr @__errno_location() #12
  %37807 = load i32, ptr %37806, align 4, !tbaa !5
  %37808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37795, ptr noundef @.str.5, i32 noundef %37796, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2252, ptr noundef %37799, ptr noundef %37802, ptr noundef %37805, i32 noundef %37807) #11
  br label %37809

37809:                                            ; preds = %37792, %37775
  call void @llvm.lifetime.end.p0(i64 4, ptr %1182) #11
  br label %37810

37810:                                            ; preds = %37809
  br label %37811

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

37812:                                            ; No predecessors!
  br label %37813

37813:                                            ; preds = %37812
  br label %37814

37814:                                            ; preds = %37813, %37756
  br label %37815

37815:                                            ; preds = %37814
  br label %37816

37816:                                            ; preds = %37815
  call void @llvm.lifetime.start.p0(i64 48, ptr %1183) #11
  call void @llvm.memset.p0.i64(ptr align 8 %1183, i8 0, i64 48, i1 false)
  br label %37817

37817:                                            ; preds = %37816
  %37818 = load i32, ptr @test_count, align 4, !tbaa !5
  %37819 = add nsw i32 %37818, 1
  store i32 %37819, ptr @test_count, align 4, !tbaa !5
  %37820 = call i32 @s2n_pkey_zero_init(ptr noundef %1183)
  %37821 = icmp eq i32 %37820, -1
  br i1 %37821, label %37822, label %37875

37822:                                            ; preds = %37817
  br label %37823

37823:                                            ; preds = %37822
  br label %37824

37824:                                            ; preds = %37823
  call void @llvm.lifetime.start.p0(i64 4, ptr %1184) #11
  %37825 = call ptr @__errno_location() #12
  %37826 = load i32, ptr %37825, align 4, !tbaa !5
  store i32 %37826, ptr %1184, align 4, !tbaa !5
  %37827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37828 = call i32 @s2n_print_stacktrace(ptr noundef %37827)
  %37829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37830 = trunc i8 %37829 to i1
  br i1 %37830, label %37831, label %37853

37831:                                            ; preds = %37824
  %37832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37833 = call i32 @fileno(ptr noundef %37832) #11
  %37834 = call i32 @isatty(i32 noundef %37833) #11
  %37835 = icmp ne i32 %37834, 0
  br i1 %37835, label %37836, label %37853

37836:                                            ; preds = %37831
  %37837 = load i32, ptr %1184, align 4, !tbaa !5
  %37838 = call ptr @__errno_location() #12
  store i32 %37837, ptr %37838, align 4, !tbaa !5
  %37839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37840 = load i32, ptr @test_count, align 4, !tbaa !5
  %37841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37842 = load i32, ptr %37841, align 4, !tbaa !5
  %37843 = call ptr @s2n_strerror(i32 noundef %37842, ptr noundef @.str.4)
  %37844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37845 = load i32, ptr %37844, align 4, !tbaa !5
  %37846 = call ptr @s2n_strerror_debug(i32 noundef %37845, ptr noundef @.str.4)
  %37847 = call ptr @__errno_location() #12
  %37848 = load i32, ptr %37847, align 4, !tbaa !5
  %37849 = call ptr @strerror(i32 noundef %37848) #11
  %37850 = call ptr @__errno_location() #12
  %37851 = load i32, ptr %37850, align 4, !tbaa !5
  %37852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37839, ptr noundef @.str.2, i32 noundef %37840, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2255, ptr noundef %37843, ptr noundef %37846, ptr noundef %37849, i32 noundef %37851) #11
  br label %37870

37853:                                            ; preds = %37831, %37824
  %37854 = load i32, ptr %1184, align 4, !tbaa !5
  %37855 = call ptr @__errno_location() #12
  store i32 %37854, ptr %37855, align 4, !tbaa !5
  %37856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37857 = load i32, ptr @test_count, align 4, !tbaa !5
  %37858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37859 = load i32, ptr %37858, align 4, !tbaa !5
  %37860 = call ptr @s2n_strerror(i32 noundef %37859, ptr noundef @.str.4)
  %37861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37862 = load i32, ptr %37861, align 4, !tbaa !5
  %37863 = call ptr @s2n_strerror_debug(i32 noundef %37862, ptr noundef @.str.4)
  %37864 = call ptr @__errno_location() #12
  %37865 = load i32, ptr %37864, align 4, !tbaa !5
  %37866 = call ptr @strerror(i32 noundef %37865) #11
  %37867 = call ptr @__errno_location() #12
  %37868 = load i32, ptr %37867, align 4, !tbaa !5
  %37869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37856, ptr noundef @.str.5, i32 noundef %37857, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2255, ptr noundef %37860, ptr noundef %37863, ptr noundef %37866, i32 noundef %37868) #11
  br label %37870

37870:                                            ; preds = %37853, %37836
  call void @llvm.lifetime.end.p0(i64 4, ptr %1184) #11
  br label %37871

37871:                                            ; preds = %37870
  br label %37872

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

37873:                                            ; No predecessors!
  br label %37874

37874:                                            ; preds = %37873
  br label %37875

37875:                                            ; preds = %37874, %37817
  br label %37876

37876:                                            ; preds = %37875
  br label %37877

37877:                                            ; preds = %37876
  call void @llvm.lifetime.start.p0(i64 4, ptr %1185) #11
  store i32 -1, ptr %1185, align 4, !tbaa !5
  br label %37878

37878:                                            ; preds = %37877
  br label %37879

37879:                                            ; preds = %37878
  br label %37880

37880:                                            ; preds = %37879
  %37881 = load i32, ptr @test_count, align 4, !tbaa !5
  %37882 = add nsw i32 %37881, 1
  store i32 %37882, ptr @test_count, align 4, !tbaa !5
  %37883 = load ptr, ptr %1174, align 8, !tbaa !9
  %37884 = load ptr, ptr %1181, align 8, !tbaa !9
  %37885 = load i32, ptr %1180, align 4, !tbaa !5
  %37886 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %1172, ptr noundef %37883, ptr noundef %37884, i32 noundef %37885, ptr noundef %1185, ptr noundef %1183)
  %37887 = getelementptr inbounds %struct.s2n_result, ptr %1186, i32 0, i32 0
  store i32 %37886, ptr %37887, align 4
  %37888 = getelementptr inbounds %struct.s2n_result, ptr %1186, i32 0, i32 0
  %37889 = load i32, ptr %37888, align 4
  %37890 = call zeroext i1 @s2n_result_is_error(i32 %37889)
  br i1 %37890, label %37944, label %37891

37891:                                            ; preds = %37880
  br label %37892

37892:                                            ; preds = %37891
  br label %37893

37893:                                            ; preds = %37892
  call void @llvm.lifetime.start.p0(i64 4, ptr %1187) #11
  %37894 = call ptr @__errno_location() #12
  %37895 = load i32, ptr %37894, align 4, !tbaa !5
  store i32 %37895, ptr %1187, align 4, !tbaa !5
  %37896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37897 = call i32 @s2n_print_stacktrace(ptr noundef %37896)
  %37898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37899 = trunc i8 %37898 to i1
  br i1 %37899, label %37900, label %37922

37900:                                            ; preds = %37893
  %37901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37902 = call i32 @fileno(ptr noundef %37901) #11
  %37903 = call i32 @isatty(i32 noundef %37902) #11
  %37904 = icmp ne i32 %37903, 0
  br i1 %37904, label %37905, label %37922

37905:                                            ; preds = %37900
  %37906 = load i32, ptr %1187, align 4, !tbaa !5
  %37907 = call ptr @__errno_location() #12
  store i32 %37906, ptr %37907, align 4, !tbaa !5
  %37908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37909 = load i32, ptr @test_count, align 4, !tbaa !5
  %37910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37911 = load i32, ptr %37910, align 4, !tbaa !5
  %37912 = call ptr @s2n_strerror(i32 noundef %37911, ptr noundef @.str.4)
  %37913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37914 = load i32, ptr %37913, align 4, !tbaa !5
  %37915 = call ptr @s2n_strerror_debug(i32 noundef %37914, ptr noundef @.str.4)
  %37916 = call ptr @__errno_location() #12
  %37917 = load i32, ptr %37916, align 4, !tbaa !5
  %37918 = call ptr @strerror(i32 noundef %37917) #11
  %37919 = call ptr @__errno_location() #12
  %37920 = load i32, ptr %37919, align 4, !tbaa !5
  %37921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37908, ptr noundef @.str.2, i32 noundef %37909, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 2259, ptr noundef %37912, ptr noundef %37915, ptr noundef %37918, i32 noundef %37920) #11
  br label %37939

37922:                                            ; preds = %37900, %37893
  %37923 = load i32, ptr %1187, align 4, !tbaa !5
  %37924 = call ptr @__errno_location() #12
  store i32 %37923, ptr %37924, align 4, !tbaa !5
  %37925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37926 = load i32, ptr @test_count, align 4, !tbaa !5
  %37927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37928 = load i32, ptr %37927, align 4, !tbaa !5
  %37929 = call ptr @s2n_strerror(i32 noundef %37928, ptr noundef @.str.4)
  %37930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37931 = load i32, ptr %37930, align 4, !tbaa !5
  %37932 = call ptr @s2n_strerror_debug(i32 noundef %37931, ptr noundef @.str.4)
  %37933 = call ptr @__errno_location() #12
  %37934 = load i32, ptr %37933, align 4, !tbaa !5
  %37935 = call ptr @strerror(i32 noundef %37934) #11
  %37936 = call ptr @__errno_location() #12
  %37937 = load i32, ptr %37936, align 4, !tbaa !5
  %37938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37925, ptr noundef @.str.5, i32 noundef %37926, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 2259, ptr noundef %37929, ptr noundef %37932, ptr noundef %37935, i32 noundef %37937) #11
  br label %37939

37939:                                            ; preds = %37922, %37905
  call void @llvm.lifetime.end.p0(i64 4, ptr %1187) #11
  br label %37940

37940:                                            ; preds = %37939
  br label %37941

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

37942:                                            ; No predecessors!
  br label %37943

37943:                                            ; preds = %37942
  br label %37944

37944:                                            ; preds = %37943, %37880
  br label %37945

37945:                                            ; preds = %37944
  br label %37946

37946:                                            ; preds = %37945
  br label %37947

37947:                                            ; preds = %37946
  %37948 = load i32, ptr @test_count, align 4, !tbaa !5
  %37949 = add nsw i32 %37948, 1
  store i32 %37949, ptr @test_count, align 4, !tbaa !5
  %37950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37951 = load i32, ptr %37950, align 4, !tbaa !5
  %37952 = icmp eq i32 %37951, 469762133
  br i1 %37952, label %38006, label %37953

37953:                                            ; preds = %37947
  br label %37954

37954:                                            ; preds = %37953
  br label %37955

37955:                                            ; preds = %37954
  call void @llvm.lifetime.start.p0(i64 4, ptr %1188) #11
  %37956 = call ptr @__errno_location() #12
  %37957 = load i32, ptr %37956, align 4, !tbaa !5
  store i32 %37957, ptr %1188, align 4, !tbaa !5
  %37958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37959 = call i32 @s2n_print_stacktrace(ptr noundef %37958)
  %37960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37961 = trunc i8 %37960 to i1
  br i1 %37961, label %37962, label %37984

37962:                                            ; preds = %37955
  %37963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37964 = call i32 @fileno(ptr noundef %37963) #11
  %37965 = call i32 @isatty(i32 noundef %37964) #11
  %37966 = icmp ne i32 %37965, 0
  br i1 %37966, label %37967, label %37984

37967:                                            ; preds = %37962
  %37968 = load i32, ptr %1188, align 4, !tbaa !5
  %37969 = call ptr @__errno_location() #12
  store i32 %37968, ptr %37969, align 4, !tbaa !5
  %37970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37971 = load i32, ptr @test_count, align 4, !tbaa !5
  %37972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37973 = load i32, ptr %37972, align 4, !tbaa !5
  %37974 = call ptr @s2n_strerror(i32 noundef %37973, ptr noundef @.str.4)
  %37975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37976 = load i32, ptr %37975, align 4, !tbaa !5
  %37977 = call ptr @s2n_strerror_debug(i32 noundef %37976, ptr noundef @.str.4)
  %37978 = call ptr @__errno_location() #12
  %37979 = load i32, ptr %37978, align 4, !tbaa !5
  %37980 = call ptr @strerror(i32 noundef %37979) #11
  %37981 = call ptr @__errno_location() #12
  %37982 = load i32, ptr %37981, align 4, !tbaa !5
  %37983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37970, ptr noundef @.str.2, i32 noundef %37971, ptr noundef @.str.179, ptr noundef @.str.1, i32 noundef 2259, ptr noundef %37974, ptr noundef %37977, ptr noundef %37980, i32 noundef %37982) #11
  br label %38001

37984:                                            ; preds = %37962, %37955
  %37985 = load i32, ptr %1188, align 4, !tbaa !5
  %37986 = call ptr @__errno_location() #12
  store i32 %37985, ptr %37986, align 4, !tbaa !5
  %37987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37988 = load i32, ptr @test_count, align 4, !tbaa !5
  %37989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37990 = load i32, ptr %37989, align 4, !tbaa !5
  %37991 = call ptr @s2n_strerror(i32 noundef %37990, ptr noundef @.str.4)
  %37992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37993 = load i32, ptr %37992, align 4, !tbaa !5
  %37994 = call ptr @s2n_strerror_debug(i32 noundef %37993, ptr noundef @.str.4)
  %37995 = call ptr @__errno_location() #12
  %37996 = load i32, ptr %37995, align 4, !tbaa !5
  %37997 = call ptr @strerror(i32 noundef %37996) #11
  %37998 = call ptr @__errno_location() #12
  %37999 = load i32, ptr %37998, align 4, !tbaa !5
  %38000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37987, ptr noundef @.str.5, i32 noundef %37988, ptr noundef @.str.179, ptr noundef @.str.1, i32 noundef 2259, ptr noundef %37991, ptr noundef %37994, ptr noundef %37997, i32 noundef %37999) #11
  br label %38001

38001:                                            ; preds = %37984, %37967
  call void @llvm.lifetime.end.p0(i64 4, ptr %1188) #11
  br label %38002

38002:                                            ; preds = %38001
  br label %38003

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

38004:                                            ; No predecessors!
  br label %38005

38005:                                            ; preds = %38004
  br label %38006

38006:                                            ; preds = %38005, %37947
  br label %38007

38007:                                            ; preds = %38006
  br label %38008

38008:                                            ; preds = %38007
  br label %38009

38009:                                            ; preds = %38008
  %38010 = load i32, ptr @test_count, align 4, !tbaa !5
  %38011 = add nsw i32 %38010, 1
  store i32 %38011, ptr @test_count, align 4, !tbaa !5
  %38012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38013 = load i32, ptr %38012, align 4, !tbaa !5
  %38014 = call ptr @s2n_strerror_debug(i32 noundef %38013, ptr noundef @.str.4)
  %38015 = icmp eq ptr %38014, null
  br i1 %38015, label %38016, label %38069

38016:                                            ; preds = %38009
  br label %38017

38017:                                            ; preds = %38016
  br label %38018

38018:                                            ; preds = %38017
  call void @llvm.lifetime.start.p0(i64 4, ptr %1189) #11
  %38019 = call ptr @__errno_location() #12
  %38020 = load i32, ptr %38019, align 4, !tbaa !5
  store i32 %38020, ptr %1189, align 4, !tbaa !5
  %38021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38022 = call i32 @s2n_print_stacktrace(ptr noundef %38021)
  %38023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %38024 = trunc i8 %38023 to i1
  br i1 %38024, label %38025, label %38047

38025:                                            ; preds = %38018
  %38026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38027 = call i32 @fileno(ptr noundef %38026) #11
  %38028 = call i32 @isatty(i32 noundef %38027) #11
  %38029 = icmp ne i32 %38028, 0
  br i1 %38029, label %38030, label %38047

38030:                                            ; preds = %38025
  %38031 = load i32, ptr %1189, align 4, !tbaa !5
  %38032 = call ptr @__errno_location() #12
  store i32 %38031, ptr %38032, align 4, !tbaa !5
  %38033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38034 = load i32, ptr @test_count, align 4, !tbaa !5
  %38035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38036 = load i32, ptr %38035, align 4, !tbaa !5
  %38037 = call ptr @s2n_strerror(i32 noundef %38036, ptr noundef @.str.4)
  %38038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38039 = load i32, ptr %38038, align 4, !tbaa !5
  %38040 = call ptr @s2n_strerror_debug(i32 noundef %38039, ptr noundef @.str.4)
  %38041 = call ptr @__errno_location() #12
  %38042 = load i32, ptr %38041, align 4, !tbaa !5
  %38043 = call ptr @strerror(i32 noundef %38042) #11
  %38044 = call ptr @__errno_location() #12
  %38045 = load i32, ptr %38044, align 4, !tbaa !5
  %38046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38033, ptr noundef @.str.2, i32 noundef %38034, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 2259, ptr noundef %38037, ptr noundef %38040, ptr noundef %38043, i32 noundef %38045) #11
  br label %38064

38047:                                            ; preds = %38025, %38018
  %38048 = load i32, ptr %1189, align 4, !tbaa !5
  %38049 = call ptr @__errno_location() #12
  store i32 %38048, ptr %38049, align 4, !tbaa !5
  %38050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38051 = load i32, ptr @test_count, align 4, !tbaa !5
  %38052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38053 = load i32, ptr %38052, align 4, !tbaa !5
  %38054 = call ptr @s2n_strerror(i32 noundef %38053, ptr noundef @.str.4)
  %38055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38056 = load i32, ptr %38055, align 4, !tbaa !5
  %38057 = call ptr @s2n_strerror_debug(i32 noundef %38056, ptr noundef @.str.4)
  %38058 = call ptr @__errno_location() #12
  %38059 = load i32, ptr %38058, align 4, !tbaa !5
  %38060 = call ptr @strerror(i32 noundef %38059) #11
  %38061 = call ptr @__errno_location() #12
  %38062 = load i32, ptr %38061, align 4, !tbaa !5
  %38063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38050, ptr noundef @.str.5, i32 noundef %38051, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 2259, ptr noundef %38054, ptr noundef %38057, ptr noundef %38060, i32 noundef %38062) #11
  br label %38064

38064:                                            ; preds = %38047, %38030
  call void @llvm.lifetime.end.p0(i64 4, ptr %1189) #11
  br label %38065

38065:                                            ; preds = %38064
  br label %38066

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

38067:                                            ; No predecessors!
  br label %38068

38068:                                            ; preds = %38067
  br label %38069

38069:                                            ; preds = %38068, %38009
  br label %38070

38070:                                            ; preds = %38069
  br label %38071

38071:                                            ; preds = %38070
  br label %38072

38072:                                            ; preds = %38071
  br label %38073

38073:                                            ; preds = %38072
  br label %38074

38074:                                            ; preds = %38073
  %38075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %38075, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %38076 = call ptr @__errno_location() #12
  store i32 0, ptr %38076, align 4, !tbaa !5
  br label %38077

38077:                                            ; preds = %38074
  br label %38078

38078:                                            ; preds = %38077
  br label %38079

38079:                                            ; preds = %38078
  br label %38080

38080:                                            ; preds = %38079
  br label %38081

38081:                                            ; preds = %38080
  %38082 = load i32, ptr @test_count, align 4, !tbaa !5
  %38083 = add nsw i32 %38082, 1
  store i32 %38083, ptr @test_count, align 4, !tbaa !5
  %38084 = getelementptr inbounds %struct.s2n_x509_validator, ptr %1172, i32 0, i32 6
  %38085 = load i32, ptr %38084, align 8, !tbaa !65
  %38086 = icmp eq i32 %38085, 4
  br i1 %38086, label %38140, label %38087

38087:                                            ; preds = %38081
  br label %38088

38088:                                            ; preds = %38087
  br label %38089

38089:                                            ; preds = %38088
  call void @llvm.lifetime.start.p0(i64 4, ptr %1190) #11
  %38090 = call ptr @__errno_location() #12
  %38091 = load i32, ptr %38090, align 4, !tbaa !5
  store i32 %38091, ptr %1190, align 4, !tbaa !5
  %38092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38093 = call i32 @s2n_print_stacktrace(ptr noundef %38092)
  %38094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %38095 = trunc i8 %38094 to i1
  br i1 %38095, label %38096, label %38118

38096:                                            ; preds = %38089
  %38097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38098 = call i32 @fileno(ptr noundef %38097) #11
  %38099 = call i32 @isatty(i32 noundef %38098) #11
  %38100 = icmp ne i32 %38099, 0
  br i1 %38100, label %38101, label %38118

38101:                                            ; preds = %38096
  %38102 = load i32, ptr %1190, align 4, !tbaa !5
  %38103 = call ptr @__errno_location() #12
  store i32 %38102, ptr %38103, align 4, !tbaa !5
  %38104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38105 = load i32, ptr @test_count, align 4, !tbaa !5
  %38106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38107 = load i32, ptr %38106, align 4, !tbaa !5
  %38108 = call ptr @s2n_strerror(i32 noundef %38107, ptr noundef @.str.4)
  %38109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38110 = load i32, ptr %38109, align 4, !tbaa !5
  %38111 = call ptr @s2n_strerror_debug(i32 noundef %38110, ptr noundef @.str.4)
  %38112 = call ptr @__errno_location() #12
  %38113 = load i32, ptr %38112, align 4, !tbaa !5
  %38114 = call ptr @strerror(i32 noundef %38113) #11
  %38115 = call ptr @__errno_location() #12
  %38116 = load i32, ptr %38115, align 4, !tbaa !5
  %38117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38104, ptr noundef @.str.2, i32 noundef %38105, ptr noundef @.str.180, ptr noundef @.str.1, i32 noundef 2261, ptr noundef %38108, ptr noundef %38111, ptr noundef %38114, i32 noundef %38116) #11
  br label %38135

38118:                                            ; preds = %38096, %38089
  %38119 = load i32, ptr %1190, align 4, !tbaa !5
  %38120 = call ptr @__errno_location() #12
  store i32 %38119, ptr %38120, align 4, !tbaa !5
  %38121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38122 = load i32, ptr @test_count, align 4, !tbaa !5
  %38123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38124 = load i32, ptr %38123, align 4, !tbaa !5
  %38125 = call ptr @s2n_strerror(i32 noundef %38124, ptr noundef @.str.4)
  %38126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38127 = load i32, ptr %38126, align 4, !tbaa !5
  %38128 = call ptr @s2n_strerror_debug(i32 noundef %38127, ptr noundef @.str.4)
  %38129 = call ptr @__errno_location() #12
  %38130 = load i32, ptr %38129, align 4, !tbaa !5
  %38131 = call ptr @strerror(i32 noundef %38130) #11
  %38132 = call ptr @__errno_location() #12
  %38133 = load i32, ptr %38132, align 4, !tbaa !5
  %38134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38121, ptr noundef @.str.5, i32 noundef %38122, ptr noundef @.str.180, ptr noundef @.str.1, i32 noundef 2261, ptr noundef %38125, ptr noundef %38128, ptr noundef %38131, i32 noundef %38133) #11
  br label %38135

38135:                                            ; preds = %38118, %38101
  call void @llvm.lifetime.end.p0(i64 4, ptr %1190) #11
  br label %38136

38136:                                            ; preds = %38135
  br label %38137

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

38138:                                            ; No predecessors!
  br label %38139

38139:                                            ; preds = %38138
  br label %38140

38140:                                            ; preds = %38139, %38081
  br label %38141

38141:                                            ; preds = %38140
  br label %38142

38142:                                            ; preds = %38141
  call void @llvm.lifetime.end.p0(i64 4, ptr %1185) #11
  %38143 = call i32 @s2n_pkey_free(ptr noundef %1183)
  call void @llvm.lifetime.end.p0(i64 48, ptr %1183) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1181) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1180) #11
  %38144 = call i32 @s2n_stuffer_free(ptr noundef %1177)
  call void @llvm.lifetime.end.p0(i64 40, ptr %1177) #11
  %38145 = call i32 @s2n_connection_ptr_free(ptr noundef %1174)
  %38146 = getelementptr inbounds %struct.s2n_result, ptr %1191, i32 0, i32 0
  store i32 %38145, ptr %38146, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1174) #11
  %38147 = call i32 @s2n_x509_validator_wipe(ptr noundef %1172)
  call void @llvm.lifetime.end.p0(i64 56, ptr %1172) #11
  %38148 = call i32 @s2n_config_ptr_free(ptr noundef %1170)
  %38149 = getelementptr inbounds %struct.s2n_result, ptr %1192, i32 0, i32 0
  store i32 %38148, ptr %38149, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1170) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %1146) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1144) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr %1143) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %1141) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr %1140) #11
  br label %38150

38150:                                            ; preds = %38142
  br label %38151

38151:                                            ; preds = %38150
  %38152 = call i32 @s2n_cleanup()
  %38153 = icmp eq i32 %38152, -1
  br i1 %38153, label %38154, label %38205

38154:                                            ; preds = %38151
  br label %38155

38155:                                            ; preds = %38154
  br label %38156

38156:                                            ; preds = %38155
  call void @llvm.lifetime.start.p0(i64 4, ptr %1193) #11
  %38157 = call ptr @__errno_location() #12
  %38158 = load i32, ptr %38157, align 4, !tbaa !5
  store i32 %38158, ptr %1193, align 4, !tbaa !5
  %38159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38160 = call i32 @s2n_print_stacktrace(ptr noundef %38159)
  %38161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %38162 = trunc i8 %38161 to i1
  br i1 %38162, label %38163, label %38185

38163:                                            ; preds = %38156
  %38164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38165 = call i32 @fileno(ptr noundef %38164) #11
  %38166 = call i32 @isatty(i32 noundef %38165) #11
  %38167 = icmp ne i32 %38166, 0
  br i1 %38167, label %38168, label %38185

38168:                                            ; preds = %38163
  %38169 = load i32, ptr %1193, align 4, !tbaa !5
  %38170 = call ptr @__errno_location() #12
  store i32 %38169, ptr %38170, align 4, !tbaa !5
  %38171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38172 = load i32, ptr @test_count, align 4, !tbaa !5
  %38173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38174 = load i32, ptr %38173, align 4, !tbaa !5
  %38175 = call ptr @s2n_strerror(i32 noundef %38174, ptr noundef @.str.4)
  %38176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38177 = load i32, ptr %38176, align 4, !tbaa !5
  %38178 = call ptr @s2n_strerror_debug(i32 noundef %38177, ptr noundef @.str.4)
  %38179 = call ptr @__errno_location() #12
  %38180 = load i32, ptr %38179, align 4, !tbaa !5
  %38181 = call ptr @strerror(i32 noundef %38180) #11
  %38182 = call ptr @__errno_location() #12
  %38183 = load i32, ptr %38182, align 4, !tbaa !5
  %38184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38171, ptr noundef @.str.2, i32 noundef %38172, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 2265, ptr noundef %38175, ptr noundef %38178, ptr noundef %38181, i32 noundef %38183) #11
  br label %38202

38185:                                            ; preds = %38163, %38156
  %38186 = load i32, ptr %1193, align 4, !tbaa !5
  %38187 = call ptr @__errno_location() #12
  store i32 %38186, ptr %38187, align 4, !tbaa !5
  %38188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38189 = load i32, ptr @test_count, align 4, !tbaa !5
  %38190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38191 = load i32, ptr %38190, align 4, !tbaa !5
  %38192 = call ptr @s2n_strerror(i32 noundef %38191, ptr noundef @.str.4)
  %38193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38194 = load i32, ptr %38193, align 4, !tbaa !5
  %38195 = call ptr @s2n_strerror_debug(i32 noundef %38194, ptr noundef @.str.4)
  %38196 = call ptr @__errno_location() #12
  %38197 = load i32, ptr %38196, align 4, !tbaa !5
  %38198 = call ptr @strerror(i32 noundef %38197) #11
  %38199 = call ptr @__errno_location() #12
  %38200 = load i32, ptr %38199, align 4, !tbaa !5
  %38201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38188, ptr noundef @.str.5, i32 noundef %38189, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 2265, ptr noundef %38192, ptr noundef %38195, ptr noundef %38198, i32 noundef %38200) #11
  br label %38202

38202:                                            ; preds = %38185, %38168
  call void @llvm.lifetime.end.p0(i64 4, ptr %1193) #11
  br label %38203

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

38204:                                            ; No predecessors!
  br label %38205

38205:                                            ; preds = %38204, %38151
  br label %38206

38206:                                            ; preds = %38205
  br label %38207

38207:                                            ; preds = %38206
  br label %38208

38208:                                            ; preds = %38207
  %38209 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %38210 = icmp eq i32 %38209, -1
  br i1 %38210, label %38211, label %38262

38211:                                            ; preds = %38208
  br label %38212

38212:                                            ; preds = %38211
  br label %38213

38213:                                            ; preds = %38212
  call void @llvm.lifetime.start.p0(i64 4, ptr %1194) #11
  %38214 = call ptr @__errno_location() #12
  %38215 = load i32, ptr %38214, align 4, !tbaa !5
  store i32 %38215, ptr %1194, align 4, !tbaa !5
  %38216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38217 = call i32 @s2n_print_stacktrace(ptr noundef %38216)
  %38218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %38219 = trunc i8 %38218 to i1
  br i1 %38219, label %38220, label %38242

38220:                                            ; preds = %38213
  %38221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38222 = call i32 @fileno(ptr noundef %38221) #11
  %38223 = call i32 @isatty(i32 noundef %38222) #11
  %38224 = icmp ne i32 %38223, 0
  br i1 %38224, label %38225, label %38242

38225:                                            ; preds = %38220
  %38226 = load i32, ptr %1194, align 4, !tbaa !5
  %38227 = call ptr @__errno_location() #12
  store i32 %38226, ptr %38227, align 4, !tbaa !5
  %38228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38229 = load i32, ptr @test_count, align 4, !tbaa !5
  %38230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38231 = load i32, ptr %38230, align 4, !tbaa !5
  %38232 = call ptr @s2n_strerror(i32 noundef %38231, ptr noundef @.str.4)
  %38233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38234 = load i32, ptr %38233, align 4, !tbaa !5
  %38235 = call ptr @s2n_strerror_debug(i32 noundef %38234, ptr noundef @.str.4)
  %38236 = call ptr @__errno_location() #12
  %38237 = load i32, ptr %38236, align 4, !tbaa !5
  %38238 = call ptr @strerror(i32 noundef %38237) #11
  %38239 = call ptr @__errno_location() #12
  %38240 = load i32, ptr %38239, align 4, !tbaa !5
  %38241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38228, ptr noundef @.str.2, i32 noundef %38229, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 2265, ptr noundef %38232, ptr noundef %38235, ptr noundef %38238, i32 noundef %38240) #11
  br label %38259

38242:                                            ; preds = %38220, %38213
  %38243 = load i32, ptr %1194, align 4, !tbaa !5
  %38244 = call ptr @__errno_location() #12
  store i32 %38243, ptr %38244, align 4, !tbaa !5
  %38245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38246 = load i32, ptr @test_count, align 4, !tbaa !5
  %38247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38248 = load i32, ptr %38247, align 4, !tbaa !5
  %38249 = call ptr @s2n_strerror(i32 noundef %38248, ptr noundef @.str.4)
  %38250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38251 = load i32, ptr %38250, align 4, !tbaa !5
  %38252 = call ptr @s2n_strerror_debug(i32 noundef %38251, ptr noundef @.str.4)
  %38253 = call ptr @__errno_location() #12
  %38254 = load i32, ptr %38253, align 4, !tbaa !5
  %38255 = call ptr @strerror(i32 noundef %38254) #11
  %38256 = call ptr @__errno_location() #12
  %38257 = load i32, ptr %38256, align 4, !tbaa !5
  %38258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38245, ptr noundef @.str.5, i32 noundef %38246, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 2265, ptr noundef %38249, ptr noundef %38252, ptr noundef %38255, i32 noundef %38257) #11
  br label %38259

38259:                                            ; preds = %38242, %38225
  call void @llvm.lifetime.end.p0(i64 4, ptr %1194) #11
  br label %38260

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

38261:                                            ; No predecessors!
  br label %38262

38262:                                            ; preds = %38261, %38208
  br label %38263

38263:                                            ; preds = %38262
  %38264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %38265 = trunc i8 %38264 to i1
  br i1 %38265, label %38266, label %38282

38266:                                            ; preds = %38263
  %38267 = load ptr, ptr @stdout, align 8, !tbaa !9
  %38268 = call i32 @fileno(ptr noundef %38267) #11
  %38269 = call i32 @isatty(i32 noundef %38268) #11
  %38270 = icmp ne i32 %38269, 0
  br i1 %38270, label %38271, label %38282

38271:                                            ; preds = %38266
  %38272 = load i32, ptr @test_count, align 4, !tbaa !5
  %38273 = icmp ne i32 %38272, 0
  br i1 %38273, label %38274, label %38278

38274:                                            ; preds = %38271
  %38275 = load ptr, ptr @stdout, align 8, !tbaa !9
  %38276 = load i32, ptr @test_count, align 4, !tbaa !5
  %38277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38275, ptr noundef @.str.183, i32 noundef %38276) #11
  br label %38281

38278:                                            ; preds = %38271
  %38279 = load ptr, ptr @stdout, align 8, !tbaa !9
  %38280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38279, ptr noundef @.str.184) #11
  br label %38281

38281:                                            ; preds = %38278, %38274
  br label %38293

38282:                                            ; preds = %38266, %38263
  %38283 = load i32, ptr @test_count, align 4, !tbaa !5
  %38284 = icmp ne i32 %38283, 0
  br i1 %38284, label %38285, label %38289

38285:                                            ; preds = %38282
  %38286 = load ptr, ptr @stdout, align 8, !tbaa !9
  %38287 = load i32, ptr @test_count, align 4, !tbaa !5
  %38288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38286, ptr noundef @.str.185, i32 noundef %38287) #11
  br label %38292

38289:                                            ; preds = %38282
  %38290 = load ptr, ptr @stdout, align 8, !tbaa !9
  %38291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38290, ptr noundef @.str.186) #11
  br label %38292

38292:                                            ; preds = %38289, %38285
  br label %38293

38293:                                            ; preds = %38292, %38281
  store i32 0, ptr %3, align 4
  br label %38295

38294:                                            ; No predecessors!
  br label %38295

38295:                                            ; preds = %38294, %38293
  %38296 = load i32, ptr %3, align 4
  ret i32 %38296
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare void @s2n_x509_trust_store_init_empty(ptr noundef) #2

declare zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef) #2

declare i32 @s2n_x509_trust_store_from_ca_file(ptr noundef, ptr noundef, ptr noundef) #2

declare void @s2n_x509_trust_store_wipe(ptr noundef) #2

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #7

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #2

declare i32 @s2n_x509_trust_store_add_pem(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

declare i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #9

declare i32 @s2n_test_cert_chain_data_from_pem(ptr noundef, ptr noundef, ptr noundef) #2

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #2

declare i32 @s2n_pkey_zero_init(ptr noundef) #2

declare i32 @s2n_x509_validator_validate_cert_chain(ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_pkey_free(ptr noundef) #2

declare i32 @s2n_x509_validator_wipe(ptr noundef) #2

declare i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef, i16 noundef zeroext) #2

declare i32 @s2n_x509_validator_init(ptr noundef, ptr noundef, i8 noundef zeroext) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_set_verify_host_callback(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_accept_everything(ptr noundef, i64 noundef, ptr noundef) #0

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #9

; 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) #10

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_verify_alt(ptr noundef, i64 noundef, ptr noundef) #0

declare i32 @s2n_config_set_wall_clock(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_expired_after_ocsp_timestamp(ptr noundef, ptr noundef) #0

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_early_expired_after_ocsp_timestamp(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_reject_everything(ptr noundef, i64 noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @read_file(ptr noundef, ptr noundef, i32 noundef) #0

declare i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_not_expired_ocsp_timestamp(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_invalid_before_ocsp_timestamp(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @mock_time(ptr noundef, ptr noundef) #0

declare i32 @s2n_set_server_name(ptr noundef, ptr noundef) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_add_pem_to_trust_store(ptr noundef, ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

declare zeroext i1 @s2n_libcrypto_is_awslc() #2

declare ptr @s2n_cert_chain_and_key_new() #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef, ptr noundef) #2

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

declare i32 @s2n_send_cert_chain(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @OPENSSL_sk_num(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @ossl_check_const_X509_sk_type(ptr noundef) #9

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

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

declare i32 @s2n_config_wipe_trust_store(ptr noundef) #2

declare i32 @s2n_config_set_verification_ca_location(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_cert_chain_get_cert(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_cert_get_der(ptr noundef, ptr noundef, ptr noundef) #2

declare ptr @d2i_X509(ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @X509_free_pointer(ptr noundef) #9

declare i32 @X509_get_extension_flags(ptr noundef) #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare zeroext i1 @s2n_libcrypto_is_libressl() #2

; Function Attrs: nounwind
declare i32 @setenv(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: nounwind
declare i32 @unsetenv(ptr noundef) #1

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

declare ptr @s2n_config_new_minimal() #2

declare i32 @s2n_test_cert_chain_data_from_pem_data(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

declare i32 @s2n_cleanup() #2

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @s2n_libcrypto_supports_2050() #0

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @s2n_supports_large_time_t() #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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind allocsize(0) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 28}
!16 = !{!"s2n_stuffer", !17, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!17 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!18 = !{!16, !6, i64 24}
!19 = !{!20, !7, i64 9}
!20 = !{!"host_verify_data", !10, i64 0, !7, i64 8, !7, i64 9}
!21 = !{!20, !7, i64 8}
!22 = !{!23, !10, i64 8}
!23 = !{!"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, !24, i64 160, !25, i64 168, !25, 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, !26, i64 240, !10, i64 632, !10, i64 640, !27, i64 648, !32, i64 1144, !35, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !16, i64 1776, !16, i64 1816, !16, i64 1856, !16, i64 1896, !6, i64 1936, !25, i64 1944, !7, i64 1952, !16, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !38, i64 2004, !38, i64 2008, !39, i64 2016, !37, i64 2208, !6, i64 2212, !37, i64 2216, !25, i64 2224, !7, i64 2232, !25, i64 2240, !25, i64 2248, !25, i64 2256, !38, i64 2264, !38, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !17, i64 2792, !6, i64 2816, !17, i64 2824, !17, i64 2848, !17, i64 2872, !41, i64 2896, !43, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !17, i64 3784, !6, i64 3808, !45, i64 3816, !7, i64 3848, !16, i64 3992, !17, i64 4032, !17, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !37, i64 4084, !37, i64 4086, !6, i64 4088, !6, i64 4092, !17, i64 4096, !6, i64 4120, !46, i64 4128, !38, i64 4176, !7, i64 4180, !7, i64 4181}
!24 = !{!"s2n_timer", !25, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!27 = !{!"s2n_kex_parameters", !28, i64 0, !29, i64 8, !7, i64 24, !29, i64 56, !30, i64 72, !30, i64 184, !7, i64 296, !31, i64 360, !17, i64 448, !17, i64 472}
!28 = !{!"s2n_dh_params", !10, i64 0}
!29 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!30 = !{!"s2n_kem_group_params", !10, i64 0, !31, i64 8, !29, i64 96}
!31 = !{!"s2n_kem_params", !10, i64 0, !17, i64 8, !17, i64 32, !17, i64 56, !12, i64 80}
!32 = !{!"s2n_handshake_parameters", !33, i64 0, !33, i64 48, !17, i64 96, !6, i64 120, !34, 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}
!33 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!34 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!35 = !{!"s2n_psk_parameters", !6, i64 0, !36, i64 8, !37, i64 40, !37, i64 42, !10, i64 48, !6, i64 56}
!36 = !{!"s2n_array", !17, i64 0, !6, i64 24, !6, i64 28}
!37 = !{!"short", !7, i64 0}
!38 = !{!"", !6, i64 0}
!39 = !{!"s2n_handshake", !16, 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, !40, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!40 = !{!"s2n_offered_early_data", !10, i64 0}
!41 = !{!"s2n_client_hello", !17, i64 0, !42, i64 24, !17, i64 728, !17, i64 752, !17, 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}
!42 = !{!"", !7, i64 0, !17, i64 672, !37, i64 696}
!43 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !37, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !44, i64 48, !12, i64 52}
!44 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!45 = !{!"s2n_ticket_fields", !17, i64 0, !6, i64 24}
!46 = !{!"s2n_post_handshake", !16, i64 0, !7, i64 40}
!47 = !{!48, !10, i64 80}
!48 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !49, i64 24, !17, 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, !25, i64 144, !10, i64 152, !25, i64 160, !25, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !50, i64 304, !37, 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, !17, i64 448}
!49 = !{!"certs_by_type", !7, i64 0}
!50 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!51 = !{!25, !25, i64 0}
!52 = !{!7, !7, i64 0}
!53 = !{!54, !25, i64 0}
!54 = !{!"", !25, i64 0, !6, i64 8}
!55 = !{!54, !6, i64 8}
!56 = distinct !{!56, !57}
!57 = !{!"llvm.loop.mustprogress"}
!58 = !{!43, !10, i64 24}
!59 = !{!23, !7, i64 220}
!60 = !{!43, !7, i64 16}
!61 = !{i64 0, i64 1, !52, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !52}
!62 = !{!63, !12, i64 56}
!63 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!64 = !{!23, !10, i64 16}
!65 = !{!43, !6, i64 32}


; 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.host_verify_data = type { ptr, i8, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_x509_trust_store = type { ptr, 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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.anon = type { i64, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [127 x i8], align 1
@__const.main.verify_data = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.41 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [10 x i8], align 1
@__const.main.verify_data.58 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.59 = external hidden unnamed_addr constant [125 x i8], align 1
@__const.main.verify_data.60 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@__const.main.verify_data.61 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@__const.main.verify_data.62 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@__const.main.verify_data.63 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.64 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [141 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@__const.main.verify_data.67 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@__const.main.verify_data.69 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.70 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [182 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [185 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [119 x i8], align 1
@__const.main.verify_data.108 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.109 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [1 x i8], align 1
@__const.main.verify_data.113 = external hidden unnamed_addr constant %struct.host_verify_data, align 8
@.str.114 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [139 x i8], align 1
@security_policy_rfc9151 = external local_unnamed_addr constant %struct.s2n_security_policy, align 8
@.str.174 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_x509_trust_store, align 8
  %4 = alloca %struct.s2n_x509_trust_store, align 8
  %5 = alloca %struct.s2n_x509_trust_store, align 8
  %6 = alloca %struct.s2n_x509_trust_store, align 8
  %7 = alloca %struct.s2n_x509_trust_store, align 8
  %8 = alloca %struct.s2n_x509_validator, align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca %struct.s2n_pkey, align 8
  %11 = alloca i32, align 4
  %12 = alloca %struct.s2n_x509_validator, align 8
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca %struct.s2n_pkey, align 8
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_x509_trust_store, align 8
  %17 = alloca %struct.s2n_x509_validator, align 8
  %18 = alloca %struct.s2n_x509_trust_store, align 8
  %19 = alloca %struct.host_verify_data, align 8
  %20 = alloca %struct.s2n_x509_validator, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca %struct.s2n_pkey, align 8
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_x509_trust_store, align 8
  %25 = alloca %struct.s2n_x509_validator, align 8
  %26 = alloca %struct.host_verify_data, align 8
  %27 = alloca %struct.s2n_stuffer, align 8
  %28 = alloca %struct.s2n_pkey, align 8
  %29 = alloca i32, align 4
  %30 = alloca %struct.s2n_x509_trust_store, align 8
  %31 = alloca %struct.s2n_x509_validator, align 8
  %32 = alloca %struct.host_verify_data, align 8
  %33 = alloca %struct.s2n_stuffer, align 8
  %34 = alloca %struct.s2n_pkey, align 8
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_x509_trust_store, align 8
  %37 = alloca %struct.s2n_x509_validator, align 8
  %38 = alloca %struct.host_verify_data, align 8
  %39 = alloca %struct.s2n_stuffer, align 8
  %40 = alloca %struct.s2n_pkey, align 8
  %41 = alloca i32, align 4
  %42 = alloca %struct.s2n_x509_trust_store, align 8
  %43 = alloca %struct.s2n_x509_validator, align 8
  %44 = alloca %struct.host_verify_data, align 8
  %45 = alloca %struct.s2n_stuffer, align 8
  %46 = alloca %struct.s2n_pkey, align 8
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_x509_trust_store, align 8
  %49 = alloca %struct.s2n_x509_validator, align 8
  %50 = alloca %struct.host_verify_data, align 8
  %51 = alloca %struct.s2n_stuffer, align 8
  %52 = alloca %struct.s2n_pkey, align 8
  %53 = alloca i32, align 4
  %54 = alloca %struct.s2n_x509_trust_store, align 8
  %55 = alloca %struct.s2n_x509_validator, align 8
  %56 = alloca ptr, align 8
  %57 = alloca %struct.host_verify_data, align 8
  %58 = alloca %struct.s2n_stuffer, align 8
  %59 = alloca %struct.s2n_pkey, align 8
  %60 = alloca i32, align 4
  %61 = alloca %struct.s2n_x509_trust_store, align 8
  %62 = alloca %struct.s2n_x509_validator, align 8
  %63 = alloca %struct.host_verify_data, align 8
  %64 = alloca %struct.s2n_stuffer, align 8
  %65 = alloca %struct.s2n_pkey, align 8
  %66 = alloca i32, align 4
  %67 = alloca %struct.s2n_x509_trust_store, align 8
  %68 = alloca %struct.host_verify_data, align 8
  %69 = alloca %struct.s2n_x509_validator, align 8
  %70 = alloca %struct.s2n_stuffer, align 8
  %71 = alloca %struct.s2n_pkey, align 8
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_x509_trust_store, align 8
  %74 = alloca %struct.host_verify_data, align 8
  %75 = alloca %struct.s2n_x509_validator, align 8
  %76 = alloca %struct.s2n_stuffer, align 8
  %77 = alloca %struct.s2n_pkey, align 8
  %78 = alloca i32, align 4
  %79 = alloca %struct.s2n_x509_trust_store, align 8
  %80 = alloca %struct.host_verify_data, align 8
  %81 = alloca %struct.s2n_x509_validator, align 8
  %82 = alloca %struct.s2n_stuffer, align 8
  %83 = alloca %struct.s2n_pkey, align 8
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_x509_trust_store, align 8
  %86 = alloca %struct.host_verify_data, align 8
  %87 = alloca %struct.s2n_x509_validator, align 8
  %88 = alloca %struct.s2n_stuffer, align 8
  %89 = alloca %struct.s2n_pkey, align 8
  %90 = alloca i32, align 4
  %91 = alloca %struct.s2n_x509_trust_store, align 8
  %92 = alloca %struct.host_verify_data, align 8
  %93 = alloca %struct.s2n_x509_validator, align 8
  %94 = alloca %struct.s2n_stuffer, align 8
  %95 = alloca %struct.s2n_pkey, align 8
  %96 = alloca i32, align 4
  %97 = alloca %struct.s2n_x509_trust_store, align 8
  %98 = alloca %struct.host_verify_data, align 8
  %99 = alloca %struct.s2n_x509_validator, align 8
  %100 = alloca %struct.s2n_stuffer, align 8
  %101 = alloca %struct.s2n_pkey, align 8
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_x509_trust_store, align 8
  %104 = alloca %struct.host_verify_data, align 8
  %105 = alloca %struct.s2n_x509_validator, align 8
  %106 = alloca %struct.s2n_stuffer, align 8
  %107 = alloca %struct.s2n_pkey, align 8
  %108 = alloca i32, align 4
  %109 = alloca %struct.s2n_x509_trust_store, align 8
  %110 = alloca %struct.s2n_x509_validator, align 8
  %111 = alloca %struct.host_verify_data, align 8
  %112 = alloca %struct.s2n_stuffer, align 8
  %113 = alloca %struct.s2n_pkey, align 8
  %114 = alloca i32, align 4
  %115 = alloca %struct.s2n_stuffer, align 8
  %116 = alloca %struct.s2n_x509_trust_store, align 8
  %117 = alloca %struct.s2n_x509_validator, align 8
  %118 = alloca %struct.host_verify_data, align 8
  %119 = alloca %struct.s2n_stuffer, align 8
  %120 = alloca %struct.s2n_pkey, align 8
  %121 = alloca i32, align 4
  %122 = alloca %struct.s2n_stuffer, align 8
  %123 = alloca %struct.s2n_x509_trust_store, align 8
  %124 = alloca %struct.s2n_x509_validator, align 8
  %125 = alloca %struct.host_verify_data, align 8
  %126 = alloca %struct.s2n_stuffer, align 8
  %127 = alloca %struct.s2n_pkey, align 8
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_stuffer, align 8
  %130 = alloca %struct.s2n_x509_trust_store, align 8
  %131 = alloca %struct.s2n_x509_validator, align 8
  %132 = alloca %struct.host_verify_data, align 8
  %133 = alloca %struct.s2n_stuffer, align 8
  %134 = alloca %struct.s2n_pkey, align 8
  %135 = alloca i32, align 4
  %136 = alloca %struct.s2n_stuffer, align 8
  %137 = alloca %struct.s2n_x509_trust_store, align 8
  %138 = alloca %struct.s2n_x509_validator, align 8
  %139 = alloca ptr, align 8
  %140 = alloca %struct.host_verify_data, align 8
  %141 = alloca %struct.s2n_stuffer, align 8
  %142 = alloca %struct.s2n_pkey, align 8
  %143 = alloca i32, align 4
  %144 = alloca %struct.s2n_stuffer, align 8
  %145 = alloca %struct.s2n_x509_trust_store, align 8
  %146 = alloca %struct.s2n_x509_validator, align 8
  %147 = alloca %struct.host_verify_data, align 8
  %148 = alloca %struct.s2n_stuffer, align 8
  %149 = alloca %struct.s2n_pkey, align 8
  %150 = alloca i32, align 4
  %151 = alloca %struct.s2n_stuffer, align 8
  %152 = alloca %struct.s2n_x509_trust_store, align 8
  %153 = alloca %struct.s2n_x509_validator, align 8
  %154 = alloca %struct.host_verify_data, align 8
  %155 = alloca %struct.s2n_stuffer, align 8
  %156 = alloca %struct.s2n_pkey, align 8
  %157 = alloca i32, align 4
  %158 = alloca %struct.s2n_stuffer, align 8
  %159 = alloca %struct.s2n_x509_trust_store, align 8
  %160 = alloca %struct.s2n_x509_validator, align 8
  %161 = alloca %struct.host_verify_data, align 8
  %162 = alloca %struct.s2n_stuffer, align 8
  %163 = alloca %struct.s2n_pkey, align 8
  %164 = alloca i32, align 4
  %165 = alloca %struct.s2n_stuffer, align 8
  %166 = alloca %struct.s2n_x509_trust_store, align 8
  %167 = alloca %struct.s2n_x509_validator, align 8
  %168 = alloca %struct.host_verify_data, align 8
  %169 = alloca %struct.s2n_stuffer, align 8
  %170 = alloca %struct.s2n_pkey, align 8
  %171 = alloca i32, align 4
  %172 = alloca %struct.s2n_stuffer, align 8
  %173 = alloca %struct.s2n_x509_trust_store, align 8
  %174 = alloca %struct.s2n_x509_validator, align 8
  %175 = alloca %struct.host_verify_data, align 8
  %176 = alloca %struct.s2n_stuffer, align 8
  %177 = alloca %struct.s2n_pkey, align 8
  %178 = alloca i32, align 4
  %179 = alloca %struct.s2n_stuffer, align 8
  %180 = alloca %struct.s2n_x509_trust_store, align 8
  %181 = alloca %struct.s2n_x509_validator, align 8
  %182 = alloca %struct.host_verify_data, align 8
  %183 = alloca %struct.s2n_stuffer, align 8
  %184 = alloca %struct.s2n_pkey, align 8
  %185 = alloca i32, align 4
  %186 = alloca %struct.s2n_stuffer, align 8
  %187 = alloca [8 x %struct.anon], align 16
  %188 = alloca %struct.s2n_x509_trust_store, align 8
  %189 = alloca %struct.s2n_x509_validator, align 8
  %190 = alloca ptr, align 8
  %191 = alloca %struct.host_verify_data, align 8
  %192 = alloca %struct.s2n_stuffer, align 8
  %193 = alloca %struct.s2n_pkey, align 8
  %194 = alloca i32, align 4
  %195 = alloca i64, align 8
  %196 = alloca %struct.s2n_stuffer, align 8
  %197 = alloca %struct.s2n_x509_trust_store, align 8
  %198 = alloca %struct.s2n_x509_validator, align 8
  %199 = alloca %struct.s2n_stuffer, align 8
  %200 = alloca %struct.s2n_pkey, align 8
  %201 = alloca i32, align 4
  %202 = alloca %struct.s2n_x509_trust_store, align 8
  %203 = alloca %struct.s2n_x509_validator, align 8
  %204 = alloca %struct.s2n_stuffer, align 8
  %205 = alloca %struct.s2n_pkey, align 8
  %206 = alloca i32, align 4
  %207 = alloca %struct.s2n_x509_trust_store, align 8
  %208 = alloca %struct.s2n_x509_validator, align 8
  %209 = alloca %struct.s2n_stuffer, align 8
  %210 = alloca %struct.s2n_pkey, align 8
  %211 = alloca i32, align 4
  %212 = alloca %struct.s2n_x509_trust_store, align 8
  %213 = alloca %struct.s2n_x509_validator, align 8
  %214 = alloca ptr, align 8
  %215 = alloca %struct.host_verify_data, align 8
  %216 = alloca %struct.s2n_stuffer, align 8
  %217 = alloca %struct.s2n_pkey, align 8
  %218 = alloca i32, align 4
  %219 = alloca %struct.s2n_x509_trust_store, align 8
  %220 = alloca %struct.s2n_x509_validator, align 8
  %221 = alloca ptr, align 8
  %222 = alloca %struct.host_verify_data, align 8
  %223 = alloca %struct.s2n_stuffer, align 8
  %224 = alloca %struct.s2n_pkey, align 8
  %225 = alloca i32, align 4
  %226 = alloca %struct.s2n_x509_trust_store, align 8
  %227 = alloca %struct.s2n_x509_validator, align 8
  %228 = alloca %struct.s2n_stuffer, align 8
  %229 = alloca %struct.s2n_pkey, align 8
  %230 = alloca i32, align 4
  %231 = alloca %struct.s2n_x509_validator, align 8
  %232 = alloca %struct.s2n_stuffer, align 8
  %233 = alloca %struct.s2n_pkey, align 8
  %234 = alloca i32, align 4
  %235 = alloca %struct.s2n_x509_validator, align 8
  %236 = alloca %struct.s2n_stuffer, align 8
  %237 = alloca %struct.s2n_pkey, align 8
  %238 = alloca i32, align 4
  %239 = alloca %struct.s2n_x509_validator, align 8
  %240 = alloca ptr, align 8
  %241 = alloca [12000 x i8], align 16
  %242 = alloca ptr, align 8
  %243 = alloca %struct.s2n_stuffer, align 8
  %244 = alloca %struct.s2n_pkey, align 8
  %245 = alloca i32, align 4
  %246 = alloca %struct.s2n_x509_validator, align 8
  %247 = alloca ptr, align 8
  %248 = alloca %struct.s2n_stuffer, align 8
  %249 = alloca %struct.s2n_stuffer, align 8
  %250 = alloca %struct.s2n_stuffer, align 8
  %251 = alloca %struct.s2n_pkey, align 8
  %252 = alloca i32, align 4
  %253 = alloca %struct.s2n_x509_trust_store, align 8
  %254 = alloca %struct.s2n_x509_validator, align 8
  %255 = alloca %struct.host_verify_data, align 8
  %256 = alloca %struct.s2n_stuffer, align 8
  %257 = alloca %struct.s2n_pkey, align 8
  %258 = alloca i32, align 4
  %259 = alloca %struct.s2n_x509_trust_store, align 8
  %260 = alloca %struct.s2n_x509_validator, align 8
  %261 = alloca %struct.host_verify_data, align 8
  %262 = alloca %struct.s2n_stuffer, align 8
  %263 = alloca %struct.s2n_pkey, align 8
  %264 = alloca i32, align 4
  %265 = alloca %struct.s2n_x509_validator, align 8
  %266 = alloca ptr, align 8
  %267 = alloca %struct.s2n_pkey, align 8
  %268 = alloca i32, align 4
  %269 = alloca ptr, align 8
  %270 = alloca ptr, align 8
  %271 = alloca ptr, align 8
  %272 = alloca i32, align 4
  %273 = alloca ptr, align 8
  %274 = alloca ptr, align 8
  %275 = alloca %struct.s2n_x509_validator, align 8
  %276 = alloca ptr, align 8
  %277 = alloca %struct.s2n_stuffer, align 8
  %278 = alloca %struct.s2n_pkey, align 8
  %279 = alloca i32, align 4
  %280 = alloca [12000 x i8], align 16
  %281 = alloca ptr, align 8
  %282 = alloca %struct.s2n_x509_validator, align 8
  %283 = alloca ptr, align 8
  %284 = alloca %struct.s2n_stuffer, align 8
  %285 = alloca %struct.s2n_pkey, align 8
  %286 = alloca i32, align 4
  %287 = alloca ptr, align 8
  %288 = alloca %struct.s2n_x509_validator, align 8
  %289 = alloca ptr, align 8
  %290 = alloca %struct.s2n_stuffer, align 8
  %291 = alloca %struct.s2n_pkey, align 8
  %292 = alloca i32, align 4
  %293 = alloca [12000 x i8], align 16
  %294 = alloca i32, align 4
  %295 = alloca [12000 x i8], align 16
  %296 = alloca i32, align 4
  %297 = alloca %struct.s2n_security_policy, align 8
  %298 = alloca ptr, align 8
  %299 = alloca %struct.s2n_x509_validator, align 8
  %300 = alloca ptr, align 8
  %301 = alloca %struct.s2n_stuffer, align 8
  %302 = alloca %struct.s2n_pkey, align 8
  %303 = alloca i32, align 4
  %304 = alloca ptr, align 8
  %305 = alloca %struct.s2n_x509_validator, align 8
  %306 = alloca ptr, align 8
  %307 = alloca %struct.s2n_stuffer, align 8
  %308 = alloca %struct.s2n_pkey, align 8
  %309 = alloca i32, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %310 = load ptr, ptr @stdout, align 8, !tbaa !9
  %311 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #13
  %312 = load ptr, ptr @stdout, align 8, !tbaa !9
  %313 = tail call i32 @fflush(ptr noundef %312)
  %314 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %315 = icmp eq i32 %314, -1
  br i1 %315, label %316, label %340

316:                                              ; preds = %2
  %317 = tail call ptr @__errno_location() #14
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = tail call i32 @s2n_print_stacktrace(ptr noundef %319) #13
  %321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %322 = trunc nuw i8 %321 to i1
  br i1 %322, label %323, label %327

323:                                              ; preds = %316
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = tail call i32 @fileno(ptr noundef %324) #13
  %326 = tail call i32 @isatty(i32 noundef %325) #13
  %.not2532 = icmp eq i32 %326, 0
  br i1 %.not2532, label %327, label %328

327:                                              ; preds = %323, %316
  br label %328

328:                                              ; preds = %323, %327
  %.str.5.sink = phi ptr [ @.str.5, %327 ], [ @.str.2, %323 ]
  store i32 %318, ptr %317, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = tail call ptr @s2n_strerror(i32 noundef %332, ptr noundef nonnull @.str.4) #13
  %334 = load i32, ptr %331, align 4, !tbaa !5
  %335 = tail call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef nonnull @.str.4) #13
  %336 = load i32, ptr %317, align 4, !tbaa !5
  %337 = tail call ptr @strerror(i32 noundef %336) #13
  %338 = load i32, ptr %317, align 4, !tbaa !5
  %339 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef nonnull %.str.5.sink, i32 noundef %330, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %333, ptr noundef %335, ptr noundef %337, i32 noundef %338) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

340:                                              ; preds = %2
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = tail call i32 @s2n_enable_atexit() #13
  %344 = icmp eq i32 %343, -1
  br i1 %344, label %345, label %369

345:                                              ; preds = %340
  %346 = tail call ptr @__errno_location() #14
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = tail call i32 @s2n_print_stacktrace(ptr noundef %348) #13
  %350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %352, label %356

352:                                              ; preds = %345
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = tail call i32 @fileno(ptr noundef %353) #13
  %355 = tail call i32 @isatty(i32 noundef %354) #13
  %.not2531 = icmp eq i32 %355, 0
  br i1 %.not2531, label %356, label %357

356:                                              ; preds = %352, %345
  br label %357

357:                                              ; preds = %352, %356
  %.str.5.sink2545 = phi ptr [ @.str.5, %356 ], [ @.str.2, %352 ]
  store i32 %347, ptr %346, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = tail call ptr @s2n_strerror(i32 noundef %361, ptr noundef nonnull @.str.4) #13
  %363 = load i32, ptr %360, align 4, !tbaa !5
  %364 = tail call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef nonnull @.str.4) #13
  %365 = load i32, ptr %346, align 4, !tbaa !5
  %366 = tail call ptr @strerror(i32 noundef %365) #13
  %367 = load i32, ptr %346, align 4, !tbaa !5
  %368 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef nonnull %.str.5.sink2545, i32 noundef %359, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %362, ptr noundef %364, ptr noundef %366, i32 noundef %367) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

369:                                              ; preds = %340
  %370 = tail call i32 @s2n_init() #13
  %371 = icmp eq i32 %370, -1
  br i1 %371, label %372, label %396

372:                                              ; preds = %369
  %373 = tail call ptr @__errno_location() #14
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = tail call i32 @s2n_print_stacktrace(ptr noundef %375) #13
  %377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %378 = trunc nuw i8 %377 to i1
  br i1 %378, label %379, label %383

379:                                              ; preds = %372
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = tail call i32 @fileno(ptr noundef %380) #13
  %382 = tail call i32 @isatty(i32 noundef %381) #13
  %.not2530 = icmp eq i32 %382, 0
  br i1 %.not2530, label %383, label %384

383:                                              ; preds = %379, %372
  br label %384

384:                                              ; preds = %379, %383
  %.str.5.sink2556 = phi ptr [ @.str.5, %383 ], [ @.str.2, %379 ]
  store i32 %374, ptr %373, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = tail call ptr @s2n_strerror(i32 noundef %388, ptr noundef nonnull @.str.4) #13
  %390 = load i32, ptr %387, align 4, !tbaa !5
  %391 = tail call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef nonnull @.str.4) #13
  %392 = load i32, ptr %373, align 4, !tbaa !5
  %393 = tail call ptr @strerror(i32 noundef %392) #13
  %394 = load i32, ptr %373, align 4, !tbaa !5
  %395 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef nonnull %.str.5.sink2556, i32 noundef %386, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %389, ptr noundef %391, ptr noundef %393, i32 noundef %394) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

396:                                              ; preds = %369
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = add nsw i32 %397, 1
  store i32 %398, ptr @test_count, align 4, !tbaa !5
  %399 = tail call i32 (...) @s2n_disable_tls13_in_test() #13
  %400 = icmp eq i32 %399, -1
  br i1 %400, label %401, label %425

401:                                              ; preds = %396
  %402 = tail call ptr @__errno_location() #14
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = tail call i32 @s2n_print_stacktrace(ptr noundef %404) #13
  %406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %407 = trunc nuw i8 %406 to i1
  br i1 %407, label %408, label %412

408:                                              ; preds = %401
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = tail call i32 @fileno(ptr noundef %409) #13
  %411 = tail call i32 @isatty(i32 noundef %410) #13
  %.not2529 = icmp eq i32 %411, 0
  br i1 %.not2529, label %412, label %413

412:                                              ; preds = %408, %401
  br label %413

413:                                              ; preds = %408, %412
  %.str.5.sink2567 = phi ptr [ @.str.5, %412 ], [ @.str.2, %408 ]
  store i32 %403, ptr %402, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = tail call ptr @s2n_strerror(i32 noundef %417, ptr noundef nonnull @.str.4) #13
  %419 = load i32, ptr %416, align 4, !tbaa !5
  %420 = tail call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef nonnull @.str.4) #13
  %421 = load i32, ptr %402, align 4, !tbaa !5
  %422 = tail call ptr @strerror(i32 noundef %421) #13
  %423 = load i32, ptr %402, align 4, !tbaa !5
  %424 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef nonnull %.str.5.sink2567, i32 noundef %415, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %418, ptr noundef %420, ptr noundef %422, i32 noundef %423) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

425:                                              ; preds = %396
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr @test_count, align 4, !tbaa !5
  %428 = tail call zeroext i1 @s2n_libcrypto_supports_2050()
  br i1 %428, label %453, label %429

429:                                              ; preds = %425
  %430 = tail call ptr @__errno_location() #14
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = tail call i32 @s2n_print_stacktrace(ptr noundef %432) #13
  %434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %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 !9
  %438 = tail call i32 @fileno(ptr noundef %437) #13
  %439 = tail call i32 @isatty(i32 noundef %438) #13
  %.not = icmp eq i32 %439, 0
  br i1 %.not, label %440, label %441

440:                                              ; preds = %436, %429
  br label %441

441:                                              ; preds = %436, %440
  %.str.5.sink2578 = phi ptr [ @.str.5, %440 ], [ @.str.2, %436 ]
  store i32 %431, ptr %430, align 4, !tbaa !5
  %442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = tail call ptr @s2n_strerror(i32 noundef %445, ptr noundef nonnull @.str.4) #13
  %447 = load i32, ptr %444, align 4, !tbaa !5
  %448 = tail call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef nonnull @.str.4) #13
  %449 = load i32, ptr %430, align 4, !tbaa !5
  %450 = tail call ptr @strerror(i32 noundef %449) #13
  %451 = load i32, ptr %430, align 4, !tbaa !5
  %452 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull %.str.5.sink2578, i32 noundef %443, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %446, ptr noundef %448, ptr noundef %450, i32 noundef %451) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

453:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %3) #13
  %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 zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %3) #13
  %.not1927 = icmp eq i8 %456, 0
  br i1 %.not1927, label %481, label %457

457:                                              ; preds = %453
  %458 = tail call ptr @__errno_location() #14
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @s2n_print_stacktrace(ptr noundef %460) #13
  %462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %463 = trunc nuw i8 %462 to i1
  br i1 %463, label %464, label %468

464:                                              ; preds = %457
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #13
  %467 = call i32 @isatty(i32 noundef %466) #13
  %.not2528 = icmp eq i32 %467, 0
  br i1 %.not2528, label %468, label %469

468:                                              ; preds = %464, %457
  br label %469

469:                                              ; preds = %464, %468
  %.str.5.sink2589 = phi ptr [ @.str.5, %468 ], [ @.str.2, %464 ]
  store i32 %459, ptr %458, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror(i32 noundef %473, ptr noundef nonnull @.str.4) #13
  %475 = load i32, ptr %472, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror_debug(i32 noundef %475, ptr noundef nonnull @.str.4) #13
  %477 = load i32, ptr %458, align 4, !tbaa !5
  %478 = call ptr @strerror(i32 noundef %477) #13
  %479 = load i32, ptr %458, align 4, !tbaa !5
  %480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef nonnull %.str.5.sink2589, i32 noundef %471, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %474, ptr noundef %476, ptr noundef %478, i32 noundef %479) #15
  call void @exit(i32 noundef 1) #16
  unreachable

481:                                              ; preds = %453
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %4) #13
  %482 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %4, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %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 = icmp eq i32 %482, 0
  br i1 %485, label %510, label %486

486:                                              ; preds = %481
  %487 = tail call ptr @__errno_location() #14
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @s2n_print_stacktrace(ptr noundef %489) #13
  %491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %492 = trunc nuw i8 %491 to i1
  br i1 %492, label %493, label %497

493:                                              ; preds = %486
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = call i32 @fileno(ptr noundef %494) #13
  %496 = call i32 @isatty(i32 noundef %495) #13
  %.not1928 = icmp eq i32 %496, 0
  br i1 %.not1928, label %497, label %498

497:                                              ; preds = %493, %486
  br label %498

498:                                              ; preds = %493, %497
  %.str.5.sink2600 = phi ptr [ @.str.5, %497 ], [ @.str.2, %493 ]
  store i32 %488, ptr %487, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror(i32 noundef %502, ptr noundef nonnull @.str.4) #13
  %504 = load i32, ptr %501, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror_debug(i32 noundef %504, ptr noundef nonnull @.str.4) #13
  %506 = load i32, ptr %487, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #13
  %508 = load i32, ptr %487, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %499, ptr noundef nonnull %.str.5.sink2600, i32 noundef %500, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %503, ptr noundef %505, ptr noundef %507, i32 noundef %508) #15
  call void @exit(i32 noundef 1) #16
  unreachable

510:                                              ; preds = %481
  %511 = add nsw i32 %483, 2
  store i32 %511, ptr @test_count, align 4, !tbaa !5
  %512 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %4) #13
  %.not1929 = icmp eq i8 %512, 0
  br i1 %.not1929, label %513, label %537

513:                                              ; preds = %510
  %514 = tail call ptr @__errno_location() #14
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @s2n_print_stacktrace(ptr noundef %516) #13
  %518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %519 = trunc nuw i8 %518 to i1
  br i1 %519, label %520, label %524

520:                                              ; preds = %513
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #13
  %523 = call i32 @isatty(i32 noundef %522) #13
  %.not1930 = icmp eq i32 %523, 0
  br i1 %.not1930, label %524, label %525

524:                                              ; preds = %520, %513
  br label %525

525:                                              ; preds = %520, %524
  %.str.5.sink2611 = phi ptr [ @.str.5, %524 ], [ @.str.2, %520 ]
  store i32 %515, ptr %514, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror(i32 noundef %529, ptr noundef nonnull @.str.4) #13
  %531 = load i32, ptr %528, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef nonnull @.str.4) #13
  %533 = load i32, ptr %514, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #13
  %535 = load i32, ptr %514, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.5.sink2611, i32 noundef %527, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %530, ptr noundef %532, ptr noundef %534, i32 noundef %535) #15
  call void @exit(i32 noundef 1) #16
  unreachable

537:                                              ; preds = %510
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %5) #13
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %541 = icmp eq ptr %540, null
  br i1 %541, label %542, label %566

542:                                              ; preds = %537
  %543 = tail call ptr @__errno_location() #14
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @s2n_print_stacktrace(ptr noundef %545) #13
  %547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %548 = trunc nuw i8 %547 to i1
  br i1 %548, label %549, label %553

549:                                              ; preds = %542
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @fileno(ptr noundef %550) #13
  %552 = call i32 @isatty(i32 noundef %551) #13
  %.not2527 = icmp eq i32 %552, 0
  br i1 %.not2527, label %553, label %554

553:                                              ; preds = %549, %542
  br label %554

554:                                              ; preds = %549, %553
  %.str.5.sink2622 = phi ptr [ @.str.5, %553 ], [ @.str.2, %549 ]
  store i32 %544, ptr %543, align 4, !tbaa !5
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror(i32 noundef %558, ptr noundef nonnull @.str.4) #13
  %560 = load i32, ptr %557, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef nonnull @.str.4) #13
  %562 = load i32, ptr %543, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #13
  %564 = load i32, ptr %543, align 4, !tbaa !5
  %565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %555, ptr noundef nonnull %.str.5.sink2622, i32 noundef %556, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %559, ptr noundef %561, ptr noundef %563, i32 noundef %564) #15
  call void @exit(i32 noundef 1) #16
  unreachable

566:                                              ; preds = %537
  %567 = add nsw i32 %538, 2
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.11, ptr noundef nonnull %540, i64 noundef 12000) #13
  %569 = icmp eq i32 %568, -1
  br i1 %569, label %570, label %594

570:                                              ; preds = %566
  %571 = tail call ptr @__errno_location() #14
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @s2n_print_stacktrace(ptr noundef %573) #13
  %575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %576 = trunc nuw i8 %575 to i1
  br i1 %576, label %577, label %581

577:                                              ; preds = %570
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = call i32 @fileno(ptr noundef %578) #13
  %580 = call i32 @isatty(i32 noundef %579) #13
  %.not2526 = icmp eq i32 %580, 0
  br i1 %.not2526, label %581, label %582

581:                                              ; preds = %577, %570
  br label %582

582:                                              ; preds = %577, %581
  %.str.5.sink2633 = phi ptr [ @.str.5, %581 ], [ @.str.2, %577 ]
  store i32 %572, ptr %571, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror(i32 noundef %586, ptr noundef nonnull @.str.4) #13
  %588 = load i32, ptr %585, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef nonnull @.str.4) #13
  %590 = load i32, ptr %571, align 4, !tbaa !5
  %591 = call ptr @strerror(i32 noundef %590) #13
  %592 = load i32, ptr %571, align 4, !tbaa !5
  %593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef nonnull %.str.5.sink2633, i32 noundef %584, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %587, ptr noundef %589, ptr noundef %591, i32 noundef %592) #15
  call void @exit(i32 noundef 1) #16
  unreachable

594:                                              ; preds = %566
  %595 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %5, ptr noundef nonnull %540) #13
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr @test_count, align 4, !tbaa !5
  %598 = icmp eq i32 %595, 0
  br i1 %598, label %623, label %599

599:                                              ; preds = %594
  %600 = tail call ptr @__errno_location() #14
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @s2n_print_stacktrace(ptr noundef %602) #13
  %604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %605 = trunc nuw i8 %604 to i1
  br i1 %605, label %606, label %610

606:                                              ; preds = %599
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = call i32 @fileno(ptr noundef %607) #13
  %609 = call i32 @isatty(i32 noundef %608) #13
  %.not1931 = icmp eq i32 %609, 0
  br i1 %.not1931, label %610, label %611

610:                                              ; preds = %606, %599
  br label %611

611:                                              ; preds = %606, %610
  %.str.5.sink2644 = phi ptr [ @.str.5, %610 ], [ @.str.2, %606 ]
  store i32 %601, ptr %600, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror(i32 noundef %615, ptr noundef nonnull @.str.4) #13
  %617 = load i32, ptr %614, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror_debug(i32 noundef %617, ptr noundef nonnull @.str.4) #13
  %619 = load i32, ptr %600, align 4, !tbaa !5
  %620 = call ptr @strerror(i32 noundef %619) #13
  %621 = load i32, ptr %600, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef nonnull %.str.5.sink2644, i32 noundef %613, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %616, ptr noundef %618, ptr noundef %620, i32 noundef %621) #15
  call void @exit(i32 noundef 1) #16
  unreachable

623:                                              ; preds = %594
  %624 = add nsw i32 %596, 2
  store i32 %624, ptr @test_count, align 4, !tbaa !5
  %625 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %5) #13
  %.not1932 = icmp eq i8 %625, 0
  br i1 %.not1932, label %626, label %650

626:                                              ; preds = %623
  %627 = tail call ptr @__errno_location() #14
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = call i32 @s2n_print_stacktrace(ptr noundef %629) #13
  %631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %632 = trunc nuw i8 %631 to i1
  br i1 %632, label %633, label %637

633:                                              ; preds = %626
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = call i32 @fileno(ptr noundef %634) #13
  %636 = call i32 @isatty(i32 noundef %635) #13
  %.not1933 = icmp eq i32 %636, 0
  br i1 %.not1933, label %637, label %638

637:                                              ; preds = %633, %626
  br label %638

638:                                              ; preds = %633, %637
  %.str.5.sink2655 = phi ptr [ @.str.5, %637 ], [ @.str.2, %633 ]
  store i32 %628, ptr %627, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef nonnull @.str.4) #13
  %644 = load i32, ptr %641, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef nonnull @.str.4) #13
  %646 = load i32, ptr %627, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #13
  %648 = load i32, ptr %627, align 4, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %639, ptr noundef nonnull %.str.5.sink2655, i32 noundef %640, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %643, ptr noundef %645, ptr noundef %647, i32 noundef %648) #15
  call void @exit(i32 noundef 1) #16
  unreachable

650:                                              ; preds = %623
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %5, ptr noundef nonnull %540) #13
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %679

655:                                              ; preds = %650
  %656 = tail call ptr @__errno_location() #14
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 @s2n_print_stacktrace(ptr noundef %658) #13
  %660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %661 = trunc nuw i8 %660 to i1
  br i1 %661, label %662, label %666

662:                                              ; preds = %655
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @fileno(ptr noundef %663) #13
  %665 = call i32 @isatty(i32 noundef %664) #13
  %.not2525 = icmp eq i32 %665, 0
  br i1 %.not2525, label %666, label %667

666:                                              ; preds = %662, %655
  br label %667

667:                                              ; preds = %662, %666
  %.str.5.sink2666 = phi ptr [ @.str.5, %666 ], [ @.str.2, %662 ]
  store i32 %657, ptr %656, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef nonnull @.str.4) #13
  %673 = load i32, ptr %670, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef nonnull @.str.4) #13
  %675 = load i32, ptr %656, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #13
  %677 = load i32, ptr %656, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef nonnull %.str.5.sink2666, i32 noundef %669, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %672, ptr noundef %674, ptr noundef %676, i32 noundef %677) #15
  call void @exit(i32 noundef 1) #16
  unreachable

679:                                              ; preds = %650
  call void @free(ptr noundef nonnull %540) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %6) #13
  %680 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %6, ptr noundef nonnull @.str.17, ptr noundef null) #13
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @test_count, align 4, !tbaa !5
  %683 = icmp eq i32 %680, -1
  br i1 %683, label %708, label %684

684:                                              ; preds = %679
  %685 = tail call ptr @__errno_location() #14
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @s2n_print_stacktrace(ptr noundef %687) #13
  %689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %690 = trunc nuw i8 %689 to i1
  br i1 %690, label %691, label %695

691:                                              ; preds = %684
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #13
  %694 = call i32 @isatty(i32 noundef %693) #13
  %.not1934 = icmp eq i32 %694, 0
  br i1 %.not1934, label %695, label %696

695:                                              ; preds = %691, %684
  br label %696

696:                                              ; preds = %691, %695
  %.str.5.sink2677 = phi ptr [ @.str.5, %695 ], [ @.str.2, %691 ]
  store i32 %686, ptr %685, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror(i32 noundef %700, ptr noundef nonnull @.str.4) #13
  %702 = load i32, ptr %699, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror_debug(i32 noundef %702, ptr noundef nonnull @.str.4) #13
  %704 = load i32, ptr %685, align 4, !tbaa !5
  %705 = call ptr @strerror(i32 noundef %704) #13
  %706 = load i32, ptr %685, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.5.sink2677, i32 noundef %698, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %701, ptr noundef %703, ptr noundef %705, i32 noundef %706) #15
  call void @exit(i32 noundef 1) #16
  unreachable

708:                                              ; preds = %679
  %709 = add nsw i32 %681, 2
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %6) #13
  %.not1935 = icmp eq i8 %710, 0
  br i1 %.not1935, label %735, label %711

711:                                              ; preds = %708
  %712 = tail call ptr @__errno_location() #14
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = call i32 @s2n_print_stacktrace(ptr noundef %714) #13
  %716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %717 = trunc nuw i8 %716 to i1
  br i1 %717, label %718, label %722

718:                                              ; preds = %711
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = call i32 @fileno(ptr noundef %719) #13
  %721 = call i32 @isatty(i32 noundef %720) #13
  %.not2524 = icmp eq i32 %721, 0
  br i1 %.not2524, label %722, label %723

722:                                              ; preds = %718, %711
  br label %723

723:                                              ; preds = %718, %722
  %.str.5.sink2688 = phi ptr [ @.str.5, %722 ], [ @.str.2, %718 ]
  store i32 %713, ptr %712, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.4) #13
  %729 = load i32, ptr %726, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.4) #13
  %731 = load i32, ptr %712, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #13
  %733 = load i32, ptr %712, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef nonnull %.str.5.sink2688, i32 noundef %725, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #15
  call void @exit(i32 noundef 1) #16
  unreachable

735:                                              ; preds = %708
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %7) #13
  %736 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %7, ptr noundef nonnull @.str.19, ptr noundef null) #13
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = add nsw i32 %737, 1
  store i32 %738, ptr @test_count, align 4, !tbaa !5
  %739 = icmp eq i32 %736, -1
  br i1 %739, label %764, label %740

740:                                              ; preds = %735
  %741 = tail call ptr @__errno_location() #14
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = call i32 @s2n_print_stacktrace(ptr noundef %743) #13
  %745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %746 = trunc nuw i8 %745 to i1
  br i1 %746, label %747, label %751

747:                                              ; preds = %740
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = call i32 @fileno(ptr noundef %748) #13
  %750 = call i32 @isatty(i32 noundef %749) #13
  %.not1936 = icmp eq i32 %750, 0
  br i1 %.not1936, label %751, label %752

751:                                              ; preds = %747, %740
  br label %752

752:                                              ; preds = %747, %751
  %.str.5.sink2699 = phi ptr [ @.str.5, %751 ], [ @.str.2, %747 ]
  store i32 %742, ptr %741, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror(i32 noundef %756, ptr noundef nonnull @.str.4) #13
  %758 = load i32, ptr %755, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror_debug(i32 noundef %758, ptr noundef nonnull @.str.4) #13
  %760 = load i32, ptr %741, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #13
  %762 = load i32, ptr %741, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef nonnull %.str.5.sink2699, i32 noundef %754, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %757, ptr noundef %759, ptr noundef %761, i32 noundef %762) #15
  call void @exit(i32 noundef 1) #16
  unreachable

764:                                              ; preds = %735
  %765 = add nsw i32 %737, 2
  store i32 %765, ptr @test_count, align 4, !tbaa !5
  %766 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %7) #13
  %.not1937 = icmp eq i8 %766, 0
  br i1 %.not1937, label %791, label %767

767:                                              ; preds = %764
  %768 = tail call ptr @__errno_location() #14
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #13
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

774:                                              ; preds = %767
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @fileno(ptr noundef %775) #13
  %777 = call i32 @isatty(i32 noundef %776) #13
  %.not2523 = icmp eq i32 %777, 0
  br i1 %.not2523, label %778, label %779

778:                                              ; preds = %774, %767
  br label %779

779:                                              ; preds = %774, %778
  %.str.5.sink2710 = phi ptr [ @.str.5, %778 ], [ @.str.2, %774 ]
  store i32 %769, ptr %768, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror(i32 noundef %783, ptr noundef nonnull @.str.4) #13
  %785 = load i32, ptr %782, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror_debug(i32 noundef %785, ptr noundef nonnull @.str.4) #13
  %787 = load i32, ptr %768, align 4, !tbaa !5
  %788 = call ptr @strerror(i32 noundef %787) #13
  %789 = load i32, ptr %768, align 4, !tbaa !5
  %790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.5.sink2710, i32 noundef %781, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %784, ptr noundef %786, ptr noundef %788, i32 noundef %789) #15
  call void @exit(i32 noundef 1) #16
  unreachable

791:                                              ; preds = %764
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #13
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #13
  %792 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %8) #13
  %793 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr @test_count, align 4, !tbaa !5
  %796 = icmp eq ptr %793, null
  br i1 %796, label %797, label %821

797:                                              ; preds = %791
  %798 = tail call ptr @__errno_location() #14
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @s2n_print_stacktrace(ptr noundef %800) #13
  %802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %803 = trunc nuw i8 %802 to i1
  br i1 %803, label %804, label %808

804:                                              ; preds = %797
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @fileno(ptr noundef %805) #13
  %807 = call i32 @isatty(i32 noundef %806) #13
  %.not2522 = icmp eq i32 %807, 0
  br i1 %.not2522, label %808, label %809

808:                                              ; preds = %804, %797
  br label %809

809:                                              ; preds = %804, %808
  %.str.5.sink2721 = phi ptr [ @.str.5, %808 ], [ @.str.2, %804 ]
  store i32 %799, ptr %798, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror(i32 noundef %813, ptr noundef nonnull @.str.4) #13
  %815 = load i32, ptr %812, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror_debug(i32 noundef %815, ptr noundef nonnull @.str.4) #13
  %817 = load i32, ptr %798, align 4, !tbaa !5
  %818 = call ptr @strerror(i32 noundef %817) #13
  %819 = load i32, ptr %798, align 4, !tbaa !5
  %820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %810, ptr noundef nonnull %.str.5.sink2721, i32 noundef %811, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %814, ptr noundef %816, ptr noundef %818, i32 noundef %819) #15
  call void @exit(i32 noundef 1) #16
  unreachable

821:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %822 = add nsw i32 %794, 2
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %793, ptr noundef nonnull @.str.11, ptr noundef nonnull %9) #13
  %824 = call zeroext i1 @s2n_result_is_ok(i32 %823)
  br i1 %824, label %849, label %825

825:                                              ; preds = %821
  %826 = tail call ptr @__errno_location() #14
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @s2n_print_stacktrace(ptr noundef %828) #13
  %830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %831 = trunc nuw i8 %830 to i1
  br i1 %831, label %832, label %836

832:                                              ; preds = %825
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = call i32 @fileno(ptr noundef %833) #13
  %835 = call i32 @isatty(i32 noundef %834) #13
  %.not1938 = icmp eq i32 %835, 0
  br i1 %.not1938, label %836, label %837

836:                                              ; preds = %832, %825
  br label %837

837:                                              ; preds = %832, %836
  %.str.5.sink2732 = phi ptr [ @.str.5, %836 ], [ @.str.2, %832 ]
  store i32 %827, ptr %826, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef nonnull @.str.4) #13
  %843 = load i32, ptr %840, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef nonnull @.str.4) #13
  %845 = load i32, ptr %826, align 4, !tbaa !5
  %846 = call ptr @strerror(i32 noundef %845) #13
  %847 = load i32, ptr %826, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef nonnull %.str.5.sink2732, i32 noundef %839, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %842, ptr noundef %844, ptr noundef %846, i32 noundef %847) #15
  call void @exit(i32 noundef 1) #16
  unreachable

849:                                              ; preds = %821
  %850 = getelementptr inbounds i8, ptr %9, i64 28
  %851 = load i32, ptr %850, align 4, !tbaa !15
  %852 = getelementptr inbounds i8, ptr %9, i64 24
  %853 = load i32, ptr %852, align 8, !tbaa !18
  %854 = sub i32 %851, %853
  %855 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %9, i32 noundef %854) #13
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = icmp eq ptr %855, null
  br i1 %858, label %859, label %883

859:                                              ; preds = %849
  %860 = tail call ptr @__errno_location() #14
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = call i32 @s2n_print_stacktrace(ptr noundef %862) #13
  %864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %865 = trunc nuw i8 %864 to i1
  br i1 %865, label %866, label %870

866:                                              ; preds = %859
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = call i32 @fileno(ptr noundef %867) #13
  %869 = call i32 @isatty(i32 noundef %868) #13
  %.not2521 = icmp eq i32 %869, 0
  br i1 %.not2521, label %870, label %871

870:                                              ; preds = %866, %859
  br label %871

871:                                              ; preds = %866, %870
  %.str.5.sink2743 = phi ptr [ @.str.5, %870 ], [ @.str.2, %866 ]
  store i32 %861, ptr %860, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror(i32 noundef %875, ptr noundef nonnull @.str.4) #13
  %877 = load i32, ptr %874, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef nonnull @.str.4) #13
  %879 = load i32, ptr %860, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #13
  %881 = load i32, ptr %860, align 4, !tbaa !5
  %882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %872, ptr noundef nonnull %.str.5.sink2743, i32 noundef %873, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %876, ptr noundef %878, ptr noundef %880, i32 noundef %881) #15
  call void @exit(i32 noundef 1) #16
  unreachable

883:                                              ; preds = %849
  %884 = add nsw i32 %856, 2
  store i32 %884, ptr @test_count, align 4, !tbaa !5
  %885 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %793, ptr noundef nonnull @.str.23) #13
  %886 = icmp eq i32 %885, -1
  br i1 %886, label %887, label %911

887:                                              ; preds = %883
  %888 = tail call ptr @__errno_location() #14
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @s2n_print_stacktrace(ptr noundef %890) #13
  %892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %893 = trunc nuw i8 %892 to i1
  br i1 %893, label %894, label %898

894:                                              ; preds = %887
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @fileno(ptr noundef %895) #13
  %897 = call i32 @isatty(i32 noundef %896) #13
  %.not2520 = icmp eq i32 %897, 0
  br i1 %.not2520, label %898, label %899

898:                                              ; preds = %894, %887
  br label %899

899:                                              ; preds = %894, %898
  %.str.5.sink2754 = phi ptr [ @.str.5, %898 ], [ @.str.2, %894 ]
  store i32 %889, ptr %888, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror(i32 noundef %903, ptr noundef nonnull @.str.4) #13
  %905 = load i32, ptr %902, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef nonnull @.str.4) #13
  %907 = load i32, ptr %888, align 4, !tbaa !5
  %908 = call ptr @strerror(i32 noundef %907) #13
  %909 = load i32, ptr %888, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %900, ptr noundef nonnull %.str.5.sink2754, i32 noundef %901, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %904, ptr noundef %906, ptr noundef %908, i32 noundef %909) #15
  call void @exit(i32 noundef 1) #16
  unreachable

911:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) #13
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = add nsw i32 %912, 1
  store i32 %913, ptr @test_count, align 4, !tbaa !5
  %914 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %10) #13
  %915 = icmp eq i32 %914, -1
  br i1 %915, label %916, label %940

916:                                              ; preds = %911
  %917 = tail call ptr @__errno_location() #14
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @s2n_print_stacktrace(ptr noundef %919) #13
  %921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %922 = trunc nuw i8 %921 to i1
  br i1 %922, label %923, label %927

923:                                              ; preds = %916
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @fileno(ptr noundef %924) #13
  %926 = call i32 @isatty(i32 noundef %925) #13
  %.not2519 = icmp eq i32 %926, 0
  br i1 %.not2519, label %927, label %928

927:                                              ; preds = %923, %916
  br label %928

928:                                              ; preds = %923, %927
  %.str.5.sink2765 = phi ptr [ @.str.5, %927 ], [ @.str.2, %923 ]
  store i32 %918, ptr %917, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror(i32 noundef %932, ptr noundef nonnull @.str.4) #13
  %934 = load i32, ptr %931, align 4, !tbaa !5
  %935 = call ptr @s2n_strerror_debug(i32 noundef %934, ptr noundef nonnull @.str.4) #13
  %936 = load i32, ptr %917, align 4, !tbaa !5
  %937 = call ptr @strerror(i32 noundef %936) #13
  %938 = load i32, ptr %917, align 4, !tbaa !5
  %939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %929, ptr noundef nonnull %.str.5.sink2765, i32 noundef %930, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %933, ptr noundef %935, ptr noundef %937, i32 noundef %938) #15
  call void @exit(i32 noundef 1) #16
  unreachable

940:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #13
  store i32 -1, ptr %11, align 4, !tbaa !5
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = add nsw i32 %941, 1
  store i32 %942, ptr @test_count, align 4, !tbaa !5
  %943 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %8, ptr noundef nonnull %793, ptr noundef nonnull %855, i32 noundef %854, ptr noundef nonnull %11, ptr noundef nonnull %10) #13
  %944 = call zeroext i1 @s2n_result_is_ok(i32 %943)
  br i1 %944, label %969, label %945

945:                                              ; preds = %940
  %946 = tail call ptr @__errno_location() #14
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @s2n_print_stacktrace(ptr noundef %948) #13
  %950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %951 = trunc nuw i8 %950 to i1
  br i1 %951, label %952, label %956

952:                                              ; preds = %945
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @fileno(ptr noundef %953) #13
  %955 = call i32 @isatty(i32 noundef %954) #13
  %.not1939 = icmp eq i32 %955, 0
  br i1 %.not1939, label %956, label %957

956:                                              ; preds = %952, %945
  br label %957

957:                                              ; preds = %952, %956
  %.str.5.sink2776 = phi ptr [ @.str.5, %956 ], [ @.str.2, %952 ]
  store i32 %947, ptr %946, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror(i32 noundef %961, ptr noundef nonnull @.str.4) #13
  %963 = load i32, ptr %960, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef nonnull @.str.4) #13
  %965 = load i32, ptr %946, align 4, !tbaa !5
  %966 = call ptr @strerror(i32 noundef %965) #13
  %967 = load i32, ptr %946, align 4, !tbaa !5
  %968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef nonnull %.str.5.sink2776, i32 noundef %959, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %962, ptr noundef %964, ptr noundef %966, i32 noundef %967) #15
  call void @exit(i32 noundef 1) #16
  unreachable

969:                                              ; preds = %940
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr @test_count, align 4, !tbaa !5
  %972 = load i32, ptr %11, align 4, !tbaa !5
  %973 = icmp eq i32 %972, 0
  br i1 %973, label %998, label %974

974:                                              ; preds = %969
  %975 = tail call ptr @__errno_location() #14
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @s2n_print_stacktrace(ptr noundef %977) #13
  %979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %980 = trunc nuw i8 %979 to i1
  br i1 %980, label %981, label %985

981:                                              ; preds = %974
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @fileno(ptr noundef %982) #13
  %984 = call i32 @isatty(i32 noundef %983) #13
  %.not1940 = icmp eq i32 %984, 0
  br i1 %.not1940, label %985, label %986

985:                                              ; preds = %981, %974
  br label %986

986:                                              ; preds = %981, %985
  %.str.5.sink2787 = phi ptr [ @.str.5, %985 ], [ @.str.2, %981 ]
  store i32 %976, ptr %975, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror(i32 noundef %990, ptr noundef nonnull @.str.4) #13
  %992 = load i32, ptr %989, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror_debug(i32 noundef %992, ptr noundef nonnull @.str.4) #13
  %994 = load i32, ptr %975, align 4, !tbaa !5
  %995 = call ptr @strerror(i32 noundef %994) #13
  %996 = load i32, ptr %975, align 4, !tbaa !5
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef nonnull %.str.5.sink2787, i32 noundef %988, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %991, ptr noundef %993, ptr noundef %995, i32 noundef %996) #15
  call void @exit(i32 noundef 1) #16
  unreachable

998:                                              ; preds = %969
  %999 = call i32 @s2n_connection_free(ptr noundef nonnull %793) #13
  %1000 = call i32 @s2n_pkey_free(ptr noundef nonnull %10) #13
  %1001 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #13
  %1002 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #13
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %12) #13
  %1003 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %12) #13
  %1004 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = icmp eq ptr %1004, null
  br i1 %1007, label %1008, label %1032

1008:                                             ; preds = %998
  %1009 = tail call ptr @__errno_location() #14
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011) #13
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc nuw i8 %1013 to i1
  br i1 %1014, label %1015, label %1019

1015:                                             ; preds = %1008
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #13
  %1018 = call i32 @isatty(i32 noundef %1017) #13
  %.not2518 = icmp eq i32 %1018, 0
  br i1 %.not2518, label %1019, label %1020

1019:                                             ; preds = %1015, %1008
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.5.sink2798 = phi ptr [ @.str.5, %1019 ], [ @.str.2, %1015 ]
  store i32 %1010, ptr %1009, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef nonnull @.str.4) #13
  %1026 = load i32, ptr %1023, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef nonnull @.str.4) #13
  %1028 = load i32, ptr %1009, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #13
  %1030 = load i32, ptr %1009, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.5.sink2798, i32 noundef %1022, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, i32 noundef %1030) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1032:                                             ; preds = %998
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %1033 = add nsw i32 %1005, 2
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %1004, ptr noundef nonnull @.str.11, ptr noundef nonnull %13) #13
  %1035 = call zeroext i1 @s2n_result_is_ok(i32 %1034)
  br i1 %1035, label %1060, label %1036

1036:                                             ; preds = %1032
  %1037 = tail call ptr @__errno_location() #14
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = call i32 @s2n_print_stacktrace(ptr noundef %1039) #13
  %1041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1042 = trunc nuw i8 %1041 to i1
  br i1 %1042, label %1043, label %1047

1043:                                             ; preds = %1036
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @fileno(ptr noundef %1044) #13
  %1046 = call i32 @isatty(i32 noundef %1045) #13
  %.not1941 = icmp eq i32 %1046, 0
  br i1 %.not1941, label %1047, label %1048

1047:                                             ; preds = %1043, %1036
  br label %1048

1048:                                             ; preds = %1043, %1047
  %.str.5.sink2809 = phi ptr [ @.str.5, %1047 ], [ @.str.2, %1043 ]
  store i32 %1038, ptr %1037, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef nonnull @.str.4) #13
  %1054 = load i32, ptr %1051, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror_debug(i32 noundef %1054, ptr noundef nonnull @.str.4) #13
  %1056 = load i32, ptr %1037, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #13
  %1058 = load i32, ptr %1037, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef nonnull %.str.5.sink2809, i32 noundef %1050, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1053, ptr noundef %1055, ptr noundef %1057, i32 noundef %1058) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1060:                                             ; preds = %1032
  %1061 = getelementptr inbounds i8, ptr %13, i64 28
  %1062 = load i32, ptr %1061, align 4, !tbaa !15
  %1063 = getelementptr inbounds i8, ptr %13, i64 24
  %1064 = load i32, ptr %1063, align 8, !tbaa !18
  %1065 = sub i32 %1062, %1064
  %1066 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %13, i32 noundef %1065) #13
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = icmp eq ptr %1066, null
  br i1 %1069, label %1070, label %1094

1070:                                             ; preds = %1060
  %1071 = tail call ptr @__errno_location() #14
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @s2n_print_stacktrace(ptr noundef %1073) #13
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1077, label %1081

1077:                                             ; preds = %1070
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @fileno(ptr noundef %1078) #13
  %1080 = call i32 @isatty(i32 noundef %1079) #13
  %.not2517 = icmp eq i32 %1080, 0
  br i1 %.not2517, label %1081, label %1082

1081:                                             ; preds = %1077, %1070
  br label %1082

1082:                                             ; preds = %1077, %1081
  %.str.5.sink2820 = phi ptr [ @.str.5, %1081 ], [ @.str.2, %1077 ]
  store i32 %1072, ptr %1071, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @s2n_strerror(i32 noundef %1086, ptr noundef nonnull @.str.4) #13
  %1088 = load i32, ptr %1085, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror_debug(i32 noundef %1088, ptr noundef nonnull @.str.4) #13
  %1090 = load i32, ptr %1071, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #13
  %1092 = load i32, ptr %1071, align 4, !tbaa !5
  %1093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.5.sink2820, i32 noundef %1084, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %1087, ptr noundef %1089, ptr noundef %1091, i32 noundef %1092) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1094:                                             ; preds = %1060
  %1095 = add nsw i32 %1067, 2
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1004, ptr noundef nonnull @.str.23) #13
  %1097 = icmp eq i32 %1096, -1
  br i1 %1097, label %1098, label %1122

1098:                                             ; preds = %1094
  %1099 = tail call ptr @__errno_location() #14
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @s2n_print_stacktrace(ptr noundef %1101) #13
  %1103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1104 = trunc nuw i8 %1103 to i1
  br i1 %1104, label %1105, label %1109

1105:                                             ; preds = %1098
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = call i32 @fileno(ptr noundef %1106) #13
  %1108 = call i32 @isatty(i32 noundef %1107) #13
  %.not2516 = icmp eq i32 %1108, 0
  br i1 %.not2516, label %1109, label %1110

1109:                                             ; preds = %1105, %1098
  br label %1110

1110:                                             ; preds = %1105, %1109
  %.str.5.sink2831 = phi ptr [ @.str.5, %1109 ], [ @.str.2, %1105 ]
  store i32 %1100, ptr %1099, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = load i32, ptr @test_count, align 4, !tbaa !5
  %1113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror(i32 noundef %1114, ptr noundef nonnull @.str.4) #13
  %1116 = load i32, ptr %1113, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror_debug(i32 noundef %1116, ptr noundef nonnull @.str.4) #13
  %1118 = load i32, ptr %1099, align 4, !tbaa !5
  %1119 = call ptr @strerror(i32 noundef %1118) #13
  %1120 = load i32, ptr %1099, align 4, !tbaa !5
  %1121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1111, ptr noundef nonnull %.str.5.sink2831, i32 noundef %1112, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %1115, ptr noundef %1117, ptr noundef %1119, i32 noundef %1120) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1122:                                             ; preds = %1094
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = add nsw i32 %1123, 1
  store i32 %1124, ptr @test_count, align 4, !tbaa !5
  %1125 = call i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef nonnull %12, i16 noundef zeroext 2) #13
  %1126 = icmp eq i32 %1125, -1
  br i1 %1126, label %1127, label %1151

1127:                                             ; preds = %1122
  %1128 = tail call ptr @__errno_location() #14
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @s2n_print_stacktrace(ptr noundef %1130) #13
  %1132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1133 = trunc nuw i8 %1132 to i1
  br i1 %1133, label %1134, label %1138

1134:                                             ; preds = %1127
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @fileno(ptr noundef %1135) #13
  %1137 = call i32 @isatty(i32 noundef %1136) #13
  %.not2515 = icmp eq i32 %1137, 0
  br i1 %.not2515, label %1138, label %1139

1138:                                             ; preds = %1134, %1127
  br label %1139

1139:                                             ; preds = %1134, %1138
  %.str.5.sink2842 = phi ptr [ @.str.5, %1138 ], [ @.str.2, %1134 ]
  store i32 %1129, ptr %1128, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror(i32 noundef %1143, ptr noundef nonnull @.str.4) #13
  %1145 = load i32, ptr %1142, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef nonnull @.str.4) #13
  %1147 = load i32, ptr %1128, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #13
  %1149 = load i32, ptr %1128, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef nonnull %.str.5.sink2842, i32 noundef %1141, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %1144, ptr noundef %1146, ptr noundef %1148, i32 noundef %1149) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1151:                                             ; preds = %1122
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) #13
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = add nsw i32 %1152, 1
  store i32 %1153, ptr @test_count, align 4, !tbaa !5
  %1154 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %14) #13
  %1155 = icmp eq i32 %1154, -1
  br i1 %1155, label %1156, label %1180

1156:                                             ; preds = %1151
  %1157 = tail call ptr @__errno_location() #14
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @s2n_print_stacktrace(ptr noundef %1159) #13
  %1161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1162 = trunc nuw i8 %1161 to i1
  br i1 %1162, label %1163, label %1167

1163:                                             ; preds = %1156
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = call i32 @fileno(ptr noundef %1164) #13
  %1166 = call i32 @isatty(i32 noundef %1165) #13
  %.not2514 = icmp eq i32 %1166, 0
  br i1 %.not2514, label %1167, label %1168

1167:                                             ; preds = %1163, %1156
  br label %1168

1168:                                             ; preds = %1163, %1167
  %.str.5.sink2853 = phi ptr [ @.str.5, %1167 ], [ @.str.2, %1163 ]
  store i32 %1158, ptr %1157, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = load i32, ptr @test_count, align 4, !tbaa !5
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror(i32 noundef %1172, ptr noundef nonnull @.str.4) #13
  %1174 = load i32, ptr %1171, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror_debug(i32 noundef %1174, ptr noundef nonnull @.str.4) #13
  %1176 = load i32, ptr %1157, align 4, !tbaa !5
  %1177 = call ptr @strerror(i32 noundef %1176) #13
  %1178 = load i32, ptr %1157, align 4, !tbaa !5
  %1179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1169, ptr noundef nonnull %.str.5.sink2853, i32 noundef %1170, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %1173, ptr noundef %1175, ptr noundef %1177, i32 noundef %1178) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1180:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #13
  store i32 -1, ptr %15, align 4, !tbaa !5
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = add nsw i32 %1181, 1
  store i32 %1182, ptr @test_count, align 4, !tbaa !5
  %1183 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %12, ptr noundef nonnull %1004, ptr noundef nonnull %1066, i32 noundef %1065, ptr noundef nonnull %15, ptr noundef nonnull %14) #13
  %1184 = call zeroext i1 @s2n_result_is_ok(i32 %1183)
  br i1 %1184, label %1209, label %1185

1185:                                             ; preds = %1180
  %1186 = tail call ptr @__errno_location() #14
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @s2n_print_stacktrace(ptr noundef %1188) #13
  %1190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1191 = trunc nuw i8 %1190 to i1
  br i1 %1191, label %1192, label %1196

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

1196:                                             ; preds = %1192, %1185
  br label %1197

1197:                                             ; preds = %1192, %1196
  %.str.5.sink2864 = phi ptr [ @.str.5, %1196 ], [ @.str.2, %1192 ]
  store i32 %1187, ptr %1186, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef nonnull @.str.4) #13
  %1203 = load i32, ptr %1200, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror_debug(i32 noundef %1203, ptr noundef nonnull @.str.4) #13
  %1205 = load i32, ptr %1186, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #13
  %1207 = load i32, ptr %1186, align 4, !tbaa !5
  %1208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1198, ptr noundef nonnull %.str.5.sink2864, i32 noundef %1199, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1202, ptr noundef %1204, ptr noundef %1206, i32 noundef %1207) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1209:                                             ; preds = %1180
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = load i32, ptr %15, align 4, !tbaa !5
  %1213 = icmp eq i32 %1212, 0
  br i1 %1213, label %1238, label %1214

1214:                                             ; preds = %1209
  %1215 = tail call ptr @__errno_location() #14
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = call i32 @s2n_print_stacktrace(ptr noundef %1217) #13
  %1219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1220 = trunc nuw i8 %1219 to i1
  br i1 %1220, label %1221, label %1225

1221:                                             ; preds = %1214
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @fileno(ptr noundef %1222) #13
  %1224 = call i32 @isatty(i32 noundef %1223) #13
  %.not1943 = icmp eq i32 %1224, 0
  br i1 %.not1943, label %1225, label %1226

1225:                                             ; preds = %1221, %1214
  br label %1226

1226:                                             ; preds = %1221, %1225
  %.str.5.sink2875 = phi ptr [ @.str.5, %1225 ], [ @.str.2, %1221 ]
  store i32 %1216, ptr %1215, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror(i32 noundef %1230, ptr noundef nonnull @.str.4) #13
  %1232 = load i32, ptr %1229, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror_debug(i32 noundef %1232, ptr noundef nonnull @.str.4) #13
  %1234 = load i32, ptr %1215, align 4, !tbaa !5
  %1235 = call ptr @strerror(i32 noundef %1234) #13
  %1236 = load i32, ptr %1215, align 4, !tbaa !5
  %1237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1227, ptr noundef nonnull %.str.5.sink2875, i32 noundef %1228, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %1231, ptr noundef %1233, ptr noundef %1235, i32 noundef %1236) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1238:                                             ; preds = %1209
  %1239 = call i32 @s2n_connection_free(ptr noundef nonnull %1004) #13
  %1240 = call i32 @s2n_pkey_free(ptr noundef nonnull %14) #13
  %1241 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #13
  %1242 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %16) #13
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %17) #13
  %1243 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %17, ptr noundef nonnull %16, i8 noundef zeroext 1) #13
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = add nsw i32 %1244, 1
  store i32 %1245, ptr @test_count, align 4, !tbaa !5
  %1246 = call i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef nonnull %17, i16 noundef zeroext 0) #13
  %1247 = icmp eq i32 %1246, -1
  br i1 %1247, label %1272, label %1248

1248:                                             ; preds = %1238
  %1249 = tail call ptr @__errno_location() #14
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @s2n_print_stacktrace(ptr noundef %1251) #13
  %1253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1254 = trunc nuw i8 %1253 to i1
  br i1 %1254, label %1255, label %1259

1255:                                             ; preds = %1248
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 @fileno(ptr noundef %1256) #13
  %1258 = call i32 @isatty(i32 noundef %1257) #13
  %.not1944 = icmp eq i32 %1258, 0
  br i1 %.not1944, label %1259, label %1260

1259:                                             ; preds = %1255, %1248
  br label %1260

1260:                                             ; preds = %1255, %1259
  %.str.5.sink2886 = phi ptr [ @.str.5, %1259 ], [ @.str.2, %1255 ]
  store i32 %1250, ptr %1249, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = load i32, ptr @test_count, align 4, !tbaa !5
  %1263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror(i32 noundef %1264, ptr noundef nonnull @.str.4) #13
  %1266 = load i32, ptr %1263, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef nonnull @.str.4) #13
  %1268 = load i32, ptr %1249, align 4, !tbaa !5
  %1269 = call ptr @strerror(i32 noundef %1268) #13
  %1270 = load i32, ptr %1249, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1261, ptr noundef nonnull %.str.5.sink2886, i32 noundef %1262, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1265, ptr noundef %1267, ptr noundef %1269, i32 noundef %1270) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1272:                                             ; preds = %1238
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = add nsw i32 %1273, 1
  store i32 %1274, ptr @test_count, align 4, !tbaa !5
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = icmp eq i32 %1276, 469762089
  br i1 %1277, label %1301, label %1278

1278:                                             ; preds = %1272
  %1279 = tail call ptr @__errno_location() #14
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @s2n_print_stacktrace(ptr noundef %1281) #13
  %1283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1284 = trunc nuw i8 %1283 to i1
  br i1 %1284, label %1285, label %1289

1285:                                             ; preds = %1278
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @fileno(ptr noundef %1286) #13
  %1288 = call i32 @isatty(i32 noundef %1287) #13
  %.not1945 = icmp eq i32 %1288, 0
  br i1 %.not1945, label %1289, label %1290

1289:                                             ; preds = %1285, %1278
  br label %1290

1290:                                             ; preds = %1285, %1289
  %.str.5.sink2897 = phi ptr [ @.str.5, %1289 ], [ @.str.2, %1285 ]
  store i32 %1280, ptr %1279, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = load i32, ptr %1275, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef nonnull @.str.4) #13
  %1295 = load i32, ptr %1275, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror_debug(i32 noundef %1295, ptr noundef nonnull @.str.4) #13
  %1297 = load i32, ptr %1279, align 4, !tbaa !5
  %1298 = call ptr @strerror(i32 noundef %1297) #13
  %1299 = load i32, ptr %1279, align 4, !tbaa !5
  %1300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1291, ptr noundef nonnull %.str.5.sink2897, i32 noundef %1292, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1294, ptr noundef %1296, ptr noundef %1298, i32 noundef %1299) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1301:                                             ; preds = %1272
  %1302 = add nsw i32 %1273, 2
  store i32 %1302, ptr @test_count, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %1304 = icmp eq ptr %1303, null
  br i1 %1304, label %1305, label %1328

1305:                                             ; preds = %1301
  %1306 = tail call ptr @__errno_location() #14
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @s2n_print_stacktrace(ptr noundef %1308) #13
  %1310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1311 = trunc nuw i8 %1310 to i1
  br i1 %1311, label %1312, label %1316

1312:                                             ; preds = %1305
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @fileno(ptr noundef %1313) #13
  %1315 = call i32 @isatty(i32 noundef %1314) #13
  %.not2513 = icmp eq i32 %1315, 0
  br i1 %.not2513, label %1316, label %1317

1316:                                             ; preds = %1312, %1305
  br label %1317

1317:                                             ; preds = %1312, %1316
  %.str.5.sink2906 = phi ptr [ @.str.5, %1316 ], [ @.str.2, %1312 ]
  store i32 %1307, ptr %1306, align 4, !tbaa !5
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = load i32, ptr %1275, align 4, !tbaa !5
  %1321 = call ptr @s2n_strerror(i32 noundef %1320, ptr noundef nonnull @.str.4) #13
  %1322 = load i32, ptr %1275, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror_debug(i32 noundef %1322, ptr noundef nonnull @.str.4) #13
  %1324 = load i32, ptr %1306, align 4, !tbaa !5
  %1325 = call ptr @strerror(i32 noundef %1324) #13
  %1326 = load i32, ptr %1306, align 4, !tbaa !5
  %1327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1318, ptr noundef nonnull %.str.5.sink2906, i32 noundef %1319, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1321, ptr noundef %1323, ptr noundef %1325, i32 noundef %1326) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1328:                                             ; preds = %1301
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %1329 = tail call ptr @__errno_location() #14
  store i32 0, ptr %1329, align 4, !tbaa !5
  %1330 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %17) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %18) #13
  %1331 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %1333 = add nsw i32 %1332, 1
  store i32 %1333, ptr @test_count, align 4, !tbaa !5
  %1334 = icmp eq ptr %1331, null
  br i1 %1334, label %1335, label %1357

1335:                                             ; preds = %1328
  %1336 = load i32, ptr %1329, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = call i32 @s2n_print_stacktrace(ptr noundef %1337) #13
  %1339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1340 = trunc nuw i8 %1339 to i1
  br i1 %1340, label %1341, label %1345

1341:                                             ; preds = %1335
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = call i32 @fileno(ptr noundef %1342) #13
  %1344 = call i32 @isatty(i32 noundef %1343) #13
  %.not2512 = icmp eq i32 %1344, 0
  br i1 %.not2512, label %1345, label %1346

1345:                                             ; preds = %1341, %1335
  br label %1346

1346:                                             ; preds = %1341, %1345
  %.str.5.sink2915 = phi ptr [ @.str.5, %1345 ], [ @.str.2, %1341 ]
  store i32 %1336, ptr %1329, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = load i32, ptr %1275, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror(i32 noundef %1349, ptr noundef nonnull @.str.4) #13
  %1351 = load i32, ptr %1275, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror_debug(i32 noundef %1351, ptr noundef nonnull @.str.4) #13
  %1353 = load i32, ptr %1329, align 4, !tbaa !5
  %1354 = call ptr @strerror(i32 noundef %1353) #13
  %1355 = load i32, ptr %1329, align 4, !tbaa !5
  %1356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef nonnull %.str.5.sink2915, i32 noundef %1348, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %1350, ptr noundef %1352, ptr noundef %1354, i32 noundef %1355) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1357:                                             ; preds = %1328
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %19, i8 0, i64 16, i1 false)
  %1358 = add nsw i32 %1332, 2
  store i32 %1358, ptr @test_count, align 4, !tbaa !5
  %1359 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %1331, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %19) #13
  %1360 = icmp eq i32 %1359, -1
  br i1 %1360, label %1361, label %1383

1361:                                             ; preds = %1357
  %1362 = load i32, ptr %1329, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @s2n_print_stacktrace(ptr noundef %1363) #13
  %1365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1366 = trunc nuw i8 %1365 to i1
  br i1 %1366, label %1367, label %1371

1367:                                             ; preds = %1361
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = call i32 @fileno(ptr noundef %1368) #13
  %1370 = call i32 @isatty(i32 noundef %1369) #13
  %.not2511 = icmp eq i32 %1370, 0
  br i1 %.not2511, label %1371, label %1372

1371:                                             ; preds = %1367, %1361
  br label %1372

1372:                                             ; preds = %1367, %1371
  %.str.5.sink2924 = phi ptr [ @.str.5, %1371 ], [ @.str.2, %1367 ]
  store i32 %1362, ptr %1329, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = load i32, ptr %1275, align 4, !tbaa !5
  %1376 = call ptr @s2n_strerror(i32 noundef %1375, ptr noundef nonnull @.str.4) #13
  %1377 = load i32, ptr %1275, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef nonnull @.str.4) #13
  %1379 = load i32, ptr %1329, align 4, !tbaa !5
  %1380 = call ptr @strerror(i32 noundef %1379) #13
  %1381 = load i32, ptr %1329, align 4, !tbaa !5
  %1382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef nonnull %.str.5.sink2924, i32 noundef %1374, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %1376, ptr noundef %1378, ptr noundef %1380, i32 noundef %1381) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1383:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %20) #13
  %1384 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %20, ptr noundef nonnull %18, i8 noundef zeroext 1) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %21, i8 0, i64 40, i1 false)
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = add nsw i32 %1385, 1
  store i32 %1386, ptr @test_count, align 4, !tbaa !5
  %1387 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %1331, ptr noundef nonnull @.str.11, ptr noundef nonnull %21) #13
  %1388 = call zeroext i1 @s2n_result_is_ok(i32 %1387)
  br i1 %1388, label %1411, label %1389

1389:                                             ; preds = %1383
  %1390 = load i32, ptr %1329, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @s2n_print_stacktrace(ptr noundef %1391) #13
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1399

1395:                                             ; preds = %1389
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #13
  %1398 = call i32 @isatty(i32 noundef %1397) #13
  %.not1946 = icmp eq i32 %1398, 0
  br i1 %.not1946, label %1399, label %1400

1399:                                             ; preds = %1395, %1389
  br label %1400

1400:                                             ; preds = %1395, %1399
  %.str.5.sink2933 = phi ptr [ @.str.5, %1399 ], [ @.str.2, %1395 ]
  store i32 %1390, ptr %1329, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = load i32, ptr %1275, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror(i32 noundef %1403, ptr noundef nonnull @.str.4) #13
  %1405 = load i32, ptr %1275, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror_debug(i32 noundef %1405, ptr noundef nonnull @.str.4) #13
  %1407 = load i32, ptr %1329, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #13
  %1409 = load i32, ptr %1329, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull %.str.5.sink2933, i32 noundef %1402, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %1404, ptr noundef %1406, ptr noundef %1408, i32 noundef %1409) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1411:                                             ; preds = %1383
  %1412 = getelementptr inbounds i8, ptr %21, i64 28
  %1413 = load i32, ptr %1412, align 4, !tbaa !15
  %1414 = getelementptr inbounds i8, ptr %21, i64 24
  %1415 = load i32, ptr %1414, align 8, !tbaa !18
  %1416 = sub i32 %1413, %1415
  %1417 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %21, i32 noundef %1416) #13
  %1418 = load i32, ptr @test_count, align 4, !tbaa !5
  %1419 = add nsw i32 %1418, 1
  store i32 %1419, ptr @test_count, align 4, !tbaa !5
  %1420 = icmp eq ptr %1417, null
  br i1 %1420, label %1421, label %1443

1421:                                             ; preds = %1411
  %1422 = load i32, ptr %1329, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = call i32 @s2n_print_stacktrace(ptr noundef %1423) #13
  %1425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1426 = trunc nuw i8 %1425 to i1
  br i1 %1426, label %1427, label %1431

1427:                                             ; preds = %1421
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = call i32 @fileno(ptr noundef %1428) #13
  %1430 = call i32 @isatty(i32 noundef %1429) #13
  %.not2510 = icmp eq i32 %1430, 0
  br i1 %.not2510, label %1431, label %1432

1431:                                             ; preds = %1427, %1421
  br label %1432

1432:                                             ; preds = %1427, %1431
  %.str.5.sink2942 = phi ptr [ @.str.5, %1431 ], [ @.str.2, %1427 ]
  store i32 %1422, ptr %1329, align 4, !tbaa !5
  %1433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1434 = load i32, ptr @test_count, align 4, !tbaa !5
  %1435 = load i32, ptr %1275, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror(i32 noundef %1435, ptr noundef nonnull @.str.4) #13
  %1437 = load i32, ptr %1275, align 4, !tbaa !5
  %1438 = call ptr @s2n_strerror_debug(i32 noundef %1437, ptr noundef nonnull @.str.4) #13
  %1439 = load i32, ptr %1329, align 4, !tbaa !5
  %1440 = call ptr @strerror(i32 noundef %1439) #13
  %1441 = load i32, ptr %1329, align 4, !tbaa !5
  %1442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1433, ptr noundef nonnull %.str.5.sink2942, i32 noundef %1434, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %1436, ptr noundef %1438, ptr noundef %1440, i32 noundef %1441) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1443:                                             ; preds = %1411
  %1444 = add nsw i32 %1418, 2
  store i32 %1444, ptr @test_count, align 4, !tbaa !5
  %1445 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1331, ptr noundef nonnull @.str.23) #13
  %1446 = icmp eq i32 %1445, -1
  br i1 %1446, label %1447, label %1469

1447:                                             ; preds = %1443
  %1448 = load i32, ptr %1329, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @s2n_print_stacktrace(ptr noundef %1449) #13
  %1451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1452 = trunc nuw i8 %1451 to i1
  br i1 %1452, label %1453, label %1457

1453:                                             ; preds = %1447
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @fileno(ptr noundef %1454) #13
  %1456 = call i32 @isatty(i32 noundef %1455) #13
  %.not2509 = icmp eq i32 %1456, 0
  br i1 %.not2509, label %1457, label %1458

1457:                                             ; preds = %1453, %1447
  br label %1458

1458:                                             ; preds = %1453, %1457
  %.str.5.sink2951 = phi ptr [ @.str.5, %1457 ], [ @.str.2, %1453 ]
  store i32 %1448, ptr %1329, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = load i32, ptr %1275, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror(i32 noundef %1461, ptr noundef nonnull @.str.4) #13
  %1463 = load i32, ptr %1275, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror_debug(i32 noundef %1463, ptr noundef nonnull @.str.4) #13
  %1465 = load i32, ptr %1329, align 4, !tbaa !5
  %1466 = call ptr @strerror(i32 noundef %1465) #13
  %1467 = load i32, ptr %1329, align 4, !tbaa !5
  %1468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1459, ptr noundef nonnull %.str.5.sink2951, i32 noundef %1460, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %1462, ptr noundef %1464, ptr noundef %1466, i32 noundef %1467) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1469:                                             ; preds = %1443
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #13
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = add nsw i32 %1470, 1
  store i32 %1471, ptr @test_count, align 4, !tbaa !5
  %1472 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %22) #13
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1496

1474:                                             ; preds = %1469
  %1475 = load i32, ptr %1329, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @s2n_print_stacktrace(ptr noundef %1476) #13
  %1478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1479 = trunc nuw i8 %1478 to i1
  br i1 %1479, label %1480, label %1484

1480:                                             ; preds = %1474
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @fileno(ptr noundef %1481) #13
  %1483 = call i32 @isatty(i32 noundef %1482) #13
  %.not2508 = icmp eq i32 %1483, 0
  br i1 %.not2508, label %1484, label %1485

1484:                                             ; preds = %1480, %1474
  br label %1485

1485:                                             ; preds = %1480, %1484
  %.str.5.sink2960 = phi ptr [ @.str.5, %1484 ], [ @.str.2, %1480 ]
  store i32 %1475, ptr %1329, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = load i32, ptr %1275, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef nonnull @.str.4) #13
  %1490 = load i32, ptr %1275, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef nonnull @.str.4) #13
  %1492 = load i32, ptr %1329, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #13
  %1494 = load i32, ptr %1329, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef nonnull %.str.5.sink2960, i32 noundef %1487, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %1489, ptr noundef %1491, ptr noundef %1493, i32 noundef %1494) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1496:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #13
  store i32 -1, ptr %23, align 4, !tbaa !5
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = add nsw i32 %1497, 1
  store i32 %1498, ptr @test_count, align 4, !tbaa !5
  %1499 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %20, ptr noundef nonnull %1331, ptr noundef nonnull %1417, i32 noundef %1416, ptr noundef nonnull %23, ptr noundef nonnull %22) #13
  %1500 = call zeroext i1 @s2n_result_is_error(i32 %1499)
  br i1 %1500, label %1523, label %1501

1501:                                             ; preds = %1496
  %1502 = load i32, ptr %1329, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = call i32 @s2n_print_stacktrace(ptr noundef %1503) #13
  %1505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1506 = trunc nuw i8 %1505 to i1
  br i1 %1506, label %1507, label %1511

1507:                                             ; preds = %1501
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = call i32 @fileno(ptr noundef %1508) #13
  %1510 = call i32 @isatty(i32 noundef %1509) #13
  %.not1947 = icmp eq i32 %1510, 0
  br i1 %.not1947, label %1511, label %1512

1511:                                             ; preds = %1507, %1501
  br label %1512

1512:                                             ; preds = %1507, %1511
  %.str.5.sink2969 = phi ptr [ @.str.5, %1511 ], [ @.str.2, %1507 ]
  store i32 %1502, ptr %1329, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = load i32, ptr %1275, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror(i32 noundef %1515, ptr noundef nonnull @.str.4) #13
  %1517 = load i32, ptr %1275, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef nonnull @.str.4) #13
  %1519 = load i32, ptr %1329, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #13
  %1521 = load i32, ptr %1329, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef nonnull %.str.5.sink2969, i32 noundef %1514, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %1516, ptr noundef %1518, ptr noundef %1520, i32 noundef %1521) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1523:                                             ; preds = %1496
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr @test_count, align 4, !tbaa !5
  %1526 = load i32, ptr %1275, align 4, !tbaa !5
  %1527 = icmp eq i32 %1526, 335544366
  br i1 %1527, label %1550, label %1528

1528:                                             ; preds = %1523
  %1529 = load i32, ptr %1329, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @s2n_print_stacktrace(ptr noundef %1530) #13
  %1532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc nuw i8 %1532 to i1
  br i1 %1533, label %1534, label %1538

1534:                                             ; preds = %1528
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #13
  %1537 = call i32 @isatty(i32 noundef %1536) #13
  %.not1948 = icmp eq i32 %1537, 0
  br i1 %.not1948, label %1538, label %1539

1538:                                             ; preds = %1534, %1528
  br label %1539

1539:                                             ; preds = %1534, %1538
  %.str.5.sink2978 = phi ptr [ @.str.5, %1538 ], [ @.str.2, %1534 ]
  store i32 %1529, ptr %1329, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = load i32, ptr %1275, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror(i32 noundef %1542, ptr noundef nonnull @.str.4) #13
  %1544 = load i32, ptr %1275, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror_debug(i32 noundef %1544, ptr noundef nonnull @.str.4) #13
  %1546 = load i32, ptr %1329, align 4, !tbaa !5
  %1547 = call ptr @strerror(i32 noundef %1546) #13
  %1548 = load i32, ptr %1329, align 4, !tbaa !5
  %1549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull %.str.5.sink2978, i32 noundef %1541, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %1543, ptr noundef %1545, ptr noundef %1547, i32 noundef %1548) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1550:                                             ; preds = %1523
  %1551 = add nsw i32 %1524, 2
  store i32 %1551, ptr @test_count, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %1553 = icmp eq ptr %1552, null
  br i1 %1553, label %1554, label %1576

1554:                                             ; preds = %1550
  %1555 = load i32, ptr %1329, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = call i32 @s2n_print_stacktrace(ptr noundef %1556) #13
  %1558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1559 = trunc nuw i8 %1558 to i1
  br i1 %1559, label %1560, label %1564

1560:                                             ; preds = %1554
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = call i32 @fileno(ptr noundef %1561) #13
  %1563 = call i32 @isatty(i32 noundef %1562) #13
  %.not2507 = icmp eq i32 %1563, 0
  br i1 %.not2507, label %1564, label %1565

1564:                                             ; preds = %1560, %1554
  br label %1565

1565:                                             ; preds = %1560, %1564
  %.str.5.sink2987 = phi ptr [ @.str.5, %1564 ], [ @.str.2, %1560 ]
  store i32 %1555, ptr %1329, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = load i32, ptr %1275, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef nonnull @.str.4) #13
  %1570 = load i32, ptr %1275, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef nonnull @.str.4) #13
  %1572 = load i32, ptr %1329, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #13
  %1574 = load i32, ptr %1329, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef nonnull %.str.5.sink2987, i32 noundef %1567, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %1569, ptr noundef %1571, ptr noundef %1573, i32 noundef %1574) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1576:                                             ; preds = %1550
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr @test_count, align 4, !tbaa !5
  %1579 = getelementptr inbounds i8, ptr %19, i64 9
  %1580 = load i8, ptr %1579, align 1, !tbaa !19
  %1581 = icmp eq i8 %1580, 0
  br i1 %1581, label %1604, label %1582

1582:                                             ; preds = %1576
  %1583 = load i32, ptr %1329, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = call i32 @s2n_print_stacktrace(ptr noundef %1584) #13
  %1586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1587 = trunc nuw i8 %1586 to i1
  br i1 %1587, label %1588, label %1592

1588:                                             ; preds = %1582
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @fileno(ptr noundef %1589) #13
  %1591 = call i32 @isatty(i32 noundef %1590) #13
  %.not1949 = icmp eq i32 %1591, 0
  br i1 %.not1949, label %1592, label %1593

1592:                                             ; preds = %1588, %1582
  br label %1593

1593:                                             ; preds = %1588, %1592
  %.str.5.sink2996 = phi ptr [ @.str.5, %1592 ], [ @.str.2, %1588 ]
  store i32 %1583, ptr %1329, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = load i32, ptr %1275, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror(i32 noundef %1596, ptr noundef nonnull @.str.4) #13
  %1598 = load i32, ptr %1275, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror_debug(i32 noundef %1598, ptr noundef nonnull @.str.4) #13
  %1600 = load i32, ptr %1329, align 4, !tbaa !5
  %1601 = call ptr @strerror(i32 noundef %1600) #13
  %1602 = load i32, ptr %1329, align 4, !tbaa !5
  %1603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1594, ptr noundef nonnull %.str.5.sink2996, i32 noundef %1595, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %1597, ptr noundef %1599, ptr noundef %1601, i32 noundef %1602) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1604:                                             ; preds = %1576
  %1605 = call i32 @s2n_connection_free(ptr noundef nonnull %1331) #13
  %1606 = call i32 @s2n_pkey_free(ptr noundef nonnull %22) #13
  %1607 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %20) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #13
  %1608 = call i32 @s2n_stuffer_free(ptr noundef nonnull %21) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %24) #13
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = add nsw i32 %1609, 1
  store i32 %1610, ptr @test_count, align 4, !tbaa !5
  %1611 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %24, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %1612 = icmp eq i32 %1611, 0
  br i1 %1612, label %1635, label %1613

1613:                                             ; preds = %1604
  %1614 = load i32, ptr %1329, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @s2n_print_stacktrace(ptr noundef %1615) #13
  %1617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1618 = trunc nuw i8 %1617 to i1
  br i1 %1618, label %1619, label %1623

1619:                                             ; preds = %1613
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @fileno(ptr noundef %1620) #13
  %1622 = call i32 @isatty(i32 noundef %1621) #13
  %.not1950 = icmp eq i32 %1622, 0
  br i1 %.not1950, label %1623, label %1624

1623:                                             ; preds = %1619, %1613
  br label %1624

1624:                                             ; preds = %1619, %1623
  %.str.5.sink3005 = phi ptr [ @.str.5, %1623 ], [ @.str.2, %1619 ]
  store i32 %1614, ptr %1329, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = load i32, ptr %1275, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef nonnull @.str.4) #13
  %1629 = load i32, ptr %1275, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef nonnull @.str.4) #13
  %1631 = load i32, ptr %1329, align 4, !tbaa !5
  %1632 = call ptr @strerror(i32 noundef %1631) #13
  %1633 = load i32, ptr %1329, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef nonnull %.str.5.sink3005, i32 noundef %1626, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %1628, ptr noundef %1630, ptr noundef %1632, i32 noundef %1633) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1635:                                             ; preds = %1604
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %25) #13
  %1636 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %25, ptr noundef nonnull %24, i8 noundef zeroext 1) #13
  %1637 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr @test_count, align 4, !tbaa !5
  %1640 = icmp eq ptr %1637, null
  br i1 %1640, label %1641, label %1663

1641:                                             ; preds = %1635
  %1642 = load i32, ptr %1329, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = call i32 @s2n_print_stacktrace(ptr noundef %1643) #13
  %1645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1646 = trunc nuw i8 %1645 to i1
  br i1 %1646, label %1647, label %1651

1647:                                             ; preds = %1641
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = call i32 @fileno(ptr noundef %1648) #13
  %1650 = call i32 @isatty(i32 noundef %1649) #13
  %.not2506 = icmp eq i32 %1650, 0
  br i1 %.not2506, label %1651, label %1652

1651:                                             ; preds = %1647, %1641
  br label %1652

1652:                                             ; preds = %1647, %1651
  %.str.5.sink3014 = phi ptr [ @.str.5, %1651 ], [ @.str.2, %1647 ]
  store i32 %1642, ptr %1329, align 4, !tbaa !5
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = load i32, ptr @test_count, align 4, !tbaa !5
  %1655 = load i32, ptr %1275, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror(i32 noundef %1655, ptr noundef nonnull @.str.4) #13
  %1657 = load i32, ptr %1275, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror_debug(i32 noundef %1657, ptr noundef nonnull @.str.4) #13
  %1659 = load i32, ptr %1329, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #13
  %1661 = load i32, ptr %1329, align 4, !tbaa !5
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1653, ptr noundef nonnull %.str.5.sink3014, i32 noundef %1654, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %1656, ptr noundef %1658, ptr noundef %1660, i32 noundef %1661) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1663:                                             ; preds = %1635
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %26, i8 0, i64 16, i1 false)
  %1664 = add nsw i32 %1638, 2
  store i32 %1664, ptr @test_count, align 4, !tbaa !5
  %1665 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %1637, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %26) #13
  %1666 = icmp eq i32 %1665, -1
  br i1 %1666, label %1667, label %1689

1667:                                             ; preds = %1663
  %1668 = load i32, ptr %1329, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @s2n_print_stacktrace(ptr noundef %1669) #13
  %1671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1672 = trunc nuw i8 %1671 to i1
  br i1 %1672, label %1673, label %1677

1673:                                             ; preds = %1667
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @fileno(ptr noundef %1674) #13
  %1676 = call i32 @isatty(i32 noundef %1675) #13
  %.not2505 = icmp eq i32 %1676, 0
  br i1 %.not2505, label %1677, label %1678

1677:                                             ; preds = %1673, %1667
  br label %1678

1678:                                             ; preds = %1673, %1677
  %.str.5.sink3023 = phi ptr [ @.str.5, %1677 ], [ @.str.2, %1673 ]
  store i32 %1668, ptr %1329, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = load i32, ptr %1275, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef nonnull @.str.4) #13
  %1683 = load i32, ptr %1275, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror_debug(i32 noundef %1683, ptr noundef nonnull @.str.4) #13
  %1685 = load i32, ptr %1329, align 4, !tbaa !5
  %1686 = call ptr @strerror(i32 noundef %1685) #13
  %1687 = load i32, ptr %1329, align 4, !tbaa !5
  %1688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1679, ptr noundef nonnull %.str.5.sink3023, i32 noundef %1680, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %1682, ptr noundef %1684, ptr noundef %1686, i32 noundef %1687) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1689:                                             ; preds = %1663
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %27) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %27, i8 0, i64 40, i1 false)
  %1690 = load i32, ptr @test_count, align 4, !tbaa !5
  %1691 = add nsw i32 %1690, 1
  store i32 %1691, ptr @test_count, align 4, !tbaa !5
  %1692 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %1637, ptr noundef nonnull @.str.11, ptr noundef nonnull %27) #13
  %1693 = call zeroext i1 @s2n_result_is_ok(i32 %1692)
  br i1 %1693, label %1716, label %1694

1694:                                             ; preds = %1689
  %1695 = load i32, ptr %1329, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696) #13
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc nuw i8 %1698 to i1
  br i1 %1699, label %1700, label %1704

1700:                                             ; preds = %1694
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #13
  %1703 = call i32 @isatty(i32 noundef %1702) #13
  %.not1951 = icmp eq i32 %1703, 0
  br i1 %.not1951, label %1704, label %1705

1704:                                             ; preds = %1700, %1694
  br label %1705

1705:                                             ; preds = %1700, %1704
  %.str.5.sink3032 = phi ptr [ @.str.5, %1704 ], [ @.str.2, %1700 ]
  store i32 %1695, ptr %1329, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = load i32, ptr %1275, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror(i32 noundef %1708, ptr noundef nonnull @.str.4) #13
  %1710 = load i32, ptr %1275, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef nonnull @.str.4) #13
  %1712 = load i32, ptr %1329, align 4, !tbaa !5
  %1713 = call ptr @strerror(i32 noundef %1712) #13
  %1714 = load i32, ptr %1329, align 4, !tbaa !5
  %1715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef nonnull %.str.5.sink3032, i32 noundef %1707, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %1709, ptr noundef %1711, ptr noundef %1713, i32 noundef %1714) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1716:                                             ; preds = %1689
  %1717 = getelementptr inbounds i8, ptr %27, i64 28
  %1718 = load i32, ptr %1717, align 4, !tbaa !15
  %1719 = getelementptr inbounds i8, ptr %27, i64 24
  %1720 = load i32, ptr %1719, align 8, !tbaa !18
  %1721 = sub i32 %1718, %1720
  %1722 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %27, i32 noundef %1721) #13
  %1723 = load i32, ptr @test_count, align 4, !tbaa !5
  %1724 = add nsw i32 %1723, 1
  store i32 %1724, ptr @test_count, align 4, !tbaa !5
  %1725 = icmp eq ptr %1722, null
  br i1 %1725, label %1726, label %1748

1726:                                             ; preds = %1716
  %1727 = load i32, ptr %1329, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = call i32 @s2n_print_stacktrace(ptr noundef %1728) #13
  %1730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1731 = trunc nuw i8 %1730 to i1
  br i1 %1731, label %1732, label %1736

1732:                                             ; preds = %1726
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1734 = call i32 @fileno(ptr noundef %1733) #13
  %1735 = call i32 @isatty(i32 noundef %1734) #13
  %.not2504 = icmp eq i32 %1735, 0
  br i1 %.not2504, label %1736, label %1737

1736:                                             ; preds = %1732, %1726
  br label %1737

1737:                                             ; preds = %1732, %1736
  %.str.5.sink3041 = phi ptr [ @.str.5, %1736 ], [ @.str.2, %1732 ]
  store i32 %1727, ptr %1329, align 4, !tbaa !5
  %1738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1739 = load i32, ptr @test_count, align 4, !tbaa !5
  %1740 = load i32, ptr %1275, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror(i32 noundef %1740, ptr noundef nonnull @.str.4) #13
  %1742 = load i32, ptr %1275, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef nonnull @.str.4) #13
  %1744 = load i32, ptr %1329, align 4, !tbaa !5
  %1745 = call ptr @strerror(i32 noundef %1744) #13
  %1746 = load i32, ptr %1329, align 4, !tbaa !5
  %1747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1738, ptr noundef nonnull %.str.5.sink3041, i32 noundef %1739, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %1741, ptr noundef %1743, ptr noundef %1745, i32 noundef %1746) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1748:                                             ; preds = %1716
  %1749 = add nsw i32 %1723, 2
  store i32 %1749, ptr @test_count, align 4, !tbaa !5
  %1750 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1637, ptr noundef nonnull @.str.23) #13
  %1751 = icmp eq i32 %1750, -1
  br i1 %1751, label %1752, label %1774

1752:                                             ; preds = %1748
  %1753 = load i32, ptr %1329, align 4, !tbaa !5
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = call i32 @s2n_print_stacktrace(ptr noundef %1754) #13
  %1756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1757 = trunc nuw i8 %1756 to i1
  br i1 %1757, label %1758, label %1762

1758:                                             ; preds = %1752
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = call i32 @fileno(ptr noundef %1759) #13
  %1761 = call i32 @isatty(i32 noundef %1760) #13
  %.not2503 = icmp eq i32 %1761, 0
  br i1 %.not2503, label %1762, label %1763

1762:                                             ; preds = %1758, %1752
  br label %1763

1763:                                             ; preds = %1758, %1762
  %.str.5.sink3050 = phi ptr [ @.str.5, %1762 ], [ @.str.2, %1758 ]
  store i32 %1753, ptr %1329, align 4, !tbaa !5
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = load i32, ptr %1275, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror(i32 noundef %1766, ptr noundef nonnull @.str.4) #13
  %1768 = load i32, ptr %1275, align 4, !tbaa !5
  %1769 = call ptr @s2n_strerror_debug(i32 noundef %1768, ptr noundef nonnull @.str.4) #13
  %1770 = load i32, ptr %1329, align 4, !tbaa !5
  %1771 = call ptr @strerror(i32 noundef %1770) #13
  %1772 = load i32, ptr %1329, align 4, !tbaa !5
  %1773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1764, ptr noundef nonnull %.str.5.sink3050, i32 noundef %1765, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %1767, ptr noundef %1769, ptr noundef %1771, i32 noundef %1772) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1774:                                             ; preds = %1748
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %28) #13
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = add nsw i32 %1775, 1
  store i32 %1776, ptr @test_count, align 4, !tbaa !5
  %1777 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %28) #13
  %1778 = icmp eq i32 %1777, -1
  br i1 %1778, label %1779, label %1801

1779:                                             ; preds = %1774
  %1780 = load i32, ptr %1329, align 4, !tbaa !5
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = call i32 @s2n_print_stacktrace(ptr noundef %1781) #13
  %1783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1784 = trunc nuw i8 %1783 to i1
  br i1 %1784, label %1785, label %1789

1785:                                             ; preds = %1779
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = call i32 @fileno(ptr noundef %1786) #13
  %1788 = call i32 @isatty(i32 noundef %1787) #13
  %.not2502 = icmp eq i32 %1788, 0
  br i1 %.not2502, label %1789, label %1790

1789:                                             ; preds = %1785, %1779
  br label %1790

1790:                                             ; preds = %1785, %1789
  %.str.5.sink3059 = phi ptr [ @.str.5, %1789 ], [ @.str.2, %1785 ]
  store i32 %1780, ptr %1329, align 4, !tbaa !5
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = load i32, ptr %1275, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror(i32 noundef %1793, ptr noundef nonnull @.str.4) #13
  %1795 = load i32, ptr %1275, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef nonnull @.str.4) #13
  %1797 = load i32, ptr %1329, align 4, !tbaa !5
  %1798 = call ptr @strerror(i32 noundef %1797) #13
  %1799 = load i32, ptr %1329, align 4, !tbaa !5
  %1800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1791, ptr noundef nonnull %.str.5.sink3059, i32 noundef %1792, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %1794, ptr noundef %1796, ptr noundef %1798, i32 noundef %1799) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1801:                                             ; preds = %1774
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #13
  store i32 -1, ptr %29, align 4, !tbaa !5
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = add nsw i32 %1802, 1
  store i32 %1803, ptr @test_count, align 4, !tbaa !5
  %1804 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %25, ptr noundef nonnull %1637, ptr noundef nonnull %1722, i32 noundef %1721, ptr noundef nonnull %29, ptr noundef nonnull %28) #13
  %1805 = call zeroext i1 @s2n_result_is_ok(i32 %1804)
  br i1 %1805, label %1828, label %1806

1806:                                             ; preds = %1801
  %1807 = load i32, ptr %1329, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = call i32 @s2n_print_stacktrace(ptr noundef %1808) #13
  %1810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1811 = trunc nuw i8 %1810 to i1
  br i1 %1811, label %1812, label %1816

1812:                                             ; preds = %1806
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = call i32 @fileno(ptr noundef %1813) #13
  %1815 = call i32 @isatty(i32 noundef %1814) #13
  %.not1952 = icmp eq i32 %1815, 0
  br i1 %.not1952, label %1816, label %1817

1816:                                             ; preds = %1812, %1806
  br label %1817

1817:                                             ; preds = %1812, %1816
  %.str.5.sink3068 = phi ptr [ @.str.5, %1816 ], [ @.str.2, %1812 ]
  store i32 %1807, ptr %1329, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = load i32, ptr %1275, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror(i32 noundef %1820, ptr noundef nonnull @.str.4) #13
  %1822 = load i32, ptr %1275, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror_debug(i32 noundef %1822, ptr noundef nonnull @.str.4) #13
  %1824 = load i32, ptr %1329, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #13
  %1826 = load i32, ptr %1329, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1818, ptr noundef nonnull %.str.5.sink3068, i32 noundef %1819, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %1821, ptr noundef %1823, ptr noundef %1825, i32 noundef %1826) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1828:                                             ; preds = %1801
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = add nsw i32 %1829, 1
  store i32 %1830, ptr @test_count, align 4, !tbaa !5
  %1831 = getelementptr inbounds i8, ptr %26, i64 9
  %1832 = load i8, ptr %1831, align 1, !tbaa !19
  %1833 = icmp eq i8 %1832, 1
  br i1 %1833, label %1856, label %1834

1834:                                             ; preds = %1828
  %1835 = load i32, ptr %1329, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = call i32 @s2n_print_stacktrace(ptr noundef %1836) #13
  %1838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1839 = trunc nuw i8 %1838 to i1
  br i1 %1839, label %1840, label %1844

1840:                                             ; preds = %1834
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = call i32 @fileno(ptr noundef %1841) #13
  %1843 = call i32 @isatty(i32 noundef %1842) #13
  %.not1953 = icmp eq i32 %1843, 0
  br i1 %.not1953, label %1844, label %1845

1844:                                             ; preds = %1840, %1834
  br label %1845

1845:                                             ; preds = %1840, %1844
  %.str.5.sink3077 = phi ptr [ @.str.5, %1844 ], [ @.str.2, %1840 ]
  store i32 %1835, ptr %1329, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = load i32, ptr %1275, align 4, !tbaa !5
  %1849 = call ptr @s2n_strerror(i32 noundef %1848, ptr noundef nonnull @.str.4) #13
  %1850 = load i32, ptr %1275, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror_debug(i32 noundef %1850, ptr noundef nonnull @.str.4) #13
  %1852 = load i32, ptr %1329, align 4, !tbaa !5
  %1853 = call ptr @strerror(i32 noundef %1852) #13
  %1854 = load i32, ptr %1329, align 4, !tbaa !5
  %1855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef nonnull %.str.5.sink3077, i32 noundef %1847, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %1849, ptr noundef %1851, ptr noundef %1853, i32 noundef %1854) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1856:                                             ; preds = %1828
  %1857 = add nsw i32 %1829, 2
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = load i32, ptr %29, align 4, !tbaa !5
  %1859 = icmp eq i32 %1858, 0
  br i1 %1859, label %1882, label %1860

1860:                                             ; preds = %1856
  %1861 = load i32, ptr %1329, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = call i32 @s2n_print_stacktrace(ptr noundef %1862) #13
  %1864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1865 = trunc nuw i8 %1864 to i1
  br i1 %1865, label %1866, label %1870

1866:                                             ; preds = %1860
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @fileno(ptr noundef %1867) #13
  %1869 = call i32 @isatty(i32 noundef %1868) #13
  %.not1954 = icmp eq i32 %1869, 0
  br i1 %.not1954, label %1870, label %1871

1870:                                             ; preds = %1866, %1860
  br label %1871

1871:                                             ; preds = %1866, %1870
  %.str.5.sink3086 = phi ptr [ @.str.5, %1870 ], [ @.str.2, %1866 ]
  store i32 %1861, ptr %1329, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = load i32, ptr %1275, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror(i32 noundef %1874, ptr noundef nonnull @.str.4) #13
  %1876 = load i32, ptr %1275, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef nonnull @.str.4) #13
  %1878 = load i32, ptr %1329, align 4, !tbaa !5
  %1879 = call ptr @strerror(i32 noundef %1878) #13
  %1880 = load i32, ptr %1329, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef nonnull %.str.5.sink3086, i32 noundef %1873, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %1875, ptr noundef %1877, ptr noundef %1879, i32 noundef %1880) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1882:                                             ; preds = %1856
  %1883 = call i32 @s2n_connection_free(ptr noundef nonnull %1637) #13
  %1884 = call i32 @s2n_pkey_free(ptr noundef nonnull %28) #13
  %1885 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %25) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %24) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #13
  %1886 = call i32 @s2n_stuffer_free(ptr noundef nonnull %27) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %30) #13
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr @test_count, align 4, !tbaa !5
  %1889 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %30, ptr noundef nonnull @.str.38, ptr noundef null) #13
  %1890 = icmp eq i32 %1889, 0
  br i1 %1890, label %1913, label %1891

1891:                                             ; preds = %1882
  %1892 = load i32, ptr %1329, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @s2n_print_stacktrace(ptr noundef %1893) #13
  %1895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1896 = trunc nuw i8 %1895 to i1
  br i1 %1896, label %1897, label %1901

1897:                                             ; preds = %1891
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @fileno(ptr noundef %1898) #13
  %1900 = call i32 @isatty(i32 noundef %1899) #13
  %.not1955 = icmp eq i32 %1900, 0
  br i1 %.not1955, label %1901, label %1902

1901:                                             ; preds = %1897, %1891
  br label %1902

1902:                                             ; preds = %1897, %1901
  %.str.5.sink3095 = phi ptr [ @.str.5, %1901 ], [ @.str.2, %1897 ]
  store i32 %1892, ptr %1329, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = load i32, ptr %1275, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror(i32 noundef %1905, ptr noundef nonnull @.str.4) #13
  %1907 = load i32, ptr %1275, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror_debug(i32 noundef %1907, ptr noundef nonnull @.str.4) #13
  %1909 = load i32, ptr %1329, align 4, !tbaa !5
  %1910 = call ptr @strerror(i32 noundef %1909) #13
  %1911 = load i32, ptr %1329, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1903, ptr noundef nonnull %.str.5.sink3095, i32 noundef %1904, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %1906, ptr noundef %1908, ptr noundef %1910, i32 noundef %1911) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1913:                                             ; preds = %1882
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %31) #13
  %1914 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %31, ptr noundef nonnull %30, i8 noundef zeroext 1) #13
  %1915 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1916 = load i32, ptr @test_count, align 4, !tbaa !5
  %1917 = add nsw i32 %1916, 1
  store i32 %1917, ptr @test_count, align 4, !tbaa !5
  %1918 = icmp eq ptr %1915, null
  br i1 %1918, label %1919, label %1941

1919:                                             ; preds = %1913
  %1920 = load i32, ptr %1329, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = call i32 @s2n_print_stacktrace(ptr noundef %1921) #13
  %1923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1924 = trunc nuw i8 %1923 to i1
  br i1 %1924, label %1925, label %1929

1925:                                             ; preds = %1919
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = call i32 @fileno(ptr noundef %1926) #13
  %1928 = call i32 @isatty(i32 noundef %1927) #13
  %.not2501 = icmp eq i32 %1928, 0
  br i1 %.not2501, label %1929, label %1930

1929:                                             ; preds = %1925, %1919
  br label %1930

1930:                                             ; preds = %1925, %1929
  %.str.5.sink3104 = phi ptr [ @.str.5, %1929 ], [ @.str.2, %1925 ]
  store i32 %1920, ptr %1329, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = load i32, ptr @test_count, align 4, !tbaa !5
  %1933 = load i32, ptr %1275, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror(i32 noundef %1933, ptr noundef nonnull @.str.4) #13
  %1935 = load i32, ptr %1275, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror_debug(i32 noundef %1935, ptr noundef nonnull @.str.4) #13
  %1937 = load i32, ptr %1329, align 4, !tbaa !5
  %1938 = call ptr @strerror(i32 noundef %1937) #13
  %1939 = load i32, ptr %1329, align 4, !tbaa !5
  %1940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1931, ptr noundef nonnull %.str.5.sink3104, i32 noundef %1932, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %1934, ptr noundef %1936, ptr noundef %1938, i32 noundef %1939) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1941:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data, i64 16, i1 false)
  %1942 = add nsw i32 %1916, 2
  store i32 %1942, ptr @test_count, align 4, !tbaa !5
  %1943 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %1915, ptr noundef nonnull @verify_host_verify_alt, ptr noundef nonnull %32) #13
  %1944 = icmp eq i32 %1943, -1
  br i1 %1944, label %1945, label %1967

1945:                                             ; preds = %1941
  %1946 = load i32, ptr %1329, align 4, !tbaa !5
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1948 = call i32 @s2n_print_stacktrace(ptr noundef %1947) #13
  %1949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1950 = trunc nuw i8 %1949 to i1
  br i1 %1950, label %1951, label %1955

1951:                                             ; preds = %1945
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = call i32 @fileno(ptr noundef %1952) #13
  %1954 = call i32 @isatty(i32 noundef %1953) #13
  %.not2500 = icmp eq i32 %1954, 0
  br i1 %.not2500, label %1955, label %1956

1955:                                             ; preds = %1951, %1945
  br label %1956

1956:                                             ; preds = %1951, %1955
  %.str.5.sink3113 = phi ptr [ @.str.5, %1955 ], [ @.str.2, %1951 ]
  store i32 %1946, ptr %1329, align 4, !tbaa !5
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1958 = load i32, ptr @test_count, align 4, !tbaa !5
  %1959 = load i32, ptr %1275, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror(i32 noundef %1959, ptr noundef nonnull @.str.4) #13
  %1961 = load i32, ptr %1275, align 4, !tbaa !5
  %1962 = call ptr @s2n_strerror_debug(i32 noundef %1961, ptr noundef nonnull @.str.4) #13
  %1963 = load i32, ptr %1329, align 4, !tbaa !5
  %1964 = call ptr @strerror(i32 noundef %1963) #13
  %1965 = load i32, ptr %1329, align 4, !tbaa !5
  %1966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1957, ptr noundef nonnull %.str.5.sink3113, i32 noundef %1958, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %1960, ptr noundef %1962, ptr noundef %1964, i32 noundef %1965) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1967:                                             ; preds = %1941
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %33) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %33, i8 0, i64 40, i1 false)
  %1968 = load i32, ptr @test_count, align 4, !tbaa !5
  %1969 = add nsw i32 %1968, 1
  store i32 %1969, ptr @test_count, align 4, !tbaa !5
  %1970 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %1915, ptr noundef nonnull @.str.38, ptr noundef nonnull %33) #13
  %1971 = call zeroext i1 @s2n_result_is_ok(i32 %1970)
  br i1 %1971, label %1994, label %1972

1972:                                             ; preds = %1967
  %1973 = load i32, ptr %1329, align 4, !tbaa !5
  %1974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1975 = call i32 @s2n_print_stacktrace(ptr noundef %1974) #13
  %1976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1977 = trunc nuw i8 %1976 to i1
  br i1 %1977, label %1978, label %1982

1978:                                             ; preds = %1972
  %1979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1980 = call i32 @fileno(ptr noundef %1979) #13
  %1981 = call i32 @isatty(i32 noundef %1980) #13
  %.not1956 = icmp eq i32 %1981, 0
  br i1 %.not1956, label %1982, label %1983

1982:                                             ; preds = %1978, %1972
  br label %1983

1983:                                             ; preds = %1978, %1982
  %.str.5.sink3122 = phi ptr [ @.str.5, %1982 ], [ @.str.2, %1978 ]
  store i32 %1973, ptr %1329, align 4, !tbaa !5
  %1984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1985 = load i32, ptr @test_count, align 4, !tbaa !5
  %1986 = load i32, ptr %1275, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror(i32 noundef %1986, ptr noundef nonnull @.str.4) #13
  %1988 = load i32, ptr %1275, align 4, !tbaa !5
  %1989 = call ptr @s2n_strerror_debug(i32 noundef %1988, ptr noundef nonnull @.str.4) #13
  %1990 = load i32, ptr %1329, align 4, !tbaa !5
  %1991 = call ptr @strerror(i32 noundef %1990) #13
  %1992 = load i32, ptr %1329, align 4, !tbaa !5
  %1993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1984, ptr noundef nonnull %.str.5.sink3122, i32 noundef %1985, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 360, ptr noundef %1987, ptr noundef %1989, ptr noundef %1991, i32 noundef %1992) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1994:                                             ; preds = %1967
  %1995 = getelementptr inbounds i8, ptr %33, i64 28
  %1996 = load i32, ptr %1995, align 4, !tbaa !15
  %1997 = getelementptr inbounds i8, ptr %33, i64 24
  %1998 = load i32, ptr %1997, align 8, !tbaa !18
  %1999 = sub i32 %1996, %1998
  %2000 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %33, i32 noundef %1999) #13
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = add nsw i32 %2001, 1
  store i32 %2002, ptr @test_count, align 4, !tbaa !5
  %2003 = icmp eq ptr %2000, null
  br i1 %2003, label %2004, label %2026

2004:                                             ; preds = %1994
  %2005 = load i32, ptr %1329, align 4, !tbaa !5
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2007 = call i32 @s2n_print_stacktrace(ptr noundef %2006) #13
  %2008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2009 = trunc nuw i8 %2008 to i1
  br i1 %2009, label %2010, label %2014

2010:                                             ; preds = %2004
  %2011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2012 = call i32 @fileno(ptr noundef %2011) #13
  %2013 = call i32 @isatty(i32 noundef %2012) #13
  %.not2499 = icmp eq i32 %2013, 0
  br i1 %.not2499, label %2014, label %2015

2014:                                             ; preds = %2010, %2004
  br label %2015

2015:                                             ; preds = %2010, %2014
  %.str.5.sink3131 = phi ptr [ @.str.5, %2014 ], [ @.str.2, %2010 ]
  store i32 %2005, ptr %1329, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = load i32, ptr %1275, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror(i32 noundef %2018, ptr noundef nonnull @.str.4) #13
  %2020 = load i32, ptr %1275, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror_debug(i32 noundef %2020, ptr noundef nonnull @.str.4) #13
  %2022 = load i32, ptr %1329, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #13
  %2024 = load i32, ptr %1329, align 4, !tbaa !5
  %2025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2016, ptr noundef nonnull %.str.5.sink3131, i32 noundef %2017, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %2019, ptr noundef %2021, ptr noundef %2023, i32 noundef %2024) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2026:                                             ; preds = %1994
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %34) #13
  %2027 = add nsw i32 %2001, 2
  store i32 %2027, ptr @test_count, align 4, !tbaa !5
  %2028 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %34) #13
  %2029 = icmp eq i32 %2028, -1
  br i1 %2029, label %2030, label %2052

2030:                                             ; preds = %2026
  %2031 = load i32, ptr %1329, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = call i32 @s2n_print_stacktrace(ptr noundef %2032) #13
  %2034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2035 = trunc nuw i8 %2034 to i1
  br i1 %2035, label %2036, label %2040

2036:                                             ; preds = %2030
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @fileno(ptr noundef %2037) #13
  %2039 = call i32 @isatty(i32 noundef %2038) #13
  %.not2498 = icmp eq i32 %2039, 0
  br i1 %.not2498, label %2040, label %2041

2040:                                             ; preds = %2036, %2030
  br label %2041

2041:                                             ; preds = %2036, %2040
  %.str.5.sink3140 = phi ptr [ @.str.5, %2040 ], [ @.str.2, %2036 ]
  store i32 %2031, ptr %1329, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = load i32, ptr %1275, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror(i32 noundef %2044, ptr noundef nonnull @.str.4) #13
  %2046 = load i32, ptr %1275, align 4, !tbaa !5
  %2047 = call ptr @s2n_strerror_debug(i32 noundef %2046, ptr noundef nonnull @.str.4) #13
  %2048 = load i32, ptr %1329, align 4, !tbaa !5
  %2049 = call ptr @strerror(i32 noundef %2048) #13
  %2050 = load i32, ptr %1329, align 4, !tbaa !5
  %2051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2042, ptr noundef nonnull %.str.5.sink3140, i32 noundef %2043, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %2045, ptr noundef %2047, ptr noundef %2049, i32 noundef %2050) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2052:                                             ; preds = %2026
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #13
  store i32 -1, ptr %35, align 4, !tbaa !5
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = add nsw i32 %2053, 1
  store i32 %2054, ptr @test_count, align 4, !tbaa !5
  %2055 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %31, ptr noundef nonnull %1915, ptr noundef nonnull %2000, i32 noundef %1999, ptr noundef nonnull %35, ptr noundef nonnull %34) #13
  %2056 = call zeroext i1 @s2n_result_is_ok(i32 %2055)
  br i1 %2056, label %2079, label %2057

2057:                                             ; preds = %2052
  %2058 = load i32, ptr %1329, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = call i32 @s2n_print_stacktrace(ptr noundef %2059) #13
  %2061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2062 = trunc nuw i8 %2061 to i1
  br i1 %2062, label %2063, label %2067

2063:                                             ; preds = %2057
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = call i32 @fileno(ptr noundef %2064) #13
  %2066 = call i32 @isatty(i32 noundef %2065) #13
  %.not1957 = icmp eq i32 %2066, 0
  br i1 %.not1957, label %2067, label %2068

2067:                                             ; preds = %2063, %2057
  br label %2068

2068:                                             ; preds = %2063, %2067
  %.str.5.sink3149 = phi ptr [ @.str.5, %2067 ], [ @.str.2, %2063 ]
  store i32 %2058, ptr %1329, align 4, !tbaa !5
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = load i32, ptr @test_count, align 4, !tbaa !5
  %2071 = load i32, ptr %1275, align 4, !tbaa !5
  %2072 = call ptr @s2n_strerror(i32 noundef %2071, ptr noundef nonnull @.str.4) #13
  %2073 = load i32, ptr %1275, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2073, ptr noundef nonnull @.str.4) #13
  %2075 = load i32, ptr %1329, align 4, !tbaa !5
  %2076 = call ptr @strerror(i32 noundef %2075) #13
  %2077 = load i32, ptr %1329, align 4, !tbaa !5
  %2078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2069, ptr noundef nonnull %.str.5.sink3149, i32 noundef %2070, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %2072, ptr noundef %2074, ptr noundef %2076, i32 noundef %2077) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2079:                                             ; preds = %2052
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = add nsw i32 %2080, 1
  store i32 %2081, ptr @test_count, align 4, !tbaa !5
  %2082 = getelementptr inbounds i8, ptr %32, i64 9
  %2083 = load i8, ptr %2082, align 1, !tbaa !19
  %2084 = icmp eq i8 %2083, 1
  br i1 %2084, label %2107, label %2085

2085:                                             ; preds = %2079
  %2086 = load i32, ptr %1329, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = call i32 @s2n_print_stacktrace(ptr noundef %2087) #13
  %2089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2090 = trunc nuw i8 %2089 to i1
  br i1 %2090, label %2091, label %2095

2091:                                             ; preds = %2085
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = call i32 @fileno(ptr noundef %2092) #13
  %2094 = call i32 @isatty(i32 noundef %2093) #13
  %.not1958 = icmp eq i32 %2094, 0
  br i1 %.not1958, label %2095, label %2096

2095:                                             ; preds = %2091, %2085
  br label %2096

2096:                                             ; preds = %2091, %2095
  %.str.5.sink3158 = phi ptr [ @.str.5, %2095 ], [ @.str.2, %2091 ]
  store i32 %2086, ptr %1329, align 4, !tbaa !5
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = load i32, ptr @test_count, align 4, !tbaa !5
  %2099 = load i32, ptr %1275, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef nonnull @.str.4) #13
  %2101 = load i32, ptr %1275, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror_debug(i32 noundef %2101, ptr noundef nonnull @.str.4) #13
  %2103 = load i32, ptr %1329, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #13
  %2105 = load i32, ptr %1329, align 4, !tbaa !5
  %2106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2097, ptr noundef nonnull %.str.5.sink3158, i32 noundef %2098, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %2100, ptr noundef %2102, ptr noundef %2104, i32 noundef %2105) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2107:                                             ; preds = %2079
  %2108 = add nsw i32 %2080, 2
  store i32 %2108, ptr @test_count, align 4, !tbaa !5
  %2109 = getelementptr inbounds i8, ptr %32, i64 8
  %2110 = load i8, ptr %2109, align 8, !tbaa !21
  %2111 = icmp eq i8 %2110, 1
  br i1 %2111, label %2134, label %2112

2112:                                             ; preds = %2107
  %2113 = load i32, ptr %1329, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = call i32 @s2n_print_stacktrace(ptr noundef %2114) #13
  %2116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2117 = trunc nuw i8 %2116 to i1
  br i1 %2117, label %2118, label %2122

2118:                                             ; preds = %2112
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @fileno(ptr noundef %2119) #13
  %2121 = call i32 @isatty(i32 noundef %2120) #13
  %.not1959 = icmp eq i32 %2121, 0
  br i1 %.not1959, label %2122, label %2123

2122:                                             ; preds = %2118, %2112
  br label %2123

2123:                                             ; preds = %2118, %2122
  %.str.5.sink3167 = phi ptr [ @.str.5, %2122 ], [ @.str.2, %2118 ]
  store i32 %2113, ptr %1329, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = load i32, ptr %1275, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror(i32 noundef %2126, ptr noundef nonnull @.str.4) #13
  %2128 = load i32, ptr %1275, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror_debug(i32 noundef %2128, ptr noundef nonnull @.str.4) #13
  %2130 = load i32, ptr %1329, align 4, !tbaa !5
  %2131 = call ptr @strerror(i32 noundef %2130) #13
  %2132 = load i32, ptr %1329, align 4, !tbaa !5
  %2133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2124, ptr noundef nonnull %.str.5.sink3167, i32 noundef %2125, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2127, ptr noundef %2129, ptr noundef %2131, i32 noundef %2132) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2134:                                             ; preds = %2107
  %2135 = add nsw i32 %2080, 3
  store i32 %2135, ptr @test_count, align 4, !tbaa !5
  %2136 = load i32, ptr %35, align 4, !tbaa !5
  %2137 = icmp eq i32 %2136, 0
  br i1 %2137, label %2160, label %2138

2138:                                             ; preds = %2134
  %2139 = load i32, ptr %1329, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @s2n_print_stacktrace(ptr noundef %2140) #13
  %2142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2143 = trunc nuw i8 %2142 to i1
  br i1 %2143, label %2144, label %2148

2144:                                             ; preds = %2138
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @fileno(ptr noundef %2145) #13
  %2147 = call i32 @isatty(i32 noundef %2146) #13
  %.not1960 = icmp eq i32 %2147, 0
  br i1 %.not1960, label %2148, label %2149

2148:                                             ; preds = %2144, %2138
  br label %2149

2149:                                             ; preds = %2144, %2148
  %.str.5.sink3176 = phi ptr [ @.str.5, %2148 ], [ @.str.2, %2144 ]
  store i32 %2139, ptr %1329, align 4, !tbaa !5
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = load i32, ptr %1275, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror(i32 noundef %2152, ptr noundef nonnull @.str.4) #13
  %2154 = load i32, ptr %1275, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef nonnull @.str.4) #13
  %2156 = load i32, ptr %1329, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #13
  %2158 = load i32, ptr %1329, align 4, !tbaa !5
  %2159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2150, ptr noundef nonnull %.str.5.sink3176, i32 noundef %2151, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 372, ptr noundef %2153, ptr noundef %2155, ptr noundef %2157, i32 noundef %2158) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2160:                                             ; preds = %2134
  %2161 = call i32 @s2n_connection_free(ptr noundef nonnull %1915) #13
  %2162 = call i32 @s2n_pkey_free(ptr noundef nonnull %34) #13
  %2163 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %31) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %30) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #13
  %2164 = call i32 @s2n_stuffer_free(ptr noundef nonnull %33) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %31) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %36) #13
  %2165 = load i32, ptr @test_count, align 4, !tbaa !5
  %2166 = add nsw i32 %2165, 1
  store i32 %2166, ptr @test_count, align 4, !tbaa !5
  %2167 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %2168 = icmp eq ptr %2167, null
  br i1 %2168, label %2169, label %2191

2169:                                             ; preds = %2160
  %2170 = load i32, ptr %1329, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = call i32 @s2n_print_stacktrace(ptr noundef %2171) #13
  %2173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2174 = trunc nuw i8 %2173 to i1
  br i1 %2174, label %2175, label %2179

2175:                                             ; preds = %2169
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = call i32 @fileno(ptr noundef %2176) #13
  %2178 = call i32 @isatty(i32 noundef %2177) #13
  %.not2497 = icmp eq i32 %2178, 0
  br i1 %.not2497, label %2179, label %2180

2179:                                             ; preds = %2175, %2169
  br label %2180

2180:                                             ; preds = %2175, %2179
  %.str.5.sink3185 = phi ptr [ @.str.5, %2179 ], [ @.str.2, %2175 ]
  store i32 %2170, ptr %1329, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = load i32, ptr @test_count, align 4, !tbaa !5
  %2183 = load i32, ptr %1275, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror(i32 noundef %2183, ptr noundef nonnull @.str.4) #13
  %2185 = load i32, ptr %1275, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror_debug(i32 noundef %2185, ptr noundef nonnull @.str.4) #13
  %2187 = load i32, ptr %1329, align 4, !tbaa !5
  %2188 = call ptr @strerror(i32 noundef %2187) #13
  %2189 = load i32, ptr %1329, align 4, !tbaa !5
  %2190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2181, ptr noundef nonnull %.str.5.sink3185, i32 noundef %2182, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %2184, ptr noundef %2186, ptr noundef %2188, i32 noundef %2189) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2191:                                             ; preds = %2160
  %2192 = add nsw i32 %2165, 2
  store i32 %2192, ptr @test_count, align 4, !tbaa !5
  %2193 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.11, ptr noundef nonnull %2167, i64 noundef 12000) #13
  %2194 = icmp eq i32 %2193, -1
  br i1 %2194, label %2195, label %2217

2195:                                             ; preds = %2191
  %2196 = load i32, ptr %1329, align 4, !tbaa !5
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = call i32 @s2n_print_stacktrace(ptr noundef %2197) #13
  %2199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2200 = trunc nuw i8 %2199 to i1
  br i1 %2200, label %2201, label %2205

2201:                                             ; preds = %2195
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = call i32 @fileno(ptr noundef %2202) #13
  %2204 = call i32 @isatty(i32 noundef %2203) #13
  %.not2496 = icmp eq i32 %2204, 0
  br i1 %.not2496, label %2205, label %2206

2205:                                             ; preds = %2201, %2195
  br label %2206

2206:                                             ; preds = %2201, %2205
  %.str.5.sink3194 = phi ptr [ @.str.5, %2205 ], [ @.str.2, %2201 ]
  store i32 %2196, ptr %1329, align 4, !tbaa !5
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = load i32, ptr %1275, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror(i32 noundef %2209, ptr noundef nonnull @.str.4) #13
  %2211 = load i32, ptr %1275, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror_debug(i32 noundef %2211, ptr noundef nonnull @.str.4) #13
  %2213 = load i32, ptr %1329, align 4, !tbaa !5
  %2214 = call ptr @strerror(i32 noundef %2213) #13
  %2215 = load i32, ptr %1329, align 4, !tbaa !5
  %2216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2207, ptr noundef nonnull %.str.5.sink3194, i32 noundef %2208, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %2210, ptr noundef %2212, ptr noundef %2214, i32 noundef %2215) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2217:                                             ; preds = %2191
  %2218 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %36, ptr noundef nonnull %2167) #13
  call void @free(ptr noundef nonnull %2167) #13
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = add nsw i32 %2219, 1
  store i32 %2220, ptr @test_count, align 4, !tbaa !5
  %2221 = icmp eq i32 %2218, 0
  br i1 %2221, label %2244, label %2222

2222:                                             ; preds = %2217
  %2223 = load i32, ptr %1329, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = call i32 @s2n_print_stacktrace(ptr noundef %2224) #13
  %2226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2227 = trunc nuw i8 %2226 to i1
  br i1 %2227, label %2228, label %2232

2228:                                             ; preds = %2222
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = call i32 @fileno(ptr noundef %2229) #13
  %2231 = call i32 @isatty(i32 noundef %2230) #13
  %.not1961 = icmp eq i32 %2231, 0
  br i1 %.not1961, label %2232, label %2233

2232:                                             ; preds = %2228, %2222
  br label %2233

2233:                                             ; preds = %2228, %2232
  %.str.5.sink3203 = phi ptr [ @.str.5, %2232 ], [ @.str.2, %2228 ]
  store i32 %2223, ptr %1329, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = load i32, ptr %1275, align 4, !tbaa !5
  %2237 = call ptr @s2n_strerror(i32 noundef %2236, ptr noundef nonnull @.str.4) #13
  %2238 = load i32, ptr %1275, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror_debug(i32 noundef %2238, ptr noundef nonnull @.str.4) #13
  %2240 = load i32, ptr %1329, align 4, !tbaa !5
  %2241 = call ptr @strerror(i32 noundef %2240) #13
  %2242 = load i32, ptr %1329, align 4, !tbaa !5
  %2243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2234, ptr noundef nonnull %.str.5.sink3203, i32 noundef %2235, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 390, ptr noundef %2237, ptr noundef %2239, ptr noundef %2241, i32 noundef %2242) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2244:                                             ; preds = %2217
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %37) #13
  %2245 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %37, ptr noundef nonnull %36, i8 noundef zeroext 1) #13
  %2246 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %2247 = load i32, ptr @test_count, align 4, !tbaa !5
  %2248 = add nsw i32 %2247, 1
  store i32 %2248, ptr @test_count, align 4, !tbaa !5
  %2249 = icmp eq ptr %2246, null
  br i1 %2249, label %2250, label %2272

2250:                                             ; preds = %2244
  %2251 = load i32, ptr %1329, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @s2n_print_stacktrace(ptr noundef %2252) #13
  %2254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2255 = trunc nuw i8 %2254 to i1
  br i1 %2255, label %2256, label %2260

2256:                                             ; preds = %2250
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @fileno(ptr noundef %2257) #13
  %2259 = call i32 @isatty(i32 noundef %2258) #13
  %.not2495 = icmp eq i32 %2259, 0
  br i1 %.not2495, label %2260, label %2261

2260:                                             ; preds = %2256, %2250
  br label %2261

2261:                                             ; preds = %2256, %2260
  %.str.5.sink3212 = phi ptr [ @.str.5, %2260 ], [ @.str.2, %2256 ]
  store i32 %2251, ptr %1329, align 4, !tbaa !5
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = load i32, ptr %1275, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef nonnull @.str.4) #13
  %2266 = load i32, ptr %1275, align 4, !tbaa !5
  %2267 = call ptr @s2n_strerror_debug(i32 noundef %2266, ptr noundef nonnull @.str.4) #13
  %2268 = load i32, ptr %1329, align 4, !tbaa !5
  %2269 = call ptr @strerror(i32 noundef %2268) #13
  %2270 = load i32, ptr %1329, align 4, !tbaa !5
  %2271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2262, ptr noundef nonnull %.str.5.sink3212, i32 noundef %2263, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %2265, ptr noundef %2267, ptr noundef %2269, i32 noundef %2270) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2272:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, i8 0, i64 16, i1 false)
  %2273 = add nsw i32 %2247, 2
  store i32 %2273, ptr @test_count, align 4, !tbaa !5
  %2274 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %2246, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %38) #13
  %2275 = icmp eq i32 %2274, -1
  br i1 %2275, label %2276, label %2298

2276:                                             ; preds = %2272
  %2277 = load i32, ptr %1329, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @s2n_print_stacktrace(ptr noundef %2278) #13
  %2280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2281 = trunc nuw i8 %2280 to i1
  br i1 %2281, label %2282, label %2286

2282:                                             ; preds = %2276
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = call i32 @fileno(ptr noundef %2283) #13
  %2285 = call i32 @isatty(i32 noundef %2284) #13
  %.not2494 = icmp eq i32 %2285, 0
  br i1 %.not2494, label %2286, label %2287

2286:                                             ; preds = %2282, %2276
  br label %2287

2287:                                             ; preds = %2282, %2286
  %.str.5.sink3221 = phi ptr [ @.str.5, %2286 ], [ @.str.2, %2282 ]
  store i32 %2277, ptr %1329, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = load i32, ptr %1275, align 4, !tbaa !5
  %2291 = call ptr @s2n_strerror(i32 noundef %2290, ptr noundef nonnull @.str.4) #13
  %2292 = load i32, ptr %1275, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror_debug(i32 noundef %2292, ptr noundef nonnull @.str.4) #13
  %2294 = load i32, ptr %1329, align 4, !tbaa !5
  %2295 = call ptr @strerror(i32 noundef %2294) #13
  %2296 = load i32, ptr %1329, align 4, !tbaa !5
  %2297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef nonnull %.str.5.sink3221, i32 noundef %2289, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 399, ptr noundef %2291, ptr noundef %2293, ptr noundef %2295, i32 noundef %2296) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2298:                                             ; preds = %2272
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %39) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %39, i8 0, i64 40, i1 false)
  %2299 = load i32, ptr @test_count, align 4, !tbaa !5
  %2300 = add nsw i32 %2299, 1
  store i32 %2300, ptr @test_count, align 4, !tbaa !5
  %2301 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %2246, ptr noundef nonnull @.str.11, ptr noundef nonnull %39) #13
  %2302 = call zeroext i1 @s2n_result_is_ok(i32 %2301)
  br i1 %2302, label %2325, label %2303

2303:                                             ; preds = %2298
  %2304 = load i32, ptr %1329, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = call i32 @s2n_print_stacktrace(ptr noundef %2305) #13
  %2307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2308 = trunc nuw i8 %2307 to i1
  br i1 %2308, label %2309, label %2313

2309:                                             ; preds = %2303
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @fileno(ptr noundef %2310) #13
  %2312 = call i32 @isatty(i32 noundef %2311) #13
  %.not1962 = icmp eq i32 %2312, 0
  br i1 %.not1962, label %2313, label %2314

2313:                                             ; preds = %2309, %2303
  br label %2314

2314:                                             ; preds = %2309, %2313
  %.str.5.sink3230 = phi ptr [ @.str.5, %2313 ], [ @.str.2, %2309 ]
  store i32 %2304, ptr %1329, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = load i32, ptr %1275, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror(i32 noundef %2317, ptr noundef nonnull @.str.4) #13
  %2319 = load i32, ptr %1275, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror_debug(i32 noundef %2319, ptr noundef nonnull @.str.4) #13
  %2321 = load i32, ptr %1329, align 4, !tbaa !5
  %2322 = call ptr @strerror(i32 noundef %2321) #13
  %2323 = load i32, ptr %1329, align 4, !tbaa !5
  %2324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2315, ptr noundef nonnull %.str.5.sink3230, i32 noundef %2316, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %2318, ptr noundef %2320, ptr noundef %2322, i32 noundef %2323) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2325:                                             ; preds = %2298
  %2326 = getelementptr inbounds i8, ptr %39, i64 28
  %2327 = load i32, ptr %2326, align 4, !tbaa !15
  %2328 = getelementptr inbounds i8, ptr %39, i64 24
  %2329 = load i32, ptr %2328, align 8, !tbaa !18
  %2330 = sub i32 %2327, %2329
  %2331 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %39, i32 noundef %2330) #13
  %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 = icmp eq ptr %2331, null
  br i1 %2334, label %2335, label %2357

2335:                                             ; preds = %2325
  %2336 = load i32, ptr %1329, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @s2n_print_stacktrace(ptr noundef %2337) #13
  %2339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2340 = trunc nuw i8 %2339 to i1
  br i1 %2340, label %2341, label %2345

2341:                                             ; preds = %2335
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = call i32 @fileno(ptr noundef %2342) #13
  %2344 = call i32 @isatty(i32 noundef %2343) #13
  %.not2493 = icmp eq i32 %2344, 0
  br i1 %.not2493, label %2345, label %2346

2345:                                             ; preds = %2341, %2335
  br label %2346

2346:                                             ; preds = %2341, %2345
  %.str.5.sink3239 = phi ptr [ @.str.5, %2345 ], [ @.str.2, %2341 ]
  store i32 %2336, ptr %1329, align 4, !tbaa !5
  %2347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2348 = load i32, ptr @test_count, align 4, !tbaa !5
  %2349 = load i32, ptr %1275, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef nonnull @.str.4) #13
  %2351 = load i32, ptr %1275, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef nonnull @.str.4) #13
  %2353 = load i32, ptr %1329, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #13
  %2355 = load i32, ptr %1329, align 4, !tbaa !5
  %2356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2347, ptr noundef nonnull %.str.5.sink3239, i32 noundef %2348, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %2350, ptr noundef %2352, ptr noundef %2354, i32 noundef %2355) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2357:                                             ; preds = %2325
  %2358 = add nsw i32 %2332, 2
  store i32 %2358, ptr @test_count, align 4, !tbaa !5
  %2359 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2246, ptr noundef nonnull @.str.23) #13
  %2360 = icmp eq i32 %2359, -1
  br i1 %2360, label %2361, label %2383

2361:                                             ; preds = %2357
  %2362 = load i32, ptr %1329, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = call i32 @s2n_print_stacktrace(ptr noundef %2363) #13
  %2365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2366 = trunc nuw i8 %2365 to i1
  br i1 %2366, label %2367, label %2371

2367:                                             ; preds = %2361
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @fileno(ptr noundef %2368) #13
  %2370 = call i32 @isatty(i32 noundef %2369) #13
  %.not2492 = icmp eq i32 %2370, 0
  br i1 %.not2492, label %2371, label %2372

2371:                                             ; preds = %2367, %2361
  br label %2372

2372:                                             ; preds = %2367, %2371
  %.str.5.sink3248 = phi ptr [ @.str.5, %2371 ], [ @.str.2, %2367 ]
  store i32 %2362, ptr %1329, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = load i32, ptr %1275, align 4, !tbaa !5
  %2376 = call ptr @s2n_strerror(i32 noundef %2375, ptr noundef nonnull @.str.4) #13
  %2377 = load i32, ptr %1275, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror_debug(i32 noundef %2377, ptr noundef nonnull @.str.4) #13
  %2379 = load i32, ptr %1329, align 4, !tbaa !5
  %2380 = call ptr @strerror(i32 noundef %2379) #13
  %2381 = load i32, ptr %1329, align 4, !tbaa !5
  %2382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2373, ptr noundef nonnull %.str.5.sink3248, i32 noundef %2374, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %2376, ptr noundef %2378, ptr noundef %2380, i32 noundef %2381) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2383:                                             ; preds = %2357
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %40) #13
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = add nsw i32 %2384, 1
  store i32 %2385, ptr @test_count, align 4, !tbaa !5
  %2386 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %40) #13
  %2387 = icmp eq i32 %2386, -1
  br i1 %2387, label %2388, label %2410

2388:                                             ; preds = %2383
  %2389 = load i32, ptr %1329, align 4, !tbaa !5
  %2390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2391 = call i32 @s2n_print_stacktrace(ptr noundef %2390) #13
  %2392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2393 = trunc nuw i8 %2392 to i1
  br i1 %2393, label %2394, label %2398

2394:                                             ; preds = %2388
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = call i32 @fileno(ptr noundef %2395) #13
  %2397 = call i32 @isatty(i32 noundef %2396) #13
  %.not2491 = icmp eq i32 %2397, 0
  br i1 %.not2491, label %2398, label %2399

2398:                                             ; preds = %2394, %2388
  br label %2399

2399:                                             ; preds = %2394, %2398
  %.str.5.sink3257 = phi ptr [ @.str.5, %2398 ], [ @.str.2, %2394 ]
  store i32 %2389, ptr %1329, align 4, !tbaa !5
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = load i32, ptr @test_count, align 4, !tbaa !5
  %2402 = load i32, ptr %1275, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror(i32 noundef %2402, ptr noundef nonnull @.str.4) #13
  %2404 = load i32, ptr %1275, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror_debug(i32 noundef %2404, ptr noundef nonnull @.str.4) #13
  %2406 = load i32, ptr %1329, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #13
  %2408 = load i32, ptr %1329, align 4, !tbaa !5
  %2409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2400, ptr noundef nonnull %.str.5.sink3257, i32 noundef %2401, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %2403, ptr noundef %2405, ptr noundef %2407, i32 noundef %2408) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2410:                                             ; preds = %2383
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #13
  store i32 -1, ptr %41, align 4, !tbaa !5
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = add nsw i32 %2411, 1
  store i32 %2412, ptr @test_count, align 4, !tbaa !5
  %2413 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %37, ptr noundef nonnull %2246, ptr noundef nonnull %2331, i32 noundef %2330, ptr noundef nonnull %41, ptr noundef nonnull %40) #13
  %2414 = call zeroext i1 @s2n_result_is_ok(i32 %2413)
  br i1 %2414, label %2437, label %2415

2415:                                             ; preds = %2410
  %2416 = load i32, ptr %1329, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @s2n_print_stacktrace(ptr noundef %2417) #13
  %2419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2420 = trunc nuw i8 %2419 to i1
  br i1 %2420, label %2421, label %2425

2421:                                             ; preds = %2415
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @fileno(ptr noundef %2422) #13
  %2424 = call i32 @isatty(i32 noundef %2423) #13
  %.not1963 = icmp eq i32 %2424, 0
  br i1 %.not1963, label %2425, label %2426

2425:                                             ; preds = %2421, %2415
  br label %2426

2426:                                             ; preds = %2421, %2425
  %.str.5.sink3266 = phi ptr [ @.str.5, %2425 ], [ @.str.2, %2421 ]
  store i32 %2416, ptr %1329, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = load i32, ptr @test_count, align 4, !tbaa !5
  %2429 = load i32, ptr %1275, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror(i32 noundef %2429, ptr noundef nonnull @.str.4) #13
  %2431 = load i32, ptr %1275, align 4, !tbaa !5
  %2432 = call ptr @s2n_strerror_debug(i32 noundef %2431, ptr noundef nonnull @.str.4) #13
  %2433 = load i32, ptr %1329, align 4, !tbaa !5
  %2434 = call ptr @strerror(i32 noundef %2433) #13
  %2435 = load i32, ptr %1329, align 4, !tbaa !5
  %2436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2427, ptr noundef nonnull %.str.5.sink3266, i32 noundef %2428, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %2430, ptr noundef %2432, ptr noundef %2434, i32 noundef %2435) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2437:                                             ; preds = %2410
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = add nsw i32 %2438, 1
  store i32 %2439, ptr @test_count, align 4, !tbaa !5
  %2440 = getelementptr inbounds i8, ptr %38, i64 9
  %2441 = load i8, ptr %2440, align 1, !tbaa !19
  %2442 = icmp eq i8 %2441, 1
  br i1 %2442, label %2465, label %2443

2443:                                             ; preds = %2437
  %2444 = load i32, ptr %1329, align 4, !tbaa !5
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @s2n_print_stacktrace(ptr noundef %2445) #13
  %2447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %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 !9
  %2451 = call i32 @fileno(ptr noundef %2450) #13
  %2452 = call i32 @isatty(i32 noundef %2451) #13
  %.not1964 = icmp eq i32 %2452, 0
  br i1 %.not1964, label %2453, label %2454

2453:                                             ; preds = %2449, %2443
  br label %2454

2454:                                             ; preds = %2449, %2453
  %.str.5.sink3275 = phi ptr [ @.str.5, %2453 ], [ @.str.2, %2449 ]
  store i32 %2444, ptr %1329, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = load i32, ptr %1275, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef nonnull @.str.4) #13
  %2459 = load i32, ptr %1275, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror_debug(i32 noundef %2459, ptr noundef nonnull @.str.4) #13
  %2461 = load i32, ptr %1329, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #13
  %2463 = load i32, ptr %1329, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2455, ptr noundef nonnull %.str.5.sink3275, i32 noundef %2456, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %2458, ptr noundef %2460, ptr noundef %2462, i32 noundef %2463) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2465:                                             ; preds = %2437
  %2466 = add nsw i32 %2438, 2
  store i32 %2466, ptr @test_count, align 4, !tbaa !5
  %2467 = load i32, ptr %41, align 4, !tbaa !5
  %2468 = icmp eq i32 %2467, 0
  br i1 %2468, label %2491, label %2469

2469:                                             ; preds = %2465
  %2470 = load i32, ptr %1329, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @s2n_print_stacktrace(ptr noundef %2471) #13
  %2473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2474 = trunc nuw i8 %2473 to i1
  br i1 %2474, label %2475, label %2479

2475:                                             ; preds = %2469
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = call i32 @fileno(ptr noundef %2476) #13
  %2478 = call i32 @isatty(i32 noundef %2477) #13
  %.not1965 = icmp eq i32 %2478, 0
  br i1 %.not1965, label %2479, label %2480

2479:                                             ; preds = %2475, %2469
  br label %2480

2480:                                             ; preds = %2475, %2479
  %.str.5.sink3284 = phi ptr [ @.str.5, %2479 ], [ @.str.2, %2475 ]
  store i32 %2470, ptr %1329, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = load i32, ptr @test_count, align 4, !tbaa !5
  %2483 = load i32, ptr %1275, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror(i32 noundef %2483, ptr noundef nonnull @.str.4) #13
  %2485 = load i32, ptr %1275, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror_debug(i32 noundef %2485, ptr noundef nonnull @.str.4) #13
  %2487 = load i32, ptr %1329, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #13
  %2489 = load i32, ptr %1329, align 4, !tbaa !5
  %2490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2481, ptr noundef nonnull %.str.5.sink3284, i32 noundef %2482, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %2484, ptr noundef %2486, ptr noundef %2488, i32 noundef %2489) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2491:                                             ; preds = %2465
  %2492 = call i32 @s2n_connection_free(ptr noundef nonnull %2246) #13
  %2493 = call i32 @s2n_pkey_free(ptr noundef nonnull %40) #13
  %2494 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %37) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %40) #13
  %2495 = call i32 @s2n_stuffer_free(ptr noundef nonnull %39) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %39) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %37) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %42) #13
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = add nsw i32 %2496, 1
  store i32 %2497, ptr @test_count, align 4, !tbaa !5
  %2498 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %42, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %2499 = icmp eq i32 %2498, 0
  br i1 %2499, label %2522, label %2500

2500:                                             ; preds = %2491
  %2501 = load i32, ptr %1329, align 4, !tbaa !5
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = call i32 @s2n_print_stacktrace(ptr noundef %2502) #13
  %2504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2505 = trunc nuw i8 %2504 to i1
  br i1 %2505, label %2506, label %2510

2506:                                             ; preds = %2500
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @fileno(ptr noundef %2507) #13
  %2509 = call i32 @isatty(i32 noundef %2508) #13
  %.not1966 = icmp eq i32 %2509, 0
  br i1 %.not1966, label %2510, label %2511

2510:                                             ; preds = %2506, %2500
  br label %2511

2511:                                             ; preds = %2506, %2510
  %.str.5.sink3293 = phi ptr [ @.str.5, %2510 ], [ @.str.2, %2506 ]
  store i32 %2501, ptr %1329, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = load i32, ptr %1275, align 4, !tbaa !5
  %2515 = call ptr @s2n_strerror(i32 noundef %2514, ptr noundef nonnull @.str.4) #13
  %2516 = load i32, ptr %1275, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror_debug(i32 noundef %2516, ptr noundef nonnull @.str.4) #13
  %2518 = load i32, ptr %1329, align 4, !tbaa !5
  %2519 = call ptr @strerror(i32 noundef %2518) #13
  %2520 = load i32, ptr %1329, align 4, !tbaa !5
  %2521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2512, ptr noundef nonnull %.str.5.sink3293, i32 noundef %2513, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %2515, ptr noundef %2517, ptr noundef %2519, i32 noundef %2520) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2522:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %43) #13
  %2523 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %43, ptr noundef nonnull %42, i8 noundef zeroext 1) #13
  %2524 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = add nsw i32 %2525, 1
  store i32 %2526, ptr @test_count, align 4, !tbaa !5
  %2527 = icmp eq ptr %2524, null
  br i1 %2527, label %2528, label %2550

2528:                                             ; preds = %2522
  %2529 = load i32, ptr %1329, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = call i32 @s2n_print_stacktrace(ptr noundef %2530) #13
  %2532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2533 = trunc nuw i8 %2532 to i1
  br i1 %2533, label %2534, label %2538

2534:                                             ; preds = %2528
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = call i32 @fileno(ptr noundef %2535) #13
  %2537 = call i32 @isatty(i32 noundef %2536) #13
  %.not2490 = icmp eq i32 %2537, 0
  br i1 %.not2490, label %2538, label %2539

2538:                                             ; preds = %2534, %2528
  br label %2539

2539:                                             ; preds = %2534, %2538
  %.str.5.sink3302 = phi ptr [ @.str.5, %2538 ], [ @.str.2, %2534 ]
  store i32 %2529, ptr %1329, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = load i32, ptr %1275, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror(i32 noundef %2542, ptr noundef nonnull @.str.4) #13
  %2544 = load i32, ptr %1275, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror_debug(i32 noundef %2544, ptr noundef nonnull @.str.4) #13
  %2546 = load i32, ptr %1329, align 4, !tbaa !5
  %2547 = call ptr @strerror(i32 noundef %2546) #13
  %2548 = load i32, ptr %1329, align 4, !tbaa !5
  %2549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2540, ptr noundef nonnull %.str.5.sink3302, i32 noundef %2541, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %2543, ptr noundef %2545, ptr noundef %2547, i32 noundef %2548) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2550:                                             ; preds = %2522
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %44, i8 0, i64 16, i1 false)
  %2551 = add nsw i32 %2525, 2
  store i32 %2551, ptr @test_count, align 4, !tbaa !5
  %2552 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %2524, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %44) #13
  %2553 = icmp eq i32 %2552, -1
  br i1 %2553, label %2554, label %2576

2554:                                             ; preds = %2550
  %2555 = load i32, ptr %1329, align 4, !tbaa !5
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = call i32 @s2n_print_stacktrace(ptr noundef %2556) #13
  %2558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2559 = trunc nuw i8 %2558 to i1
  br i1 %2559, label %2560, label %2564

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

2564:                                             ; preds = %2560, %2554
  br label %2565

2565:                                             ; preds = %2560, %2564
  %.str.5.sink3311 = phi ptr [ @.str.5, %2564 ], [ @.str.2, %2560 ]
  store i32 %2555, ptr %1329, align 4, !tbaa !5
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = load i32, ptr @test_count, align 4, !tbaa !5
  %2568 = load i32, ptr %1275, align 4, !tbaa !5
  %2569 = call ptr @s2n_strerror(i32 noundef %2568, ptr noundef nonnull @.str.4) #13
  %2570 = load i32, ptr %1275, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror_debug(i32 noundef %2570, ptr noundef nonnull @.str.4) #13
  %2572 = load i32, ptr %1329, align 4, !tbaa !5
  %2573 = call ptr @strerror(i32 noundef %2572) #13
  %2574 = load i32, ptr %1329, align 4, !tbaa !5
  %2575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2566, ptr noundef nonnull %.str.5.sink3311, i32 noundef %2567, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %2569, ptr noundef %2571, ptr noundef %2573, i32 noundef %2574) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2576:                                             ; preds = %2550
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %45) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %45, i8 0, i64 40, i1 false)
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = add nsw i32 %2577, 1
  store i32 %2578, ptr @test_count, align 4, !tbaa !5
  %2579 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %2524, ptr noundef nonnull @.str.11, ptr noundef nonnull %45) #13
  %2580 = call zeroext i1 @s2n_result_is_ok(i32 %2579)
  br i1 %2580, label %2603, label %2581

2581:                                             ; preds = %2576
  %2582 = load i32, ptr %1329, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583) #13
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc nuw i8 %2585 to i1
  br i1 %2586, label %2587, label %2591

2587:                                             ; preds = %2581
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #13
  %2590 = call i32 @isatty(i32 noundef %2589) #13
  %.not1967 = icmp eq i32 %2590, 0
  br i1 %.not1967, label %2591, label %2592

2591:                                             ; preds = %2587, %2581
  br label %2592

2592:                                             ; preds = %2587, %2591
  %.str.5.sink3320 = phi ptr [ @.str.5, %2591 ], [ @.str.2, %2587 ]
  store i32 %2582, ptr %1329, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = load i32, ptr %1275, align 4, !tbaa !5
  %2596 = call ptr @s2n_strerror(i32 noundef %2595, ptr noundef nonnull @.str.4) #13
  %2597 = load i32, ptr %1275, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef %2597, ptr noundef nonnull @.str.4) #13
  %2599 = load i32, ptr %1329, align 4, !tbaa !5
  %2600 = call ptr @strerror(i32 noundef %2599) #13
  %2601 = load i32, ptr %1329, align 4, !tbaa !5
  %2602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef nonnull %.str.5.sink3320, i32 noundef %2594, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %2596, ptr noundef %2598, ptr noundef %2600, i32 noundef %2601) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2603:                                             ; preds = %2576
  %2604 = getelementptr inbounds i8, ptr %45, i64 28
  %2605 = load i32, ptr %2604, align 4, !tbaa !15
  %2606 = getelementptr inbounds i8, ptr %45, i64 24
  %2607 = load i32, ptr %2606, align 8, !tbaa !18
  %2608 = sub i32 %2605, %2607
  %2609 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %45, i32 noundef %2608) #13
  %2610 = load i32, ptr @test_count, align 4, !tbaa !5
  %2611 = add nsw i32 %2610, 1
  store i32 %2611, ptr @test_count, align 4, !tbaa !5
  %2612 = icmp eq ptr %2609, null
  br i1 %2612, label %2613, label %2635

2613:                                             ; preds = %2603
  %2614 = load i32, ptr %1329, align 4, !tbaa !5
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = call i32 @s2n_print_stacktrace(ptr noundef %2615) #13
  %2617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2618 = trunc nuw i8 %2617 to i1
  br i1 %2618, label %2619, label %2623

2619:                                             ; preds = %2613
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = call i32 @fileno(ptr noundef %2620) #13
  %2622 = call i32 @isatty(i32 noundef %2621) #13
  %.not2488 = icmp eq i32 %2622, 0
  br i1 %.not2488, label %2623, label %2624

2623:                                             ; preds = %2619, %2613
  br label %2624

2624:                                             ; preds = %2619, %2623
  %.str.5.sink3329 = phi ptr [ @.str.5, %2623 ], [ @.str.2, %2619 ]
  store i32 %2614, ptr %1329, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = load i32, ptr %1275, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror(i32 noundef %2627, ptr noundef nonnull @.str.4) #13
  %2629 = load i32, ptr %1275, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef nonnull @.str.4) #13
  %2631 = load i32, ptr %1329, align 4, !tbaa !5
  %2632 = call ptr @strerror(i32 noundef %2631) #13
  %2633 = load i32, ptr %1329, align 4, !tbaa !5
  %2634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2625, ptr noundef nonnull %.str.5.sink3329, i32 noundef %2626, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %2628, ptr noundef %2630, ptr noundef %2632, i32 noundef %2633) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2635:                                             ; preds = %2603
  %2636 = add nsw i32 %2610, 2
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2524, ptr noundef nonnull @.str.23) #13
  %2638 = icmp eq i32 %2637, -1
  br i1 %2638, label %2639, label %2661

2639:                                             ; preds = %2635
  %2640 = load i32, ptr %1329, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @s2n_print_stacktrace(ptr noundef %2641) #13
  %2643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2644 = trunc nuw i8 %2643 to i1
  br i1 %2644, label %2645, label %2649

2645:                                             ; preds = %2639
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = call i32 @fileno(ptr noundef %2646) #13
  %2648 = call i32 @isatty(i32 noundef %2647) #13
  %.not2487 = icmp eq i32 %2648, 0
  br i1 %.not2487, label %2649, label %2650

2649:                                             ; preds = %2645, %2639
  br label %2650

2650:                                             ; preds = %2645, %2649
  %.str.5.sink3338 = phi ptr [ @.str.5, %2649 ], [ @.str.2, %2645 ]
  store i32 %2640, ptr %1329, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = load i32, ptr %1275, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef nonnull @.str.4) #13
  %2655 = load i32, ptr %1275, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror_debug(i32 noundef %2655, ptr noundef nonnull @.str.4) #13
  %2657 = load i32, ptr %1329, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #13
  %2659 = load i32, ptr %1329, align 4, !tbaa !5
  %2660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef nonnull %.str.5.sink3338, i32 noundef %2652, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 444, ptr noundef %2654, ptr noundef %2656, ptr noundef %2658, i32 noundef %2659) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2661:                                             ; preds = %2635
  %2662 = load i32, ptr @test_count, align 4, !tbaa !5
  %2663 = add nsw i32 %2662, 1
  store i32 %2663, ptr @test_count, align 4, !tbaa !5
  %2664 = call i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef nonnull %43, i16 noundef zeroext 2) #13
  %2665 = icmp eq i32 %2664, -1
  br i1 %2665, label %2666, label %2688

2666:                                             ; preds = %2661
  %2667 = load i32, ptr %1329, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = call i32 @s2n_print_stacktrace(ptr noundef %2668) #13
  %2670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2671 = trunc nuw i8 %2670 to i1
  br i1 %2671, label %2672, label %2676

2672:                                             ; preds = %2666
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = call i32 @fileno(ptr noundef %2673) #13
  %2675 = call i32 @isatty(i32 noundef %2674) #13
  %.not2486 = icmp eq i32 %2675, 0
  br i1 %.not2486, label %2676, label %2677

2676:                                             ; preds = %2672, %2666
  br label %2677

2677:                                             ; preds = %2672, %2676
  %.str.5.sink3347 = phi ptr [ @.str.5, %2676 ], [ @.str.2, %2672 ]
  store i32 %2667, ptr %1329, align 4, !tbaa !5
  %2678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2679 = load i32, ptr @test_count, align 4, !tbaa !5
  %2680 = load i32, ptr %1275, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef nonnull @.str.4) #13
  %2682 = load i32, ptr %1275, align 4, !tbaa !5
  %2683 = call ptr @s2n_strerror_debug(i32 noundef %2682, ptr noundef nonnull @.str.4) #13
  %2684 = load i32, ptr %1329, align 4, !tbaa !5
  %2685 = call ptr @strerror(i32 noundef %2684) #13
  %2686 = load i32, ptr %1329, align 4, !tbaa !5
  %2687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2678, ptr noundef nonnull %.str.5.sink3347, i32 noundef %2679, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %2681, ptr noundef %2683, ptr noundef %2685, i32 noundef %2686) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2688:                                             ; preds = %2661
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %46) #13
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = add nsw i32 %2689, 1
  store i32 %2690, ptr @test_count, align 4, !tbaa !5
  %2691 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %46) #13
  %2692 = icmp eq i32 %2691, -1
  br i1 %2692, label %2693, label %2715

2693:                                             ; preds = %2688
  %2694 = load i32, ptr %1329, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @s2n_print_stacktrace(ptr noundef %2695) #13
  %2697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2698 = trunc nuw i8 %2697 to i1
  br i1 %2698, label %2699, label %2703

2699:                                             ; preds = %2693
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @fileno(ptr noundef %2700) #13
  %2702 = call i32 @isatty(i32 noundef %2701) #13
  %.not2485 = icmp eq i32 %2702, 0
  br i1 %.not2485, label %2703, label %2704

2703:                                             ; preds = %2699, %2693
  br label %2704

2704:                                             ; preds = %2699, %2703
  %.str.5.sink3356 = phi ptr [ @.str.5, %2703 ], [ @.str.2, %2699 ]
  store i32 %2694, ptr %1329, align 4, !tbaa !5
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = load i32, ptr @test_count, align 4, !tbaa !5
  %2707 = load i32, ptr %1275, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror(i32 noundef %2707, ptr noundef nonnull @.str.4) #13
  %2709 = load i32, ptr %1275, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror_debug(i32 noundef %2709, ptr noundef nonnull @.str.4) #13
  %2711 = load i32, ptr %1329, align 4, !tbaa !5
  %2712 = call ptr @strerror(i32 noundef %2711) #13
  %2713 = load i32, ptr %1329, align 4, !tbaa !5
  %2714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2705, ptr noundef nonnull %.str.5.sink3356, i32 noundef %2706, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %2708, ptr noundef %2710, ptr noundef %2712, i32 noundef %2713) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2715:                                             ; preds = %2688
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #13
  store i32 -1, ptr %47, align 4, !tbaa !5
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = add nsw i32 %2716, 1
  store i32 %2717, ptr @test_count, align 4, !tbaa !5
  %2718 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %43, ptr noundef nonnull %2524, ptr noundef nonnull %2609, i32 noundef %2608, ptr noundef nonnull %47, ptr noundef nonnull %46) #13
  %2719 = call zeroext i1 @s2n_result_is_error(i32 %2718)
  br i1 %2719, label %2742, label %2720

2720:                                             ; preds = %2715
  %2721 = load i32, ptr %1329, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @s2n_print_stacktrace(ptr noundef %2722) #13
  %2724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2725 = trunc nuw i8 %2724 to i1
  br i1 %2725, label %2726, label %2730

2726:                                             ; preds = %2720
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = call i32 @fileno(ptr noundef %2727) #13
  %2729 = call i32 @isatty(i32 noundef %2728) #13
  %.not1968 = icmp eq i32 %2729, 0
  br i1 %.not1968, label %2730, label %2731

2730:                                             ; preds = %2726, %2720
  br label %2731

2731:                                             ; preds = %2726, %2730
  %.str.5.sink3365 = phi ptr [ @.str.5, %2730 ], [ @.str.2, %2726 ]
  store i32 %2721, ptr %1329, align 4, !tbaa !5
  %2732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = load i32, ptr %1275, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror(i32 noundef %2734, ptr noundef nonnull @.str.4) #13
  %2736 = load i32, ptr %1275, align 4, !tbaa !5
  %2737 = call ptr @s2n_strerror_debug(i32 noundef %2736, ptr noundef nonnull @.str.4) #13
  %2738 = load i32, ptr %1329, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #13
  %2740 = load i32, ptr %1329, align 4, !tbaa !5
  %2741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2732, ptr noundef nonnull %.str.5.sink3365, i32 noundef %2733, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %2735, ptr noundef %2737, ptr noundef %2739, i32 noundef %2740) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2742:                                             ; preds = %2715
  %2743 = load i32, ptr @test_count, align 4, !tbaa !5
  %2744 = add nsw i32 %2743, 1
  store i32 %2744, ptr @test_count, align 4, !tbaa !5
  %2745 = load i32, ptr %1275, align 4, !tbaa !5
  %2746 = icmp eq i32 %2745, 335544372
  br i1 %2746, label %2769, label %2747

2747:                                             ; preds = %2742
  %2748 = load i32, ptr %1329, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @s2n_print_stacktrace(ptr noundef %2749) #13
  %2751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2752 = trunc nuw i8 %2751 to i1
  br i1 %2752, label %2753, label %2757

2753:                                             ; preds = %2747
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = call i32 @fileno(ptr noundef %2754) #13
  %2756 = call i32 @isatty(i32 noundef %2755) #13
  %.not1969 = icmp eq i32 %2756, 0
  br i1 %.not1969, label %2757, label %2758

2757:                                             ; preds = %2753, %2747
  br label %2758

2758:                                             ; preds = %2753, %2757
  %.str.5.sink3374 = phi ptr [ @.str.5, %2757 ], [ @.str.2, %2753 ]
  store i32 %2748, ptr %1329, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = load i32, ptr %1275, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef nonnull @.str.4) #13
  %2763 = load i32, ptr %1275, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef nonnull @.str.4) #13
  %2765 = load i32, ptr %1329, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #13
  %2767 = load i32, ptr %1329, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef nonnull %.str.5.sink3374, i32 noundef %2760, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %2762, ptr noundef %2764, ptr noundef %2766, i32 noundef %2767) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2769:                                             ; preds = %2742
  %2770 = add nsw i32 %2743, 2
  store i32 %2770, ptr @test_count, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror_debug(i32 noundef 335544372, ptr noundef nonnull @.str.4) #13
  %2772 = icmp eq ptr %2771, null
  br i1 %2772, label %2773, label %2795

2773:                                             ; preds = %2769
  %2774 = load i32, ptr %1329, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = call i32 @s2n_print_stacktrace(ptr noundef %2775) #13
  %2777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2778 = trunc nuw i8 %2777 to i1
  br i1 %2778, label %2779, label %2783

2779:                                             ; preds = %2773
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #13
  %2782 = call i32 @isatty(i32 noundef %2781) #13
  %.not2484 = icmp eq i32 %2782, 0
  br i1 %.not2484, label %2783, label %2784

2783:                                             ; preds = %2779, %2773
  br label %2784

2784:                                             ; preds = %2779, %2783
  %.str.5.sink3383 = phi ptr [ @.str.5, %2783 ], [ @.str.2, %2779 ]
  store i32 %2774, ptr %1329, align 4, !tbaa !5
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = load i32, ptr %1275, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror(i32 noundef %2787, ptr noundef nonnull @.str.4) #13
  %2789 = load i32, ptr %1275, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef nonnull @.str.4) #13
  %2791 = load i32, ptr %1329, align 4, !tbaa !5
  %2792 = call ptr @strerror(i32 noundef %2791) #13
  %2793 = load i32, ptr %1329, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2785, ptr noundef nonnull %.str.5.sink3383, i32 noundef %2786, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %2788, ptr noundef %2790, ptr noundef %2792, i32 noundef %2793) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2795:                                             ; preds = %2769
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %2796 = load i32, ptr @test_count, align 4, !tbaa !5
  %2797 = add nsw i32 %2796, 1
  store i32 %2797, ptr @test_count, align 4, !tbaa !5
  %2798 = getelementptr inbounds i8, ptr %44, i64 9
  %2799 = load i8, ptr %2798, align 1, !tbaa !19
  %2800 = icmp eq i8 %2799, 0
  br i1 %2800, label %2823, label %2801

2801:                                             ; preds = %2795
  %2802 = load i32, ptr %1329, align 4, !tbaa !5
  %2803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2804 = call i32 @s2n_print_stacktrace(ptr noundef %2803) #13
  %2805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2806 = trunc nuw i8 %2805 to i1
  br i1 %2806, label %2807, label %2811

2807:                                             ; preds = %2801
  %2808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2809 = call i32 @fileno(ptr noundef %2808) #13
  %2810 = call i32 @isatty(i32 noundef %2809) #13
  %.not1970 = icmp eq i32 %2810, 0
  br i1 %.not1970, label %2811, label %2812

2811:                                             ; preds = %2807, %2801
  br label %2812

2812:                                             ; preds = %2807, %2811
  %.str.5.sink3392 = phi ptr [ @.str.5, %2811 ], [ @.str.2, %2807 ]
  store i32 %2802, ptr %1329, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = load i32, ptr @test_count, align 4, !tbaa !5
  %2815 = load i32, ptr %1275, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror(i32 noundef %2815, ptr noundef nonnull @.str.4) #13
  %2817 = load i32, ptr %1275, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror_debug(i32 noundef %2817, ptr noundef nonnull @.str.4) #13
  %2819 = load i32, ptr %1329, align 4, !tbaa !5
  %2820 = call ptr @strerror(i32 noundef %2819) #13
  %2821 = load i32, ptr %1329, align 4, !tbaa !5
  %2822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2813, ptr noundef nonnull %.str.5.sink3392, i32 noundef %2814, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %2816, ptr noundef %2818, ptr noundef %2820, i32 noundef %2821) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2823:                                             ; preds = %2795
  %2824 = add nsw i32 %2796, 2
  store i32 %2824, ptr @test_count, align 4, !tbaa !5
  %2825 = load i32, ptr %47, align 4, !tbaa !5
  %2826 = icmp eq i32 %2825, -1
  br i1 %2826, label %2849, label %2827

2827:                                             ; preds = %2823
  %2828 = load i32, ptr %1329, align 4, !tbaa !5
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = call i32 @s2n_print_stacktrace(ptr noundef %2829) #13
  %2831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2832 = trunc nuw i8 %2831 to i1
  br i1 %2832, label %2833, label %2837

2833:                                             ; preds = %2827
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = call i32 @fileno(ptr noundef %2834) #13
  %2836 = call i32 @isatty(i32 noundef %2835) #13
  %.not1971 = icmp eq i32 %2836, 0
  br i1 %.not1971, label %2837, label %2838

2837:                                             ; preds = %2833, %2827
  br label %2838

2838:                                             ; preds = %2833, %2837
  %.str.5.sink3401 = phi ptr [ @.str.5, %2837 ], [ @.str.2, %2833 ]
  store i32 %2828, ptr %1329, align 4, !tbaa !5
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = load i32, ptr %1275, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror(i32 noundef %2841, ptr noundef nonnull @.str.4) #13
  %2843 = load i32, ptr %1275, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef nonnull @.str.4) #13
  %2845 = load i32, ptr %1329, align 4, !tbaa !5
  %2846 = call ptr @strerror(i32 noundef %2845) #13
  %2847 = load i32, ptr %1329, align 4, !tbaa !5
  %2848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2839, ptr noundef nonnull %.str.5.sink3401, i32 noundef %2840, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %2842, ptr noundef %2844, ptr noundef %2846, i32 noundef %2847) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2849:                                             ; preds = %2823
  %2850 = call i32 @s2n_connection_free(ptr noundef nonnull %2524) #13
  %2851 = call i32 @s2n_pkey_free(ptr noundef nonnull %46) #13
  %2852 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %43) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %42) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %46) #13
  %2853 = call i32 @s2n_stuffer_free(ptr noundef nonnull %45) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %45) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %48) #13
  %2854 = load i32, ptr @test_count, align 4, !tbaa !5
  %2855 = add nsw i32 %2854, 1
  store i32 %2855, ptr @test_count, align 4, !tbaa !5
  %2856 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %48, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %2857 = icmp eq i32 %2856, -1
  br i1 %2857, label %2858, label %2880

2858:                                             ; preds = %2849
  %2859 = load i32, ptr %1329, align 4, !tbaa !5
  %2860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2861 = call i32 @s2n_print_stacktrace(ptr noundef %2860) #13
  %2862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2863 = trunc nuw i8 %2862 to i1
  br i1 %2863, label %2864, label %2868

2864:                                             ; preds = %2858
  %2865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2866 = call i32 @fileno(ptr noundef %2865) #13
  %2867 = call i32 @isatty(i32 noundef %2866) #13
  %.not2483 = icmp eq i32 %2867, 0
  br i1 %.not2483, label %2868, label %2869

2868:                                             ; preds = %2864, %2858
  br label %2869

2869:                                             ; preds = %2864, %2868
  %.str.5.sink3410 = phi ptr [ @.str.5, %2868 ], [ @.str.2, %2864 ]
  store i32 %2859, ptr %1329, align 4, !tbaa !5
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = load i32, ptr @test_count, align 4, !tbaa !5
  %2872 = load i32, ptr %1275, align 4, !tbaa !5
  %2873 = call ptr @s2n_strerror(i32 noundef %2872, ptr noundef nonnull @.str.4) #13
  %2874 = load i32, ptr %1275, align 4, !tbaa !5
  %2875 = call ptr @s2n_strerror_debug(i32 noundef %2874, ptr noundef nonnull @.str.4) #13
  %2876 = load i32, ptr %1329, align 4, !tbaa !5
  %2877 = call ptr @strerror(i32 noundef %2876) #13
  %2878 = load i32, ptr %1329, align 4, !tbaa !5
  %2879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2870, ptr noundef nonnull %.str.5.sink3410, i32 noundef %2871, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 471, ptr noundef %2873, ptr noundef %2875, ptr noundef %2877, i32 noundef %2878) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2880:                                             ; preds = %2849
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %49) #13
  %2881 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %49, ptr noundef nonnull %48, i8 noundef zeroext 1) #13
  %2882 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %2883 = load i32, ptr @test_count, align 4, !tbaa !5
  %2884 = add nsw i32 %2883, 1
  store i32 %2884, ptr @test_count, align 4, !tbaa !5
  %2885 = icmp eq ptr %2882, null
  br i1 %2885, label %2886, label %2908

2886:                                             ; preds = %2880
  %2887 = load i32, ptr %1329, align 4, !tbaa !5
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = call i32 @s2n_print_stacktrace(ptr noundef %2888) #13
  %2890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2891 = trunc nuw i8 %2890 to i1
  br i1 %2891, label %2892, label %2896

2892:                                             ; preds = %2886
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @fileno(ptr noundef %2893) #13
  %2895 = call i32 @isatty(i32 noundef %2894) #13
  %.not2482 = icmp eq i32 %2895, 0
  br i1 %.not2482, label %2896, label %2897

2896:                                             ; preds = %2892, %2886
  br label %2897

2897:                                             ; preds = %2892, %2896
  %.str.5.sink3419 = phi ptr [ @.str.5, %2896 ], [ @.str.2, %2892 ]
  store i32 %2887, ptr %1329, align 4, !tbaa !5
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = load i32, ptr @test_count, align 4, !tbaa !5
  %2900 = load i32, ptr %1275, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror(i32 noundef %2900, ptr noundef nonnull @.str.4) #13
  %2902 = load i32, ptr %1275, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror_debug(i32 noundef %2902, ptr noundef nonnull @.str.4) #13
  %2904 = load i32, ptr %1329, align 4, !tbaa !5
  %2905 = call ptr @strerror(i32 noundef %2904) #13
  %2906 = load i32, ptr %1329, align 4, !tbaa !5
  %2907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2898, ptr noundef nonnull %.str.5.sink3419, i32 noundef %2899, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %2901, ptr noundef %2903, ptr noundef %2905, i32 noundef %2906) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2908:                                             ; preds = %2880
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %50, i8 0, i64 16, i1 false)
  %2909 = add nsw i32 %2883, 2
  store i32 %2909, ptr @test_count, align 4, !tbaa !5
  %2910 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %2882, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %50) #13
  %2911 = icmp eq i32 %2910, -1
  br i1 %2911, label %2912, label %2934

2912:                                             ; preds = %2908
  %2913 = load i32, ptr %1329, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = call i32 @s2n_print_stacktrace(ptr noundef %2914) #13
  %2916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2917 = trunc nuw i8 %2916 to i1
  br i1 %2917, label %2918, label %2922

2918:                                             ; preds = %2912
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = call i32 @fileno(ptr noundef %2919) #13
  %2921 = call i32 @isatty(i32 noundef %2920) #13
  %.not2481 = icmp eq i32 %2921, 0
  br i1 %.not2481, label %2922, label %2923

2922:                                             ; preds = %2918, %2912
  br label %2923

2923:                                             ; preds = %2918, %2922
  %.str.5.sink3428 = phi ptr [ @.str.5, %2922 ], [ @.str.2, %2918 ]
  store i32 %2913, ptr %1329, align 4, !tbaa !5
  %2924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = load i32, ptr %1275, align 4, !tbaa !5
  %2927 = call ptr @s2n_strerror(i32 noundef %2926, ptr noundef nonnull @.str.4) #13
  %2928 = load i32, ptr %1275, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror_debug(i32 noundef %2928, ptr noundef nonnull @.str.4) #13
  %2930 = load i32, ptr %1329, align 4, !tbaa !5
  %2931 = call ptr @strerror(i32 noundef %2930) #13
  %2932 = load i32, ptr %1329, align 4, !tbaa !5
  %2933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2924, ptr noundef nonnull %.str.5.sink3428, i32 noundef %2925, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %2927, ptr noundef %2929, ptr noundef %2931, i32 noundef %2932) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2934:                                             ; preds = %2908
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %51) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %51, i8 0, i64 40, i1 false)
  %2935 = load i32, ptr @test_count, align 4, !tbaa !5
  %2936 = add nsw i32 %2935, 1
  store i32 %2936, ptr @test_count, align 4, !tbaa !5
  %2937 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %2882, ptr noundef nonnull @.str.11, ptr noundef nonnull %51) #13
  %2938 = call zeroext i1 @s2n_result_is_ok(i32 %2937)
  br i1 %2938, label %2961, label %2939

2939:                                             ; preds = %2934
  %2940 = load i32, ptr %1329, align 4, !tbaa !5
  %2941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2942 = call i32 @s2n_print_stacktrace(ptr noundef %2941) #13
  %2943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2944 = trunc nuw i8 %2943 to i1
  br i1 %2944, label %2945, label %2949

2945:                                             ; preds = %2939
  %2946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2947 = call i32 @fileno(ptr noundef %2946) #13
  %2948 = call i32 @isatty(i32 noundef %2947) #13
  %.not1972 = icmp eq i32 %2948, 0
  br i1 %.not1972, label %2949, label %2950

2949:                                             ; preds = %2945, %2939
  br label %2950

2950:                                             ; preds = %2945, %2949
  %.str.5.sink3437 = phi ptr [ @.str.5, %2949 ], [ @.str.2, %2945 ]
  store i32 %2940, ptr %1329, align 4, !tbaa !5
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = load i32, ptr @test_count, align 4, !tbaa !5
  %2953 = load i32, ptr %1275, align 4, !tbaa !5
  %2954 = call ptr @s2n_strerror(i32 noundef %2953, ptr noundef nonnull @.str.4) #13
  %2955 = load i32, ptr %1275, align 4, !tbaa !5
  %2956 = call ptr @s2n_strerror_debug(i32 noundef %2955, ptr noundef nonnull @.str.4) #13
  %2957 = load i32, ptr %1329, align 4, !tbaa !5
  %2958 = call ptr @strerror(i32 noundef %2957) #13
  %2959 = load i32, ptr %1329, align 4, !tbaa !5
  %2960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2951, ptr noundef nonnull %.str.5.sink3437, i32 noundef %2952, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %2954, ptr noundef %2956, ptr noundef %2958, i32 noundef %2959) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2961:                                             ; preds = %2934
  %2962 = getelementptr inbounds i8, ptr %51, i64 28
  %2963 = load i32, ptr %2962, align 4, !tbaa !15
  %2964 = getelementptr inbounds i8, ptr %51, i64 24
  %2965 = load i32, ptr %2964, align 8, !tbaa !18
  %2966 = sub i32 %2963, %2965
  %2967 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %51, i32 noundef %2966) #13
  %2968 = load i32, ptr @test_count, align 4, !tbaa !5
  %2969 = add nsw i32 %2968, 1
  store i32 %2969, ptr @test_count, align 4, !tbaa !5
  %2970 = icmp eq ptr %2967, null
  br i1 %2970, label %2971, label %2993

2971:                                             ; preds = %2961
  %2972 = load i32, ptr %1329, align 4, !tbaa !5
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = call i32 @s2n_print_stacktrace(ptr noundef %2973) #13
  %2975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2976 = trunc nuw i8 %2975 to i1
  br i1 %2976, label %2977, label %2981

2977:                                             ; preds = %2971
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = call i32 @fileno(ptr noundef %2978) #13
  %2980 = call i32 @isatty(i32 noundef %2979) #13
  %.not2480 = icmp eq i32 %2980, 0
  br i1 %.not2480, label %2981, label %2982

2981:                                             ; preds = %2977, %2971
  br label %2982

2982:                                             ; preds = %2977, %2981
  %.str.5.sink3446 = phi ptr [ @.str.5, %2981 ], [ @.str.2, %2977 ]
  store i32 %2972, ptr %1329, align 4, !tbaa !5
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = load i32, ptr @test_count, align 4, !tbaa !5
  %2985 = load i32, ptr %1275, align 4, !tbaa !5
  %2986 = call ptr @s2n_strerror(i32 noundef %2985, ptr noundef nonnull @.str.4) #13
  %2987 = load i32, ptr %1275, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror_debug(i32 noundef %2987, ptr noundef nonnull @.str.4) #13
  %2989 = load i32, ptr %1329, align 4, !tbaa !5
  %2990 = call ptr @strerror(i32 noundef %2989) #13
  %2991 = load i32, ptr %1329, align 4, !tbaa !5
  %2992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2983, ptr noundef nonnull %.str.5.sink3446, i32 noundef %2984, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %2986, ptr noundef %2988, ptr noundef %2990, i32 noundef %2991) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2993:                                             ; preds = %2961
  %2994 = add nsw i32 %2968, 2
  store i32 %2994, ptr @test_count, align 4, !tbaa !5
  %2995 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2882, ptr noundef nonnull @.str.23) #13
  %2996 = icmp eq i32 %2995, -1
  br i1 %2996, label %2997, label %3019

2997:                                             ; preds = %2993
  %2998 = load i32, ptr %1329, align 4, !tbaa !5
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = call i32 @s2n_print_stacktrace(ptr noundef %2999) #13
  %3001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3002 = trunc nuw i8 %3001 to i1
  br i1 %3002, label %3003, label %3007

3003:                                             ; preds = %2997
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = call i32 @fileno(ptr noundef %3004) #13
  %3006 = call i32 @isatty(i32 noundef %3005) #13
  %.not2479 = icmp eq i32 %3006, 0
  br i1 %.not2479, label %3007, label %3008

3007:                                             ; preds = %3003, %2997
  br label %3008

3008:                                             ; preds = %3003, %3007
  %.str.5.sink3455 = phi ptr [ @.str.5, %3007 ], [ @.str.2, %3003 ]
  store i32 %2998, ptr %1329, align 4, !tbaa !5
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = load i32, ptr %1275, align 4, !tbaa !5
  %3012 = call ptr @s2n_strerror(i32 noundef %3011, ptr noundef nonnull @.str.4) #13
  %3013 = load i32, ptr %1275, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror_debug(i32 noundef %3013, ptr noundef nonnull @.str.4) #13
  %3015 = load i32, ptr %1329, align 4, !tbaa !5
  %3016 = call ptr @strerror(i32 noundef %3015) #13
  %3017 = load i32, ptr %1329, align 4, !tbaa !5
  %3018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3009, ptr noundef nonnull %.str.5.sink3455, i32 noundef %3010, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 488, ptr noundef %3012, ptr noundef %3014, ptr noundef %3016, i32 noundef %3017) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3019:                                             ; preds = %2993
  %3020 = getelementptr inbounds i8, ptr %2882, i64 8
  %3021 = load ptr, ptr %3020, align 8, !tbaa !22
  %3022 = getelementptr inbounds i8, ptr %3021, i64 80
  %3023 = load ptr, ptr %3022, align 8, !tbaa !47
  %3024 = call i32 @s2n_config_set_wall_clock(ptr noundef %3021, ptr noundef nonnull @fetch_expired_after_ocsp_timestamp, ptr noundef null) #13
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %52) #13
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = add nsw i32 %3025, 1
  store i32 %3026, ptr @test_count, align 4, !tbaa !5
  %3027 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %52) #13
  %3028 = icmp eq i32 %3027, -1
  br i1 %3028, label %3029, label %3051

3029:                                             ; preds = %3019
  %3030 = load i32, ptr %1329, align 4, !tbaa !5
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = call i32 @s2n_print_stacktrace(ptr noundef %3031) #13
  %3033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3034 = trunc nuw i8 %3033 to i1
  br i1 %3034, label %3035, label %3039

3035:                                             ; preds = %3029
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @fileno(ptr noundef %3036) #13
  %3038 = call i32 @isatty(i32 noundef %3037) #13
  %.not2478 = icmp eq i32 %3038, 0
  br i1 %.not2478, label %3039, label %3040

3039:                                             ; preds = %3035, %3029
  br label %3040

3040:                                             ; preds = %3035, %3039
  %.str.5.sink3464 = phi ptr [ @.str.5, %3039 ], [ @.str.2, %3035 ]
  store i32 %3030, ptr %1329, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = load i32, ptr @test_count, align 4, !tbaa !5
  %3043 = load i32, ptr %1275, align 4, !tbaa !5
  %3044 = call ptr @s2n_strerror(i32 noundef %3043, ptr noundef nonnull @.str.4) #13
  %3045 = load i32, ptr %1275, align 4, !tbaa !5
  %3046 = call ptr @s2n_strerror_debug(i32 noundef %3045, ptr noundef nonnull @.str.4) #13
  %3047 = load i32, ptr %1329, align 4, !tbaa !5
  %3048 = call ptr @strerror(i32 noundef %3047) #13
  %3049 = load i32, ptr %1329, align 4, !tbaa !5
  %3050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3041, ptr noundef nonnull %.str.5.sink3464, i32 noundef %3042, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %3044, ptr noundef %3046, ptr noundef %3048, i32 noundef %3049) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3051:                                             ; preds = %3019
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #13
  store i32 -1, ptr %53, align 4, !tbaa !5
  %3052 = call zeroext i1 @s2n_supports_large_time_t()
  br i1 %3052, label %3053, label %3055

3053:                                             ; preds = %3051
  %3054 = call zeroext i1 @s2n_libcrypto_supports_2050()
  %spec.select = select i1 %3054, i32 335544369, i32 335544366
  br label %3055

3055:                                             ; preds = %3053, %3051
  %.0 = phi i32 [ 402653194, %3051 ], [ %spec.select, %3053 ]
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = add nsw i32 %3056, 1
  store i32 %3057, ptr @test_count, align 4, !tbaa !5
  %3058 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %49, ptr noundef nonnull %2882, ptr noundef nonnull %2967, i32 noundef %2966, ptr noundef nonnull %53, ptr noundef nonnull %52) #13
  %3059 = call zeroext i1 @s2n_result_is_error(i32 %3058)
  br i1 %3059, label %3082, label %3060

3060:                                             ; preds = %3055
  %3061 = load i32, ptr %1329, align 4, !tbaa !5
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = call i32 @s2n_print_stacktrace(ptr noundef %3062) #13
  %3064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3065 = trunc nuw i8 %3064 to i1
  br i1 %3065, label %3066, label %3070

3066:                                             ; preds = %3060
  %3067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3068 = call i32 @fileno(ptr noundef %3067) #13
  %3069 = call i32 @isatty(i32 noundef %3068) #13
  %.not1973 = icmp eq i32 %3069, 0
  br i1 %.not1973, label %3070, label %3071

3070:                                             ; preds = %3066, %3060
  br label %3071

3071:                                             ; preds = %3066, %3070
  %.str.5.sink3473 = phi ptr [ @.str.5, %3070 ], [ @.str.2, %3066 ]
  store i32 %3061, ptr %1329, align 4, !tbaa !5
  %3072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = load i32, ptr %1275, align 4, !tbaa !5
  %3075 = call ptr @s2n_strerror(i32 noundef %3074, ptr noundef nonnull @.str.4) #13
  %3076 = load i32, ptr %1275, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror_debug(i32 noundef %3076, ptr noundef nonnull @.str.4) #13
  %3078 = load i32, ptr %1329, align 4, !tbaa !5
  %3079 = call ptr @strerror(i32 noundef %3078) #13
  %3080 = load i32, ptr %1329, align 4, !tbaa !5
  %3081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3072, ptr noundef nonnull %.str.5.sink3473, i32 noundef %3073, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %3075, ptr noundef %3077, ptr noundef %3079, i32 noundef %3080) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3082:                                             ; preds = %3055
  %3083 = load i32, ptr @test_count, align 4, !tbaa !5
  %3084 = add nsw i32 %3083, 1
  store i32 %3084, ptr @test_count, align 4, !tbaa !5
  %3085 = load i32, ptr %1275, align 4, !tbaa !5
  %3086 = icmp eq i32 %3085, %.0
  br i1 %3086, label %3109, label %3087

3087:                                             ; preds = %3082
  %3088 = load i32, ptr %1329, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = call i32 @s2n_print_stacktrace(ptr noundef %3089) #13
  %3091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3092 = trunc nuw i8 %3091 to i1
  br i1 %3092, label %3093, label %3097

3093:                                             ; preds = %3087
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = call i32 @fileno(ptr noundef %3094) #13
  %3096 = call i32 @isatty(i32 noundef %3095) #13
  %.not1974 = icmp eq i32 %3096, 0
  br i1 %.not1974, label %3097, label %3098

3097:                                             ; preds = %3093, %3087
  br label %3098

3098:                                             ; preds = %3093, %3097
  %.str.5.sink3482 = phi ptr [ @.str.5, %3097 ], [ @.str.2, %3093 ]
  store i32 %3088, ptr %1329, align 4, !tbaa !5
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = load i32, ptr %1275, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror(i32 noundef %3101, ptr noundef nonnull @.str.4) #13
  %3103 = load i32, ptr %1275, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror_debug(i32 noundef %3103, ptr noundef nonnull @.str.4) #13
  %3105 = load i32, ptr %1329, align 4, !tbaa !5
  %3106 = call ptr @strerror(i32 noundef %3105) #13
  %3107 = load i32, ptr %1329, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3099, ptr noundef nonnull %.str.5.sink3482, i32 noundef %3100, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %3102, ptr noundef %3104, ptr noundef %3106, i32 noundef %3107) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3109:                                             ; preds = %3082
  %3110 = add nsw i32 %3083, 2
  store i32 %3110, ptr @test_count, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror_debug(i32 noundef %.0, ptr noundef nonnull @.str.4) #13
  %3112 = icmp eq ptr %3111, null
  br i1 %3112, label %3113, label %3135

3113:                                             ; preds = %3109
  %3114 = load i32, ptr %1329, align 4, !tbaa !5
  %3115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3116 = call i32 @s2n_print_stacktrace(ptr noundef %3115) #13
  %3117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3118 = trunc nuw i8 %3117 to i1
  br i1 %3118, label %3119, label %3123

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

3123:                                             ; preds = %3119, %3113
  br label %3124

3124:                                             ; preds = %3119, %3123
  %.str.5.sink3491 = phi ptr [ @.str.5, %3123 ], [ @.str.2, %3119 ]
  store i32 %3114, ptr %1329, align 4, !tbaa !5
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = load i32, ptr @test_count, align 4, !tbaa !5
  %3127 = load i32, ptr %1275, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef nonnull @.str.4) #13
  %3129 = load i32, ptr %1275, align 4, !tbaa !5
  %3130 = call ptr @s2n_strerror_debug(i32 noundef %3129, ptr noundef nonnull @.str.4) #13
  %3131 = load i32, ptr %1329, align 4, !tbaa !5
  %3132 = call ptr @strerror(i32 noundef %3131) #13
  %3133 = load i32, ptr %1329, align 4, !tbaa !5
  %3134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3125, ptr noundef nonnull %.str.5.sink3491, i32 noundef %3126, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %3128, ptr noundef %3130, ptr noundef %3132, i32 noundef %3133) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3135:                                             ; preds = %3109
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %3136 = load i32, ptr @test_count, align 4, !tbaa !5
  %3137 = add nsw i32 %3136, 1
  store i32 %3137, ptr @test_count, align 4, !tbaa !5
  %3138 = getelementptr inbounds i8, ptr %50, i64 9
  %3139 = load i8, ptr %3138, align 1, !tbaa !19
  %3140 = icmp eq i8 %3139, 1
  br i1 %3140, label %3163, label %3141

3141:                                             ; preds = %3135
  %3142 = load i32, ptr %1329, align 4, !tbaa !5
  %3143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3144 = call i32 @s2n_print_stacktrace(ptr noundef %3143) #13
  %3145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3146 = trunc nuw i8 %3145 to i1
  br i1 %3146, label %3147, label %3151

3147:                                             ; preds = %3141
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = call i32 @fileno(ptr noundef %3148) #13
  %3150 = call i32 @isatty(i32 noundef %3149) #13
  %.not1975 = icmp eq i32 %3150, 0
  br i1 %.not1975, label %3151, label %3152

3151:                                             ; preds = %3147, %3141
  br label %3152

3152:                                             ; preds = %3147, %3151
  %.str.5.sink3500 = phi ptr [ @.str.5, %3151 ], [ @.str.2, %3147 ]
  store i32 %3142, ptr %1329, align 4, !tbaa !5
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = load i32, ptr @test_count, align 4, !tbaa !5
  %3155 = load i32, ptr %1275, align 4, !tbaa !5
  %3156 = call ptr @s2n_strerror(i32 noundef %3155, ptr noundef nonnull @.str.4) #13
  %3157 = load i32, ptr %1275, align 4, !tbaa !5
  %3158 = call ptr @s2n_strerror_debug(i32 noundef %3157, ptr noundef nonnull @.str.4) #13
  %3159 = load i32, ptr %1329, align 4, !tbaa !5
  %3160 = call ptr @strerror(i32 noundef %3159) #13
  %3161 = load i32, ptr %1329, align 4, !tbaa !5
  %3162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3153, ptr noundef nonnull %.str.5.sink3500, i32 noundef %3154, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %3156, ptr noundef %3158, ptr noundef %3160, i32 noundef %3161) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3163:                                             ; preds = %3135
  %3164 = load ptr, ptr %3020, align 8, !tbaa !22
  %3165 = call i32 @s2n_config_set_wall_clock(ptr noundef %3164, ptr noundef %3023, ptr noundef null) #13
  %3166 = call i32 @s2n_connection_free(ptr noundef nonnull %2882) #13
  %3167 = call i32 @s2n_pkey_free(ptr noundef nonnull %52) #13
  %3168 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %49) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %48) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %52) #13
  %3169 = call i32 @s2n_stuffer_free(ptr noundef nonnull %51) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %51) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %49) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %54, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %54) #13
  %3170 = load i32, ptr @test_count, align 4, !tbaa !5
  %3171 = add nsw i32 %3170, 1
  store i32 %3171, ptr @test_count, align 4, !tbaa !5
  %3172 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %54, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %3173 = icmp eq i32 %3172, -1
  br i1 %3173, label %3174, label %3196

3174:                                             ; preds = %3163
  %3175 = load i32, ptr %1329, align 4, !tbaa !5
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @s2n_print_stacktrace(ptr noundef %3176) #13
  %3178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3179 = trunc nuw i8 %3178 to i1
  br i1 %3179, label %3180, label %3184

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

3184:                                             ; preds = %3180, %3174
  br label %3185

3185:                                             ; preds = %3180, %3184
  %.str.5.sink3509 = phi ptr [ @.str.5, %3184 ], [ @.str.2, %3180 ]
  store i32 %3175, ptr %1329, align 4, !tbaa !5
  %3186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = load i32, ptr %1275, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror(i32 noundef %3188, ptr noundef nonnull @.str.4) #13
  %3190 = load i32, ptr %1275, align 4, !tbaa !5
  %3191 = call ptr @s2n_strerror_debug(i32 noundef %3190, ptr noundef nonnull @.str.4) #13
  %3192 = load i32, ptr %1329, align 4, !tbaa !5
  %3193 = call ptr @strerror(i32 noundef %3192) #13
  %3194 = load i32, ptr %1329, align 4, !tbaa !5
  %3195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3186, ptr noundef nonnull %.str.5.sink3509, i32 noundef %3187, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 527, ptr noundef %3189, ptr noundef %3191, ptr noundef %3193, i32 noundef %3194) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3196:                                             ; preds = %3163
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %55) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %55, i8 0, i64 56, i1 false)
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = add nsw i32 %3197, 1
  store i32 %3198, ptr @test_count, align 4, !tbaa !5
  %3199 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %55, ptr noundef nonnull %54, i8 noundef zeroext 0) #13
  %3200 = icmp eq i32 %3199, -1
  br i1 %3200, label %3201, label %3223

3201:                                             ; preds = %3196
  %3202 = load i32, ptr %1329, align 4, !tbaa !5
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = call i32 @s2n_print_stacktrace(ptr noundef %3203) #13
  %3205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3206 = trunc nuw i8 %3205 to i1
  br i1 %3206, label %3207, label %3211

3207:                                             ; preds = %3201
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = call i32 @fileno(ptr noundef %3208) #13
  %3210 = call i32 @isatty(i32 noundef %3209) #13
  %.not2475 = icmp eq i32 %3210, 0
  br i1 %.not2475, label %3211, label %3212

3211:                                             ; preds = %3207, %3201
  br label %3212

3212:                                             ; preds = %3207, %3211
  %.str.5.sink3518 = phi ptr [ @.str.5, %3211 ], [ @.str.2, %3207 ]
  store i32 %3202, ptr %1329, align 4, !tbaa !5
  %3213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = load i32, ptr %1275, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror(i32 noundef %3215, ptr noundef nonnull @.str.4) #13
  %3217 = load i32, ptr %1275, align 4, !tbaa !5
  %3218 = call ptr @s2n_strerror_debug(i32 noundef %3217, ptr noundef nonnull @.str.4) #13
  %3219 = load i32, ptr %1329, align 4, !tbaa !5
  %3220 = call ptr @strerror(i32 noundef %3219) #13
  %3221 = load i32, ptr %1329, align 4, !tbaa !5
  %3222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3213, ptr noundef nonnull %.str.5.sink3518, i32 noundef %3214, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %3216, ptr noundef %3218, ptr noundef %3220, i32 noundef %3221) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3223:                                             ; preds = %3196
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #13
  %3224 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %3224, ptr %56, align 8, !tbaa !9
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = icmp eq ptr %3224, null
  br i1 %3227, label %3228, label %3250

3228:                                             ; preds = %3223
  %3229 = load i32, ptr %1329, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @s2n_print_stacktrace(ptr noundef %3230) #13
  %3232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3233 = trunc nuw i8 %3232 to i1
  br i1 %3233, label %3234, label %3238

3234:                                             ; preds = %3228
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @fileno(ptr noundef %3235) #13
  %3237 = call i32 @isatty(i32 noundef %3236) #13
  %.not2474 = icmp eq i32 %3237, 0
  br i1 %.not2474, label %3238, label %3239

3238:                                             ; preds = %3234, %3228
  br label %3239

3239:                                             ; preds = %3234, %3238
  %.str.5.sink3527 = phi ptr [ @.str.5, %3238 ], [ @.str.2, %3234 ]
  store i32 %3229, ptr %1329, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = load i32, ptr %1275, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror(i32 noundef %3242, ptr noundef nonnull @.str.4) #13
  %3244 = load i32, ptr %1275, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef nonnull @.str.4) #13
  %3246 = load i32, ptr %1329, align 4, !tbaa !5
  %3247 = call ptr @strerror(i32 noundef %3246) #13
  %3248 = load i32, ptr %1329, align 4, !tbaa !5
  %3249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3240, ptr noundef nonnull %.str.5.sink3527, i32 noundef %3241, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %3243, ptr noundef %3245, ptr noundef %3247, i32 noundef %3248) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3250:                                             ; preds = %3223
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %57) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %57, i8 0, i64 16, i1 false)
  %3251 = add nsw i32 %3225, 2
  store i32 %3251, ptr @test_count, align 4, !tbaa !5
  %3252 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %3224, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %57) #13
  %3253 = icmp eq i32 %3252, -1
  br i1 %3253, label %3254, label %3276

3254:                                             ; preds = %3250
  %3255 = load i32, ptr %1329, align 4, !tbaa !5
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = call i32 @s2n_print_stacktrace(ptr noundef %3256) #13
  %3258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3259 = trunc nuw i8 %3258 to i1
  br i1 %3259, label %3260, label %3264

3260:                                             ; preds = %3254
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = call i32 @fileno(ptr noundef %3261) #13
  %3263 = call i32 @isatty(i32 noundef %3262) #13
  %.not2473 = icmp eq i32 %3263, 0
  br i1 %.not2473, label %3264, label %3265

3264:                                             ; preds = %3260, %3254
  br label %3265

3265:                                             ; preds = %3260, %3264
  %.str.5.sink3536 = phi ptr [ @.str.5, %3264 ], [ @.str.2, %3260 ]
  store i32 %3255, ptr %1329, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = load i32, ptr %1275, align 4, !tbaa !5
  %3269 = call ptr @s2n_strerror(i32 noundef %3268, ptr noundef nonnull @.str.4) #13
  %3270 = load i32, ptr %1275, align 4, !tbaa !5
  %3271 = call ptr @s2n_strerror_debug(i32 noundef %3270, ptr noundef nonnull @.str.4) #13
  %3272 = load i32, ptr %1329, align 4, !tbaa !5
  %3273 = call ptr @strerror(i32 noundef %3272) #13
  %3274 = load i32, ptr %1329, align 4, !tbaa !5
  %3275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3266, ptr noundef nonnull %.str.5.sink3536, i32 noundef %3267, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %3269, ptr noundef %3271, ptr noundef %3273, i32 noundef %3274) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3276:                                             ; preds = %3250
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %58) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %58, i8 0, i64 40, i1 false)
  %3277 = load i32, ptr @test_count, align 4, !tbaa !5
  %3278 = add nsw i32 %3277, 1
  store i32 %3278, ptr @test_count, align 4, !tbaa !5
  %3279 = load ptr, ptr %56, align 8, !tbaa !9
  %3280 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %3279, ptr noundef nonnull @.str.51, ptr noundef nonnull %58) #13
  %3281 = call zeroext i1 @s2n_result_is_ok(i32 %3280)
  br i1 %3281, label %3304, label %3282

3282:                                             ; preds = %3276
  %3283 = load i32, ptr %1329, align 4, !tbaa !5
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = call i32 @s2n_print_stacktrace(ptr noundef %3284) #13
  %3286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3287 = trunc nuw i8 %3286 to i1
  br i1 %3287, label %3288, label %3292

3288:                                             ; preds = %3282
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3290 = call i32 @fileno(ptr noundef %3289) #13
  %3291 = call i32 @isatty(i32 noundef %3290) #13
  %.not1976 = icmp eq i32 %3291, 0
  br i1 %.not1976, label %3292, label %3293

3292:                                             ; preds = %3288, %3282
  br label %3293

3293:                                             ; preds = %3288, %3292
  %.str.5.sink3545 = phi ptr [ @.str.5, %3292 ], [ @.str.2, %3288 ]
  store i32 %3283, ptr %1329, align 4, !tbaa !5
  %3294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3295 = load i32, ptr @test_count, align 4, !tbaa !5
  %3296 = load i32, ptr %1275, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror(i32 noundef %3296, ptr noundef nonnull @.str.4) #13
  %3298 = load i32, ptr %1275, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror_debug(i32 noundef %3298, ptr noundef nonnull @.str.4) #13
  %3300 = load i32, ptr %1329, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #13
  %3302 = load i32, ptr %1329, align 4, !tbaa !5
  %3303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3294, ptr noundef nonnull %.str.5.sink3545, i32 noundef %3295, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %3297, ptr noundef %3299, ptr noundef %3301, i32 noundef %3302) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3304:                                             ; preds = %3276
  %3305 = getelementptr inbounds i8, ptr %58, i64 28
  %3306 = load i32, ptr %3305, align 4, !tbaa !15
  %3307 = getelementptr inbounds i8, ptr %58, i64 24
  %3308 = load i32, ptr %3307, align 8, !tbaa !18
  %3309 = sub i32 %3306, %3308
  %3310 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %58, i32 noundef %3309) #13
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = add nsw i32 %3311, 1
  store i32 %3312, ptr @test_count, align 4, !tbaa !5
  %3313 = icmp eq ptr %3310, null
  br i1 %3313, label %3314, label %3336

3314:                                             ; preds = %3304
  %3315 = load i32, ptr %1329, align 4, !tbaa !5
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = call i32 @s2n_print_stacktrace(ptr noundef %3316) #13
  %3318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3319 = trunc nuw i8 %3318 to i1
  br i1 %3319, label %3320, label %3324

3320:                                             ; preds = %3314
  %3321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3322 = call i32 @fileno(ptr noundef %3321) #13
  %3323 = call i32 @isatty(i32 noundef %3322) #13
  %.not2472 = icmp eq i32 %3323, 0
  br i1 %.not2472, label %3324, label %3325

3324:                                             ; preds = %3320, %3314
  br label %3325

3325:                                             ; preds = %3320, %3324
  %.str.5.sink3554 = phi ptr [ @.str.5, %3324 ], [ @.str.2, %3320 ]
  store i32 %3315, ptr %1329, align 4, !tbaa !5
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = load i32, ptr @test_count, align 4, !tbaa !5
  %3328 = load i32, ptr %1275, align 4, !tbaa !5
  %3329 = call ptr @s2n_strerror(i32 noundef %3328, ptr noundef nonnull @.str.4) #13
  %3330 = load i32, ptr %1275, align 4, !tbaa !5
  %3331 = call ptr @s2n_strerror_debug(i32 noundef %3330, ptr noundef nonnull @.str.4) #13
  %3332 = load i32, ptr %1329, align 4, !tbaa !5
  %3333 = call ptr @strerror(i32 noundef %3332) #13
  %3334 = load i32, ptr %1329, align 4, !tbaa !5
  %3335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3326, ptr noundef nonnull %.str.5.sink3554, i32 noundef %3327, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 542, ptr noundef %3329, ptr noundef %3331, ptr noundef %3333, i32 noundef %3334) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3336:                                             ; preds = %3304
  %3337 = add nsw i32 %3311, 2
  store i32 %3337, ptr @test_count, align 4, !tbaa !5
  %3338 = load ptr, ptr %56, align 8, !tbaa !9
  %3339 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %3338, ptr noundef nonnull @.str.23) #13
  %3340 = icmp eq i32 %3339, -1
  br i1 %3340, label %3341, label %3363

3341:                                             ; preds = %3336
  %3342 = load i32, ptr %1329, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @s2n_print_stacktrace(ptr noundef %3343) #13
  %3345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3346 = trunc nuw i8 %3345 to i1
  br i1 %3346, label %3347, label %3351

3347:                                             ; preds = %3341
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @fileno(ptr noundef %3348) #13
  %3350 = call i32 @isatty(i32 noundef %3349) #13
  %.not2471 = icmp eq i32 %3350, 0
  br i1 %.not2471, label %3351, label %3352

3351:                                             ; preds = %3347, %3341
  br label %3352

3352:                                             ; preds = %3347, %3351
  %.str.5.sink3563 = phi ptr [ @.str.5, %3351 ], [ @.str.2, %3347 ]
  store i32 %3342, ptr %1329, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = load i32, ptr %1275, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror(i32 noundef %3355, ptr noundef nonnull @.str.4) #13
  %3357 = load i32, ptr %1275, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror_debug(i32 noundef %3357, ptr noundef nonnull @.str.4) #13
  %3359 = load i32, ptr %1329, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #13
  %3361 = load i32, ptr %1329, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef nonnull %.str.5.sink3563, i32 noundef %3354, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 544, ptr noundef %3356, ptr noundef %3358, ptr noundef %3360, i32 noundef %3361) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3363:                                             ; preds = %3336
  %3364 = load ptr, ptr %56, align 8, !tbaa !9
  %3365 = getelementptr inbounds i8, ptr %3364, i64 8
  %3366 = load ptr, ptr %3365, align 8, !tbaa !22
  %3367 = getelementptr inbounds i8, ptr %3366, i64 80
  %3368 = load ptr, ptr %3367, align 8, !tbaa !47
  %3369 = load i32, ptr @test_count, align 4, !tbaa !5
  %3370 = add nsw i32 %3369, 1
  store i32 %3370, ptr @test_count, align 4, !tbaa !5
  %3371 = call i32 @s2n_config_set_wall_clock(ptr noundef %3366, ptr noundef nonnull @fetch_early_expired_after_ocsp_timestamp, ptr noundef null) #13
  %3372 = icmp eq i32 %3371, -1
  br i1 %3372, label %3373, label %3395

3373:                                             ; preds = %3363
  %3374 = load i32, ptr %1329, align 4, !tbaa !5
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = call i32 @s2n_print_stacktrace(ptr noundef %3375) #13
  %3377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3378 = trunc nuw i8 %3377 to i1
  br i1 %3378, label %3379, label %3383

3379:                                             ; preds = %3373
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = call i32 @fileno(ptr noundef %3380) #13
  %3382 = call i32 @isatty(i32 noundef %3381) #13
  %.not2470 = icmp eq i32 %3382, 0
  br i1 %.not2470, label %3383, label %3384

3383:                                             ; preds = %3379, %3373
  br label %3384

3384:                                             ; preds = %3379, %3383
  %.str.5.sink3572 = phi ptr [ @.str.5, %3383 ], [ @.str.2, %3379 ]
  store i32 %3374, ptr %1329, align 4, !tbaa !5
  %3385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = load i32, ptr %1275, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror(i32 noundef %3387, ptr noundef nonnull @.str.4) #13
  %3389 = load i32, ptr %1275, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror_debug(i32 noundef %3389, ptr noundef nonnull @.str.4) #13
  %3391 = load i32, ptr %1329, align 4, !tbaa !5
  %3392 = call ptr @strerror(i32 noundef %3391) #13
  %3393 = load i32, ptr %1329, align 4, !tbaa !5
  %3394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3385, ptr noundef nonnull %.str.5.sink3572, i32 noundef %3386, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 547, ptr noundef %3388, ptr noundef %3390, ptr noundef %3392, i32 noundef %3393) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3395:                                             ; preds = %3363
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %59) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %59, i8 0, i64 48, i1 false)
  %3396 = load i32, ptr @test_count, align 4, !tbaa !5
  %3397 = add nsw i32 %3396, 1
  store i32 %3397, ptr @test_count, align 4, !tbaa !5
  %3398 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %59) #13
  %3399 = icmp eq i32 %3398, -1
  br i1 %3399, label %3400, label %3422

3400:                                             ; preds = %3395
  %3401 = load i32, ptr %1329, align 4, !tbaa !5
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = call i32 @s2n_print_stacktrace(ptr noundef %3402) #13
  %3404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3405 = trunc nuw i8 %3404 to i1
  br i1 %3405, label %3406, label %3410

3406:                                             ; preds = %3400
  %3407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3408 = call i32 @fileno(ptr noundef %3407) #13
  %3409 = call i32 @isatty(i32 noundef %3408) #13
  %.not2469 = icmp eq i32 %3409, 0
  br i1 %.not2469, label %3410, label %3411

3410:                                             ; preds = %3406, %3400
  br label %3411

3411:                                             ; preds = %3406, %3410
  %.str.5.sink3581 = phi ptr [ @.str.5, %3410 ], [ @.str.2, %3406 ]
  store i32 %3401, ptr %1329, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = load i32, ptr @test_count, align 4, !tbaa !5
  %3414 = load i32, ptr %1275, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror(i32 noundef %3414, ptr noundef nonnull @.str.4) #13
  %3416 = load i32, ptr %1275, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror_debug(i32 noundef %3416, ptr noundef nonnull @.str.4) #13
  %3418 = load i32, ptr %1329, align 4, !tbaa !5
  %3419 = call ptr @strerror(i32 noundef %3418) #13
  %3420 = load i32, ptr %1329, align 4, !tbaa !5
  %3421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3412, ptr noundef nonnull %.str.5.sink3581, i32 noundef %3413, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %3415, ptr noundef %3417, ptr noundef %3419, i32 noundef %3420) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3422:                                             ; preds = %3395
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #13
  store i32 -1, ptr %60, align 4, !tbaa !5
  %3423 = load i32, ptr @test_count, align 4, !tbaa !5
  %3424 = add nsw i32 %3423, 1
  store i32 %3424, ptr @test_count, align 4, !tbaa !5
  %3425 = load ptr, ptr %56, align 8, !tbaa !9
  %3426 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %55, ptr noundef %3425, ptr noundef nonnull %3310, i32 noundef %3309, ptr noundef nonnull %60, ptr noundef nonnull %59) #13
  %3427 = call zeroext i1 @s2n_result_is_error(i32 %3426)
  br i1 %3427, label %3450, label %3428

3428:                                             ; preds = %3422
  %3429 = load i32, ptr %1329, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @s2n_print_stacktrace(ptr noundef %3430) #13
  %3432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3433 = trunc nuw i8 %3432 to i1
  br i1 %3433, label %3434, label %3438

3434:                                             ; preds = %3428
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = call i32 @fileno(ptr noundef %3435) #13
  %3437 = call i32 @isatty(i32 noundef %3436) #13
  %.not1977 = icmp eq i32 %3437, 0
  br i1 %.not1977, label %3438, label %3439

3438:                                             ; preds = %3434, %3428
  br label %3439

3439:                                             ; preds = %3434, %3438
  %.str.5.sink3590 = phi ptr [ @.str.5, %3438 ], [ @.str.2, %3434 ]
  store i32 %3429, ptr %1329, align 4, !tbaa !5
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = load i32, ptr %1275, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror(i32 noundef %3442, ptr noundef nonnull @.str.4) #13
  %3444 = load i32, ptr %1275, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror_debug(i32 noundef %3444, ptr noundef nonnull @.str.4) #13
  %3446 = load i32, ptr %1329, align 4, !tbaa !5
  %3447 = call ptr @strerror(i32 noundef %3446) #13
  %3448 = load i32, ptr %1329, align 4, !tbaa !5
  %3449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3440, ptr noundef nonnull %.str.5.sink3590, i32 noundef %3441, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 555, ptr noundef %3443, ptr noundef %3445, ptr noundef %3447, i32 noundef %3448) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3450:                                             ; preds = %3422
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = add nsw i32 %3451, 1
  store i32 %3452, ptr @test_count, align 4, !tbaa !5
  %3453 = load i32, ptr %1275, align 4, !tbaa !5
  %3454 = icmp eq i32 %3453, 335544369
  br i1 %3454, label %3477, label %3455

3455:                                             ; preds = %3450
  %3456 = load i32, ptr %1329, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = call i32 @s2n_print_stacktrace(ptr noundef %3457) #13
  %3459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3460 = trunc nuw i8 %3459 to i1
  br i1 %3460, label %3461, label %3465

3461:                                             ; preds = %3455
  %3462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3463 = call i32 @fileno(ptr noundef %3462) #13
  %3464 = call i32 @isatty(i32 noundef %3463) #13
  %.not1978 = icmp eq i32 %3464, 0
  br i1 %.not1978, label %3465, label %3466

3465:                                             ; preds = %3461, %3455
  br label %3466

3466:                                             ; preds = %3461, %3465
  %.str.5.sink3599 = phi ptr [ @.str.5, %3465 ], [ @.str.2, %3461 ]
  store i32 %3456, ptr %1329, align 4, !tbaa !5
  %3467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3468 = load i32, ptr @test_count, align 4, !tbaa !5
  %3469 = load i32, ptr %1275, align 4, !tbaa !5
  %3470 = call ptr @s2n_strerror(i32 noundef %3469, ptr noundef nonnull @.str.4) #13
  %3471 = load i32, ptr %1275, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror_debug(i32 noundef %3471, ptr noundef nonnull @.str.4) #13
  %3473 = load i32, ptr %1329, align 4, !tbaa !5
  %3474 = call ptr @strerror(i32 noundef %3473) #13
  %3475 = load i32, ptr %1329, align 4, !tbaa !5
  %3476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3467, ptr noundef nonnull %.str.5.sink3599, i32 noundef %3468, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 555, ptr noundef %3470, ptr noundef %3472, ptr noundef %3474, i32 noundef %3475) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3477:                                             ; preds = %3450
  %3478 = add nsw i32 %3451, 2
  store i32 %3478, ptr @test_count, align 4, !tbaa !5
  %3479 = call ptr @s2n_strerror_debug(i32 noundef 335544369, ptr noundef nonnull @.str.4) #13
  %3480 = icmp eq ptr %3479, null
  br i1 %3480, label %3481, label %3503

3481:                                             ; preds = %3477
  %3482 = load i32, ptr %1329, align 4, !tbaa !5
  %3483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3484 = call i32 @s2n_print_stacktrace(ptr noundef %3483) #13
  %3485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3486 = trunc nuw i8 %3485 to i1
  br i1 %3486, label %3487, label %3491

3487:                                             ; preds = %3481
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = call i32 @fileno(ptr noundef %3488) #13
  %3490 = call i32 @isatty(i32 noundef %3489) #13
  %.not2468 = icmp eq i32 %3490, 0
  br i1 %.not2468, label %3491, label %3492

3491:                                             ; preds = %3487, %3481
  br label %3492

3492:                                             ; preds = %3487, %3491
  %.str.5.sink3608 = phi ptr [ @.str.5, %3491 ], [ @.str.2, %3487 ]
  store i32 %3482, ptr %1329, align 4, !tbaa !5
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = load i32, ptr @test_count, align 4, !tbaa !5
  %3495 = load i32, ptr %1275, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror(i32 noundef %3495, ptr noundef nonnull @.str.4) #13
  %3497 = load i32, ptr %1275, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror_debug(i32 noundef %3497, ptr noundef nonnull @.str.4) #13
  %3499 = load i32, ptr %1329, align 4, !tbaa !5
  %3500 = call ptr @strerror(i32 noundef %3499) #13
  %3501 = load i32, ptr %1329, align 4, !tbaa !5
  %3502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3493, ptr noundef nonnull %.str.5.sink3608, i32 noundef %3494, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 555, ptr noundef %3496, ptr noundef %3498, ptr noundef %3500, i32 noundef %3501) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3503:                                             ; preds = %3477
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %3504 = load i32, ptr @test_count, align 4, !tbaa !5
  %3505 = add nsw i32 %3504, 1
  store i32 %3505, ptr @test_count, align 4, !tbaa !5
  %3506 = getelementptr inbounds i8, ptr %57, i64 9
  %3507 = load i8, ptr %3506, align 1, !tbaa !19
  %3508 = icmp eq i8 %3507, 1
  br i1 %3508, label %3531, label %3509

3509:                                             ; preds = %3503
  %3510 = load i32, ptr %1329, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = call i32 @s2n_print_stacktrace(ptr noundef %3511) #13
  %3513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3514 = trunc nuw i8 %3513 to i1
  br i1 %3514, label %3515, label %3519

3515:                                             ; preds = %3509
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @fileno(ptr noundef %3516) #13
  %3518 = call i32 @isatty(i32 noundef %3517) #13
  %.not1979 = icmp eq i32 %3518, 0
  br i1 %.not1979, label %3519, label %3520

3519:                                             ; preds = %3515, %3509
  br label %3520

3520:                                             ; preds = %3515, %3519
  %.str.5.sink3617 = phi ptr [ @.str.5, %3519 ], [ @.str.2, %3515 ]
  store i32 %3510, ptr %1329, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = load i32, ptr %1275, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror(i32 noundef %3523, ptr noundef nonnull @.str.4) #13
  %3525 = load i32, ptr %1275, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef nonnull @.str.4) #13
  %3527 = load i32, ptr %1329, align 4, !tbaa !5
  %3528 = call ptr @strerror(i32 noundef %3527) #13
  %3529 = load i32, ptr %1329, align 4, !tbaa !5
  %3530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3521, ptr noundef nonnull %.str.5.sink3617, i32 noundef %3522, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 557, ptr noundef %3524, ptr noundef %3526, ptr noundef %3528, i32 noundef %3529) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3531:                                             ; preds = %3503
  %3532 = add nsw i32 %3504, 2
  store i32 %3532, ptr @test_count, align 4, !tbaa !5
  %3533 = load ptr, ptr %56, align 8, !tbaa !9
  %3534 = getelementptr inbounds i8, ptr %3533, i64 8
  %3535 = load ptr, ptr %3534, align 8, !tbaa !22
  %3536 = call i32 @s2n_config_set_wall_clock(ptr noundef %3535, ptr noundef %3368, ptr noundef null) #13
  %3537 = icmp eq i32 %3536, -1
  br i1 %3537, label %3538, label %3560

3538:                                             ; preds = %3531
  %3539 = load i32, ptr %1329, align 4, !tbaa !5
  %3540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3541 = call i32 @s2n_print_stacktrace(ptr noundef %3540) #13
  %3542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3543 = trunc nuw i8 %3542 to i1
  br i1 %3543, label %3544, label %3548

3544:                                             ; preds = %3538
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @fileno(ptr noundef %3545) #13
  %3547 = call i32 @isatty(i32 noundef %3546) #13
  %.not2467 = icmp eq i32 %3547, 0
  br i1 %.not2467, label %3548, label %3549

3548:                                             ; preds = %3544, %3538
  br label %3549

3549:                                             ; preds = %3544, %3548
  %.str.5.sink3626 = phi ptr [ @.str.5, %3548 ], [ @.str.2, %3544 ]
  store i32 %3539, ptr %1329, align 4, !tbaa !5
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = load i32, ptr %1275, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror(i32 noundef %3552, ptr noundef nonnull @.str.4) #13
  %3554 = load i32, ptr %1275, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror_debug(i32 noundef %3554, ptr noundef nonnull @.str.4) #13
  %3556 = load i32, ptr %1329, align 4, !tbaa !5
  %3557 = call ptr @strerror(i32 noundef %3556) #13
  %3558 = load i32, ptr %1329, align 4, !tbaa !5
  %3559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3550, ptr noundef nonnull %.str.5.sink3626, i32 noundef %3551, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 558, ptr noundef %3553, ptr noundef %3555, ptr noundef %3557, i32 noundef %3558) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3560:                                             ; preds = %3531
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #13
  %3561 = call i32 @s2n_pkey_free(ptr noundef nonnull %59) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %59) #13
  %3562 = call i32 @s2n_stuffer_free(ptr noundef nonnull %58) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %58) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #13
  %3563 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %56) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #13
  %3564 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %55) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %55) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %54) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %61) #13
  %3565 = load i32, ptr @test_count, align 4, !tbaa !5
  %3566 = add nsw i32 %3565, 1
  store i32 %3566, ptr @test_count, align 4, !tbaa !5
  %3567 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %61, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %3568 = icmp eq i32 %3567, -1
  br i1 %3568, label %3569, label %3591

3569:                                             ; preds = %3560
  %3570 = load i32, ptr %1329, align 4, !tbaa !5
  %3571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3572 = call i32 @s2n_print_stacktrace(ptr noundef %3571) #13
  %3573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3574 = trunc nuw i8 %3573 to i1
  br i1 %3574, label %3575, label %3579

3575:                                             ; preds = %3569
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = call i32 @fileno(ptr noundef %3576) #13
  %3578 = call i32 @isatty(i32 noundef %3577) #13
  %.not2466 = icmp eq i32 %3578, 0
  br i1 %.not2466, label %3579, label %3580

3579:                                             ; preds = %3575, %3569
  br label %3580

3580:                                             ; preds = %3575, %3579
  %.str.5.sink3635 = phi ptr [ @.str.5, %3579 ], [ @.str.2, %3575 ]
  store i32 %3570, ptr %1329, align 4, !tbaa !5
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = load i32, ptr @test_count, align 4, !tbaa !5
  %3583 = load i32, ptr %1275, align 4, !tbaa !5
  %3584 = call ptr @s2n_strerror(i32 noundef %3583, ptr noundef nonnull @.str.4) #13
  %3585 = load i32, ptr %1275, align 4, !tbaa !5
  %3586 = call ptr @s2n_strerror_debug(i32 noundef %3585, ptr noundef nonnull @.str.4) #13
  %3587 = load i32, ptr %1329, align 4, !tbaa !5
  %3588 = call ptr @strerror(i32 noundef %3587) #13
  %3589 = load i32, ptr %1329, align 4, !tbaa !5
  %3590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3581, ptr noundef nonnull %.str.5.sink3635, i32 noundef %3582, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 565, ptr noundef %3584, ptr noundef %3586, ptr noundef %3588, i32 noundef %3589) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3591:                                             ; preds = %3560
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %62) #13
  %3592 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %62, ptr noundef nonnull %61, i8 noundef zeroext 1) #13
  %3593 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %3594 = load i32, ptr @test_count, align 4, !tbaa !5
  %3595 = add nsw i32 %3594, 1
  store i32 %3595, ptr @test_count, align 4, !tbaa !5
  %3596 = icmp eq ptr %3593, null
  br i1 %3596, label %3597, label %3619

3597:                                             ; preds = %3591
  %3598 = load i32, ptr %1329, align 4, !tbaa !5
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = call i32 @s2n_print_stacktrace(ptr noundef %3599) #13
  %3601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3602 = trunc nuw i8 %3601 to i1
  br i1 %3602, label %3603, label %3607

3603:                                             ; preds = %3597
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @fileno(ptr noundef %3604) #13
  %3606 = call i32 @isatty(i32 noundef %3605) #13
  %.not2465 = icmp eq i32 %3606, 0
  br i1 %.not2465, label %3607, label %3608

3607:                                             ; preds = %3603, %3597
  br label %3608

3608:                                             ; preds = %3603, %3607
  %.str.5.sink3644 = phi ptr [ @.str.5, %3607 ], [ @.str.2, %3603 ]
  store i32 %3598, ptr %1329, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = load i32, ptr @test_count, align 4, !tbaa !5
  %3611 = load i32, ptr %1275, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror(i32 noundef %3611, ptr noundef nonnull @.str.4) #13
  %3613 = load i32, ptr %1275, align 4, !tbaa !5
  %3614 = call ptr @s2n_strerror_debug(i32 noundef %3613, ptr noundef nonnull @.str.4) #13
  %3615 = load i32, ptr %1329, align 4, !tbaa !5
  %3616 = call ptr @strerror(i32 noundef %3615) #13
  %3617 = load i32, ptr %1329, align 4, !tbaa !5
  %3618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3609, ptr noundef nonnull %.str.5.sink3644, i32 noundef %3610, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 571, ptr noundef %3612, ptr noundef %3614, ptr noundef %3616, i32 noundef %3617) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3619:                                             ; preds = %3591
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %63) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %63, i8 0, i64 16, i1 false)
  %3620 = add nsw i32 %3594, 2
  store i32 %3620, ptr @test_count, align 4, !tbaa !5
  %3621 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %3593, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %63) #13
  %3622 = icmp eq i32 %3621, -1
  br i1 %3622, label %3623, label %3645

3623:                                             ; preds = %3619
  %3624 = load i32, ptr %1329, align 4, !tbaa !5
  %3625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3626 = call i32 @s2n_print_stacktrace(ptr noundef %3625) #13
  %3627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3628 = trunc nuw i8 %3627 to i1
  br i1 %3628, label %3629, label %3633

3629:                                             ; preds = %3623
  %3630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3631 = call i32 @fileno(ptr noundef %3630) #13
  %3632 = call i32 @isatty(i32 noundef %3631) #13
  %.not2464 = icmp eq i32 %3632, 0
  br i1 %.not2464, label %3633, label %3634

3633:                                             ; preds = %3629, %3623
  br label %3634

3634:                                             ; preds = %3629, %3633
  %.str.5.sink3653 = phi ptr [ @.str.5, %3633 ], [ @.str.2, %3629 ]
  store i32 %3624, ptr %1329, align 4, !tbaa !5
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = load i32, ptr @test_count, align 4, !tbaa !5
  %3637 = load i32, ptr %1275, align 4, !tbaa !5
  %3638 = call ptr @s2n_strerror(i32 noundef %3637, ptr noundef nonnull @.str.4) #13
  %3639 = load i32, ptr %1275, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror_debug(i32 noundef %3639, ptr noundef nonnull @.str.4) #13
  %3641 = load i32, ptr %1329, align 4, !tbaa !5
  %3642 = call ptr @strerror(i32 noundef %3641) #13
  %3643 = load i32, ptr %1329, align 4, !tbaa !5
  %3644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3635, ptr noundef nonnull %.str.5.sink3653, i32 noundef %3636, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 574, ptr noundef %3638, ptr noundef %3640, ptr noundef %3642, i32 noundef %3643) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3645:                                             ; preds = %3619
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %64) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %64, i8 0, i64 40, i1 false)
  %3646 = load i32, ptr @test_count, align 4, !tbaa !5
  %3647 = add nsw i32 %3646, 1
  store i32 %3647, ptr @test_count, align 4, !tbaa !5
  %3648 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %3593, ptr noundef nonnull @.str.11, ptr noundef nonnull %64) #13
  %3649 = call zeroext i1 @s2n_result_is_ok(i32 %3648)
  br i1 %3649, label %3672, label %3650

3650:                                             ; preds = %3645
  %3651 = load i32, ptr %1329, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = call i32 @s2n_print_stacktrace(ptr noundef %3652) #13
  %3654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3655 = trunc nuw i8 %3654 to i1
  br i1 %3655, label %3656, label %3660

3656:                                             ; preds = %3650
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @fileno(ptr noundef %3657) #13
  %3659 = call i32 @isatty(i32 noundef %3658) #13
  %.not1980 = icmp eq i32 %3659, 0
  br i1 %.not1980, label %3660, label %3661

3660:                                             ; preds = %3656, %3650
  br label %3661

3661:                                             ; preds = %3656, %3660
  %.str.5.sink3662 = phi ptr [ @.str.5, %3660 ], [ @.str.2, %3656 ]
  store i32 %3651, ptr %1329, align 4, !tbaa !5
  %3662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3663 = load i32, ptr @test_count, align 4, !tbaa !5
  %3664 = load i32, ptr %1275, align 4, !tbaa !5
  %3665 = call ptr @s2n_strerror(i32 noundef %3664, ptr noundef nonnull @.str.4) #13
  %3666 = load i32, ptr %1275, align 4, !tbaa !5
  %3667 = call ptr @s2n_strerror_debug(i32 noundef %3666, ptr noundef nonnull @.str.4) #13
  %3668 = load i32, ptr %1329, align 4, !tbaa !5
  %3669 = call ptr @strerror(i32 noundef %3668) #13
  %3670 = load i32, ptr %1329, align 4, !tbaa !5
  %3671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3662, ptr noundef nonnull %.str.5.sink3662, i32 noundef %3663, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 577, ptr noundef %3665, ptr noundef %3667, ptr noundef %3669, i32 noundef %3670) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3672:                                             ; preds = %3645
  %3673 = getelementptr inbounds i8, ptr %64, i64 28
  %3674 = load i32, ptr %3673, align 4, !tbaa !15
  %3675 = getelementptr inbounds i8, ptr %64, i64 24
  %3676 = load i32, ptr %3675, align 8, !tbaa !18
  %3677 = sub i32 %3674, %3676
  %3678 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %64, i32 noundef %3677) #13
  %3679 = load i32, ptr @test_count, align 4, !tbaa !5
  %3680 = add nsw i32 %3679, 1
  store i32 %3680, ptr @test_count, align 4, !tbaa !5
  %3681 = icmp eq ptr %3678, null
  br i1 %3681, label %3682, label %3704

3682:                                             ; preds = %3672
  %3683 = load i32, ptr %1329, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = call i32 @s2n_print_stacktrace(ptr noundef %3684) #13
  %3686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3687 = trunc nuw i8 %3686 to i1
  br i1 %3687, label %3688, label %3692

3688:                                             ; preds = %3682
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = call i32 @fileno(ptr noundef %3689) #13
  %3691 = call i32 @isatty(i32 noundef %3690) #13
  %.not2463 = icmp eq i32 %3691, 0
  br i1 %.not2463, label %3692, label %3693

3692:                                             ; preds = %3688, %3682
  br label %3693

3693:                                             ; preds = %3688, %3692
  %.str.5.sink3671 = phi ptr [ @.str.5, %3692 ], [ @.str.2, %3688 ]
  store i32 %3683, ptr %1329, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = load i32, ptr %1275, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror(i32 noundef %3696, ptr noundef nonnull @.str.4) #13
  %3698 = load i32, ptr %1275, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror_debug(i32 noundef %3698, ptr noundef nonnull @.str.4) #13
  %3700 = load i32, ptr %1329, align 4, !tbaa !5
  %3701 = call ptr @strerror(i32 noundef %3700) #13
  %3702 = load i32, ptr %1329, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3694, ptr noundef nonnull %.str.5.sink3671, i32 noundef %3695, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 580, ptr noundef %3697, ptr noundef %3699, ptr noundef %3701, i32 noundef %3702) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3704:                                             ; preds = %3672
  %3705 = add nsw i32 %3679, 2
  store i32 %3705, ptr @test_count, align 4, !tbaa !5
  %3706 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3593, ptr noundef nonnull @.str.23) #13
  %3707 = icmp eq i32 %3706, -1
  br i1 %3707, label %3708, label %3730

3708:                                             ; preds = %3704
  %3709 = load i32, ptr %1329, align 4, !tbaa !5
  %3710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3711 = call i32 @s2n_print_stacktrace(ptr noundef %3710) #13
  %3712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3713 = trunc nuw i8 %3712 to i1
  br i1 %3713, label %3714, label %3718

3714:                                             ; preds = %3708
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = call i32 @fileno(ptr noundef %3715) #13
  %3717 = call i32 @isatty(i32 noundef %3716) #13
  %.not2462 = icmp eq i32 %3717, 0
  br i1 %.not2462, label %3718, label %3719

3718:                                             ; preds = %3714, %3708
  br label %3719

3719:                                             ; preds = %3714, %3718
  %.str.5.sink3680 = phi ptr [ @.str.5, %3718 ], [ @.str.2, %3714 ]
  store i32 %3709, ptr %1329, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = load i32, ptr @test_count, align 4, !tbaa !5
  %3722 = load i32, ptr %1275, align 4, !tbaa !5
  %3723 = call ptr @s2n_strerror(i32 noundef %3722, ptr noundef nonnull @.str.4) #13
  %3724 = load i32, ptr %1275, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef nonnull @.str.4) #13
  %3726 = load i32, ptr %1329, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #13
  %3728 = load i32, ptr %1329, align 4, !tbaa !5
  %3729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3720, ptr noundef nonnull %.str.5.sink3680, i32 noundef %3721, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 582, ptr noundef %3723, ptr noundef %3725, ptr noundef %3727, i32 noundef %3728) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3730:                                             ; preds = %3704
  %3731 = load i32, ptr @test_count, align 4, !tbaa !5
  %3732 = add nsw i32 %3731, 1
  store i32 %3732, ptr @test_count, align 4, !tbaa !5
  %3733 = icmp ugt i32 %3677, 200
  br i1 %3733, label %3756, label %3734

3734:                                             ; preds = %3730
  %3735 = load i32, ptr %1329, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = call i32 @s2n_print_stacktrace(ptr noundef %3736) #13
  %3738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3739 = trunc nuw i8 %3738 to i1
  br i1 %3739, label %3740, label %3744

3740:                                             ; preds = %3734
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = call i32 @fileno(ptr noundef %3741) #13
  %3743 = call i32 @isatty(i32 noundef %3742) #13
  %.not1981 = icmp eq i32 %3743, 0
  br i1 %.not1981, label %3744, label %3745

3744:                                             ; preds = %3740, %3734
  br label %3745

3745:                                             ; preds = %3740, %3744
  %.str.5.sink3689 = phi ptr [ @.str.5, %3744 ], [ @.str.2, %3740 ]
  store i32 %3735, ptr %1329, align 4, !tbaa !5
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = load i32, ptr @test_count, align 4, !tbaa !5
  %3748 = load i32, ptr %1275, align 4, !tbaa !5
  %3749 = call ptr @s2n_strerror(i32 noundef %3748, ptr noundef nonnull @.str.4) #13
  %3750 = load i32, ptr %1275, align 4, !tbaa !5
  %3751 = call ptr @s2n_strerror_debug(i32 noundef %3750, ptr noundef nonnull @.str.4) #13
  %3752 = load i32, ptr %1329, align 4, !tbaa !5
  %3753 = call ptr @strerror(i32 noundef %3752) #13
  %3754 = load i32, ptr %1329, align 4, !tbaa !5
  %3755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3746, ptr noundef nonnull %.str.5.sink3689, i32 noundef %3747, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 586, ptr noundef %3749, ptr noundef %3751, ptr noundef %3753, i32 noundef %3754) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3756:                                             ; preds = %3730
  %3757 = getelementptr inbounds i8, ptr %3678, i64 200
  %3758 = load i8, ptr %3757, align 1, !tbaa !51
  %3759 = shl i8 %3758, 2
  store i8 %3759, ptr %3757, align 1, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %65) #13
  %3760 = add nsw i32 %3731, 2
  store i32 %3760, ptr @test_count, align 4, !tbaa !5
  %3761 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %65) #13
  %3762 = icmp eq i32 %3761, -1
  br i1 %3762, label %3763, label %3785

3763:                                             ; preds = %3756
  %3764 = load i32, ptr %1329, align 4, !tbaa !5
  %3765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3766 = call i32 @s2n_print_stacktrace(ptr noundef %3765) #13
  %3767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3768 = trunc nuw i8 %3767 to i1
  br i1 %3768, label %3769, label %3773

3769:                                             ; preds = %3763
  %3770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3771 = call i32 @fileno(ptr noundef %3770) #13
  %3772 = call i32 @isatty(i32 noundef %3771) #13
  %.not2461 = icmp eq i32 %3772, 0
  br i1 %.not2461, label %3773, label %3774

3773:                                             ; preds = %3769, %3763
  br label %3774

3774:                                             ; preds = %3769, %3773
  %.str.5.sink3698 = phi ptr [ @.str.5, %3773 ], [ @.str.2, %3769 ]
  store i32 %3764, ptr %1329, align 4, !tbaa !5
  %3775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3776 = load i32, ptr @test_count, align 4, !tbaa !5
  %3777 = load i32, ptr %1275, align 4, !tbaa !5
  %3778 = call ptr @s2n_strerror(i32 noundef %3777, ptr noundef nonnull @.str.4) #13
  %3779 = load i32, ptr %1275, align 4, !tbaa !5
  %3780 = call ptr @s2n_strerror_debug(i32 noundef %3779, ptr noundef nonnull @.str.4) #13
  %3781 = load i32, ptr %1329, align 4, !tbaa !5
  %3782 = call ptr @strerror(i32 noundef %3781) #13
  %3783 = load i32, ptr %1329, align 4, !tbaa !5
  %3784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3775, ptr noundef nonnull %.str.5.sink3698, i32 noundef %3776, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 589, ptr noundef %3778, ptr noundef %3780, ptr noundef %3782, i32 noundef %3783) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3785:                                             ; preds = %3756
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %66) #13
  store i32 -1, ptr %66, align 4, !tbaa !5
  %3786 = load i32, ptr @test_count, align 4, !tbaa !5
  %3787 = add nsw i32 %3786, 1
  store i32 %3787, ptr @test_count, align 4, !tbaa !5
  %3788 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %62, ptr noundef nonnull %3593, ptr noundef nonnull %3678, i32 noundef %3677, ptr noundef nonnull %66, ptr noundef nonnull %65) #13
  %3789 = call zeroext i1 @s2n_result_is_error(i32 %3788)
  br i1 %3789, label %3812, label %3790

3790:                                             ; preds = %3785
  %3791 = load i32, ptr %1329, align 4, !tbaa !5
  %3792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3793 = call i32 @s2n_print_stacktrace(ptr noundef %3792) #13
  %3794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3795 = trunc nuw i8 %3794 to i1
  br i1 %3795, label %3796, label %3800

3796:                                             ; preds = %3790
  %3797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3798 = call i32 @fileno(ptr noundef %3797) #13
  %3799 = call i32 @isatty(i32 noundef %3798) #13
  %.not1982 = icmp eq i32 %3799, 0
  br i1 %.not1982, label %3800, label %3801

3800:                                             ; preds = %3796, %3790
  br label %3801

3801:                                             ; preds = %3796, %3800
  %.str.5.sink3707 = phi ptr [ @.str.5, %3800 ], [ @.str.2, %3796 ]
  store i32 %3791, ptr %1329, align 4, !tbaa !5
  %3802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3803 = load i32, ptr @test_count, align 4, !tbaa !5
  %3804 = load i32, ptr %1275, align 4, !tbaa !5
  %3805 = call ptr @s2n_strerror(i32 noundef %3804, ptr noundef nonnull @.str.4) #13
  %3806 = load i32, ptr %1275, align 4, !tbaa !5
  %3807 = call ptr @s2n_strerror_debug(i32 noundef %3806, ptr noundef nonnull @.str.4) #13
  %3808 = load i32, ptr %1329, align 4, !tbaa !5
  %3809 = call ptr @strerror(i32 noundef %3808) #13
  %3810 = load i32, ptr %1329, align 4, !tbaa !5
  %3811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3802, ptr noundef nonnull %.str.5.sink3707, i32 noundef %3803, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 593, ptr noundef %3805, ptr noundef %3807, ptr noundef %3809, i32 noundef %3810) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3812:                                             ; preds = %3785
  %3813 = load i32, ptr @test_count, align 4, !tbaa !5
  %3814 = add nsw i32 %3813, 1
  store i32 %3814, ptr @test_count, align 4, !tbaa !5
  %3815 = load i32, ptr %1275, align 4, !tbaa !5
  %3816 = icmp eq i32 %3815, 335544366
  br i1 %3816, label %3839, label %3817

3817:                                             ; preds = %3812
  %3818 = load i32, ptr %1329, align 4, !tbaa !5
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = call i32 @s2n_print_stacktrace(ptr noundef %3819) #13
  %3821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3822 = trunc nuw i8 %3821 to i1
  br i1 %3822, label %3823, label %3827

3823:                                             ; preds = %3817
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = call i32 @fileno(ptr noundef %3824) #13
  %3826 = call i32 @isatty(i32 noundef %3825) #13
  %.not1983 = icmp eq i32 %3826, 0
  br i1 %.not1983, label %3827, label %3828

3827:                                             ; preds = %3823, %3817
  br label %3828

3828:                                             ; preds = %3823, %3827
  %.str.5.sink3716 = phi ptr [ @.str.5, %3827 ], [ @.str.2, %3823 ]
  store i32 %3818, ptr %1329, align 4, !tbaa !5
  %3829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3830 = load i32, ptr @test_count, align 4, !tbaa !5
  %3831 = load i32, ptr %1275, align 4, !tbaa !5
  %3832 = call ptr @s2n_strerror(i32 noundef %3831, ptr noundef nonnull @.str.4) #13
  %3833 = load i32, ptr %1275, align 4, !tbaa !5
  %3834 = call ptr @s2n_strerror_debug(i32 noundef %3833, ptr noundef nonnull @.str.4) #13
  %3835 = load i32, ptr %1329, align 4, !tbaa !5
  %3836 = call ptr @strerror(i32 noundef %3835) #13
  %3837 = load i32, ptr %1329, align 4, !tbaa !5
  %3838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3829, ptr noundef nonnull %.str.5.sink3716, i32 noundef %3830, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 593, ptr noundef %3832, ptr noundef %3834, ptr noundef %3836, i32 noundef %3837) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3839:                                             ; preds = %3812
  %3840 = add nsw i32 %3813, 2
  store i32 %3840, ptr @test_count, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %3842 = icmp eq ptr %3841, null
  br i1 %3842, label %3843, label %3865

3843:                                             ; preds = %3839
  %3844 = load i32, ptr %1329, align 4, !tbaa !5
  %3845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3846 = call i32 @s2n_print_stacktrace(ptr noundef %3845) #13
  %3847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3848 = trunc nuw i8 %3847 to i1
  br i1 %3848, label %3849, label %3853

3849:                                             ; preds = %3843
  %3850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3851 = call i32 @fileno(ptr noundef %3850) #13
  %3852 = call i32 @isatty(i32 noundef %3851) #13
  %.not2460 = icmp eq i32 %3852, 0
  br i1 %.not2460, label %3853, label %3854

3853:                                             ; preds = %3849, %3843
  br label %3854

3854:                                             ; preds = %3849, %3853
  %.str.5.sink3725 = phi ptr [ @.str.5, %3853 ], [ @.str.2, %3849 ]
  store i32 %3844, ptr %1329, align 4, !tbaa !5
  %3855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3856 = load i32, ptr @test_count, align 4, !tbaa !5
  %3857 = load i32, ptr %1275, align 4, !tbaa !5
  %3858 = call ptr @s2n_strerror(i32 noundef %3857, ptr noundef nonnull @.str.4) #13
  %3859 = load i32, ptr %1275, align 4, !tbaa !5
  %3860 = call ptr @s2n_strerror_debug(i32 noundef %3859, ptr noundef nonnull @.str.4) #13
  %3861 = load i32, ptr %1329, align 4, !tbaa !5
  %3862 = call ptr @strerror(i32 noundef %3861) #13
  %3863 = load i32, ptr %1329, align 4, !tbaa !5
  %3864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3855, ptr noundef nonnull %.str.5.sink3725, i32 noundef %3856, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 593, ptr noundef %3858, ptr noundef %3860, ptr noundef %3862, i32 noundef %3863) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3865:                                             ; preds = %3839
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = add nsw i32 %3866, 1
  store i32 %3867, ptr @test_count, align 4, !tbaa !5
  %3868 = getelementptr inbounds i8, ptr %63, i64 9
  %3869 = load i8, ptr %3868, align 1, !tbaa !19
  %3870 = icmp eq i8 %3869, 1
  br i1 %3870, label %3893, label %3871

3871:                                             ; preds = %3865
  %3872 = load i32, ptr %1329, align 4, !tbaa !5
  %3873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3874 = call i32 @s2n_print_stacktrace(ptr noundef %3873) #13
  %3875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3876 = trunc nuw i8 %3875 to i1
  br i1 %3876, label %3877, label %3881

3877:                                             ; preds = %3871
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @fileno(ptr noundef %3878) #13
  %3880 = call i32 @isatty(i32 noundef %3879) #13
  %.not1984 = icmp eq i32 %3880, 0
  br i1 %.not1984, label %3881, label %3882

3881:                                             ; preds = %3877, %3871
  br label %3882

3882:                                             ; preds = %3877, %3881
  %.str.5.sink3734 = phi ptr [ @.str.5, %3881 ], [ @.str.2, %3877 ]
  store i32 %3872, ptr %1329, align 4, !tbaa !5
  %3883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3884 = load i32, ptr @test_count, align 4, !tbaa !5
  %3885 = load i32, ptr %1275, align 4, !tbaa !5
  %3886 = call ptr @s2n_strerror(i32 noundef %3885, ptr noundef nonnull @.str.4) #13
  %3887 = load i32, ptr %1275, align 4, !tbaa !5
  %3888 = call ptr @s2n_strerror_debug(i32 noundef %3887, ptr noundef nonnull @.str.4) #13
  %3889 = load i32, ptr %1329, align 4, !tbaa !5
  %3890 = call ptr @strerror(i32 noundef %3889) #13
  %3891 = load i32, ptr %1329, align 4, !tbaa !5
  %3892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3883, ptr noundef nonnull %.str.5.sink3734, i32 noundef %3884, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 595, ptr noundef %3886, ptr noundef %3888, ptr noundef %3890, i32 noundef %3891) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3893:                                             ; preds = %3865
  %3894 = call i32 @s2n_connection_free(ptr noundef nonnull %3593) #13
  %3895 = call i32 @s2n_pkey_free(ptr noundef nonnull %65) #13
  %3896 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %62) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %61) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %66) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %65) #13
  %3897 = call i32 @s2n_stuffer_free(ptr noundef nonnull %64) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %64) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %62) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %67) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %67) #13
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = add nsw i32 %3898, 1
  store i32 %3899, ptr @test_count, align 4, !tbaa !5
  %3900 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %67, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %3901 = icmp eq i32 %3900, -1
  br i1 %3901, label %3902, label %3924

3902:                                             ; preds = %3893
  %3903 = load i32, ptr %1329, align 4, !tbaa !5
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = call i32 @s2n_print_stacktrace(ptr noundef %3904) #13
  %3906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3907 = trunc nuw i8 %3906 to i1
  br i1 %3907, label %3908, label %3912

3908:                                             ; preds = %3902
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = call i32 @fileno(ptr noundef %3909) #13
  %3911 = call i32 @isatty(i32 noundef %3910) #13
  %.not2459 = icmp eq i32 %3911, 0
  br i1 %.not2459, label %3912, label %3913

3912:                                             ; preds = %3908, %3902
  br label %3913

3913:                                             ; preds = %3908, %3912
  %.str.5.sink3743 = phi ptr [ @.str.5, %3912 ], [ @.str.2, %3908 ]
  store i32 %3903, ptr %1329, align 4, !tbaa !5
  %3914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3915 = load i32, ptr @test_count, align 4, !tbaa !5
  %3916 = load i32, ptr %1275, align 4, !tbaa !5
  %3917 = call ptr @s2n_strerror(i32 noundef %3916, ptr noundef nonnull @.str.4) #13
  %3918 = load i32, ptr %1275, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror_debug(i32 noundef %3918, ptr noundef nonnull @.str.4) #13
  %3920 = load i32, ptr %1329, align 4, !tbaa !5
  %3921 = call ptr @strerror(i32 noundef %3920) #13
  %3922 = load i32, ptr %1329, align 4, !tbaa !5
  %3923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3914, ptr noundef nonnull %.str.5.sink3743, i32 noundef %3915, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 606, ptr noundef %3917, ptr noundef %3919, ptr noundef %3921, i32 noundef %3922) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3924:                                             ; preds = %3893
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.58, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %69) #13
  %3925 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %69, ptr noundef nonnull %67, i8 noundef zeroext 1) #13
  %3926 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %3927 = load i32, ptr @test_count, align 4, !tbaa !5
  %3928 = add nsw i32 %3927, 1
  store i32 %3928, ptr @test_count, align 4, !tbaa !5
  %3929 = icmp eq ptr %3926, null
  br i1 %3929, label %3930, label %3952

3930:                                             ; preds = %3924
  %3931 = load i32, ptr %1329, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = call i32 @s2n_print_stacktrace(ptr noundef %3932) #13
  %3934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3935 = trunc nuw i8 %3934 to i1
  br i1 %3935, label %3936, label %3940

3936:                                             ; preds = %3930
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = call i32 @fileno(ptr noundef %3937) #13
  %3939 = call i32 @isatty(i32 noundef %3938) #13
  %.not2458 = icmp eq i32 %3939, 0
  br i1 %.not2458, label %3940, label %3941

3940:                                             ; preds = %3936, %3930
  br label %3941

3941:                                             ; preds = %3936, %3940
  %.str.5.sink3752 = phi ptr [ @.str.5, %3940 ], [ @.str.2, %3936 ]
  store i32 %3931, ptr %1329, align 4, !tbaa !5
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = load i32, ptr @test_count, align 4, !tbaa !5
  %3944 = load i32, ptr %1275, align 4, !tbaa !5
  %3945 = call ptr @s2n_strerror(i32 noundef %3944, ptr noundef nonnull @.str.4) #13
  %3946 = load i32, ptr %1275, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror_debug(i32 noundef %3946, ptr noundef nonnull @.str.4) #13
  %3948 = load i32, ptr %1329, align 4, !tbaa !5
  %3949 = call ptr @strerror(i32 noundef %3948) #13
  %3950 = load i32, ptr %1329, align 4, !tbaa !5
  %3951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3942, ptr noundef nonnull %.str.5.sink3752, i32 noundef %3943, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 618, ptr noundef %3945, ptr noundef %3947, ptr noundef %3949, i32 noundef %3950) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3952:                                             ; preds = %3924
  %3953 = add nsw i32 %3927, 2
  store i32 %3953, ptr @test_count, align 4, !tbaa !5
  %3954 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %3926, ptr noundef nonnull @verify_host_reject_everything, ptr noundef nonnull %68) #13
  %3955 = icmp eq i32 %3954, -1
  br i1 %3955, label %3956, label %3978

3956:                                             ; preds = %3952
  %3957 = load i32, ptr %1329, align 4, !tbaa !5
  %3958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3959 = call i32 @s2n_print_stacktrace(ptr noundef %3958) #13
  %3960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3961 = trunc nuw i8 %3960 to i1
  br i1 %3961, label %3962, label %3966

3962:                                             ; preds = %3956
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = call i32 @fileno(ptr noundef %3963) #13
  %3965 = call i32 @isatty(i32 noundef %3964) #13
  %.not2457 = icmp eq i32 %3965, 0
  br i1 %.not2457, label %3966, label %3967

3966:                                             ; preds = %3962, %3956
  br label %3967

3967:                                             ; preds = %3962, %3966
  %.str.5.sink3761 = phi ptr [ @.str.5, %3966 ], [ @.str.2, %3962 ]
  store i32 %3957, ptr %1329, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = load i32, ptr %1275, align 4, !tbaa !5
  %3971 = call ptr @s2n_strerror(i32 noundef %3970, ptr noundef nonnull @.str.4) #13
  %3972 = load i32, ptr %1275, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror_debug(i32 noundef %3972, ptr noundef nonnull @.str.4) #13
  %3974 = load i32, ptr %1329, align 4, !tbaa !5
  %3975 = call ptr @strerror(i32 noundef %3974) #13
  %3976 = load i32, ptr %1329, align 4, !tbaa !5
  %3977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef nonnull %.str.5.sink3761, i32 noundef %3969, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 619, ptr noundef %3971, ptr noundef %3973, ptr noundef %3975, i32 noundef %3976) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3978:                                             ; preds = %3952
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %70) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %70, i8 0, i64 40, i1 false)
  %3979 = load i32, ptr @test_count, align 4, !tbaa !5
  %3980 = add nsw i32 %3979, 1
  store i32 %3980, ptr @test_count, align 4, !tbaa !5
  %3981 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %3926, ptr noundef nonnull @.str.11, ptr noundef nonnull %70) #13
  %3982 = call zeroext i1 @s2n_result_is_ok(i32 %3981)
  br i1 %3982, label %4005, label %3983

3983:                                             ; preds = %3978
  %3984 = load i32, ptr %1329, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = call i32 @s2n_print_stacktrace(ptr noundef %3985) #13
  %3987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3988 = trunc nuw i8 %3987 to i1
  br i1 %3988, label %3989, label %3993

3989:                                             ; preds = %3983
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = call i32 @fileno(ptr noundef %3990) #13
  %3992 = call i32 @isatty(i32 noundef %3991) #13
  %.not1985 = icmp eq i32 %3992, 0
  br i1 %.not1985, label %3993, label %3994

3993:                                             ; preds = %3989, %3983
  br label %3994

3994:                                             ; preds = %3989, %3993
  %.str.5.sink3770 = phi ptr [ @.str.5, %3993 ], [ @.str.2, %3989 ]
  store i32 %3984, ptr %1329, align 4, !tbaa !5
  %3995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3996 = load i32, ptr @test_count, align 4, !tbaa !5
  %3997 = load i32, ptr %1275, align 4, !tbaa !5
  %3998 = call ptr @s2n_strerror(i32 noundef %3997, ptr noundef nonnull @.str.4) #13
  %3999 = load i32, ptr %1275, align 4, !tbaa !5
  %4000 = call ptr @s2n_strerror_debug(i32 noundef %3999, ptr noundef nonnull @.str.4) #13
  %4001 = load i32, ptr %1329, align 4, !tbaa !5
  %4002 = call ptr @strerror(i32 noundef %4001) #13
  %4003 = load i32, ptr %1329, align 4, !tbaa !5
  %4004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3995, ptr noundef nonnull %.str.5.sink3770, i32 noundef %3996, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 622, ptr noundef %3998, ptr noundef %4000, ptr noundef %4002, i32 noundef %4003) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4005:                                             ; preds = %3978
  %4006 = getelementptr inbounds i8, ptr %70, i64 28
  %4007 = load i32, ptr %4006, align 4, !tbaa !15
  %4008 = getelementptr inbounds i8, ptr %70, i64 24
  %4009 = load i32, ptr %4008, align 8, !tbaa !18
  %4010 = sub i32 %4007, %4009
  %4011 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %70, i32 noundef %4010) #13
  %4012 = load i32, ptr @test_count, align 4, !tbaa !5
  %4013 = add nsw i32 %4012, 1
  store i32 %4013, ptr @test_count, align 4, !tbaa !5
  %4014 = icmp eq ptr %4011, null
  br i1 %4014, label %4015, label %4037

4015:                                             ; preds = %4005
  %4016 = load i32, ptr %1329, align 4, !tbaa !5
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = call i32 @s2n_print_stacktrace(ptr noundef %4017) #13
  %4019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4020 = trunc nuw i8 %4019 to i1
  br i1 %4020, label %4021, label %4025

4021:                                             ; preds = %4015
  %4022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4023 = call i32 @fileno(ptr noundef %4022) #13
  %4024 = call i32 @isatty(i32 noundef %4023) #13
  %.not2456 = icmp eq i32 %4024, 0
  br i1 %.not2456, label %4025, label %4026

4025:                                             ; preds = %4021, %4015
  br label %4026

4026:                                             ; preds = %4021, %4025
  %.str.5.sink3779 = phi ptr [ @.str.5, %4025 ], [ @.str.2, %4021 ]
  store i32 %4016, ptr %1329, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = load i32, ptr @test_count, align 4, !tbaa !5
  %4029 = load i32, ptr %1275, align 4, !tbaa !5
  %4030 = call ptr @s2n_strerror(i32 noundef %4029, ptr noundef nonnull @.str.4) #13
  %4031 = load i32, ptr %1275, align 4, !tbaa !5
  %4032 = call ptr @s2n_strerror_debug(i32 noundef %4031, ptr noundef nonnull @.str.4) #13
  %4033 = load i32, ptr %1329, align 4, !tbaa !5
  %4034 = call ptr @strerror(i32 noundef %4033) #13
  %4035 = load i32, ptr %1329, align 4, !tbaa !5
  %4036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4027, ptr noundef nonnull %.str.5.sink3779, i32 noundef %4028, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 625, ptr noundef %4030, ptr noundef %4032, ptr noundef %4034, i32 noundef %4035) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4037:                                             ; preds = %4005
  %4038 = add nsw i32 %4012, 2
  store i32 %4038, ptr @test_count, align 4, !tbaa !5
  %4039 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3926, ptr noundef nonnull @.str.23) #13
  %4040 = icmp eq i32 %4039, -1
  br i1 %4040, label %4041, label %4063

4041:                                             ; preds = %4037
  %4042 = load i32, ptr %1329, align 4, !tbaa !5
  %4043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4044 = call i32 @s2n_print_stacktrace(ptr noundef %4043) #13
  %4045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4046 = trunc nuw i8 %4045 to i1
  br i1 %4046, label %4047, label %4051

4047:                                             ; preds = %4041
  %4048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4049 = call i32 @fileno(ptr noundef %4048) #13
  %4050 = call i32 @isatty(i32 noundef %4049) #13
  %.not2455 = icmp eq i32 %4050, 0
  br i1 %.not2455, label %4051, label %4052

4051:                                             ; preds = %4047, %4041
  br label %4052

4052:                                             ; preds = %4047, %4051
  %.str.5.sink3788 = phi ptr [ @.str.5, %4051 ], [ @.str.2, %4047 ]
  store i32 %4042, ptr %1329, align 4, !tbaa !5
  %4053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4054 = load i32, ptr @test_count, align 4, !tbaa !5
  %4055 = load i32, ptr %1275, align 4, !tbaa !5
  %4056 = call ptr @s2n_strerror(i32 noundef %4055, ptr noundef nonnull @.str.4) #13
  %4057 = load i32, ptr %1275, align 4, !tbaa !5
  %4058 = call ptr @s2n_strerror_debug(i32 noundef %4057, ptr noundef nonnull @.str.4) #13
  %4059 = load i32, ptr %1329, align 4, !tbaa !5
  %4060 = call ptr @strerror(i32 noundef %4059) #13
  %4061 = load i32, ptr %1329, align 4, !tbaa !5
  %4062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4053, ptr noundef nonnull %.str.5.sink3788, i32 noundef %4054, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 627, ptr noundef %4056, ptr noundef %4058, ptr noundef %4060, i32 noundef %4061) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4063:                                             ; preds = %4037
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %71) #13
  %4064 = load i32, ptr @test_count, align 4, !tbaa !5
  %4065 = add nsw i32 %4064, 1
  store i32 %4065, ptr @test_count, align 4, !tbaa !5
  %4066 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %71) #13
  %4067 = icmp eq i32 %4066, -1
  br i1 %4067, label %4068, label %4090

4068:                                             ; preds = %4063
  %4069 = load i32, ptr %1329, align 4, !tbaa !5
  %4070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4071 = call i32 @s2n_print_stacktrace(ptr noundef %4070) #13
  %4072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4073 = trunc nuw i8 %4072 to i1
  br i1 %4073, label %4074, label %4078

4074:                                             ; preds = %4068
  %4075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4076 = call i32 @fileno(ptr noundef %4075) #13
  %4077 = call i32 @isatty(i32 noundef %4076) #13
  %.not2454 = icmp eq i32 %4077, 0
  br i1 %.not2454, label %4078, label %4079

4078:                                             ; preds = %4074, %4068
  br label %4079

4079:                                             ; preds = %4074, %4078
  %.str.5.sink3797 = phi ptr [ @.str.5, %4078 ], [ @.str.2, %4074 ]
  store i32 %4069, ptr %1329, align 4, !tbaa !5
  %4080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4081 = load i32, ptr @test_count, align 4, !tbaa !5
  %4082 = load i32, ptr %1275, align 4, !tbaa !5
  %4083 = call ptr @s2n_strerror(i32 noundef %4082, ptr noundef nonnull @.str.4) #13
  %4084 = load i32, ptr %1275, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror_debug(i32 noundef %4084, ptr noundef nonnull @.str.4) #13
  %4086 = load i32, ptr %1329, align 4, !tbaa !5
  %4087 = call ptr @strerror(i32 noundef %4086) #13
  %4088 = load i32, ptr %1329, align 4, !tbaa !5
  %4089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4080, ptr noundef nonnull %.str.5.sink3797, i32 noundef %4081, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 630, ptr noundef %4083, ptr noundef %4085, ptr noundef %4087, i32 noundef %4088) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4090:                                             ; preds = %4063
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %72) #13
  store i32 -1, ptr %72, align 4, !tbaa !5
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = add nsw i32 %4091, 1
  store i32 %4092, ptr @test_count, align 4, !tbaa !5
  %4093 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %69, ptr noundef nonnull %3926, ptr noundef nonnull %4011, i32 noundef %4010, ptr noundef nonnull %72, ptr noundef nonnull %71) #13
  %4094 = call zeroext i1 @s2n_result_is_error(i32 %4093)
  br i1 %4094, label %4117, label %4095

4095:                                             ; preds = %4090
  %4096 = load i32, ptr %1329, align 4, !tbaa !5
  %4097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4098 = call i32 @s2n_print_stacktrace(ptr noundef %4097) #13
  %4099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4100 = trunc nuw i8 %4099 to i1
  br i1 %4100, label %4101, label %4105

4101:                                             ; preds = %4095
  %4102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4103 = call i32 @fileno(ptr noundef %4102) #13
  %4104 = call i32 @isatty(i32 noundef %4103) #13
  %.not1986 = icmp eq i32 %4104, 0
  br i1 %.not1986, label %4105, label %4106

4105:                                             ; preds = %4101, %4095
  br label %4106

4106:                                             ; preds = %4101, %4105
  %.str.5.sink3806 = phi ptr [ @.str.5, %4105 ], [ @.str.2, %4101 ]
  store i32 %4096, ptr %1329, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = load i32, ptr @test_count, align 4, !tbaa !5
  %4109 = load i32, ptr %1275, align 4, !tbaa !5
  %4110 = call ptr @s2n_strerror(i32 noundef %4109, ptr noundef nonnull @.str.4) #13
  %4111 = load i32, ptr %1275, align 4, !tbaa !5
  %4112 = call ptr @s2n_strerror_debug(i32 noundef %4111, ptr noundef nonnull @.str.4) #13
  %4113 = load i32, ptr %1329, align 4, !tbaa !5
  %4114 = call ptr @strerror(i32 noundef %4113) #13
  %4115 = load i32, ptr %1329, align 4, !tbaa !5
  %4116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4107, ptr noundef nonnull %.str.5.sink3806, i32 noundef %4108, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %4110, ptr noundef %4112, ptr noundef %4114, i32 noundef %4115) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4117:                                             ; preds = %4090
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = add nsw i32 %4118, 1
  store i32 %4119, ptr @test_count, align 4, !tbaa !5
  %4120 = load i32, ptr %1275, align 4, !tbaa !5
  %4121 = icmp eq i32 %4120, 335544366
  br i1 %4121, label %4144, label %4122

4122:                                             ; preds = %4117
  %4123 = load i32, ptr %1329, align 4, !tbaa !5
  %4124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4125 = call i32 @s2n_print_stacktrace(ptr noundef %4124) #13
  %4126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4127 = trunc nuw i8 %4126 to i1
  br i1 %4127, label %4128, label %4132

4128:                                             ; preds = %4122
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = call i32 @fileno(ptr noundef %4129) #13
  %4131 = call i32 @isatty(i32 noundef %4130) #13
  %.not1987 = icmp eq i32 %4131, 0
  br i1 %.not1987, label %4132, label %4133

4132:                                             ; preds = %4128, %4122
  br label %4133

4133:                                             ; preds = %4128, %4132
  %.str.5.sink3815 = phi ptr [ @.str.5, %4132 ], [ @.str.2, %4128 ]
  store i32 %4123, ptr %1329, align 4, !tbaa !5
  %4134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4135 = load i32, ptr @test_count, align 4, !tbaa !5
  %4136 = load i32, ptr %1275, align 4, !tbaa !5
  %4137 = call ptr @s2n_strerror(i32 noundef %4136, ptr noundef nonnull @.str.4) #13
  %4138 = load i32, ptr %1275, align 4, !tbaa !5
  %4139 = call ptr @s2n_strerror_debug(i32 noundef %4138, ptr noundef nonnull @.str.4) #13
  %4140 = load i32, ptr %1329, align 4, !tbaa !5
  %4141 = call ptr @strerror(i32 noundef %4140) #13
  %4142 = load i32, ptr %1329, align 4, !tbaa !5
  %4143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4134, ptr noundef nonnull %.str.5.sink3815, i32 noundef %4135, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %4137, ptr noundef %4139, ptr noundef %4141, i32 noundef %4142) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4144:                                             ; preds = %4117
  %4145 = add nsw i32 %4118, 2
  store i32 %4145, ptr @test_count, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %4147 = icmp eq ptr %4146, null
  br i1 %4147, label %4148, label %4170

4148:                                             ; preds = %4144
  %4149 = load i32, ptr %1329, align 4, !tbaa !5
  %4150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4151 = call i32 @s2n_print_stacktrace(ptr noundef %4150) #13
  %4152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4153 = trunc nuw i8 %4152 to i1
  br i1 %4153, label %4154, label %4158

4154:                                             ; preds = %4148
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = call i32 @fileno(ptr noundef %4155) #13
  %4157 = call i32 @isatty(i32 noundef %4156) #13
  %.not2453 = icmp eq i32 %4157, 0
  br i1 %.not2453, label %4158, label %4159

4158:                                             ; preds = %4154, %4148
  br label %4159

4159:                                             ; preds = %4154, %4158
  %.str.5.sink3824 = phi ptr [ @.str.5, %4158 ], [ @.str.2, %4154 ]
  store i32 %4149, ptr %1329, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = load i32, ptr @test_count, align 4, !tbaa !5
  %4162 = load i32, ptr %1275, align 4, !tbaa !5
  %4163 = call ptr @s2n_strerror(i32 noundef %4162, ptr noundef nonnull @.str.4) #13
  %4164 = load i32, ptr %1275, align 4, !tbaa !5
  %4165 = call ptr @s2n_strerror_debug(i32 noundef %4164, ptr noundef nonnull @.str.4) #13
  %4166 = load i32, ptr %1329, align 4, !tbaa !5
  %4167 = call ptr @strerror(i32 noundef %4166) #13
  %4168 = load i32, ptr %1329, align 4, !tbaa !5
  %4169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4160, ptr noundef nonnull %.str.5.sink3824, i32 noundef %4161, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %4163, ptr noundef %4165, ptr noundef %4167, i32 noundef %4168) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4170:                                             ; preds = %4144
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %4171 = load i32, ptr @test_count, align 4, !tbaa !5
  %4172 = add nsw i32 %4171, 1
  store i32 %4172, ptr @test_count, align 4, !tbaa !5
  %4173 = getelementptr inbounds i8, ptr %68, i64 9
  %4174 = load i8, ptr %4173, align 1, !tbaa !19
  %4175 = icmp eq i8 %4174, 1
  br i1 %4175, label %4198, label %4176

4176:                                             ; preds = %4170
  %4177 = load i32, ptr %1329, align 4, !tbaa !5
  %4178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4179 = call i32 @s2n_print_stacktrace(ptr noundef %4178) #13
  %4180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4181 = trunc nuw i8 %4180 to i1
  br i1 %4181, label %4182, label %4186

4182:                                             ; preds = %4176
  %4183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4184 = call i32 @fileno(ptr noundef %4183) #13
  %4185 = call i32 @isatty(i32 noundef %4184) #13
  %.not1988 = icmp eq i32 %4185, 0
  br i1 %.not1988, label %4186, label %4187

4186:                                             ; preds = %4182, %4176
  br label %4187

4187:                                             ; preds = %4182, %4186
  %.str.5.sink3833 = phi ptr [ @.str.5, %4186 ], [ @.str.2, %4182 ]
  store i32 %4177, ptr %1329, align 4, !tbaa !5
  %4188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4189 = load i32, ptr @test_count, align 4, !tbaa !5
  %4190 = load i32, ptr %1275, align 4, !tbaa !5
  %4191 = call ptr @s2n_strerror(i32 noundef %4190, ptr noundef nonnull @.str.4) #13
  %4192 = load i32, ptr %1275, align 4, !tbaa !5
  %4193 = call ptr @s2n_strerror_debug(i32 noundef %4192, ptr noundef nonnull @.str.4) #13
  %4194 = load i32, ptr %1329, align 4, !tbaa !5
  %4195 = call ptr @strerror(i32 noundef %4194) #13
  %4196 = load i32, ptr %1329, align 4, !tbaa !5
  %4197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4188, ptr noundef nonnull %.str.5.sink3833, i32 noundef %4189, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 636, ptr noundef %4191, ptr noundef %4193, ptr noundef %4195, i32 noundef %4196) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4198:                                             ; preds = %4170
  %4199 = call i32 @s2n_connection_free(ptr noundef nonnull %3926) #13
  %4200 = call i32 @s2n_pkey_free(ptr noundef nonnull %71) #13
  %4201 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %69) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %67) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %72) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %71) #13
  %4202 = call i32 @s2n_stuffer_free(ptr noundef nonnull %70) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %70) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %69) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %73) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %73) #13
  %4203 = load i32, ptr @test_count, align 4, !tbaa !5
  %4204 = add nsw i32 %4203, 1
  store i32 %4204, ptr @test_count, align 4, !tbaa !5
  %4205 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %4206 = icmp eq ptr %4205, null
  br i1 %4206, label %4207, label %4229

4207:                                             ; preds = %4198
  %4208 = load i32, ptr %1329, align 4, !tbaa !5
  %4209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4210 = call i32 @s2n_print_stacktrace(ptr noundef %4209) #13
  %4211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4212 = trunc nuw i8 %4211 to i1
  br i1 %4212, label %4213, label %4217

4213:                                             ; preds = %4207
  %4214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4215 = call i32 @fileno(ptr noundef %4214) #13
  %4216 = call i32 @isatty(i32 noundef %4215) #13
  %.not2452 = icmp eq i32 %4216, 0
  br i1 %.not2452, label %4217, label %4218

4217:                                             ; preds = %4213, %4207
  br label %4218

4218:                                             ; preds = %4213, %4217
  %.str.5.sink3842 = phi ptr [ @.str.5, %4217 ], [ @.str.2, %4213 ]
  store i32 %4208, ptr %1329, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = load i32, ptr @test_count, align 4, !tbaa !5
  %4221 = load i32, ptr %1275, align 4, !tbaa !5
  %4222 = call ptr @s2n_strerror(i32 noundef %4221, ptr noundef nonnull @.str.4) #13
  %4223 = load i32, ptr %1275, align 4, !tbaa !5
  %4224 = call ptr @s2n_strerror_debug(i32 noundef %4223, ptr noundef nonnull @.str.4) #13
  %4225 = load i32, ptr %1329, align 4, !tbaa !5
  %4226 = call ptr @strerror(i32 noundef %4225) #13
  %4227 = load i32, ptr %1329, align 4, !tbaa !5
  %4228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4219, ptr noundef nonnull %.str.5.sink3842, i32 noundef %4220, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 649, ptr noundef %4222, ptr noundef %4224, ptr noundef %4226, i32 noundef %4227) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4229:                                             ; preds = %4198
  %4230 = add nsw i32 %4203, 2
  store i32 %4230, ptr @test_count, align 4, !tbaa !5
  %4231 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.11, ptr noundef nonnull %4205, i64 noundef 12000) #13
  %4232 = icmp eq i32 %4231, -1
  br i1 %4232, label %4233, label %4255

4233:                                             ; preds = %4229
  %4234 = load i32, ptr %1329, align 4, !tbaa !5
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = call i32 @s2n_print_stacktrace(ptr noundef %4235) #13
  %4237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4238 = trunc nuw i8 %4237 to i1
  br i1 %4238, label %4239, label %4243

4239:                                             ; preds = %4233
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = call i32 @fileno(ptr noundef %4240) #13
  %4242 = call i32 @isatty(i32 noundef %4241) #13
  %.not2451 = icmp eq i32 %4242, 0
  br i1 %.not2451, label %4243, label %4244

4243:                                             ; preds = %4239, %4233
  br label %4244

4244:                                             ; preds = %4239, %4243
  %.str.5.sink3851 = phi ptr [ @.str.5, %4243 ], [ @.str.2, %4239 ]
  store i32 %4234, ptr %1329, align 4, !tbaa !5
  %4245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4246 = load i32, ptr @test_count, align 4, !tbaa !5
  %4247 = load i32, ptr %1275, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror(i32 noundef %4247, ptr noundef nonnull @.str.4) #13
  %4249 = load i32, ptr %1275, align 4, !tbaa !5
  %4250 = call ptr @s2n_strerror_debug(i32 noundef %4249, ptr noundef nonnull @.str.4) #13
  %4251 = load i32, ptr %1329, align 4, !tbaa !5
  %4252 = call ptr @strerror(i32 noundef %4251) #13
  %4253 = load i32, ptr %1329, align 4, !tbaa !5
  %4254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4245, ptr noundef nonnull %.str.5.sink3851, i32 noundef %4246, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 650, ptr noundef %4248, ptr noundef %4250, ptr noundef %4252, i32 noundef %4253) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4255:                                             ; preds = %4229
  %4256 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %73, ptr noundef nonnull %4205) #13
  call void @free(ptr noundef nonnull %4205) #13
  %4257 = load i32, ptr @test_count, align 4, !tbaa !5
  %4258 = add nsw i32 %4257, 1
  store i32 %4258, ptr @test_count, align 4, !tbaa !5
  %4259 = icmp eq i32 %4256, 0
  br i1 %4259, label %4282, label %4260

4260:                                             ; preds = %4255
  %4261 = load i32, ptr %1329, align 4, !tbaa !5
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = call i32 @s2n_print_stacktrace(ptr noundef %4262) #13
  %4264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4265 = trunc nuw i8 %4264 to i1
  br i1 %4265, label %4266, label %4270

4266:                                             ; preds = %4260
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = call i32 @fileno(ptr noundef %4267) #13
  %4269 = call i32 @isatty(i32 noundef %4268) #13
  %.not1989 = icmp eq i32 %4269, 0
  br i1 %.not1989, label %4270, label %4271

4270:                                             ; preds = %4266, %4260
  br label %4271

4271:                                             ; preds = %4266, %4270
  %.str.5.sink3860 = phi ptr [ @.str.5, %4270 ], [ @.str.2, %4266 ]
  store i32 %4261, ptr %1329, align 4, !tbaa !5
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4273 = load i32, ptr @test_count, align 4, !tbaa !5
  %4274 = load i32, ptr %1275, align 4, !tbaa !5
  %4275 = call ptr @s2n_strerror(i32 noundef %4274, ptr noundef nonnull @.str.4) #13
  %4276 = load i32, ptr %1275, align 4, !tbaa !5
  %4277 = call ptr @s2n_strerror_debug(i32 noundef %4276, ptr noundef nonnull @.str.4) #13
  %4278 = load i32, ptr %1329, align 4, !tbaa !5
  %4279 = call ptr @strerror(i32 noundef %4278) #13
  %4280 = load i32, ptr %1329, align 4, !tbaa !5
  %4281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4272, ptr noundef nonnull %.str.5.sink3860, i32 noundef %4273, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 653, ptr noundef %4275, ptr noundef %4277, ptr noundef %4279, i32 noundef %4280) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4282:                                             ; preds = %4255
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %74) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.60, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %75) #13
  %4283 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %75, ptr noundef nonnull %73, i8 noundef zeroext 1) #13
  %4284 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4285 = load i32, ptr @test_count, align 4, !tbaa !5
  %4286 = add nsw i32 %4285, 1
  store i32 %4286, ptr @test_count, align 4, !tbaa !5
  %4287 = icmp eq ptr %4284, null
  br i1 %4287, label %4288, label %4310

4288:                                             ; preds = %4282
  %4289 = load i32, ptr %1329, align 4, !tbaa !5
  %4290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4291 = call i32 @s2n_print_stacktrace(ptr noundef %4290) #13
  %4292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4293 = trunc nuw i8 %4292 to i1
  br i1 %4293, label %4294, label %4298

4294:                                             ; preds = %4288
  %4295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4296 = call i32 @fileno(ptr noundef %4295) #13
  %4297 = call i32 @isatty(i32 noundef %4296) #13
  %.not2450 = icmp eq i32 %4297, 0
  br i1 %.not2450, label %4298, label %4299

4298:                                             ; preds = %4294, %4288
  br label %4299

4299:                                             ; preds = %4294, %4298
  %.str.5.sink3869 = phi ptr [ @.str.5, %4298 ], [ @.str.2, %4294 ]
  store i32 %4289, ptr %1329, align 4, !tbaa !5
  %4300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4301 = load i32, ptr @test_count, align 4, !tbaa !5
  %4302 = load i32, ptr %1275, align 4, !tbaa !5
  %4303 = call ptr @s2n_strerror(i32 noundef %4302, ptr noundef nonnull @.str.4) #13
  %4304 = load i32, ptr %1275, align 4, !tbaa !5
  %4305 = call ptr @s2n_strerror_debug(i32 noundef %4304, ptr noundef nonnull @.str.4) #13
  %4306 = load i32, ptr %1329, align 4, !tbaa !5
  %4307 = call ptr @strerror(i32 noundef %4306) #13
  %4308 = load i32, ptr %1329, align 4, !tbaa !5
  %4309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4300, ptr noundef nonnull %.str.5.sink3869, i32 noundef %4301, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 665, ptr noundef %4303, ptr noundef %4305, ptr noundef %4307, i32 noundef %4308) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4310:                                             ; preds = %4282
  %4311 = add nsw i32 %4285, 2
  store i32 %4311, ptr @test_count, align 4, !tbaa !5
  %4312 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %4284, ptr noundef nonnull @verify_host_reject_everything, ptr noundef nonnull %74) #13
  %4313 = icmp eq i32 %4312, -1
  br i1 %4313, label %4314, label %4336

4314:                                             ; preds = %4310
  %4315 = load i32, ptr %1329, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = call i32 @s2n_print_stacktrace(ptr noundef %4316) #13
  %4318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4319 = trunc nuw i8 %4318 to i1
  br i1 %4319, label %4320, label %4324

4320:                                             ; preds = %4314
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = call i32 @fileno(ptr noundef %4321) #13
  %4323 = call i32 @isatty(i32 noundef %4322) #13
  %.not2449 = icmp eq i32 %4323, 0
  br i1 %.not2449, label %4324, label %4325

4324:                                             ; preds = %4320, %4314
  br label %4325

4325:                                             ; preds = %4320, %4324
  %.str.5.sink3878 = phi ptr [ @.str.5, %4324 ], [ @.str.2, %4320 ]
  store i32 %4315, ptr %1329, align 4, !tbaa !5
  %4326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4327 = load i32, ptr @test_count, align 4, !tbaa !5
  %4328 = load i32, ptr %1275, align 4, !tbaa !5
  %4329 = call ptr @s2n_strerror(i32 noundef %4328, ptr noundef nonnull @.str.4) #13
  %4330 = load i32, ptr %1275, align 4, !tbaa !5
  %4331 = call ptr @s2n_strerror_debug(i32 noundef %4330, ptr noundef nonnull @.str.4) #13
  %4332 = load i32, ptr %1329, align 4, !tbaa !5
  %4333 = call ptr @strerror(i32 noundef %4332) #13
  %4334 = load i32, ptr %1329, align 4, !tbaa !5
  %4335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4326, ptr noundef nonnull %.str.5.sink3878, i32 noundef %4327, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 666, ptr noundef %4329, ptr noundef %4331, ptr noundef %4333, i32 noundef %4334) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4336:                                             ; preds = %4310
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %76) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %76, i8 0, i64 40, i1 false)
  %4337 = load i32, ptr @test_count, align 4, !tbaa !5
  %4338 = add nsw i32 %4337, 1
  store i32 %4338, ptr @test_count, align 4, !tbaa !5
  %4339 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %4284, ptr noundef nonnull @.str.11, ptr noundef nonnull %76) #13
  %4340 = call zeroext i1 @s2n_result_is_ok(i32 %4339)
  br i1 %4340, label %4363, label %4341

4341:                                             ; preds = %4336
  %4342 = load i32, ptr %1329, align 4, !tbaa !5
  %4343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4344 = call i32 @s2n_print_stacktrace(ptr noundef %4343) #13
  %4345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4346 = trunc nuw i8 %4345 to i1
  br i1 %4346, label %4347, label %4351

4347:                                             ; preds = %4341
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = call i32 @fileno(ptr noundef %4348) #13
  %4350 = call i32 @isatty(i32 noundef %4349) #13
  %.not1990 = icmp eq i32 %4350, 0
  br i1 %.not1990, label %4351, label %4352

4351:                                             ; preds = %4347, %4341
  br label %4352

4352:                                             ; preds = %4347, %4351
  %.str.5.sink3887 = phi ptr [ @.str.5, %4351 ], [ @.str.2, %4347 ]
  store i32 %4342, ptr %1329, align 4, !tbaa !5
  %4353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4354 = load i32, ptr @test_count, align 4, !tbaa !5
  %4355 = load i32, ptr %1275, align 4, !tbaa !5
  %4356 = call ptr @s2n_strerror(i32 noundef %4355, ptr noundef nonnull @.str.4) #13
  %4357 = load i32, ptr %1275, align 4, !tbaa !5
  %4358 = call ptr @s2n_strerror_debug(i32 noundef %4357, ptr noundef nonnull @.str.4) #13
  %4359 = load i32, ptr %1329, align 4, !tbaa !5
  %4360 = call ptr @strerror(i32 noundef %4359) #13
  %4361 = load i32, ptr %1329, align 4, !tbaa !5
  %4362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4353, ptr noundef nonnull %.str.5.sink3887, i32 noundef %4354, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 669, ptr noundef %4356, ptr noundef %4358, ptr noundef %4360, i32 noundef %4361) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4363:                                             ; preds = %4336
  %4364 = getelementptr inbounds i8, ptr %76, i64 28
  %4365 = load i32, ptr %4364, align 4, !tbaa !15
  %4366 = getelementptr inbounds i8, ptr %76, i64 24
  %4367 = load i32, ptr %4366, align 8, !tbaa !18
  %4368 = sub i32 %4365, %4367
  %4369 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %76, i32 noundef %4368) #13
  %4370 = load i32, ptr @test_count, align 4, !tbaa !5
  %4371 = add nsw i32 %4370, 1
  store i32 %4371, ptr @test_count, align 4, !tbaa !5
  %4372 = icmp eq ptr %4369, null
  br i1 %4372, label %4373, label %4395

4373:                                             ; preds = %4363
  %4374 = load i32, ptr %1329, align 4, !tbaa !5
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = call i32 @s2n_print_stacktrace(ptr noundef %4375) #13
  %4377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4378 = trunc nuw i8 %4377 to i1
  br i1 %4378, label %4379, label %4383

4379:                                             ; preds = %4373
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = call i32 @fileno(ptr noundef %4380) #13
  %4382 = call i32 @isatty(i32 noundef %4381) #13
  %.not2448 = icmp eq i32 %4382, 0
  br i1 %.not2448, label %4383, label %4384

4383:                                             ; preds = %4379, %4373
  br label %4384

4384:                                             ; preds = %4379, %4383
  %.str.5.sink3896 = phi ptr [ @.str.5, %4383 ], [ @.str.2, %4379 ]
  store i32 %4374, ptr %1329, align 4, !tbaa !5
  %4385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4386 = load i32, ptr @test_count, align 4, !tbaa !5
  %4387 = load i32, ptr %1275, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror(i32 noundef %4387, ptr noundef nonnull @.str.4) #13
  %4389 = load i32, ptr %1275, align 4, !tbaa !5
  %4390 = call ptr @s2n_strerror_debug(i32 noundef %4389, ptr noundef nonnull @.str.4) #13
  %4391 = load i32, ptr %1329, align 4, !tbaa !5
  %4392 = call ptr @strerror(i32 noundef %4391) #13
  %4393 = load i32, ptr %1329, align 4, !tbaa !5
  %4394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4385, ptr noundef nonnull %.str.5.sink3896, i32 noundef %4386, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 672, ptr noundef %4388, ptr noundef %4390, ptr noundef %4392, i32 noundef %4393) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4395:                                             ; preds = %4363
  %4396 = add nsw i32 %4370, 2
  store i32 %4396, ptr @test_count, align 4, !tbaa !5
  %4397 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4284, ptr noundef nonnull @.str.23) #13
  %4398 = icmp eq i32 %4397, -1
  br i1 %4398, label %4399, label %4421

4399:                                             ; preds = %4395
  %4400 = load i32, ptr %1329, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = call i32 @s2n_print_stacktrace(ptr noundef %4401) #13
  %4403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4404 = trunc nuw i8 %4403 to i1
  br i1 %4404, label %4405, label %4409

4405:                                             ; preds = %4399
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = call i32 @fileno(ptr noundef %4406) #13
  %4408 = call i32 @isatty(i32 noundef %4407) #13
  %.not2447 = icmp eq i32 %4408, 0
  br i1 %.not2447, label %4409, label %4410

4409:                                             ; preds = %4405, %4399
  br label %4410

4410:                                             ; preds = %4405, %4409
  %.str.5.sink3905 = phi ptr [ @.str.5, %4409 ], [ @.str.2, %4405 ]
  store i32 %4400, ptr %1329, align 4, !tbaa !5
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4412 = load i32, ptr @test_count, align 4, !tbaa !5
  %4413 = load i32, ptr %1275, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror(i32 noundef %4413, ptr noundef nonnull @.str.4) #13
  %4415 = load i32, ptr %1275, align 4, !tbaa !5
  %4416 = call ptr @s2n_strerror_debug(i32 noundef %4415, ptr noundef nonnull @.str.4) #13
  %4417 = load i32, ptr %1329, align 4, !tbaa !5
  %4418 = call ptr @strerror(i32 noundef %4417) #13
  %4419 = load i32, ptr %1329, align 4, !tbaa !5
  %4420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4411, ptr noundef nonnull %.str.5.sink3905, i32 noundef %4412, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 674, ptr noundef %4414, ptr noundef %4416, ptr noundef %4418, i32 noundef %4419) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4421:                                             ; preds = %4395
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %77) #13
  %4422 = load i32, ptr @test_count, align 4, !tbaa !5
  %4423 = add nsw i32 %4422, 1
  store i32 %4423, ptr @test_count, align 4, !tbaa !5
  %4424 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %77) #13
  %4425 = icmp eq i32 %4424, -1
  br i1 %4425, label %4426, label %4448

4426:                                             ; preds = %4421
  %4427 = load i32, ptr %1329, align 4, !tbaa !5
  %4428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4429 = call i32 @s2n_print_stacktrace(ptr noundef %4428) #13
  %4430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4431 = trunc nuw i8 %4430 to i1
  br i1 %4431, label %4432, label %4436

4432:                                             ; preds = %4426
  %4433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4434 = call i32 @fileno(ptr noundef %4433) #13
  %4435 = call i32 @isatty(i32 noundef %4434) #13
  %.not2446 = icmp eq i32 %4435, 0
  br i1 %.not2446, label %4436, label %4437

4436:                                             ; preds = %4432, %4426
  br label %4437

4437:                                             ; preds = %4432, %4436
  %.str.5.sink3914 = phi ptr [ @.str.5, %4436 ], [ @.str.2, %4432 ]
  store i32 %4427, ptr %1329, align 4, !tbaa !5
  %4438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4439 = load i32, ptr @test_count, align 4, !tbaa !5
  %4440 = load i32, ptr %1275, align 4, !tbaa !5
  %4441 = call ptr @s2n_strerror(i32 noundef %4440, ptr noundef nonnull @.str.4) #13
  %4442 = load i32, ptr %1275, align 4, !tbaa !5
  %4443 = call ptr @s2n_strerror_debug(i32 noundef %4442, ptr noundef nonnull @.str.4) #13
  %4444 = load i32, ptr %1329, align 4, !tbaa !5
  %4445 = call ptr @strerror(i32 noundef %4444) #13
  %4446 = load i32, ptr %1329, align 4, !tbaa !5
  %4447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4438, ptr noundef nonnull %.str.5.sink3914, i32 noundef %4439, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 677, ptr noundef %4441, ptr noundef %4443, ptr noundef %4445, i32 noundef %4446) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4448:                                             ; preds = %4421
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %78) #13
  store i32 -1, ptr %78, align 4, !tbaa !5
  %4449 = load i32, ptr @test_count, align 4, !tbaa !5
  %4450 = add nsw i32 %4449, 1
  store i32 %4450, ptr @test_count, align 4, !tbaa !5
  %4451 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %75, ptr noundef nonnull %4284, ptr noundef nonnull %4369, i32 noundef %4368, ptr noundef nonnull %78, ptr noundef nonnull %77) #13
  %4452 = call zeroext i1 @s2n_result_is_error(i32 %4451)
  br i1 %4452, label %4475, label %4453

4453:                                             ; preds = %4448
  %4454 = load i32, ptr %1329, align 4, !tbaa !5
  %4455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4456 = call i32 @s2n_print_stacktrace(ptr noundef %4455) #13
  %4457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4458 = trunc nuw i8 %4457 to i1
  br i1 %4458, label %4459, label %4463

4459:                                             ; preds = %4453
  %4460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4461 = call i32 @fileno(ptr noundef %4460) #13
  %4462 = call i32 @isatty(i32 noundef %4461) #13
  %.not1991 = icmp eq i32 %4462, 0
  br i1 %.not1991, label %4463, label %4464

4463:                                             ; preds = %4459, %4453
  br label %4464

4464:                                             ; preds = %4459, %4463
  %.str.5.sink3923 = phi ptr [ @.str.5, %4463 ], [ @.str.2, %4459 ]
  store i32 %4454, ptr %1329, align 4, !tbaa !5
  %4465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4466 = load i32, ptr @test_count, align 4, !tbaa !5
  %4467 = load i32, ptr %1275, align 4, !tbaa !5
  %4468 = call ptr @s2n_strerror(i32 noundef %4467, ptr noundef nonnull @.str.4) #13
  %4469 = load i32, ptr %1275, align 4, !tbaa !5
  %4470 = call ptr @s2n_strerror_debug(i32 noundef %4469, ptr noundef nonnull @.str.4) #13
  %4471 = load i32, ptr %1329, align 4, !tbaa !5
  %4472 = call ptr @strerror(i32 noundef %4471) #13
  %4473 = load i32, ptr %1329, align 4, !tbaa !5
  %4474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4465, ptr noundef nonnull %.str.5.sink3923, i32 noundef %4466, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 681, ptr noundef %4468, ptr noundef %4470, ptr noundef %4472, i32 noundef %4473) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4475:                                             ; preds = %4448
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = add nsw i32 %4476, 1
  store i32 %4477, ptr @test_count, align 4, !tbaa !5
  %4478 = load i32, ptr %1275, align 4, !tbaa !5
  %4479 = icmp eq i32 %4478, 335544366
  br i1 %4479, label %4502, label %4480

4480:                                             ; preds = %4475
  %4481 = load i32, ptr %1329, align 4, !tbaa !5
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = call i32 @s2n_print_stacktrace(ptr noundef %4482) #13
  %4484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4485 = trunc nuw i8 %4484 to i1
  br i1 %4485, label %4486, label %4490

4486:                                             ; preds = %4480
  %4487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4488 = call i32 @fileno(ptr noundef %4487) #13
  %4489 = call i32 @isatty(i32 noundef %4488) #13
  %.not1992 = icmp eq i32 %4489, 0
  br i1 %.not1992, label %4490, label %4491

4490:                                             ; preds = %4486, %4480
  br label %4491

4491:                                             ; preds = %4486, %4490
  %.str.5.sink3932 = phi ptr [ @.str.5, %4490 ], [ @.str.2, %4486 ]
  store i32 %4481, ptr %1329, align 4, !tbaa !5
  %4492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4493 = load i32, ptr @test_count, align 4, !tbaa !5
  %4494 = load i32, ptr %1275, align 4, !tbaa !5
  %4495 = call ptr @s2n_strerror(i32 noundef %4494, ptr noundef nonnull @.str.4) #13
  %4496 = load i32, ptr %1275, align 4, !tbaa !5
  %4497 = call ptr @s2n_strerror_debug(i32 noundef %4496, ptr noundef nonnull @.str.4) #13
  %4498 = load i32, ptr %1329, align 4, !tbaa !5
  %4499 = call ptr @strerror(i32 noundef %4498) #13
  %4500 = load i32, ptr %1329, align 4, !tbaa !5
  %4501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4492, ptr noundef nonnull %.str.5.sink3932, i32 noundef %4493, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 681, ptr noundef %4495, ptr noundef %4497, ptr noundef %4499, i32 noundef %4500) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4502:                                             ; preds = %4475
  %4503 = add nsw i32 %4476, 2
  store i32 %4503, ptr @test_count, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %4505 = icmp eq ptr %4504, null
  br i1 %4505, label %4506, label %4528

4506:                                             ; preds = %4502
  %4507 = load i32, ptr %1329, align 4, !tbaa !5
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = call i32 @s2n_print_stacktrace(ptr noundef %4508) #13
  %4510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4511 = trunc nuw i8 %4510 to i1
  br i1 %4511, label %4512, label %4516

4512:                                             ; preds = %4506
  %4513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4514 = call i32 @fileno(ptr noundef %4513) #13
  %4515 = call i32 @isatty(i32 noundef %4514) #13
  %.not2445 = icmp eq i32 %4515, 0
  br i1 %.not2445, label %4516, label %4517

4516:                                             ; preds = %4512, %4506
  br label %4517

4517:                                             ; preds = %4512, %4516
  %.str.5.sink3941 = phi ptr [ @.str.5, %4516 ], [ @.str.2, %4512 ]
  store i32 %4507, ptr %1329, align 4, !tbaa !5
  %4518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4519 = load i32, ptr @test_count, align 4, !tbaa !5
  %4520 = load i32, ptr %1275, align 4, !tbaa !5
  %4521 = call ptr @s2n_strerror(i32 noundef %4520, ptr noundef nonnull @.str.4) #13
  %4522 = load i32, ptr %1275, align 4, !tbaa !5
  %4523 = call ptr @s2n_strerror_debug(i32 noundef %4522, ptr noundef nonnull @.str.4) #13
  %4524 = load i32, ptr %1329, align 4, !tbaa !5
  %4525 = call ptr @strerror(i32 noundef %4524) #13
  %4526 = load i32, ptr %1329, align 4, !tbaa !5
  %4527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4518, ptr noundef nonnull %.str.5.sink3941, i32 noundef %4519, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 681, ptr noundef %4521, ptr noundef %4523, ptr noundef %4525, i32 noundef %4526) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4528:                                             ; preds = %4502
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %4529 = load i32, ptr @test_count, align 4, !tbaa !5
  %4530 = add nsw i32 %4529, 1
  store i32 %4530, ptr @test_count, align 4, !tbaa !5
  %4531 = getelementptr inbounds i8, ptr %74, i64 9
  %4532 = load i8, ptr %4531, align 1, !tbaa !19
  %4533 = icmp eq i8 %4532, 1
  br i1 %4533, label %4556, label %4534

4534:                                             ; preds = %4528
  %4535 = load i32, ptr %1329, align 4, !tbaa !5
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = call i32 @s2n_print_stacktrace(ptr noundef %4536) #13
  %4538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %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 !9
  %4542 = call i32 @fileno(ptr noundef %4541) #13
  %4543 = call i32 @isatty(i32 noundef %4542) #13
  %.not1993 = icmp eq i32 %4543, 0
  br i1 %.not1993, label %4544, label %4545

4544:                                             ; preds = %4540, %4534
  br label %4545

4545:                                             ; preds = %4540, %4544
  %.str.5.sink3950 = phi ptr [ @.str.5, %4544 ], [ @.str.2, %4540 ]
  store i32 %4535, ptr %1329, align 4, !tbaa !5
  %4546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = load i32, ptr %1275, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror(i32 noundef %4548, ptr noundef nonnull @.str.4) #13
  %4550 = load i32, ptr %1275, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror_debug(i32 noundef %4550, ptr noundef nonnull @.str.4) #13
  %4552 = load i32, ptr %1329, align 4, !tbaa !5
  %4553 = call ptr @strerror(i32 noundef %4552) #13
  %4554 = load i32, ptr %1329, align 4, !tbaa !5
  %4555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4546, ptr noundef nonnull %.str.5.sink3950, i32 noundef %4547, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 682, ptr noundef %4549, ptr noundef %4551, ptr noundef %4553, i32 noundef %4554) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4556:                                             ; preds = %4528
  %4557 = call i32 @s2n_connection_free(ptr noundef nonnull %4284) #13
  %4558 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %75) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %73) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %78) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %77) #13
  %4559 = call i32 @s2n_stuffer_free(ptr noundef nonnull %76) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %76) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %75) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %79) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %79) #13
  %4560 = load i32, ptr @test_count, align 4, !tbaa !5
  %4561 = add nsw i32 %4560, 1
  store i32 %4561, ptr @test_count, align 4, !tbaa !5
  %4562 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %79, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %4563 = icmp eq i32 %4562, -1
  br i1 %4563, label %4564, label %4586

4564:                                             ; preds = %4556
  %4565 = load i32, ptr %1329, align 4, !tbaa !5
  %4566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4567 = call i32 @s2n_print_stacktrace(ptr noundef %4566) #13
  %4568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4569 = trunc nuw i8 %4568 to i1
  br i1 %4569, label %4570, label %4574

4570:                                             ; preds = %4564
  %4571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4572 = call i32 @fileno(ptr noundef %4571) #13
  %4573 = call i32 @isatty(i32 noundef %4572) #13
  %.not2444 = icmp eq i32 %4573, 0
  br i1 %.not2444, label %4574, label %4575

4574:                                             ; preds = %4570, %4564
  br label %4575

4575:                                             ; preds = %4570, %4574
  %.str.5.sink3959 = phi ptr [ @.str.5, %4574 ], [ @.str.2, %4570 ]
  store i32 %4565, ptr %1329, align 4, !tbaa !5
  %4576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4577 = load i32, ptr @test_count, align 4, !tbaa !5
  %4578 = load i32, ptr %1275, align 4, !tbaa !5
  %4579 = call ptr @s2n_strerror(i32 noundef %4578, ptr noundef nonnull @.str.4) #13
  %4580 = load i32, ptr %1275, align 4, !tbaa !5
  %4581 = call ptr @s2n_strerror_debug(i32 noundef %4580, ptr noundef nonnull @.str.4) #13
  %4582 = load i32, ptr %1329, align 4, !tbaa !5
  %4583 = call ptr @strerror(i32 noundef %4582) #13
  %4584 = load i32, ptr %1329, align 4, !tbaa !5
  %4585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4576, ptr noundef nonnull %.str.5.sink3959, i32 noundef %4577, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 692, ptr noundef %4579, ptr noundef %4581, ptr noundef %4583, i32 noundef %4584) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4586:                                             ; preds = %4556
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %80) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.61, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %81) #13
  %4587 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %81, ptr noundef nonnull %79, i8 noundef zeroext 1) #13
  %4588 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4589 = load i32, ptr @test_count, align 4, !tbaa !5
  %4590 = add nsw i32 %4589, 1
  store i32 %4590, ptr @test_count, align 4, !tbaa !5
  %4591 = icmp eq ptr %4588, null
  br i1 %4591, label %4592, label %4614

4592:                                             ; preds = %4586
  %4593 = load i32, ptr %1329, align 4, !tbaa !5
  %4594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4595 = call i32 @s2n_print_stacktrace(ptr noundef %4594) #13
  %4596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4597 = trunc nuw i8 %4596 to i1
  br i1 %4597, label %4598, label %4602

4598:                                             ; preds = %4592
  %4599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4600 = call i32 @fileno(ptr noundef %4599) #13
  %4601 = call i32 @isatty(i32 noundef %4600) #13
  %.not2443 = icmp eq i32 %4601, 0
  br i1 %.not2443, label %4602, label %4603

4602:                                             ; preds = %4598, %4592
  br label %4603

4603:                                             ; preds = %4598, %4602
  %.str.5.sink3968 = phi ptr [ @.str.5, %4602 ], [ @.str.2, %4598 ]
  store i32 %4593, ptr %1329, align 4, !tbaa !5
  %4604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4605 = load i32, ptr @test_count, align 4, !tbaa !5
  %4606 = load i32, ptr %1275, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror(i32 noundef %4606, ptr noundef nonnull @.str.4) #13
  %4608 = load i32, ptr %1275, align 4, !tbaa !5
  %4609 = call ptr @s2n_strerror_debug(i32 noundef %4608, ptr noundef nonnull @.str.4) #13
  %4610 = load i32, ptr %1329, align 4, !tbaa !5
  %4611 = call ptr @strerror(i32 noundef %4610) #13
  %4612 = load i32, ptr %1329, align 4, !tbaa !5
  %4613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4604, ptr noundef nonnull %.str.5.sink3968, i32 noundef %4605, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 704, ptr noundef %4607, ptr noundef %4609, ptr noundef %4611, i32 noundef %4612) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4614:                                             ; preds = %4586
  %4615 = add nsw i32 %4589, 2
  store i32 %4615, ptr @test_count, align 4, !tbaa !5
  %4616 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %4588, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %80) #13
  %4617 = icmp eq i32 %4616, -1
  br i1 %4617, label %4618, label %4640

4618:                                             ; preds = %4614
  %4619 = load i32, ptr %1329, align 4, !tbaa !5
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = call i32 @s2n_print_stacktrace(ptr noundef %4620) #13
  %4622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4623 = trunc nuw i8 %4622 to i1
  br i1 %4623, label %4624, label %4628

4624:                                             ; preds = %4618
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = call i32 @fileno(ptr noundef %4625) #13
  %4627 = call i32 @isatty(i32 noundef %4626) #13
  %.not2442 = icmp eq i32 %4627, 0
  br i1 %.not2442, label %4628, label %4629

4628:                                             ; preds = %4624, %4618
  br label %4629

4629:                                             ; preds = %4624, %4628
  %.str.5.sink3977 = phi ptr [ @.str.5, %4628 ], [ @.str.2, %4624 ]
  store i32 %4619, ptr %1329, align 4, !tbaa !5
  %4630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4631 = load i32, ptr @test_count, align 4, !tbaa !5
  %4632 = load i32, ptr %1275, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror(i32 noundef %4632, ptr noundef nonnull @.str.4) #13
  %4634 = load i32, ptr %1275, align 4, !tbaa !5
  %4635 = call ptr @s2n_strerror_debug(i32 noundef %4634, ptr noundef nonnull @.str.4) #13
  %4636 = load i32, ptr %1329, align 4, !tbaa !5
  %4637 = call ptr @strerror(i32 noundef %4636) #13
  %4638 = load i32, ptr %1329, align 4, !tbaa !5
  %4639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4630, ptr noundef nonnull %.str.5.sink3977, i32 noundef %4631, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 705, ptr noundef %4633, ptr noundef %4635, ptr noundef %4637, i32 noundef %4638) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4640:                                             ; preds = %4614
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %82) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %82, i8 0, i64 40, i1 false)
  %4641 = load i32, ptr @test_count, align 4, !tbaa !5
  %4642 = add nsw i32 %4641, 1
  store i32 %4642, ptr @test_count, align 4, !tbaa !5
  %4643 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %4588, ptr noundef nonnull @.str.11, ptr noundef nonnull %82) #13
  %4644 = call zeroext i1 @s2n_result_is_ok(i32 %4643)
  br i1 %4644, label %4667, label %4645

4645:                                             ; preds = %4640
  %4646 = load i32, ptr %1329, align 4, !tbaa !5
  %4647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4648 = call i32 @s2n_print_stacktrace(ptr noundef %4647) #13
  %4649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4650 = trunc nuw i8 %4649 to i1
  br i1 %4650, label %4651, label %4655

4651:                                             ; preds = %4645
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = call i32 @fileno(ptr noundef %4652) #13
  %4654 = call i32 @isatty(i32 noundef %4653) #13
  %.not1994 = icmp eq i32 %4654, 0
  br i1 %.not1994, label %4655, label %4656

4655:                                             ; preds = %4651, %4645
  br label %4656

4656:                                             ; preds = %4651, %4655
  %.str.5.sink3986 = phi ptr [ @.str.5, %4655 ], [ @.str.2, %4651 ]
  store i32 %4646, ptr %1329, align 4, !tbaa !5
  %4657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4658 = load i32, ptr @test_count, align 4, !tbaa !5
  %4659 = load i32, ptr %1275, align 4, !tbaa !5
  %4660 = call ptr @s2n_strerror(i32 noundef %4659, ptr noundef nonnull @.str.4) #13
  %4661 = load i32, ptr %1275, align 4, !tbaa !5
  %4662 = call ptr @s2n_strerror_debug(i32 noundef %4661, ptr noundef nonnull @.str.4) #13
  %4663 = load i32, ptr %1329, align 4, !tbaa !5
  %4664 = call ptr @strerror(i32 noundef %4663) #13
  %4665 = load i32, ptr %1329, align 4, !tbaa !5
  %4666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4657, ptr noundef nonnull %.str.5.sink3986, i32 noundef %4658, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 708, ptr noundef %4660, ptr noundef %4662, ptr noundef %4664, i32 noundef %4665) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4667:                                             ; preds = %4640
  %4668 = getelementptr inbounds i8, ptr %82, i64 28
  %4669 = load i32, ptr %4668, align 4, !tbaa !15
  %4670 = getelementptr inbounds i8, ptr %82, i64 24
  %4671 = load i32, ptr %4670, align 8, !tbaa !18
  %4672 = sub i32 %4669, %4671
  %4673 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %82, i32 noundef %4672) #13
  %4674 = load i32, ptr @test_count, align 4, !tbaa !5
  %4675 = add nsw i32 %4674, 1
  store i32 %4675, ptr @test_count, align 4, !tbaa !5
  %4676 = icmp eq ptr %4673, null
  br i1 %4676, label %4677, label %4699

4677:                                             ; preds = %4667
  %4678 = load i32, ptr %1329, align 4, !tbaa !5
  %4679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4680 = call i32 @s2n_print_stacktrace(ptr noundef %4679) #13
  %4681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4682 = trunc nuw i8 %4681 to i1
  br i1 %4682, label %4683, label %4687

4683:                                             ; preds = %4677
  %4684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4685 = call i32 @fileno(ptr noundef %4684) #13
  %4686 = call i32 @isatty(i32 noundef %4685) #13
  %.not2441 = icmp eq i32 %4686, 0
  br i1 %.not2441, label %4687, label %4688

4687:                                             ; preds = %4683, %4677
  br label %4688

4688:                                             ; preds = %4683, %4687
  %.str.5.sink3995 = phi ptr [ @.str.5, %4687 ], [ @.str.2, %4683 ]
  store i32 %4678, ptr %1329, align 4, !tbaa !5
  %4689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4690 = load i32, ptr @test_count, align 4, !tbaa !5
  %4691 = load i32, ptr %1275, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror(i32 noundef %4691, ptr noundef nonnull @.str.4) #13
  %4693 = load i32, ptr %1275, align 4, !tbaa !5
  %4694 = call ptr @s2n_strerror_debug(i32 noundef %4693, ptr noundef nonnull @.str.4) #13
  %4695 = load i32, ptr %1329, align 4, !tbaa !5
  %4696 = call ptr @strerror(i32 noundef %4695) #13
  %4697 = load i32, ptr %1329, align 4, !tbaa !5
  %4698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4689, ptr noundef nonnull %.str.5.sink3995, i32 noundef %4690, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 711, ptr noundef %4692, ptr noundef %4694, ptr noundef %4696, i32 noundef %4697) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4699:                                             ; preds = %4667
  %4700 = add nsw i32 %4674, 2
  store i32 %4700, ptr @test_count, align 4, !tbaa !5
  %4701 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4588, ptr noundef nonnull @.str.23) #13
  %4702 = icmp eq i32 %4701, -1
  br i1 %4702, label %4703, label %4725

4703:                                             ; preds = %4699
  %4704 = load i32, ptr %1329, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = call i32 @s2n_print_stacktrace(ptr noundef %4705) #13
  %4707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4708 = trunc nuw i8 %4707 to i1
  br i1 %4708, label %4709, label %4713

4709:                                             ; preds = %4703
  %4710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4711 = call i32 @fileno(ptr noundef %4710) #13
  %4712 = call i32 @isatty(i32 noundef %4711) #13
  %.not2440 = icmp eq i32 %4712, 0
  br i1 %.not2440, label %4713, label %4714

4713:                                             ; preds = %4709, %4703
  br label %4714

4714:                                             ; preds = %4709, %4713
  %.str.5.sink4004 = phi ptr [ @.str.5, %4713 ], [ @.str.2, %4709 ]
  store i32 %4704, ptr %1329, align 4, !tbaa !5
  %4715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4716 = load i32, ptr @test_count, align 4, !tbaa !5
  %4717 = load i32, ptr %1275, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror(i32 noundef %4717, ptr noundef nonnull @.str.4) #13
  %4719 = load i32, ptr %1275, align 4, !tbaa !5
  %4720 = call ptr @s2n_strerror_debug(i32 noundef %4719, ptr noundef nonnull @.str.4) #13
  %4721 = load i32, ptr %1329, align 4, !tbaa !5
  %4722 = call ptr @strerror(i32 noundef %4721) #13
  %4723 = load i32, ptr %1329, align 4, !tbaa !5
  %4724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4715, ptr noundef nonnull %.str.5.sink4004, i32 noundef %4716, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 713, ptr noundef %4718, ptr noundef %4720, ptr noundef %4722, i32 noundef %4723) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4725:                                             ; preds = %4699
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %83) #13
  %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 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %83) #13
  %4729 = icmp eq i32 %4728, -1
  br i1 %4729, label %4730, label %4752

4730:                                             ; preds = %4725
  %4731 = load i32, ptr %1329, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @s2n_print_stacktrace(ptr noundef %4732) #13
  %4734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4735 = trunc nuw i8 %4734 to i1
  br i1 %4735, label %4736, label %4740

4736:                                             ; preds = %4730
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = call i32 @fileno(ptr noundef %4737) #13
  %4739 = call i32 @isatty(i32 noundef %4738) #13
  %.not2439 = icmp eq i32 %4739, 0
  br i1 %.not2439, label %4740, label %4741

4740:                                             ; preds = %4736, %4730
  br label %4741

4741:                                             ; preds = %4736, %4740
  %.str.5.sink4013 = phi ptr [ @.str.5, %4740 ], [ @.str.2, %4736 ]
  store i32 %4731, ptr %1329, align 4, !tbaa !5
  %4742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4743 = load i32, ptr @test_count, align 4, !tbaa !5
  %4744 = load i32, ptr %1275, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror(i32 noundef %4744, ptr noundef nonnull @.str.4) #13
  %4746 = load i32, ptr %1275, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef nonnull @.str.4) #13
  %4748 = load i32, ptr %1329, align 4, !tbaa !5
  %4749 = call ptr @strerror(i32 noundef %4748) #13
  %4750 = load i32, ptr %1329, align 4, !tbaa !5
  %4751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4742, ptr noundef nonnull %.str.5.sink4013, i32 noundef %4743, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 716, ptr noundef %4745, ptr noundef %4747, ptr noundef %4749, i32 noundef %4750) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4752:                                             ; preds = %4725
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %84) #13
  store i32 -1, ptr %84, align 4, !tbaa !5
  %4753 = load i32, ptr @test_count, align 4, !tbaa !5
  %4754 = add nsw i32 %4753, 1
  store i32 %4754, ptr @test_count, align 4, !tbaa !5
  %4755 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %81, ptr noundef nonnull %4588, ptr noundef nonnull %4673, i32 noundef %4672, ptr noundef nonnull %84, ptr noundef nonnull %83) #13
  %4756 = call zeroext i1 @s2n_result_is_ok(i32 %4755)
  br i1 %4756, label %4779, label %4757

4757:                                             ; preds = %4752
  %4758 = load i32, ptr %1329, align 4, !tbaa !5
  %4759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4760 = call i32 @s2n_print_stacktrace(ptr noundef %4759) #13
  %4761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4762 = trunc nuw i8 %4761 to i1
  br i1 %4762, label %4763, label %4767

4763:                                             ; preds = %4757
  %4764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4765 = call i32 @fileno(ptr noundef %4764) #13
  %4766 = call i32 @isatty(i32 noundef %4765) #13
  %.not1995 = icmp eq i32 %4766, 0
  br i1 %.not1995, label %4767, label %4768

4767:                                             ; preds = %4763, %4757
  br label %4768

4768:                                             ; preds = %4763, %4767
  %.str.5.sink4022 = phi ptr [ @.str.5, %4767 ], [ @.str.2, %4763 ]
  store i32 %4758, ptr %1329, align 4, !tbaa !5
  %4769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4770 = load i32, ptr @test_count, align 4, !tbaa !5
  %4771 = load i32, ptr %1275, align 4, !tbaa !5
  %4772 = call ptr @s2n_strerror(i32 noundef %4771, ptr noundef nonnull @.str.4) #13
  %4773 = load i32, ptr %1275, align 4, !tbaa !5
  %4774 = call ptr @s2n_strerror_debug(i32 noundef %4773, ptr noundef nonnull @.str.4) #13
  %4775 = load i32, ptr %1329, align 4, !tbaa !5
  %4776 = call ptr @strerror(i32 noundef %4775) #13
  %4777 = load i32, ptr %1329, align 4, !tbaa !5
  %4778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4769, ptr noundef nonnull %.str.5.sink4022, i32 noundef %4770, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 718, ptr noundef %4772, ptr noundef %4774, ptr noundef %4776, i32 noundef %4777) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4779:                                             ; preds = %4752
  %4780 = load i32, ptr @test_count, align 4, !tbaa !5
  %4781 = add nsw i32 %4780, 1
  store i32 %4781, ptr @test_count, align 4, !tbaa !5
  %4782 = getelementptr inbounds i8, ptr %80, i64 9
  %4783 = load i8, ptr %4782, align 1, !tbaa !19
  %4784 = icmp eq i8 %4783, 1
  br i1 %4784, label %4807, label %4785

4785:                                             ; preds = %4779
  %4786 = load i32, ptr %1329, align 4, !tbaa !5
  %4787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4788 = call i32 @s2n_print_stacktrace(ptr noundef %4787) #13
  %4789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4790 = trunc nuw i8 %4789 to i1
  br i1 %4790, label %4791, label %4795

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

4795:                                             ; preds = %4791, %4785
  br label %4796

4796:                                             ; preds = %4791, %4795
  %.str.5.sink4031 = phi ptr [ @.str.5, %4795 ], [ @.str.2, %4791 ]
  store i32 %4786, ptr %1329, align 4, !tbaa !5
  %4797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4798 = load i32, ptr @test_count, align 4, !tbaa !5
  %4799 = load i32, ptr %1275, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror(i32 noundef %4799, ptr noundef nonnull @.str.4) #13
  %4801 = load i32, ptr %1275, align 4, !tbaa !5
  %4802 = call ptr @s2n_strerror_debug(i32 noundef %4801, ptr noundef nonnull @.str.4) #13
  %4803 = load i32, ptr %1329, align 4, !tbaa !5
  %4804 = call ptr @strerror(i32 noundef %4803) #13
  %4805 = load i32, ptr %1329, align 4, !tbaa !5
  %4806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4797, ptr noundef nonnull %.str.5.sink4031, i32 noundef %4798, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 720, ptr noundef %4800, ptr noundef %4802, ptr noundef %4804, i32 noundef %4805) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4807:                                             ; preds = %4779
  %4808 = add nsw i32 %4780, 2
  store i32 %4808, ptr @test_count, align 4, !tbaa !5
  %4809 = load i32, ptr %84, align 4, !tbaa !5
  %4810 = icmp eq i32 %4809, 0
  br i1 %4810, label %4833, label %4811

4811:                                             ; preds = %4807
  %4812 = load i32, ptr %1329, align 4, !tbaa !5
  %4813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4814 = call i32 @s2n_print_stacktrace(ptr noundef %4813) #13
  %4815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4816 = trunc nuw i8 %4815 to i1
  br i1 %4816, label %4817, label %4821

4817:                                             ; preds = %4811
  %4818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4819 = call i32 @fileno(ptr noundef %4818) #13
  %4820 = call i32 @isatty(i32 noundef %4819) #13
  %.not1997 = icmp eq i32 %4820, 0
  br i1 %.not1997, label %4821, label %4822

4821:                                             ; preds = %4817, %4811
  br label %4822

4822:                                             ; preds = %4817, %4821
  %.str.5.sink4040 = phi ptr [ @.str.5, %4821 ], [ @.str.2, %4817 ]
  store i32 %4812, ptr %1329, align 4, !tbaa !5
  %4823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4824 = load i32, ptr @test_count, align 4, !tbaa !5
  %4825 = load i32, ptr %1275, align 4, !tbaa !5
  %4826 = call ptr @s2n_strerror(i32 noundef %4825, ptr noundef nonnull @.str.4) #13
  %4827 = load i32, ptr %1275, align 4, !tbaa !5
  %4828 = call ptr @s2n_strerror_debug(i32 noundef %4827, ptr noundef nonnull @.str.4) #13
  %4829 = load i32, ptr %1329, align 4, !tbaa !5
  %4830 = call ptr @strerror(i32 noundef %4829) #13
  %4831 = load i32, ptr %1329, align 4, !tbaa !5
  %4832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4823, ptr noundef nonnull %.str.5.sink4040, i32 noundef %4824, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 721, ptr noundef %4826, ptr noundef %4828, ptr noundef %4830, i32 noundef %4831) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4833:                                             ; preds = %4807
  %4834 = call i32 @s2n_connection_free(ptr noundef nonnull %4588) #13
  %4835 = call i32 @s2n_pkey_free(ptr noundef nonnull %83) #13
  %4836 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %81) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %79) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %84) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %83) #13
  %4837 = call i32 @s2n_stuffer_free(ptr noundef nonnull %82) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %82) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %81) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %80) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %85) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %85) #13
  %4838 = load i32, ptr @test_count, align 4, !tbaa !5
  %4839 = add nsw i32 %4838, 1
  store i32 %4839, ptr @test_count, align 4, !tbaa !5
  %4840 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %4841 = icmp eq ptr %4840, null
  br i1 %4841, label %4842, label %4864

4842:                                             ; preds = %4833
  %4843 = load i32, ptr %1329, align 4, !tbaa !5
  %4844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4845 = call i32 @s2n_print_stacktrace(ptr noundef %4844) #13
  %4846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4847 = trunc nuw i8 %4846 to i1
  br i1 %4847, label %4848, label %4852

4848:                                             ; preds = %4842
  %4849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4850 = call i32 @fileno(ptr noundef %4849) #13
  %4851 = call i32 @isatty(i32 noundef %4850) #13
  %.not2438 = icmp eq i32 %4851, 0
  br i1 %.not2438, label %4852, label %4853

4852:                                             ; preds = %4848, %4842
  br label %4853

4853:                                             ; preds = %4848, %4852
  %.str.5.sink4049 = phi ptr [ @.str.5, %4852 ], [ @.str.2, %4848 ]
  store i32 %4843, ptr %1329, align 4, !tbaa !5
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = load i32, ptr @test_count, align 4, !tbaa !5
  %4856 = load i32, ptr %1275, align 4, !tbaa !5
  %4857 = call ptr @s2n_strerror(i32 noundef %4856, ptr noundef nonnull @.str.4) #13
  %4858 = load i32, ptr %1275, align 4, !tbaa !5
  %4859 = call ptr @s2n_strerror_debug(i32 noundef %4858, ptr noundef nonnull @.str.4) #13
  %4860 = load i32, ptr %1329, align 4, !tbaa !5
  %4861 = call ptr @strerror(i32 noundef %4860) #13
  %4862 = load i32, ptr %1329, align 4, !tbaa !5
  %4863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4854, ptr noundef nonnull %.str.5.sink4049, i32 noundef %4855, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 735, ptr noundef %4857, ptr noundef %4859, ptr noundef %4861, i32 noundef %4862) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4864:                                             ; preds = %4833
  %4865 = add nsw i32 %4838, 2
  store i32 %4865, ptr @test_count, align 4, !tbaa !5
  %4866 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.11, ptr noundef nonnull %4840, i64 noundef 12000) #13
  %4867 = icmp eq i32 %4866, -1
  br i1 %4867, label %4868, label %4890

4868:                                             ; preds = %4864
  %4869 = load i32, ptr %1329, align 4, !tbaa !5
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = call i32 @s2n_print_stacktrace(ptr noundef %4870) #13
  %4872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4873 = trunc nuw i8 %4872 to i1
  br i1 %4873, label %4874, label %4878

4874:                                             ; preds = %4868
  %4875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4876 = call i32 @fileno(ptr noundef %4875) #13
  %4877 = call i32 @isatty(i32 noundef %4876) #13
  %.not2437 = icmp eq i32 %4877, 0
  br i1 %.not2437, label %4878, label %4879

4878:                                             ; preds = %4874, %4868
  br label %4879

4879:                                             ; preds = %4874, %4878
  %.str.5.sink4058 = phi ptr [ @.str.5, %4878 ], [ @.str.2, %4874 ]
  store i32 %4869, ptr %1329, align 4, !tbaa !5
  %4880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4881 = load i32, ptr @test_count, align 4, !tbaa !5
  %4882 = load i32, ptr %1275, align 4, !tbaa !5
  %4883 = call ptr @s2n_strerror(i32 noundef %4882, ptr noundef nonnull @.str.4) #13
  %4884 = load i32, ptr %1275, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror_debug(i32 noundef %4884, ptr noundef nonnull @.str.4) #13
  %4886 = load i32, ptr %1329, align 4, !tbaa !5
  %4887 = call ptr @strerror(i32 noundef %4886) #13
  %4888 = load i32, ptr %1329, align 4, !tbaa !5
  %4889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4880, ptr noundef nonnull %.str.5.sink4058, i32 noundef %4881, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 736, ptr noundef %4883, ptr noundef %4885, ptr noundef %4887, i32 noundef %4888) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4890:                                             ; preds = %4864
  %4891 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %85, ptr noundef nonnull %4840) #13
  call void @free(ptr noundef nonnull %4840) #13
  %4892 = load i32, ptr @test_count, align 4, !tbaa !5
  %4893 = add nsw i32 %4892, 1
  store i32 %4893, ptr @test_count, align 4, !tbaa !5
  %4894 = icmp eq i32 %4891, 0
  br i1 %4894, label %4917, label %4895

4895:                                             ; preds = %4890
  %4896 = load i32, ptr %1329, align 4, !tbaa !5
  %4897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4898 = call i32 @s2n_print_stacktrace(ptr noundef %4897) #13
  %4899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4900 = trunc nuw i8 %4899 to i1
  br i1 %4900, label %4901, label %4905

4901:                                             ; preds = %4895
  %4902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4903 = call i32 @fileno(ptr noundef %4902) #13
  %4904 = call i32 @isatty(i32 noundef %4903) #13
  %.not1998 = icmp eq i32 %4904, 0
  br i1 %.not1998, label %4905, label %4906

4905:                                             ; preds = %4901, %4895
  br label %4906

4906:                                             ; preds = %4901, %4905
  %.str.5.sink4067 = phi ptr [ @.str.5, %4905 ], [ @.str.2, %4901 ]
  store i32 %4896, ptr %1329, align 4, !tbaa !5
  %4907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4908 = load i32, ptr @test_count, align 4, !tbaa !5
  %4909 = load i32, ptr %1275, align 4, !tbaa !5
  %4910 = call ptr @s2n_strerror(i32 noundef %4909, ptr noundef nonnull @.str.4) #13
  %4911 = load i32, ptr %1275, align 4, !tbaa !5
  %4912 = call ptr @s2n_strerror_debug(i32 noundef %4911, ptr noundef nonnull @.str.4) #13
  %4913 = load i32, ptr %1329, align 4, !tbaa !5
  %4914 = call ptr @strerror(i32 noundef %4913) #13
  %4915 = load i32, ptr %1329, align 4, !tbaa !5
  %4916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4907, ptr noundef nonnull %.str.5.sink4067, i32 noundef %4908, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 739, ptr noundef %4910, ptr noundef %4912, ptr noundef %4914, i32 noundef %4915) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4917:                                             ; preds = %4890
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %86) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.62, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %87) #13
  %4918 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %87, ptr noundef nonnull %85, i8 noundef zeroext 1) #13
  %4919 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4920 = load i32, ptr @test_count, align 4, !tbaa !5
  %4921 = add nsw i32 %4920, 1
  store i32 %4921, ptr @test_count, align 4, !tbaa !5
  %4922 = icmp eq ptr %4919, null
  br i1 %4922, label %4923, label %4945

4923:                                             ; preds = %4917
  %4924 = load i32, ptr %1329, align 4, !tbaa !5
  %4925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4926 = call i32 @s2n_print_stacktrace(ptr noundef %4925) #13
  %4927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4928 = trunc nuw i8 %4927 to i1
  br i1 %4928, label %4929, label %4933

4929:                                             ; preds = %4923
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = call i32 @fileno(ptr noundef %4930) #13
  %4932 = call i32 @isatty(i32 noundef %4931) #13
  %.not2436 = icmp eq i32 %4932, 0
  br i1 %.not2436, label %4933, label %4934

4933:                                             ; preds = %4929, %4923
  br label %4934

4934:                                             ; preds = %4929, %4933
  %.str.5.sink4076 = phi ptr [ @.str.5, %4933 ], [ @.str.2, %4929 ]
  store i32 %4924, ptr %1329, align 4, !tbaa !5
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = load i32, ptr @test_count, align 4, !tbaa !5
  %4937 = load i32, ptr %1275, align 4, !tbaa !5
  %4938 = call ptr @s2n_strerror(i32 noundef %4937, ptr noundef nonnull @.str.4) #13
  %4939 = load i32, ptr %1275, align 4, !tbaa !5
  %4940 = call ptr @s2n_strerror_debug(i32 noundef %4939, ptr noundef nonnull @.str.4) #13
  %4941 = load i32, ptr %1329, align 4, !tbaa !5
  %4942 = call ptr @strerror(i32 noundef %4941) #13
  %4943 = load i32, ptr %1329, align 4, !tbaa !5
  %4944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4935, ptr noundef nonnull %.str.5.sink4076, i32 noundef %4936, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 751, ptr noundef %4938, ptr noundef %4940, ptr noundef %4942, i32 noundef %4943) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4945:                                             ; preds = %4917
  %4946 = add nsw i32 %4920, 2
  store i32 %4946, ptr @test_count, align 4, !tbaa !5
  %4947 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %4919, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %86) #13
  %4948 = icmp eq i32 %4947, -1
  br i1 %4948, label %4949, label %4971

4949:                                             ; preds = %4945
  %4950 = load i32, ptr %1329, align 4, !tbaa !5
  %4951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4952 = call i32 @s2n_print_stacktrace(ptr noundef %4951) #13
  %4953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4954 = trunc nuw i8 %4953 to i1
  br i1 %4954, label %4955, label %4959

4955:                                             ; preds = %4949
  %4956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4957 = call i32 @fileno(ptr noundef %4956) #13
  %4958 = call i32 @isatty(i32 noundef %4957) #13
  %.not2435 = icmp eq i32 %4958, 0
  br i1 %.not2435, label %4959, label %4960

4959:                                             ; preds = %4955, %4949
  br label %4960

4960:                                             ; preds = %4955, %4959
  %.str.5.sink4085 = phi ptr [ @.str.5, %4959 ], [ @.str.2, %4955 ]
  store i32 %4950, ptr %1329, align 4, !tbaa !5
  %4961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4962 = load i32, ptr @test_count, align 4, !tbaa !5
  %4963 = load i32, ptr %1275, align 4, !tbaa !5
  %4964 = call ptr @s2n_strerror(i32 noundef %4963, ptr noundef nonnull @.str.4) #13
  %4965 = load i32, ptr %1275, align 4, !tbaa !5
  %4966 = call ptr @s2n_strerror_debug(i32 noundef %4965, ptr noundef nonnull @.str.4) #13
  %4967 = load i32, ptr %1329, align 4, !tbaa !5
  %4968 = call ptr @strerror(i32 noundef %4967) #13
  %4969 = load i32, ptr %1329, align 4, !tbaa !5
  %4970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4961, ptr noundef nonnull %.str.5.sink4085, i32 noundef %4962, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 752, ptr noundef %4964, ptr noundef %4966, ptr noundef %4968, i32 noundef %4969) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4971:                                             ; preds = %4945
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %88) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %88, i8 0, i64 40, i1 false)
  %4972 = load i32, ptr @test_count, align 4, !tbaa !5
  %4973 = add nsw i32 %4972, 1
  store i32 %4973, ptr @test_count, align 4, !tbaa !5
  %4974 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %4919, ptr noundef nonnull @.str.11, ptr noundef nonnull %88) #13
  %4975 = call zeroext i1 @s2n_result_is_ok(i32 %4974)
  br i1 %4975, label %4998, label %4976

4976:                                             ; preds = %4971
  %4977 = load i32, ptr %1329, align 4, !tbaa !5
  %4978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4979 = call i32 @s2n_print_stacktrace(ptr noundef %4978) #13
  %4980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4981 = trunc nuw i8 %4980 to i1
  br i1 %4981, label %4982, label %4986

4982:                                             ; preds = %4976
  %4983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4984 = call i32 @fileno(ptr noundef %4983) #13
  %4985 = call i32 @isatty(i32 noundef %4984) #13
  %.not1999 = icmp eq i32 %4985, 0
  br i1 %.not1999, label %4986, label %4987

4986:                                             ; preds = %4982, %4976
  br label %4987

4987:                                             ; preds = %4982, %4986
  %.str.5.sink4094 = phi ptr [ @.str.5, %4986 ], [ @.str.2, %4982 ]
  store i32 %4977, ptr %1329, align 4, !tbaa !5
  %4988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4989 = load i32, ptr @test_count, align 4, !tbaa !5
  %4990 = load i32, ptr %1275, align 4, !tbaa !5
  %4991 = call ptr @s2n_strerror(i32 noundef %4990, ptr noundef nonnull @.str.4) #13
  %4992 = load i32, ptr %1275, align 4, !tbaa !5
  %4993 = call ptr @s2n_strerror_debug(i32 noundef %4992, ptr noundef nonnull @.str.4) #13
  %4994 = load i32, ptr %1329, align 4, !tbaa !5
  %4995 = call ptr @strerror(i32 noundef %4994) #13
  %4996 = load i32, ptr %1329, align 4, !tbaa !5
  %4997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4988, ptr noundef nonnull %.str.5.sink4094, i32 noundef %4989, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 755, ptr noundef %4991, ptr noundef %4993, ptr noundef %4995, i32 noundef %4996) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4998:                                             ; preds = %4971
  %4999 = getelementptr inbounds i8, ptr %88, i64 28
  %5000 = load i32, ptr %4999, align 4, !tbaa !15
  %5001 = getelementptr inbounds i8, ptr %88, i64 24
  %5002 = load i32, ptr %5001, align 8, !tbaa !18
  %5003 = sub i32 %5000, %5002
  %5004 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %88, i32 noundef %5003) #13
  %5005 = load i32, ptr @test_count, align 4, !tbaa !5
  %5006 = add nsw i32 %5005, 1
  store i32 %5006, ptr @test_count, align 4, !tbaa !5
  %5007 = icmp eq ptr %5004, null
  br i1 %5007, label %5008, label %5030

5008:                                             ; preds = %4998
  %5009 = load i32, ptr %1329, align 4, !tbaa !5
  %5010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5011 = call i32 @s2n_print_stacktrace(ptr noundef %5010) #13
  %5012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5013 = trunc nuw i8 %5012 to i1
  br i1 %5013, label %5014, label %5018

5014:                                             ; preds = %5008
  %5015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5016 = call i32 @fileno(ptr noundef %5015) #13
  %5017 = call i32 @isatty(i32 noundef %5016) #13
  %.not2434 = icmp eq i32 %5017, 0
  br i1 %.not2434, label %5018, label %5019

5018:                                             ; preds = %5014, %5008
  br label %5019

5019:                                             ; preds = %5014, %5018
  %.str.5.sink4103 = phi ptr [ @.str.5, %5018 ], [ @.str.2, %5014 ]
  store i32 %5009, ptr %1329, align 4, !tbaa !5
  %5020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5021 = load i32, ptr @test_count, align 4, !tbaa !5
  %5022 = load i32, ptr %1275, align 4, !tbaa !5
  %5023 = call ptr @s2n_strerror(i32 noundef %5022, ptr noundef nonnull @.str.4) #13
  %5024 = load i32, ptr %1275, align 4, !tbaa !5
  %5025 = call ptr @s2n_strerror_debug(i32 noundef %5024, ptr noundef nonnull @.str.4) #13
  %5026 = load i32, ptr %1329, align 4, !tbaa !5
  %5027 = call ptr @strerror(i32 noundef %5026) #13
  %5028 = load i32, ptr %1329, align 4, !tbaa !5
  %5029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5020, ptr noundef nonnull %.str.5.sink4103, i32 noundef %5021, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 758, ptr noundef %5023, ptr noundef %5025, ptr noundef %5027, i32 noundef %5028) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5030:                                             ; preds = %4998
  %5031 = add nsw i32 %5005, 2
  store i32 %5031, ptr @test_count, align 4, !tbaa !5
  %5032 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4919, ptr noundef nonnull @.str.23) #13
  %5033 = icmp eq i32 %5032, -1
  br i1 %5033, label %5034, label %5056

5034:                                             ; preds = %5030
  %5035 = load i32, ptr %1329, align 4, !tbaa !5
  %5036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5037 = call i32 @s2n_print_stacktrace(ptr noundef %5036) #13
  %5038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5039 = trunc nuw i8 %5038 to i1
  br i1 %5039, label %5040, label %5044

5040:                                             ; preds = %5034
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = call i32 @fileno(ptr noundef %5041) #13
  %5043 = call i32 @isatty(i32 noundef %5042) #13
  %.not2433 = icmp eq i32 %5043, 0
  br i1 %.not2433, label %5044, label %5045

5044:                                             ; preds = %5040, %5034
  br label %5045

5045:                                             ; preds = %5040, %5044
  %.str.5.sink4112 = phi ptr [ @.str.5, %5044 ], [ @.str.2, %5040 ]
  store i32 %5035, ptr %1329, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = load i32, ptr %1275, align 4, !tbaa !5
  %5049 = call ptr @s2n_strerror(i32 noundef %5048, ptr noundef nonnull @.str.4) #13
  %5050 = load i32, ptr %1275, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror_debug(i32 noundef %5050, ptr noundef nonnull @.str.4) #13
  %5052 = load i32, ptr %1329, align 4, !tbaa !5
  %5053 = call ptr @strerror(i32 noundef %5052) #13
  %5054 = load i32, ptr %1329, align 4, !tbaa !5
  %5055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5046, ptr noundef nonnull %.str.5.sink4112, i32 noundef %5047, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 760, ptr noundef %5049, ptr noundef %5051, ptr noundef %5053, i32 noundef %5054) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5056:                                             ; preds = %5030
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %89) #13
  %5057 = load i32, ptr @test_count, align 4, !tbaa !5
  %5058 = add nsw i32 %5057, 1
  store i32 %5058, ptr @test_count, align 4, !tbaa !5
  %5059 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %89) #13
  %5060 = icmp eq i32 %5059, -1
  br i1 %5060, label %5061, label %5083

5061:                                             ; preds = %5056
  %5062 = load i32, ptr %1329, align 4, !tbaa !5
  %5063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5064 = call i32 @s2n_print_stacktrace(ptr noundef %5063) #13
  %5065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5066 = trunc nuw i8 %5065 to i1
  br i1 %5066, label %5067, label %5071

5067:                                             ; preds = %5061
  %5068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5069 = call i32 @fileno(ptr noundef %5068) #13
  %5070 = call i32 @isatty(i32 noundef %5069) #13
  %.not2432 = icmp eq i32 %5070, 0
  br i1 %.not2432, label %5071, label %5072

5071:                                             ; preds = %5067, %5061
  br label %5072

5072:                                             ; preds = %5067, %5071
  %.str.5.sink4121 = phi ptr [ @.str.5, %5071 ], [ @.str.2, %5067 ]
  store i32 %5062, ptr %1329, align 4, !tbaa !5
  %5073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5074 = load i32, ptr @test_count, align 4, !tbaa !5
  %5075 = load i32, ptr %1275, align 4, !tbaa !5
  %5076 = call ptr @s2n_strerror(i32 noundef %5075, ptr noundef nonnull @.str.4) #13
  %5077 = load i32, ptr %1275, align 4, !tbaa !5
  %5078 = call ptr @s2n_strerror_debug(i32 noundef %5077, ptr noundef nonnull @.str.4) #13
  %5079 = load i32, ptr %1329, align 4, !tbaa !5
  %5080 = call ptr @strerror(i32 noundef %5079) #13
  %5081 = load i32, ptr %1329, align 4, !tbaa !5
  %5082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5073, ptr noundef nonnull %.str.5.sink4121, i32 noundef %5074, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 763, ptr noundef %5076, ptr noundef %5078, ptr noundef %5080, i32 noundef %5081) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5083:                                             ; preds = %5056
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %90) #13
  store i32 -1, ptr %90, align 4, !tbaa !5
  %5084 = load i32, ptr @test_count, align 4, !tbaa !5
  %5085 = add nsw i32 %5084, 1
  store i32 %5085, ptr @test_count, align 4, !tbaa !5
  %5086 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %87, ptr noundef nonnull %4919, ptr noundef nonnull %5004, i32 noundef %5003, ptr noundef nonnull %90, ptr noundef nonnull %89) #13
  %5087 = call zeroext i1 @s2n_result_is_ok(i32 %5086)
  br i1 %5087, label %5110, label %5088

5088:                                             ; preds = %5083
  %5089 = load i32, ptr %1329, align 4, !tbaa !5
  %5090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5091 = call i32 @s2n_print_stacktrace(ptr noundef %5090) #13
  %5092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5093 = trunc nuw i8 %5092 to i1
  br i1 %5093, label %5094, label %5098

5094:                                             ; preds = %5088
  %5095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5096 = call i32 @fileno(ptr noundef %5095) #13
  %5097 = call i32 @isatty(i32 noundef %5096) #13
  %.not2000 = icmp eq i32 %5097, 0
  br i1 %.not2000, label %5098, label %5099

5098:                                             ; preds = %5094, %5088
  br label %5099

5099:                                             ; preds = %5094, %5098
  %.str.5.sink4130 = phi ptr [ @.str.5, %5098 ], [ @.str.2, %5094 ]
  store i32 %5089, ptr %1329, align 4, !tbaa !5
  %5100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5101 = load i32, ptr @test_count, align 4, !tbaa !5
  %5102 = load i32, ptr %1275, align 4, !tbaa !5
  %5103 = call ptr @s2n_strerror(i32 noundef %5102, ptr noundef nonnull @.str.4) #13
  %5104 = load i32, ptr %1275, align 4, !tbaa !5
  %5105 = call ptr @s2n_strerror_debug(i32 noundef %5104, ptr noundef nonnull @.str.4) #13
  %5106 = load i32, ptr %1329, align 4, !tbaa !5
  %5107 = call ptr @strerror(i32 noundef %5106) #13
  %5108 = load i32, ptr %1329, align 4, !tbaa !5
  %5109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5100, ptr noundef nonnull %.str.5.sink4130, i32 noundef %5101, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 765, ptr noundef %5103, ptr noundef %5105, ptr noundef %5107, i32 noundef %5108) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5110:                                             ; preds = %5083
  %5111 = load i32, ptr @test_count, align 4, !tbaa !5
  %5112 = add nsw i32 %5111, 1
  store i32 %5112, ptr @test_count, align 4, !tbaa !5
  %5113 = getelementptr inbounds i8, ptr %86, i64 9
  %5114 = load i8, ptr %5113, align 1, !tbaa !19
  %5115 = icmp eq i8 %5114, 1
  br i1 %5115, label %5138, label %5116

5116:                                             ; preds = %5110
  %5117 = load i32, ptr %1329, align 4, !tbaa !5
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = call i32 @s2n_print_stacktrace(ptr noundef %5118) #13
  %5120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5121 = trunc nuw i8 %5120 to i1
  br i1 %5121, label %5122, label %5126

5122:                                             ; preds = %5116
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = call i32 @fileno(ptr noundef %5123) #13
  %5125 = call i32 @isatty(i32 noundef %5124) #13
  %.not2001 = icmp eq i32 %5125, 0
  br i1 %.not2001, label %5126, label %5127

5126:                                             ; preds = %5122, %5116
  br label %5127

5127:                                             ; preds = %5122, %5126
  %.str.5.sink4139 = phi ptr [ @.str.5, %5126 ], [ @.str.2, %5122 ]
  store i32 %5117, ptr %1329, align 4, !tbaa !5
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = load i32, ptr @test_count, align 4, !tbaa !5
  %5130 = load i32, ptr %1275, align 4, !tbaa !5
  %5131 = call ptr @s2n_strerror(i32 noundef %5130, ptr noundef nonnull @.str.4) #13
  %5132 = load i32, ptr %1275, align 4, !tbaa !5
  %5133 = call ptr @s2n_strerror_debug(i32 noundef %5132, ptr noundef nonnull @.str.4) #13
  %5134 = load i32, ptr %1329, align 4, !tbaa !5
  %5135 = call ptr @strerror(i32 noundef %5134) #13
  %5136 = load i32, ptr %1329, align 4, !tbaa !5
  %5137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5128, ptr noundef nonnull %.str.5.sink4139, i32 noundef %5129, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 767, ptr noundef %5131, ptr noundef %5133, ptr noundef %5135, i32 noundef %5136) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5138:                                             ; preds = %5110
  %5139 = add nsw i32 %5111, 2
  store i32 %5139, ptr @test_count, align 4, !tbaa !5
  %5140 = load i32, ptr %90, align 4, !tbaa !5
  %5141 = icmp eq i32 %5140, 0
  br i1 %5141, label %5164, label %5142

5142:                                             ; preds = %5138
  %5143 = load i32, ptr %1329, align 4, !tbaa !5
  %5144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5145 = call i32 @s2n_print_stacktrace(ptr noundef %5144) #13
  %5146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5147 = trunc nuw i8 %5146 to i1
  br i1 %5147, label %5148, label %5152

5148:                                             ; preds = %5142
  %5149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5150 = call i32 @fileno(ptr noundef %5149) #13
  %5151 = call i32 @isatty(i32 noundef %5150) #13
  %.not2002 = icmp eq i32 %5151, 0
  br i1 %.not2002, label %5152, label %5153

5152:                                             ; preds = %5148, %5142
  br label %5153

5153:                                             ; preds = %5148, %5152
  %.str.5.sink4148 = phi ptr [ @.str.5, %5152 ], [ @.str.2, %5148 ]
  store i32 %5143, ptr %1329, align 4, !tbaa !5
  %5154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5155 = load i32, ptr @test_count, align 4, !tbaa !5
  %5156 = load i32, ptr %1275, align 4, !tbaa !5
  %5157 = call ptr @s2n_strerror(i32 noundef %5156, ptr noundef nonnull @.str.4) #13
  %5158 = load i32, ptr %1275, align 4, !tbaa !5
  %5159 = call ptr @s2n_strerror_debug(i32 noundef %5158, ptr noundef nonnull @.str.4) #13
  %5160 = load i32, ptr %1329, align 4, !tbaa !5
  %5161 = call ptr @strerror(i32 noundef %5160) #13
  %5162 = load i32, ptr %1329, align 4, !tbaa !5
  %5163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5154, ptr noundef nonnull %.str.5.sink4148, i32 noundef %5155, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 768, ptr noundef %5157, ptr noundef %5159, ptr noundef %5161, i32 noundef %5162) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5164:                                             ; preds = %5138
  %5165 = call i32 @s2n_pkey_free(ptr noundef nonnull %89) #13
  %5166 = call i32 @s2n_connection_free(ptr noundef nonnull %4919) #13
  %5167 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %87) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %85) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %90) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %89) #13
  %5168 = call i32 @s2n_stuffer_free(ptr noundef nonnull %88) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %88) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %87) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %85) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %91) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %91) #13
  %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 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %91, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %5172 = icmp eq i32 %5171, -1
  br i1 %5172, label %5173, label %5195

5173:                                             ; preds = %5164
  %5174 = load i32, ptr %1329, align 4, !tbaa !5
  %5175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5176 = call i32 @s2n_print_stacktrace(ptr noundef %5175) #13
  %5177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5178 = trunc nuw i8 %5177 to i1
  br i1 %5178, label %5179, label %5183

5179:                                             ; preds = %5173
  %5180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5181 = call i32 @fileno(ptr noundef %5180) #13
  %5182 = call i32 @isatty(i32 noundef %5181) #13
  %.not2431 = icmp eq i32 %5182, 0
  br i1 %.not2431, label %5183, label %5184

5183:                                             ; preds = %5179, %5173
  br label %5184

5184:                                             ; preds = %5179, %5183
  %.str.5.sink4157 = phi ptr [ @.str.5, %5183 ], [ @.str.2, %5179 ]
  store i32 %5174, ptr %1329, align 4, !tbaa !5
  %5185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5186 = load i32, ptr @test_count, align 4, !tbaa !5
  %5187 = load i32, ptr %1275, align 4, !tbaa !5
  %5188 = call ptr @s2n_strerror(i32 noundef %5187, ptr noundef nonnull @.str.4) #13
  %5189 = load i32, ptr %1275, align 4, !tbaa !5
  %5190 = call ptr @s2n_strerror_debug(i32 noundef %5189, ptr noundef nonnull @.str.4) #13
  %5191 = load i32, ptr %1329, align 4, !tbaa !5
  %5192 = call ptr @strerror(i32 noundef %5191) #13
  %5193 = load i32, ptr %1329, align 4, !tbaa !5
  %5194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5185, ptr noundef nonnull %.str.5.sink4157, i32 noundef %5186, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 782, ptr noundef %5188, ptr noundef %5190, ptr noundef %5192, i32 noundef %5193) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5195:                                             ; preds = %5164
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %92) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.63, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %93) #13
  %5196 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %93, ptr noundef nonnull %91, i8 noundef zeroext 1) #13
  %5197 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %5198 = load i32, ptr @test_count, align 4, !tbaa !5
  %5199 = add nsw i32 %5198, 1
  store i32 %5199, ptr @test_count, align 4, !tbaa !5
  %5200 = icmp eq ptr %5197, null
  br i1 %5200, label %5201, label %5223

5201:                                             ; preds = %5195
  %5202 = load i32, ptr %1329, align 4, !tbaa !5
  %5203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5204 = call i32 @s2n_print_stacktrace(ptr noundef %5203) #13
  %5205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5206 = trunc nuw i8 %5205 to i1
  br i1 %5206, label %5207, label %5211

5207:                                             ; preds = %5201
  %5208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5209 = call i32 @fileno(ptr noundef %5208) #13
  %5210 = call i32 @isatty(i32 noundef %5209) #13
  %.not2430 = icmp eq i32 %5210, 0
  br i1 %.not2430, label %5211, label %5212

5211:                                             ; preds = %5207, %5201
  br label %5212

5212:                                             ; preds = %5207, %5211
  %.str.5.sink4166 = phi ptr [ @.str.5, %5211 ], [ @.str.2, %5207 ]
  store i32 %5202, ptr %1329, align 4, !tbaa !5
  %5213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5214 = load i32, ptr @test_count, align 4, !tbaa !5
  %5215 = load i32, ptr %1275, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror(i32 noundef %5215, ptr noundef nonnull @.str.4) #13
  %5217 = load i32, ptr %1275, align 4, !tbaa !5
  %5218 = call ptr @s2n_strerror_debug(i32 noundef %5217, ptr noundef nonnull @.str.4) #13
  %5219 = load i32, ptr %1329, align 4, !tbaa !5
  %5220 = call ptr @strerror(i32 noundef %5219) #13
  %5221 = load i32, ptr %1329, align 4, !tbaa !5
  %5222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5213, ptr noundef nonnull %.str.5.sink4166, i32 noundef %5214, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 793, ptr noundef %5216, ptr noundef %5218, ptr noundef %5220, i32 noundef %5221) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5223:                                             ; preds = %5195
  %5224 = add nsw i32 %5198, 2
  store i32 %5224, ptr @test_count, align 4, !tbaa !5
  %5225 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %5197, ptr noundef nonnull @verify_host_verify_alt, ptr noundef nonnull %92) #13
  %5226 = icmp eq i32 %5225, -1
  br i1 %5226, label %5227, label %5249

5227:                                             ; preds = %5223
  %5228 = load i32, ptr %1329, align 4, !tbaa !5
  %5229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5230 = call i32 @s2n_print_stacktrace(ptr noundef %5229) #13
  %5231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5232 = trunc nuw i8 %5231 to i1
  br i1 %5232, label %5233, label %5237

5233:                                             ; preds = %5227
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = call i32 @fileno(ptr noundef %5234) #13
  %5236 = call i32 @isatty(i32 noundef %5235) #13
  %.not2429 = icmp eq i32 %5236, 0
  br i1 %.not2429, label %5237, label %5238

5237:                                             ; preds = %5233, %5227
  br label %5238

5238:                                             ; preds = %5233, %5237
  %.str.5.sink4175 = phi ptr [ @.str.5, %5237 ], [ @.str.2, %5233 ]
  store i32 %5228, ptr %1329, align 4, !tbaa !5
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = load i32, ptr @test_count, align 4, !tbaa !5
  %5241 = load i32, ptr %1275, align 4, !tbaa !5
  %5242 = call ptr @s2n_strerror(i32 noundef %5241, ptr noundef nonnull @.str.4) #13
  %5243 = load i32, ptr %1275, align 4, !tbaa !5
  %5244 = call ptr @s2n_strerror_debug(i32 noundef %5243, ptr noundef nonnull @.str.4) #13
  %5245 = load i32, ptr %1329, align 4, !tbaa !5
  %5246 = call ptr @strerror(i32 noundef %5245) #13
  %5247 = load i32, ptr %1329, align 4, !tbaa !5
  %5248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5239, ptr noundef nonnull %.str.5.sink4175, i32 noundef %5240, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 794, ptr noundef %5242, ptr noundef %5244, ptr noundef %5246, i32 noundef %5247) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5249:                                             ; preds = %5223
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %94) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %94, i8 0, i64 40, i1 false)
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = add nsw i32 %5250, 1
  store i32 %5251, ptr @test_count, align 4, !tbaa !5
  %5252 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %5197, ptr noundef nonnull @.str.64, ptr noundef nonnull %94) #13
  %5253 = call zeroext i1 @s2n_result_is_ok(i32 %5252)
  br i1 %5253, label %5276, label %5254

5254:                                             ; preds = %5249
  %5255 = load i32, ptr %1329, align 4, !tbaa !5
  %5256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5257 = call i32 @s2n_print_stacktrace(ptr noundef %5256) #13
  %5258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5259 = trunc nuw i8 %5258 to i1
  br i1 %5259, label %5260, label %5264

5260:                                             ; preds = %5254
  %5261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5262 = call i32 @fileno(ptr noundef %5261) #13
  %5263 = call i32 @isatty(i32 noundef %5262) #13
  %.not2003 = icmp eq i32 %5263, 0
  br i1 %.not2003, label %5264, label %5265

5264:                                             ; preds = %5260, %5254
  br label %5265

5265:                                             ; preds = %5260, %5264
  %.str.5.sink4184 = phi ptr [ @.str.5, %5264 ], [ @.str.2, %5260 ]
  store i32 %5255, ptr %1329, align 4, !tbaa !5
  %5266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5267 = load i32, ptr @test_count, align 4, !tbaa !5
  %5268 = load i32, ptr %1275, align 4, !tbaa !5
  %5269 = call ptr @s2n_strerror(i32 noundef %5268, ptr noundef nonnull @.str.4) #13
  %5270 = load i32, ptr %1275, align 4, !tbaa !5
  %5271 = call ptr @s2n_strerror_debug(i32 noundef %5270, ptr noundef nonnull @.str.4) #13
  %5272 = load i32, ptr %1329, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #13
  %5274 = load i32, ptr %1329, align 4, !tbaa !5
  %5275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5266, ptr noundef nonnull %.str.5.sink4184, i32 noundef %5267, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 797, ptr noundef %5269, ptr noundef %5271, ptr noundef %5273, i32 noundef %5274) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5276:                                             ; preds = %5249
  %5277 = getelementptr inbounds i8, ptr %94, i64 28
  %5278 = load i32, ptr %5277, align 4, !tbaa !15
  %5279 = getelementptr inbounds i8, ptr %94, i64 24
  %5280 = load i32, ptr %5279, align 8, !tbaa !18
  %5281 = sub i32 %5278, %5280
  %5282 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %94, i32 noundef %5281) #13
  %5283 = load i32, ptr @test_count, align 4, !tbaa !5
  %5284 = add nsw i32 %5283, 1
  store i32 %5284, ptr @test_count, align 4, !tbaa !5
  %5285 = icmp eq ptr %5282, null
  br i1 %5285, label %5286, label %5308

5286:                                             ; preds = %5276
  %5287 = load i32, ptr %1329, align 4, !tbaa !5
  %5288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5289 = call i32 @s2n_print_stacktrace(ptr noundef %5288) #13
  %5290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5291 = trunc nuw i8 %5290 to i1
  br i1 %5291, label %5292, label %5296

5292:                                             ; preds = %5286
  %5293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5294 = call i32 @fileno(ptr noundef %5293) #13
  %5295 = call i32 @isatty(i32 noundef %5294) #13
  %.not2428 = icmp eq i32 %5295, 0
  br i1 %.not2428, label %5296, label %5297

5296:                                             ; preds = %5292, %5286
  br label %5297

5297:                                             ; preds = %5292, %5296
  %.str.5.sink4193 = phi ptr [ @.str.5, %5296 ], [ @.str.2, %5292 ]
  store i32 %5287, ptr %1329, align 4, !tbaa !5
  %5298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5299 = load i32, ptr @test_count, align 4, !tbaa !5
  %5300 = load i32, ptr %1275, align 4, !tbaa !5
  %5301 = call ptr @s2n_strerror(i32 noundef %5300, ptr noundef nonnull @.str.4) #13
  %5302 = load i32, ptr %1275, align 4, !tbaa !5
  %5303 = call ptr @s2n_strerror_debug(i32 noundef %5302, ptr noundef nonnull @.str.4) #13
  %5304 = load i32, ptr %1329, align 4, !tbaa !5
  %5305 = call ptr @strerror(i32 noundef %5304) #13
  %5306 = load i32, ptr %1329, align 4, !tbaa !5
  %5307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5298, ptr noundef nonnull %.str.5.sink4193, i32 noundef %5299, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 800, ptr noundef %5301, ptr noundef %5303, ptr noundef %5305, i32 noundef %5306) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5308:                                             ; preds = %5276
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %95) #13
  %5309 = add nsw i32 %5283, 2
  store i32 %5309, ptr @test_count, align 4, !tbaa !5
  %5310 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %95) #13
  %5311 = icmp eq i32 %5310, -1
  br i1 %5311, label %5312, label %5334

5312:                                             ; preds = %5308
  %5313 = load i32, ptr %1329, align 4, !tbaa !5
  %5314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5315 = call i32 @s2n_print_stacktrace(ptr noundef %5314) #13
  %5316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5317 = trunc nuw i8 %5316 to i1
  br i1 %5317, label %5318, label %5322

5318:                                             ; preds = %5312
  %5319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5320 = call i32 @fileno(ptr noundef %5319) #13
  %5321 = call i32 @isatty(i32 noundef %5320) #13
  %.not2427 = icmp eq i32 %5321, 0
  br i1 %.not2427, label %5322, label %5323

5322:                                             ; preds = %5318, %5312
  br label %5323

5323:                                             ; preds = %5318, %5322
  %.str.5.sink4202 = phi ptr [ @.str.5, %5322 ], [ @.str.2, %5318 ]
  store i32 %5313, ptr %1329, align 4, !tbaa !5
  %5324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5325 = load i32, ptr @test_count, align 4, !tbaa !5
  %5326 = load i32, ptr %1275, align 4, !tbaa !5
  %5327 = call ptr @s2n_strerror(i32 noundef %5326, ptr noundef nonnull @.str.4) #13
  %5328 = load i32, ptr %1275, align 4, !tbaa !5
  %5329 = call ptr @s2n_strerror_debug(i32 noundef %5328, ptr noundef nonnull @.str.4) #13
  %5330 = load i32, ptr %1329, align 4, !tbaa !5
  %5331 = call ptr @strerror(i32 noundef %5330) #13
  %5332 = load i32, ptr %1329, align 4, !tbaa !5
  %5333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5324, ptr noundef nonnull %.str.5.sink4202, i32 noundef %5325, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 803, ptr noundef %5327, ptr noundef %5329, ptr noundef %5331, i32 noundef %5332) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5334:                                             ; preds = %5308
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %96) #13
  store i32 -1, ptr %96, align 4, !tbaa !5
  %5335 = load i32, ptr @test_count, align 4, !tbaa !5
  %5336 = add nsw i32 %5335, 1
  store i32 %5336, ptr @test_count, align 4, !tbaa !5
  %5337 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %93, ptr noundef nonnull %5197, ptr noundef nonnull %5282, i32 noundef %5281, ptr noundef nonnull %96, ptr noundef nonnull %95) #13
  %5338 = call zeroext i1 @s2n_result_is_error(i32 %5337)
  br i1 %5338, label %5361, label %5339

5339:                                             ; preds = %5334
  %5340 = load i32, ptr %1329, align 4, !tbaa !5
  %5341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5342 = call i32 @s2n_print_stacktrace(ptr noundef %5341) #13
  %5343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5344 = trunc nuw i8 %5343 to i1
  br i1 %5344, label %5345, label %5349

5345:                                             ; preds = %5339
  %5346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5347 = call i32 @fileno(ptr noundef %5346) #13
  %5348 = call i32 @isatty(i32 noundef %5347) #13
  %.not2004 = icmp eq i32 %5348, 0
  br i1 %.not2004, label %5349, label %5350

5349:                                             ; preds = %5345, %5339
  br label %5350

5350:                                             ; preds = %5345, %5349
  %.str.5.sink4211 = phi ptr [ @.str.5, %5349 ], [ @.str.2, %5345 ]
  store i32 %5340, ptr %1329, align 4, !tbaa !5
  %5351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5352 = load i32, ptr @test_count, align 4, !tbaa !5
  %5353 = load i32, ptr %1275, align 4, !tbaa !5
  %5354 = call ptr @s2n_strerror(i32 noundef %5353, ptr noundef nonnull @.str.4) #13
  %5355 = load i32, ptr %1275, align 4, !tbaa !5
  %5356 = call ptr @s2n_strerror_debug(i32 noundef %5355, ptr noundef nonnull @.str.4) #13
  %5357 = load i32, ptr %1329, align 4, !tbaa !5
  %5358 = call ptr @strerror(i32 noundef %5357) #13
  %5359 = load i32, ptr %1329, align 4, !tbaa !5
  %5360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5351, ptr noundef nonnull %.str.5.sink4211, i32 noundef %5352, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 807, ptr noundef %5354, ptr noundef %5356, ptr noundef %5358, i32 noundef %5359) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5361:                                             ; preds = %5334
  %5362 = load i32, ptr @test_count, align 4, !tbaa !5
  %5363 = add nsw i32 %5362, 1
  store i32 %5363, ptr @test_count, align 4, !tbaa !5
  %5364 = load i32, ptr %1275, align 4, !tbaa !5
  %5365 = icmp eq i32 %5364, 335544366
  br i1 %5365, label %5388, label %5366

5366:                                             ; preds = %5361
  %5367 = load i32, ptr %1329, align 4, !tbaa !5
  %5368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5369 = call i32 @s2n_print_stacktrace(ptr noundef %5368) #13
  %5370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5371 = trunc nuw i8 %5370 to i1
  br i1 %5371, label %5372, label %5376

5372:                                             ; preds = %5366
  %5373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5374 = call i32 @fileno(ptr noundef %5373) #13
  %5375 = call i32 @isatty(i32 noundef %5374) #13
  %.not2005 = icmp eq i32 %5375, 0
  br i1 %.not2005, label %5376, label %5377

5376:                                             ; preds = %5372, %5366
  br label %5377

5377:                                             ; preds = %5372, %5376
  %.str.5.sink4220 = phi ptr [ @.str.5, %5376 ], [ @.str.2, %5372 ]
  store i32 %5367, ptr %1329, align 4, !tbaa !5
  %5378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5379 = load i32, ptr @test_count, align 4, !tbaa !5
  %5380 = load i32, ptr %1275, align 4, !tbaa !5
  %5381 = call ptr @s2n_strerror(i32 noundef %5380, ptr noundef nonnull @.str.4) #13
  %5382 = load i32, ptr %1275, align 4, !tbaa !5
  %5383 = call ptr @s2n_strerror_debug(i32 noundef %5382, ptr noundef nonnull @.str.4) #13
  %5384 = load i32, ptr %1329, align 4, !tbaa !5
  %5385 = call ptr @strerror(i32 noundef %5384) #13
  %5386 = load i32, ptr %1329, align 4, !tbaa !5
  %5387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5378, ptr noundef nonnull %.str.5.sink4220, i32 noundef %5379, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 807, ptr noundef %5381, ptr noundef %5383, ptr noundef %5385, i32 noundef %5386) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5388:                                             ; preds = %5361
  %5389 = add nsw i32 %5362, 2
  store i32 %5389, ptr @test_count, align 4, !tbaa !5
  %5390 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %5391 = icmp eq ptr %5390, null
  br i1 %5391, label %5392, label %5414

5392:                                             ; preds = %5388
  %5393 = load i32, ptr %1329, align 4, !tbaa !5
  %5394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5395 = call i32 @s2n_print_stacktrace(ptr noundef %5394) #13
  %5396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5397 = trunc nuw i8 %5396 to i1
  br i1 %5397, label %5398, label %5402

5398:                                             ; preds = %5392
  %5399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5400 = call i32 @fileno(ptr noundef %5399) #13
  %5401 = call i32 @isatty(i32 noundef %5400) #13
  %.not2426 = icmp eq i32 %5401, 0
  br i1 %.not2426, label %5402, label %5403

5402:                                             ; preds = %5398, %5392
  br label %5403

5403:                                             ; preds = %5398, %5402
  %.str.5.sink4229 = phi ptr [ @.str.5, %5402 ], [ @.str.2, %5398 ]
  store i32 %5393, ptr %1329, align 4, !tbaa !5
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = load i32, ptr @test_count, align 4, !tbaa !5
  %5406 = load i32, ptr %1275, align 4, !tbaa !5
  %5407 = call ptr @s2n_strerror(i32 noundef %5406, ptr noundef nonnull @.str.4) #13
  %5408 = load i32, ptr %1275, align 4, !tbaa !5
  %5409 = call ptr @s2n_strerror_debug(i32 noundef %5408, ptr noundef nonnull @.str.4) #13
  %5410 = load i32, ptr %1329, align 4, !tbaa !5
  %5411 = call ptr @strerror(i32 noundef %5410) #13
  %5412 = load i32, ptr %1329, align 4, !tbaa !5
  %5413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5404, ptr noundef nonnull %.str.5.sink4229, i32 noundef %5405, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 807, ptr noundef %5407, ptr noundef %5409, ptr noundef %5411, i32 noundef %5412) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5414:                                             ; preds = %5388
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %5415 = load i32, ptr @test_count, align 4, !tbaa !5
  %5416 = add nsw i32 %5415, 1
  store i32 %5416, ptr @test_count, align 4, !tbaa !5
  %5417 = getelementptr inbounds i8, ptr %92, i64 8
  %5418 = load i8, ptr %5417, align 8, !tbaa !21
  %5419 = icmp eq i8 %5418, 1
  br i1 %5419, label %5442, label %5420

5420:                                             ; preds = %5414
  %5421 = load i32, ptr %1329, align 4, !tbaa !5
  %5422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5423 = call i32 @s2n_print_stacktrace(ptr noundef %5422) #13
  %5424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5425 = trunc nuw i8 %5424 to i1
  br i1 %5425, label %5426, label %5430

5426:                                             ; preds = %5420
  %5427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5428 = call i32 @fileno(ptr noundef %5427) #13
  %5429 = call i32 @isatty(i32 noundef %5428) #13
  %.not2006 = icmp eq i32 %5429, 0
  br i1 %.not2006, label %5430, label %5431

5430:                                             ; preds = %5426, %5420
  br label %5431

5431:                                             ; preds = %5426, %5430
  %.str.5.sink4238 = phi ptr [ @.str.5, %5430 ], [ @.str.2, %5426 ]
  store i32 %5421, ptr %1329, align 4, !tbaa !5
  %5432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5433 = load i32, ptr @test_count, align 4, !tbaa !5
  %5434 = load i32, ptr %1275, align 4, !tbaa !5
  %5435 = call ptr @s2n_strerror(i32 noundef %5434, ptr noundef nonnull @.str.4) #13
  %5436 = load i32, ptr %1275, align 4, !tbaa !5
  %5437 = call ptr @s2n_strerror_debug(i32 noundef %5436, ptr noundef nonnull @.str.4) #13
  %5438 = load i32, ptr %1329, align 4, !tbaa !5
  %5439 = call ptr @strerror(i32 noundef %5438) #13
  %5440 = load i32, ptr %1329, align 4, !tbaa !5
  %5441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5432, ptr noundef nonnull %.str.5.sink4238, i32 noundef %5433, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 809, ptr noundef %5435, ptr noundef %5437, ptr noundef %5439, i32 noundef %5440) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5442:                                             ; preds = %5414
  %5443 = add nsw i32 %5415, 2
  store i32 %5443, ptr @test_count, align 4, !tbaa !5
  %5444 = getelementptr inbounds i8, ptr %92, i64 9
  %5445 = load i8, ptr %5444, align 1, !tbaa !19
  %5446 = icmp eq i8 %5445, 1
  br i1 %5446, label %5469, label %5447

5447:                                             ; preds = %5442
  %5448 = load i32, ptr %1329, align 4, !tbaa !5
  %5449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5450 = call i32 @s2n_print_stacktrace(ptr noundef %5449) #13
  %5451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5452 = trunc nuw i8 %5451 to i1
  br i1 %5452, label %5453, label %5457

5453:                                             ; preds = %5447
  %5454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5455 = call i32 @fileno(ptr noundef %5454) #13
  %5456 = call i32 @isatty(i32 noundef %5455) #13
  %.not2007 = icmp eq i32 %5456, 0
  br i1 %.not2007, label %5457, label %5458

5457:                                             ; preds = %5453, %5447
  br label %5458

5458:                                             ; preds = %5453, %5457
  %.str.5.sink4247 = phi ptr [ @.str.5, %5457 ], [ @.str.2, %5453 ]
  store i32 %5448, ptr %1329, align 4, !tbaa !5
  %5459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5460 = load i32, ptr @test_count, align 4, !tbaa !5
  %5461 = load i32, ptr %1275, align 4, !tbaa !5
  %5462 = call ptr @s2n_strerror(i32 noundef %5461, ptr noundef nonnull @.str.4) #13
  %5463 = load i32, ptr %1275, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror_debug(i32 noundef %5463, ptr noundef nonnull @.str.4) #13
  %5465 = load i32, ptr %1329, align 4, !tbaa !5
  %5466 = call ptr @strerror(i32 noundef %5465) #13
  %5467 = load i32, ptr %1329, align 4, !tbaa !5
  %5468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5459, ptr noundef nonnull %.str.5.sink4247, i32 noundef %5460, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 810, ptr noundef %5462, ptr noundef %5464, ptr noundef %5466, i32 noundef %5467) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5469:                                             ; preds = %5442
  %5470 = add nsw i32 %5415, 3
  store i32 %5470, ptr @test_count, align 4, !tbaa !5
  %5471 = load i32, ptr %96, align 4, !tbaa !5
  %5472 = icmp eq i32 %5471, -1
  br i1 %5472, label %5495, label %5473

5473:                                             ; preds = %5469
  %5474 = load i32, ptr %1329, align 4, !tbaa !5
  %5475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5476 = call i32 @s2n_print_stacktrace(ptr noundef %5475) #13
  %5477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5478 = trunc nuw i8 %5477 to i1
  br i1 %5478, label %5479, label %5483

5479:                                             ; preds = %5473
  %5480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5481 = call i32 @fileno(ptr noundef %5480) #13
  %5482 = call i32 @isatty(i32 noundef %5481) #13
  %.not2008 = icmp eq i32 %5482, 0
  br i1 %.not2008, label %5483, label %5484

5483:                                             ; preds = %5479, %5473
  br label %5484

5484:                                             ; preds = %5479, %5483
  %.str.5.sink4256 = phi ptr [ @.str.5, %5483 ], [ @.str.2, %5479 ]
  store i32 %5474, ptr %1329, align 4, !tbaa !5
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = load i32, ptr @test_count, align 4, !tbaa !5
  %5487 = load i32, ptr %1275, align 4, !tbaa !5
  %5488 = call ptr @s2n_strerror(i32 noundef %5487, ptr noundef nonnull @.str.4) #13
  %5489 = load i32, ptr %1275, align 4, !tbaa !5
  %5490 = call ptr @s2n_strerror_debug(i32 noundef %5489, ptr noundef nonnull @.str.4) #13
  %5491 = load i32, ptr %1329, align 4, !tbaa !5
  %5492 = call ptr @strerror(i32 noundef %5491) #13
  %5493 = load i32, ptr %1329, align 4, !tbaa !5
  %5494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5485, ptr noundef nonnull %.str.5.sink4256, i32 noundef %5486, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 811, ptr noundef %5488, ptr noundef %5490, ptr noundef %5492, i32 noundef %5493) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5495:                                             ; preds = %5469
  %5496 = call i32 @s2n_connection_free(ptr noundef nonnull %5197) #13
  %5497 = call i32 @s2n_pkey_free(ptr noundef nonnull %95) #13
  %5498 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %93) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %91) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %96) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %95) #13
  %5499 = call i32 @s2n_stuffer_free(ptr noundef nonnull %94) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %94) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %93) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %92) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %97) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %97) #13
  %5500 = load i32, ptr @test_count, align 4, !tbaa !5
  %5501 = add nsw i32 %5500, 1
  store i32 %5501, ptr @test_count, align 4, !tbaa !5
  %5502 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %97, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %5503 = icmp eq i32 %5502, -1
  br i1 %5503, label %5504, label %5526

5504:                                             ; preds = %5495
  %5505 = load i32, ptr %1329, align 4, !tbaa !5
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = call i32 @s2n_print_stacktrace(ptr noundef %5506) #13
  %5508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5509 = trunc nuw i8 %5508 to i1
  br i1 %5509, label %5510, label %5514

5510:                                             ; preds = %5504
  %5511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5512 = call i32 @fileno(ptr noundef %5511) #13
  %5513 = call i32 @isatty(i32 noundef %5512) #13
  %.not2425 = icmp eq i32 %5513, 0
  br i1 %.not2425, label %5514, label %5515

5514:                                             ; preds = %5510, %5504
  br label %5515

5515:                                             ; preds = %5510, %5514
  %.str.5.sink4265 = phi ptr [ @.str.5, %5514 ], [ @.str.2, %5510 ]
  store i32 %5505, ptr %1329, align 4, !tbaa !5
  %5516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5517 = load i32, ptr @test_count, align 4, !tbaa !5
  %5518 = load i32, ptr %1275, align 4, !tbaa !5
  %5519 = call ptr @s2n_strerror(i32 noundef %5518, ptr noundef nonnull @.str.4) #13
  %5520 = load i32, ptr %1275, align 4, !tbaa !5
  %5521 = call ptr @s2n_strerror_debug(i32 noundef %5520, ptr noundef nonnull @.str.4) #13
  %5522 = load i32, ptr %1329, align 4, !tbaa !5
  %5523 = call ptr @strerror(i32 noundef %5522) #13
  %5524 = load i32, ptr %1329, align 4, !tbaa !5
  %5525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5516, ptr noundef nonnull %.str.5.sink4265, i32 noundef %5517, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 825, ptr noundef %5519, ptr noundef %5521, ptr noundef %5523, i32 noundef %5524) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5526:                                             ; preds = %5495
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %98) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.67, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %99) #13
  %5527 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %99, ptr noundef nonnull %97, i8 noundef zeroext 1) #13
  %5528 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %5529 = load i32, ptr @test_count, align 4, !tbaa !5
  %5530 = add nsw i32 %5529, 1
  store i32 %5530, ptr @test_count, align 4, !tbaa !5
  %5531 = icmp eq ptr %5528, null
  br i1 %5531, label %5532, label %5554

5532:                                             ; preds = %5526
  %5533 = load i32, ptr %1329, align 4, !tbaa !5
  %5534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5535 = call i32 @s2n_print_stacktrace(ptr noundef %5534) #13
  %5536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5537 = trunc nuw i8 %5536 to i1
  br i1 %5537, label %5538, label %5542

5538:                                             ; preds = %5532
  %5539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5540 = call i32 @fileno(ptr noundef %5539) #13
  %5541 = call i32 @isatty(i32 noundef %5540) #13
  %.not2424 = icmp eq i32 %5541, 0
  br i1 %.not2424, label %5542, label %5543

5542:                                             ; preds = %5538, %5532
  br label %5543

5543:                                             ; preds = %5538, %5542
  %.str.5.sink4274 = phi ptr [ @.str.5, %5542 ], [ @.str.2, %5538 ]
  store i32 %5533, ptr %1329, align 4, !tbaa !5
  %5544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5545 = load i32, ptr @test_count, align 4, !tbaa !5
  %5546 = load i32, ptr %1275, align 4, !tbaa !5
  %5547 = call ptr @s2n_strerror(i32 noundef %5546, ptr noundef nonnull @.str.4) #13
  %5548 = load i32, ptr %1275, align 4, !tbaa !5
  %5549 = call ptr @s2n_strerror_debug(i32 noundef %5548, ptr noundef nonnull @.str.4) #13
  %5550 = load i32, ptr %1329, align 4, !tbaa !5
  %5551 = call ptr @strerror(i32 noundef %5550) #13
  %5552 = load i32, ptr %1329, align 4, !tbaa !5
  %5553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5544, ptr noundef nonnull %.str.5.sink4274, i32 noundef %5545, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 837, ptr noundef %5547, ptr noundef %5549, ptr noundef %5551, i32 noundef %5552) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5554:                                             ; preds = %5526
  %5555 = add nsw i32 %5529, 2
  store i32 %5555, ptr @test_count, align 4, !tbaa !5
  %5556 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %5528, ptr noundef nonnull @verify_host_verify_alt, ptr noundef nonnull %98) #13
  %5557 = icmp eq i32 %5556, -1
  br i1 %5557, label %5558, label %5580

5558:                                             ; preds = %5554
  %5559 = load i32, ptr %1329, align 4, !tbaa !5
  %5560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5561 = call i32 @s2n_print_stacktrace(ptr noundef %5560) #13
  %5562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5563 = trunc nuw i8 %5562 to i1
  br i1 %5563, label %5564, label %5568

5564:                                             ; preds = %5558
  %5565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5566 = call i32 @fileno(ptr noundef %5565) #13
  %5567 = call i32 @isatty(i32 noundef %5566) #13
  %.not2423 = icmp eq i32 %5567, 0
  br i1 %.not2423, label %5568, label %5569

5568:                                             ; preds = %5564, %5558
  br label %5569

5569:                                             ; preds = %5564, %5568
  %.str.5.sink4283 = phi ptr [ @.str.5, %5568 ], [ @.str.2, %5564 ]
  store i32 %5559, ptr %1329, align 4, !tbaa !5
  %5570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5571 = load i32, ptr @test_count, align 4, !tbaa !5
  %5572 = load i32, ptr %1275, align 4, !tbaa !5
  %5573 = call ptr @s2n_strerror(i32 noundef %5572, ptr noundef nonnull @.str.4) #13
  %5574 = load i32, ptr %1275, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror_debug(i32 noundef %5574, ptr noundef nonnull @.str.4) #13
  %5576 = load i32, ptr %1329, align 4, !tbaa !5
  %5577 = call ptr @strerror(i32 noundef %5576) #13
  %5578 = load i32, ptr %1329, align 4, !tbaa !5
  %5579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5570, ptr noundef nonnull %.str.5.sink4283, i32 noundef %5571, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 838, ptr noundef %5573, ptr noundef %5575, ptr noundef %5577, i32 noundef %5578) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5580:                                             ; preds = %5554
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %100) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %100, i8 0, i64 40, i1 false)
  %5581 = load i32, ptr @test_count, align 4, !tbaa !5
  %5582 = add nsw i32 %5581, 1
  store i32 %5582, ptr @test_count, align 4, !tbaa !5
  %5583 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %5528, ptr noundef nonnull @.str.64, ptr noundef nonnull %100) #13
  %5584 = call zeroext i1 @s2n_result_is_ok(i32 %5583)
  br i1 %5584, label %5607, label %5585

5585:                                             ; preds = %5580
  %5586 = load i32, ptr %1329, align 4, !tbaa !5
  %5587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5588 = call i32 @s2n_print_stacktrace(ptr noundef %5587) #13
  %5589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5590 = trunc nuw i8 %5589 to i1
  br i1 %5590, label %5591, label %5595

5591:                                             ; preds = %5585
  %5592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5593 = call i32 @fileno(ptr noundef %5592) #13
  %5594 = call i32 @isatty(i32 noundef %5593) #13
  %.not2009 = icmp eq i32 %5594, 0
  br i1 %.not2009, label %5595, label %5596

5595:                                             ; preds = %5591, %5585
  br label %5596

5596:                                             ; preds = %5591, %5595
  %.str.5.sink4292 = phi ptr [ @.str.5, %5595 ], [ @.str.2, %5591 ]
  store i32 %5586, ptr %1329, align 4, !tbaa !5
  %5597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5598 = load i32, ptr @test_count, align 4, !tbaa !5
  %5599 = load i32, ptr %1275, align 4, !tbaa !5
  %5600 = call ptr @s2n_strerror(i32 noundef %5599, ptr noundef nonnull @.str.4) #13
  %5601 = load i32, ptr %1275, align 4, !tbaa !5
  %5602 = call ptr @s2n_strerror_debug(i32 noundef %5601, ptr noundef nonnull @.str.4) #13
  %5603 = load i32, ptr %1329, align 4, !tbaa !5
  %5604 = call ptr @strerror(i32 noundef %5603) #13
  %5605 = load i32, ptr %1329, align 4, !tbaa !5
  %5606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5597, ptr noundef nonnull %.str.5.sink4292, i32 noundef %5598, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 841, ptr noundef %5600, ptr noundef %5602, ptr noundef %5604, i32 noundef %5605) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5607:                                             ; preds = %5580
  %5608 = getelementptr inbounds i8, ptr %100, i64 28
  %5609 = load i32, ptr %5608, align 4, !tbaa !15
  %5610 = getelementptr inbounds i8, ptr %100, i64 24
  %5611 = load i32, ptr %5610, align 8, !tbaa !18
  %5612 = sub i32 %5609, %5611
  %5613 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %100, i32 noundef %5612) #13
  %5614 = load i32, ptr @test_count, align 4, !tbaa !5
  %5615 = add nsw i32 %5614, 1
  store i32 %5615, ptr @test_count, align 4, !tbaa !5
  %5616 = icmp eq ptr %5613, null
  br i1 %5616, label %5617, label %5639

5617:                                             ; preds = %5607
  %5618 = load i32, ptr %1329, align 4, !tbaa !5
  %5619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5620 = call i32 @s2n_print_stacktrace(ptr noundef %5619) #13
  %5621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5622 = trunc nuw i8 %5621 to i1
  br i1 %5622, label %5623, label %5627

5623:                                             ; preds = %5617
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = call i32 @fileno(ptr noundef %5624) #13
  %5626 = call i32 @isatty(i32 noundef %5625) #13
  %.not2422 = icmp eq i32 %5626, 0
  br i1 %.not2422, label %5627, label %5628

5627:                                             ; preds = %5623, %5617
  br label %5628

5628:                                             ; preds = %5623, %5627
  %.str.5.sink4301 = phi ptr [ @.str.5, %5627 ], [ @.str.2, %5623 ]
  store i32 %5618, ptr %1329, align 4, !tbaa !5
  %5629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5630 = load i32, ptr @test_count, align 4, !tbaa !5
  %5631 = load i32, ptr %1275, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror(i32 noundef %5631, ptr noundef nonnull @.str.4) #13
  %5633 = load i32, ptr %1275, align 4, !tbaa !5
  %5634 = call ptr @s2n_strerror_debug(i32 noundef %5633, ptr noundef nonnull @.str.4) #13
  %5635 = load i32, ptr %1329, align 4, !tbaa !5
  %5636 = call ptr @strerror(i32 noundef %5635) #13
  %5637 = load i32, ptr %1329, align 4, !tbaa !5
  %5638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5629, ptr noundef nonnull %.str.5.sink4301, i32 noundef %5630, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 844, ptr noundef %5632, ptr noundef %5634, ptr noundef %5636, i32 noundef %5637) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5639:                                             ; preds = %5607
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %101) #13
  %5640 = add nsw i32 %5614, 2
  store i32 %5640, ptr @test_count, align 4, !tbaa !5
  %5641 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %101) #13
  %5642 = icmp eq i32 %5641, -1
  br i1 %5642, label %5643, label %5665

5643:                                             ; preds = %5639
  %5644 = load i32, ptr %1329, align 4, !tbaa !5
  %5645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5646 = call i32 @s2n_print_stacktrace(ptr noundef %5645) #13
  %5647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5648 = trunc nuw i8 %5647 to i1
  br i1 %5648, label %5649, label %5653

5649:                                             ; preds = %5643
  %5650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5651 = call i32 @fileno(ptr noundef %5650) #13
  %5652 = call i32 @isatty(i32 noundef %5651) #13
  %.not2421 = icmp eq i32 %5652, 0
  br i1 %.not2421, label %5653, label %5654

5653:                                             ; preds = %5649, %5643
  br label %5654

5654:                                             ; preds = %5649, %5653
  %.str.5.sink4310 = phi ptr [ @.str.5, %5653 ], [ @.str.2, %5649 ]
  store i32 %5644, ptr %1329, align 4, !tbaa !5
  %5655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5656 = load i32, ptr @test_count, align 4, !tbaa !5
  %5657 = load i32, ptr %1275, align 4, !tbaa !5
  %5658 = call ptr @s2n_strerror(i32 noundef %5657, ptr noundef nonnull @.str.4) #13
  %5659 = load i32, ptr %1275, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror_debug(i32 noundef %5659, ptr noundef nonnull @.str.4) #13
  %5661 = load i32, ptr %1329, align 4, !tbaa !5
  %5662 = call ptr @strerror(i32 noundef %5661) #13
  %5663 = load i32, ptr %1329, align 4, !tbaa !5
  %5664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5655, ptr noundef nonnull %.str.5.sink4310, i32 noundef %5656, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 847, ptr noundef %5658, ptr noundef %5660, ptr noundef %5662, i32 noundef %5663) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5665:                                             ; preds = %5639
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %102) #13
  store i32 -1, ptr %102, align 4, !tbaa !5
  %5666 = load i32, ptr @test_count, align 4, !tbaa !5
  %5667 = add nsw i32 %5666, 1
  store i32 %5667, ptr @test_count, align 4, !tbaa !5
  %5668 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %99, ptr noundef nonnull %5528, ptr noundef nonnull %5613, i32 noundef %5612, ptr noundef nonnull %102, ptr noundef nonnull %101) #13
  %5669 = call zeroext i1 @s2n_result_is_error(i32 %5668)
  br i1 %5669, label %5692, label %5670

5670:                                             ; preds = %5665
  %5671 = load i32, ptr %1329, align 4, !tbaa !5
  %5672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5673 = call i32 @s2n_print_stacktrace(ptr noundef %5672) #13
  %5674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5675 = trunc nuw i8 %5674 to i1
  br i1 %5675, label %5676, label %5680

5676:                                             ; preds = %5670
  %5677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5678 = call i32 @fileno(ptr noundef %5677) #13
  %5679 = call i32 @isatty(i32 noundef %5678) #13
  %.not2010 = icmp eq i32 %5679, 0
  br i1 %.not2010, label %5680, label %5681

5680:                                             ; preds = %5676, %5670
  br label %5681

5681:                                             ; preds = %5676, %5680
  %.str.5.sink4319 = phi ptr [ @.str.5, %5680 ], [ @.str.2, %5676 ]
  store i32 %5671, ptr %1329, align 4, !tbaa !5
  %5682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5683 = load i32, ptr @test_count, align 4, !tbaa !5
  %5684 = load i32, ptr %1275, align 4, !tbaa !5
  %5685 = call ptr @s2n_strerror(i32 noundef %5684, ptr noundef nonnull @.str.4) #13
  %5686 = load i32, ptr %1275, align 4, !tbaa !5
  %5687 = call ptr @s2n_strerror_debug(i32 noundef %5686, ptr noundef nonnull @.str.4) #13
  %5688 = load i32, ptr %1329, align 4, !tbaa !5
  %5689 = call ptr @strerror(i32 noundef %5688) #13
  %5690 = load i32, ptr %1329, align 4, !tbaa !5
  %5691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5682, ptr noundef nonnull %.str.5.sink4319, i32 noundef %5683, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 851, ptr noundef %5685, ptr noundef %5687, ptr noundef %5689, i32 noundef %5690) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5692:                                             ; preds = %5665
  %5693 = load i32, ptr @test_count, align 4, !tbaa !5
  %5694 = add nsw i32 %5693, 1
  store i32 %5694, ptr @test_count, align 4, !tbaa !5
  %5695 = load i32, ptr %1275, align 4, !tbaa !5
  %5696 = icmp eq i32 %5695, 335544366
  br i1 %5696, label %5719, label %5697

5697:                                             ; preds = %5692
  %5698 = load i32, ptr %1329, align 4, !tbaa !5
  %5699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5700 = call i32 @s2n_print_stacktrace(ptr noundef %5699) #13
  %5701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5702 = trunc nuw i8 %5701 to i1
  br i1 %5702, label %5703, label %5707

5703:                                             ; preds = %5697
  %5704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5705 = call i32 @fileno(ptr noundef %5704) #13
  %5706 = call i32 @isatty(i32 noundef %5705) #13
  %.not2011 = icmp eq i32 %5706, 0
  br i1 %.not2011, label %5707, label %5708

5707:                                             ; preds = %5703, %5697
  br label %5708

5708:                                             ; preds = %5703, %5707
  %.str.5.sink4328 = phi ptr [ @.str.5, %5707 ], [ @.str.2, %5703 ]
  store i32 %5698, ptr %1329, align 4, !tbaa !5
  %5709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5710 = load i32, ptr @test_count, align 4, !tbaa !5
  %5711 = load i32, ptr %1275, align 4, !tbaa !5
  %5712 = call ptr @s2n_strerror(i32 noundef %5711, ptr noundef nonnull @.str.4) #13
  %5713 = load i32, ptr %1275, align 4, !tbaa !5
  %5714 = call ptr @s2n_strerror_debug(i32 noundef %5713, ptr noundef nonnull @.str.4) #13
  %5715 = load i32, ptr %1329, align 4, !tbaa !5
  %5716 = call ptr @strerror(i32 noundef %5715) #13
  %5717 = load i32, ptr %1329, align 4, !tbaa !5
  %5718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5709, ptr noundef nonnull %.str.5.sink4328, i32 noundef %5710, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 851, ptr noundef %5712, ptr noundef %5714, ptr noundef %5716, i32 noundef %5717) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5719:                                             ; preds = %5692
  %5720 = add nsw i32 %5693, 2
  store i32 %5720, ptr @test_count, align 4, !tbaa !5
  %5721 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %5722 = icmp eq ptr %5721, null
  br i1 %5722, label %5723, label %5745

5723:                                             ; preds = %5719
  %5724 = load i32, ptr %1329, align 4, !tbaa !5
  %5725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5726 = call i32 @s2n_print_stacktrace(ptr noundef %5725) #13
  %5727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5728 = trunc nuw i8 %5727 to i1
  br i1 %5728, label %5729, label %5733

5729:                                             ; preds = %5723
  %5730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5731 = call i32 @fileno(ptr noundef %5730) #13
  %5732 = call i32 @isatty(i32 noundef %5731) #13
  %.not2420 = icmp eq i32 %5732, 0
  br i1 %.not2420, label %5733, label %5734

5733:                                             ; preds = %5729, %5723
  br label %5734

5734:                                             ; preds = %5729, %5733
  %.str.5.sink4337 = phi ptr [ @.str.5, %5733 ], [ @.str.2, %5729 ]
  store i32 %5724, ptr %1329, align 4, !tbaa !5
  %5735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5736 = load i32, ptr @test_count, align 4, !tbaa !5
  %5737 = load i32, ptr %1275, align 4, !tbaa !5
  %5738 = call ptr @s2n_strerror(i32 noundef %5737, ptr noundef nonnull @.str.4) #13
  %5739 = load i32, ptr %1275, align 4, !tbaa !5
  %5740 = call ptr @s2n_strerror_debug(i32 noundef %5739, ptr noundef nonnull @.str.4) #13
  %5741 = load i32, ptr %1329, align 4, !tbaa !5
  %5742 = call ptr @strerror(i32 noundef %5741) #13
  %5743 = load i32, ptr %1329, align 4, !tbaa !5
  %5744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5735, ptr noundef nonnull %.str.5.sink4337, i32 noundef %5736, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 851, ptr noundef %5738, ptr noundef %5740, ptr noundef %5742, i32 noundef %5743) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5745:                                             ; preds = %5719
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %5746 = load i32, ptr @test_count, align 4, !tbaa !5
  %5747 = add nsw i32 %5746, 1
  store i32 %5747, ptr @test_count, align 4, !tbaa !5
  %5748 = getelementptr inbounds i8, ptr %98, i64 8
  %5749 = load i8, ptr %5748, align 8, !tbaa !21
  %5750 = icmp eq i8 %5749, 0
  br i1 %5750, label %5773, label %5751

5751:                                             ; preds = %5745
  %5752 = load i32, ptr %1329, align 4, !tbaa !5
  %5753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5754 = call i32 @s2n_print_stacktrace(ptr noundef %5753) #13
  %5755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5756 = trunc nuw i8 %5755 to i1
  br i1 %5756, label %5757, label %5761

5757:                                             ; preds = %5751
  %5758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5759 = call i32 @fileno(ptr noundef %5758) #13
  %5760 = call i32 @isatty(i32 noundef %5759) #13
  %.not2012 = icmp eq i32 %5760, 0
  br i1 %.not2012, label %5761, label %5762

5761:                                             ; preds = %5757, %5751
  br label %5762

5762:                                             ; preds = %5757, %5761
  %.str.5.sink4346 = phi ptr [ @.str.5, %5761 ], [ @.str.2, %5757 ]
  store i32 %5752, ptr %1329, align 4, !tbaa !5
  %5763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5764 = load i32, ptr @test_count, align 4, !tbaa !5
  %5765 = load i32, ptr %1275, align 4, !tbaa !5
  %5766 = call ptr @s2n_strerror(i32 noundef %5765, ptr noundef nonnull @.str.4) #13
  %5767 = load i32, ptr %1275, align 4, !tbaa !5
  %5768 = call ptr @s2n_strerror_debug(i32 noundef %5767, ptr noundef nonnull @.str.4) #13
  %5769 = load i32, ptr %1329, align 4, !tbaa !5
  %5770 = call ptr @strerror(i32 noundef %5769) #13
  %5771 = load i32, ptr %1329, align 4, !tbaa !5
  %5772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5763, ptr noundef nonnull %.str.5.sink4346, i32 noundef %5764, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 853, ptr noundef %5766, ptr noundef %5768, ptr noundef %5770, i32 noundef %5771) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5773:                                             ; preds = %5745
  %5774 = add nsw i32 %5746, 2
  store i32 %5774, ptr @test_count, align 4, !tbaa !5
  %5775 = getelementptr inbounds i8, ptr %98, i64 9
  %5776 = load i8, ptr %5775, align 1, !tbaa !19
  %5777 = icmp eq i8 %5776, 1
  br i1 %5777, label %5800, label %5778

5778:                                             ; preds = %5773
  %5779 = load i32, ptr %1329, align 4, !tbaa !5
  %5780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5781 = call i32 @s2n_print_stacktrace(ptr noundef %5780) #13
  %5782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5783 = trunc nuw i8 %5782 to i1
  br i1 %5783, label %5784, label %5788

5784:                                             ; preds = %5778
  %5785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5786 = call i32 @fileno(ptr noundef %5785) #13
  %5787 = call i32 @isatty(i32 noundef %5786) #13
  %.not2013 = icmp eq i32 %5787, 0
  br i1 %.not2013, label %5788, label %5789

5788:                                             ; preds = %5784, %5778
  br label %5789

5789:                                             ; preds = %5784, %5788
  %.str.5.sink4355 = phi ptr [ @.str.5, %5788 ], [ @.str.2, %5784 ]
  store i32 %5779, ptr %1329, align 4, !tbaa !5
  %5790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5791 = load i32, ptr @test_count, align 4, !tbaa !5
  %5792 = load i32, ptr %1275, align 4, !tbaa !5
  %5793 = call ptr @s2n_strerror(i32 noundef %5792, ptr noundef nonnull @.str.4) #13
  %5794 = load i32, ptr %1275, align 4, !tbaa !5
  %5795 = call ptr @s2n_strerror_debug(i32 noundef %5794, ptr noundef nonnull @.str.4) #13
  %5796 = load i32, ptr %1329, align 4, !tbaa !5
  %5797 = call ptr @strerror(i32 noundef %5796) #13
  %5798 = load i32, ptr %1329, align 4, !tbaa !5
  %5799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5790, ptr noundef nonnull %.str.5.sink4355, i32 noundef %5791, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 854, ptr noundef %5793, ptr noundef %5795, ptr noundef %5797, i32 noundef %5798) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5800:                                             ; preds = %5773
  %5801 = add nsw i32 %5746, 3
  store i32 %5801, ptr @test_count, align 4, !tbaa !5
  %5802 = load i32, ptr %102, align 4, !tbaa !5
  %5803 = icmp eq i32 %5802, -1
  br i1 %5803, label %5826, label %5804

5804:                                             ; preds = %5800
  %5805 = load i32, ptr %1329, align 4, !tbaa !5
  %5806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5807 = call i32 @s2n_print_stacktrace(ptr noundef %5806) #13
  %5808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5809 = trunc nuw i8 %5808 to i1
  br i1 %5809, label %5810, label %5814

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

5814:                                             ; preds = %5810, %5804
  br label %5815

5815:                                             ; preds = %5810, %5814
  %.str.5.sink4364 = phi ptr [ @.str.5, %5814 ], [ @.str.2, %5810 ]
  store i32 %5805, ptr %1329, align 4, !tbaa !5
  %5816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5817 = load i32, ptr @test_count, align 4, !tbaa !5
  %5818 = load i32, ptr %1275, align 4, !tbaa !5
  %5819 = call ptr @s2n_strerror(i32 noundef %5818, ptr noundef nonnull @.str.4) #13
  %5820 = load i32, ptr %1275, align 4, !tbaa !5
  %5821 = call ptr @s2n_strerror_debug(i32 noundef %5820, ptr noundef nonnull @.str.4) #13
  %5822 = load i32, ptr %1329, align 4, !tbaa !5
  %5823 = call ptr @strerror(i32 noundef %5822) #13
  %5824 = load i32, ptr %1329, align 4, !tbaa !5
  %5825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5816, ptr noundef nonnull %.str.5.sink4364, i32 noundef %5817, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 855, ptr noundef %5819, ptr noundef %5821, ptr noundef %5823, i32 noundef %5824) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5826:                                             ; preds = %5800
  %5827 = call i32 @s2n_connection_free(ptr noundef nonnull %5528) #13
  %5828 = call i32 @s2n_pkey_free(ptr noundef nonnull %101) #13
  %5829 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %99) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %97) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %102) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %101) #13
  %5830 = call i32 @s2n_stuffer_free(ptr noundef nonnull %100) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %100) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %99) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %97) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %103) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %103) #13
  %5831 = load i32, ptr @test_count, align 4, !tbaa !5
  %5832 = add nsw i32 %5831, 1
  store i32 %5832, ptr @test_count, align 4, !tbaa !5
  %5833 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %103, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %5834 = icmp eq i32 %5833, -1
  br i1 %5834, label %5835, label %5857

5835:                                             ; preds = %5826
  %5836 = load i32, ptr %1329, align 4, !tbaa !5
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = call i32 @s2n_print_stacktrace(ptr noundef %5837) #13
  %5839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5840 = trunc nuw i8 %5839 to i1
  br i1 %5840, label %5841, label %5845

5841:                                             ; preds = %5835
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = call i32 @fileno(ptr noundef %5842) #13
  %5844 = call i32 @isatty(i32 noundef %5843) #13
  %.not2419 = icmp eq i32 %5844, 0
  br i1 %.not2419, label %5845, label %5846

5845:                                             ; preds = %5841, %5835
  br label %5846

5846:                                             ; preds = %5841, %5845
  %.str.5.sink4373 = phi ptr [ @.str.5, %5845 ], [ @.str.2, %5841 ]
  store i32 %5836, ptr %1329, align 4, !tbaa !5
  %5847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5848 = load i32, ptr @test_count, align 4, !tbaa !5
  %5849 = load i32, ptr %1275, align 4, !tbaa !5
  %5850 = call ptr @s2n_strerror(i32 noundef %5849, ptr noundef nonnull @.str.4) #13
  %5851 = load i32, ptr %1275, align 4, !tbaa !5
  %5852 = call ptr @s2n_strerror_debug(i32 noundef %5851, ptr noundef nonnull @.str.4) #13
  %5853 = load i32, ptr %1329, align 4, !tbaa !5
  %5854 = call ptr @strerror(i32 noundef %5853) #13
  %5855 = load i32, ptr %1329, align 4, !tbaa !5
  %5856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5847, ptr noundef nonnull %.str.5.sink4373, i32 noundef %5848, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 869, ptr noundef %5850, ptr noundef %5852, ptr noundef %5854, i32 noundef %5855) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5857:                                             ; preds = %5826
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %104) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %104, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.69, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %105) #13
  %5858 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %105, ptr noundef nonnull %103, i8 noundef zeroext 1) #13
  %5859 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %5860 = load i32, ptr @test_count, align 4, !tbaa !5
  %5861 = add nsw i32 %5860, 1
  store i32 %5861, ptr @test_count, align 4, !tbaa !5
  %5862 = icmp eq ptr %5859, null
  br i1 %5862, label %5863, label %5885

5863:                                             ; preds = %5857
  %5864 = load i32, ptr %1329, align 4, !tbaa !5
  %5865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5866 = call i32 @s2n_print_stacktrace(ptr noundef %5865) #13
  %5867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5868 = trunc nuw i8 %5867 to i1
  br i1 %5868, label %5869, label %5873

5869:                                             ; preds = %5863
  %5870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5871 = call i32 @fileno(ptr noundef %5870) #13
  %5872 = call i32 @isatty(i32 noundef %5871) #13
  %.not2418 = icmp eq i32 %5872, 0
  br i1 %.not2418, label %5873, label %5874

5873:                                             ; preds = %5869, %5863
  br label %5874

5874:                                             ; preds = %5869, %5873
  %.str.5.sink4382 = phi ptr [ @.str.5, %5873 ], [ @.str.2, %5869 ]
  store i32 %5864, ptr %1329, align 4, !tbaa !5
  %5875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5876 = load i32, ptr @test_count, align 4, !tbaa !5
  %5877 = load i32, ptr %1275, align 4, !tbaa !5
  %5878 = call ptr @s2n_strerror(i32 noundef %5877, ptr noundef nonnull @.str.4) #13
  %5879 = load i32, ptr %1275, align 4, !tbaa !5
  %5880 = call ptr @s2n_strerror_debug(i32 noundef %5879, ptr noundef nonnull @.str.4) #13
  %5881 = load i32, ptr %1329, align 4, !tbaa !5
  %5882 = call ptr @strerror(i32 noundef %5881) #13
  %5883 = load i32, ptr %1329, align 4, !tbaa !5
  %5884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5875, ptr noundef nonnull %.str.5.sink4382, i32 noundef %5876, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 881, ptr noundef %5878, ptr noundef %5880, ptr noundef %5882, i32 noundef %5883) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5885:                                             ; preds = %5857
  %5886 = add nsw i32 %5860, 2
  store i32 %5886, ptr @test_count, align 4, !tbaa !5
  %5887 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %5859, ptr noundef nonnull @verify_host_verify_alt, ptr noundef nonnull %104) #13
  %5888 = icmp eq i32 %5887, -1
  br i1 %5888, label %5889, label %5911

5889:                                             ; preds = %5885
  %5890 = load i32, ptr %1329, align 4, !tbaa !5
  %5891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5892 = call i32 @s2n_print_stacktrace(ptr noundef %5891) #13
  %5893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5894 = trunc nuw i8 %5893 to i1
  br i1 %5894, label %5895, label %5899

5895:                                             ; preds = %5889
  %5896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5897 = call i32 @fileno(ptr noundef %5896) #13
  %5898 = call i32 @isatty(i32 noundef %5897) #13
  %.not2417 = icmp eq i32 %5898, 0
  br i1 %.not2417, label %5899, label %5900

5899:                                             ; preds = %5895, %5889
  br label %5900

5900:                                             ; preds = %5895, %5899
  %.str.5.sink4391 = phi ptr [ @.str.5, %5899 ], [ @.str.2, %5895 ]
  store i32 %5890, ptr %1329, align 4, !tbaa !5
  %5901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5902 = load i32, ptr @test_count, align 4, !tbaa !5
  %5903 = load i32, ptr %1275, align 4, !tbaa !5
  %5904 = call ptr @s2n_strerror(i32 noundef %5903, ptr noundef nonnull @.str.4) #13
  %5905 = load i32, ptr %1275, align 4, !tbaa !5
  %5906 = call ptr @s2n_strerror_debug(i32 noundef %5905, ptr noundef nonnull @.str.4) #13
  %5907 = load i32, ptr %1329, align 4, !tbaa !5
  %5908 = call ptr @strerror(i32 noundef %5907) #13
  %5909 = load i32, ptr %1329, align 4, !tbaa !5
  %5910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5901, ptr noundef nonnull %.str.5.sink4391, i32 noundef %5902, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 882, ptr noundef %5904, ptr noundef %5906, ptr noundef %5908, i32 noundef %5909) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5911:                                             ; preds = %5885
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %106) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %106, i8 0, i64 40, i1 false)
  %5912 = load i32, ptr @test_count, align 4, !tbaa !5
  %5913 = add nsw i32 %5912, 1
  store i32 %5913, ptr @test_count, align 4, !tbaa !5
  %5914 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %5859, ptr noundef nonnull @.str.70, ptr noundef nonnull %106) #13
  %5915 = call zeroext i1 @s2n_result_is_ok(i32 %5914)
  br i1 %5915, label %5938, label %5916

5916:                                             ; preds = %5911
  %5917 = load i32, ptr %1329, align 4, !tbaa !5
  %5918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5919 = call i32 @s2n_print_stacktrace(ptr noundef %5918) #13
  %5920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5921 = trunc nuw i8 %5920 to i1
  br i1 %5921, label %5922, label %5926

5922:                                             ; preds = %5916
  %5923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5924 = call i32 @fileno(ptr noundef %5923) #13
  %5925 = call i32 @isatty(i32 noundef %5924) #13
  %.not2015 = icmp eq i32 %5925, 0
  br i1 %.not2015, label %5926, label %5927

5926:                                             ; preds = %5922, %5916
  br label %5927

5927:                                             ; preds = %5922, %5926
  %.str.5.sink4400 = phi ptr [ @.str.5, %5926 ], [ @.str.2, %5922 ]
  store i32 %5917, ptr %1329, align 4, !tbaa !5
  %5928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5929 = load i32, ptr @test_count, align 4, !tbaa !5
  %5930 = load i32, ptr %1275, align 4, !tbaa !5
  %5931 = call ptr @s2n_strerror(i32 noundef %5930, ptr noundef nonnull @.str.4) #13
  %5932 = load i32, ptr %1275, align 4, !tbaa !5
  %5933 = call ptr @s2n_strerror_debug(i32 noundef %5932, ptr noundef nonnull @.str.4) #13
  %5934 = load i32, ptr %1329, align 4, !tbaa !5
  %5935 = call ptr @strerror(i32 noundef %5934) #13
  %5936 = load i32, ptr %1329, align 4, !tbaa !5
  %5937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5928, ptr noundef nonnull %.str.5.sink4400, i32 noundef %5929, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 886, ptr noundef %5931, ptr noundef %5933, ptr noundef %5935, i32 noundef %5936) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5938:                                             ; preds = %5911
  %5939 = getelementptr inbounds i8, ptr %106, i64 28
  %5940 = load i32, ptr %5939, align 4, !tbaa !15
  %5941 = getelementptr inbounds i8, ptr %106, i64 24
  %5942 = load i32, ptr %5941, align 8, !tbaa !18
  %5943 = sub i32 %5940, %5942
  %5944 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %106, i32 noundef %5943) #13
  %5945 = load i32, ptr @test_count, align 4, !tbaa !5
  %5946 = add nsw i32 %5945, 1
  store i32 %5946, ptr @test_count, align 4, !tbaa !5
  %5947 = icmp eq ptr %5944, null
  br i1 %5947, label %5948, label %5970

5948:                                             ; preds = %5938
  %5949 = load i32, ptr %1329, align 4, !tbaa !5
  %5950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5951 = call i32 @s2n_print_stacktrace(ptr noundef %5950) #13
  %5952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5953 = trunc nuw i8 %5952 to i1
  br i1 %5953, label %5954, label %5958

5954:                                             ; preds = %5948
  %5955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5956 = call i32 @fileno(ptr noundef %5955) #13
  %5957 = call i32 @isatty(i32 noundef %5956) #13
  %.not2416 = icmp eq i32 %5957, 0
  br i1 %.not2416, label %5958, label %5959

5958:                                             ; preds = %5954, %5948
  br label %5959

5959:                                             ; preds = %5954, %5958
  %.str.5.sink4409 = phi ptr [ @.str.5, %5958 ], [ @.str.2, %5954 ]
  store i32 %5949, ptr %1329, align 4, !tbaa !5
  %5960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5961 = load i32, ptr @test_count, align 4, !tbaa !5
  %5962 = load i32, ptr %1275, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror(i32 noundef %5962, ptr noundef nonnull @.str.4) #13
  %5964 = load i32, ptr %1275, align 4, !tbaa !5
  %5965 = call ptr @s2n_strerror_debug(i32 noundef %5964, ptr noundef nonnull @.str.4) #13
  %5966 = load i32, ptr %1329, align 4, !tbaa !5
  %5967 = call ptr @strerror(i32 noundef %5966) #13
  %5968 = load i32, ptr %1329, align 4, !tbaa !5
  %5969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5960, ptr noundef nonnull %.str.5.sink4409, i32 noundef %5961, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 889, ptr noundef %5963, ptr noundef %5965, ptr noundef %5967, i32 noundef %5968) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5970:                                             ; preds = %5938
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %107) #13
  %5971 = add nsw i32 %5945, 2
  store i32 %5971, ptr @test_count, align 4, !tbaa !5
  %5972 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %107) #13
  %5973 = icmp eq i32 %5972, -1
  br i1 %5973, label %5974, label %5996

5974:                                             ; preds = %5970
  %5975 = load i32, ptr %1329, align 4, !tbaa !5
  %5976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5977 = call i32 @s2n_print_stacktrace(ptr noundef %5976) #13
  %5978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5979 = trunc nuw i8 %5978 to i1
  br i1 %5979, label %5980, label %5984

5980:                                             ; preds = %5974
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = call i32 @fileno(ptr noundef %5981) #13
  %5983 = call i32 @isatty(i32 noundef %5982) #13
  %.not2415 = icmp eq i32 %5983, 0
  br i1 %.not2415, label %5984, label %5985

5984:                                             ; preds = %5980, %5974
  br label %5985

5985:                                             ; preds = %5980, %5984
  %.str.5.sink4418 = phi ptr [ @.str.5, %5984 ], [ @.str.2, %5980 ]
  store i32 %5975, ptr %1329, align 4, !tbaa !5
  %5986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5987 = load i32, ptr @test_count, align 4, !tbaa !5
  %5988 = load i32, ptr %1275, align 4, !tbaa !5
  %5989 = call ptr @s2n_strerror(i32 noundef %5988, ptr noundef nonnull @.str.4) #13
  %5990 = load i32, ptr %1275, align 4, !tbaa !5
  %5991 = call ptr @s2n_strerror_debug(i32 noundef %5990, ptr noundef nonnull @.str.4) #13
  %5992 = load i32, ptr %1329, align 4, !tbaa !5
  %5993 = call ptr @strerror(i32 noundef %5992) #13
  %5994 = load i32, ptr %1329, align 4, !tbaa !5
  %5995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5986, ptr noundef nonnull %.str.5.sink4418, i32 noundef %5987, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 892, ptr noundef %5989, ptr noundef %5991, ptr noundef %5993, i32 noundef %5994) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5996:                                             ; preds = %5970
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %108) #13
  store i32 -1, ptr %108, align 4, !tbaa !5
  %5997 = load i32, ptr @test_count, align 4, !tbaa !5
  %5998 = add nsw i32 %5997, 1
  store i32 %5998, ptr @test_count, align 4, !tbaa !5
  %5999 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %105, ptr noundef nonnull %5859, ptr noundef nonnull %5944, i32 noundef %5943, ptr noundef nonnull %108, ptr noundef nonnull %107) #13
  %6000 = call zeroext i1 @s2n_result_is_error(i32 %5999)
  br i1 %6000, label %6023, label %6001

6001:                                             ; preds = %5996
  %6002 = load i32, ptr %1329, align 4, !tbaa !5
  %6003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6004 = call i32 @s2n_print_stacktrace(ptr noundef %6003) #13
  %6005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6006 = trunc nuw i8 %6005 to i1
  br i1 %6006, label %6007, label %6011

6007:                                             ; preds = %6001
  %6008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6009 = call i32 @fileno(ptr noundef %6008) #13
  %6010 = call i32 @isatty(i32 noundef %6009) #13
  %.not2016 = icmp eq i32 %6010, 0
  br i1 %.not2016, label %6011, label %6012

6011:                                             ; preds = %6007, %6001
  br label %6012

6012:                                             ; preds = %6007, %6011
  %.str.5.sink4427 = phi ptr [ @.str.5, %6011 ], [ @.str.2, %6007 ]
  store i32 %6002, ptr %1329, align 4, !tbaa !5
  %6013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6014 = load i32, ptr @test_count, align 4, !tbaa !5
  %6015 = load i32, ptr %1275, align 4, !tbaa !5
  %6016 = call ptr @s2n_strerror(i32 noundef %6015, ptr noundef nonnull @.str.4) #13
  %6017 = load i32, ptr %1275, align 4, !tbaa !5
  %6018 = call ptr @s2n_strerror_debug(i32 noundef %6017, ptr noundef nonnull @.str.4) #13
  %6019 = load i32, ptr %1329, align 4, !tbaa !5
  %6020 = call ptr @strerror(i32 noundef %6019) #13
  %6021 = load i32, ptr %1329, align 4, !tbaa !5
  %6022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6013, ptr noundef nonnull %.str.5.sink4427, i32 noundef %6014, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 896, ptr noundef %6016, ptr noundef %6018, ptr noundef %6020, i32 noundef %6021) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6023:                                             ; preds = %5996
  %6024 = load i32, ptr @test_count, align 4, !tbaa !5
  %6025 = add nsw i32 %6024, 1
  store i32 %6025, ptr @test_count, align 4, !tbaa !5
  %6026 = load i32, ptr %1275, align 4, !tbaa !5
  %6027 = icmp eq i32 %6026, 335544366
  br i1 %6027, label %6050, label %6028

6028:                                             ; preds = %6023
  %6029 = load i32, ptr %1329, align 4, !tbaa !5
  %6030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6031 = call i32 @s2n_print_stacktrace(ptr noundef %6030) #13
  %6032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6033 = trunc nuw i8 %6032 to i1
  br i1 %6033, label %6034, label %6038

6034:                                             ; preds = %6028
  %6035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6036 = call i32 @fileno(ptr noundef %6035) #13
  %6037 = call i32 @isatty(i32 noundef %6036) #13
  %.not2017 = icmp eq i32 %6037, 0
  br i1 %.not2017, label %6038, label %6039

6038:                                             ; preds = %6034, %6028
  br label %6039

6039:                                             ; preds = %6034, %6038
  %.str.5.sink4436 = phi ptr [ @.str.5, %6038 ], [ @.str.2, %6034 ]
  store i32 %6029, ptr %1329, align 4, !tbaa !5
  %6040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6041 = load i32, ptr @test_count, align 4, !tbaa !5
  %6042 = load i32, ptr %1275, align 4, !tbaa !5
  %6043 = call ptr @s2n_strerror(i32 noundef %6042, ptr noundef nonnull @.str.4) #13
  %6044 = load i32, ptr %1275, align 4, !tbaa !5
  %6045 = call ptr @s2n_strerror_debug(i32 noundef %6044, ptr noundef nonnull @.str.4) #13
  %6046 = load i32, ptr %1329, align 4, !tbaa !5
  %6047 = call ptr @strerror(i32 noundef %6046) #13
  %6048 = load i32, ptr %1329, align 4, !tbaa !5
  %6049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6040, ptr noundef nonnull %.str.5.sink4436, i32 noundef %6041, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 896, ptr noundef %6043, ptr noundef %6045, ptr noundef %6047, i32 noundef %6048) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6050:                                             ; preds = %6023
  %6051 = add nsw i32 %6024, 2
  store i32 %6051, ptr @test_count, align 4, !tbaa !5
  %6052 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %6053 = icmp eq ptr %6052, null
  br i1 %6053, label %6054, label %6076

6054:                                             ; preds = %6050
  %6055 = load i32, ptr %1329, align 4, !tbaa !5
  %6056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6057 = call i32 @s2n_print_stacktrace(ptr noundef %6056) #13
  %6058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6059 = trunc nuw i8 %6058 to i1
  br i1 %6059, label %6060, label %6064

6060:                                             ; preds = %6054
  %6061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6062 = call i32 @fileno(ptr noundef %6061) #13
  %6063 = call i32 @isatty(i32 noundef %6062) #13
  %.not2414 = icmp eq i32 %6063, 0
  br i1 %.not2414, label %6064, label %6065

6064:                                             ; preds = %6060, %6054
  br label %6065

6065:                                             ; preds = %6060, %6064
  %.str.5.sink4445 = phi ptr [ @.str.5, %6064 ], [ @.str.2, %6060 ]
  store i32 %6055, ptr %1329, align 4, !tbaa !5
  %6066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6067 = load i32, ptr @test_count, align 4, !tbaa !5
  %6068 = load i32, ptr %1275, align 4, !tbaa !5
  %6069 = call ptr @s2n_strerror(i32 noundef %6068, ptr noundef nonnull @.str.4) #13
  %6070 = load i32, ptr %1275, align 4, !tbaa !5
  %6071 = call ptr @s2n_strerror_debug(i32 noundef %6070, ptr noundef nonnull @.str.4) #13
  %6072 = load i32, ptr %1329, align 4, !tbaa !5
  %6073 = call ptr @strerror(i32 noundef %6072) #13
  %6074 = load i32, ptr %1329, align 4, !tbaa !5
  %6075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6066, ptr noundef nonnull %.str.5.sink4445, i32 noundef %6067, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 896, ptr noundef %6069, ptr noundef %6071, ptr noundef %6073, i32 noundef %6074) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6076:                                             ; preds = %6050
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %6077 = load i32, ptr @test_count, align 4, !tbaa !5
  %6078 = add nsw i32 %6077, 1
  store i32 %6078, ptr @test_count, align 4, !tbaa !5
  %6079 = getelementptr inbounds i8, ptr %104, i64 8
  %6080 = load i8, ptr %6079, align 8, !tbaa !21
  %6081 = icmp eq i8 %6080, 1
  br i1 %6081, label %6104, label %6082

6082:                                             ; preds = %6076
  %6083 = load i32, ptr %1329, align 4, !tbaa !5
  %6084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6085 = call i32 @s2n_print_stacktrace(ptr noundef %6084) #13
  %6086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6087 = trunc nuw i8 %6086 to i1
  br i1 %6087, label %6088, label %6092

6088:                                             ; preds = %6082
  %6089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6090 = call i32 @fileno(ptr noundef %6089) #13
  %6091 = call i32 @isatty(i32 noundef %6090) #13
  %.not2018 = icmp eq i32 %6091, 0
  br i1 %.not2018, label %6092, label %6093

6092:                                             ; preds = %6088, %6082
  br label %6093

6093:                                             ; preds = %6088, %6092
  %.str.5.sink4454 = phi ptr [ @.str.5, %6092 ], [ @.str.2, %6088 ]
  store i32 %6083, ptr %1329, align 4, !tbaa !5
  %6094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6095 = load i32, ptr @test_count, align 4, !tbaa !5
  %6096 = load i32, ptr %1275, align 4, !tbaa !5
  %6097 = call ptr @s2n_strerror(i32 noundef %6096, ptr noundef nonnull @.str.4) #13
  %6098 = load i32, ptr %1275, align 4, !tbaa !5
  %6099 = call ptr @s2n_strerror_debug(i32 noundef %6098, ptr noundef nonnull @.str.4) #13
  %6100 = load i32, ptr %1329, align 4, !tbaa !5
  %6101 = call ptr @strerror(i32 noundef %6100) #13
  %6102 = load i32, ptr %1329, align 4, !tbaa !5
  %6103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6094, ptr noundef nonnull %.str.5.sink4454, i32 noundef %6095, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 898, ptr noundef %6097, ptr noundef %6099, ptr noundef %6101, i32 noundef %6102) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6104:                                             ; preds = %6076
  %6105 = add nsw i32 %6077, 2
  store i32 %6105, ptr @test_count, align 4, !tbaa !5
  %6106 = getelementptr inbounds i8, ptr %104, i64 9
  %6107 = load i8, ptr %6106, align 1, !tbaa !19
  %6108 = icmp eq i8 %6107, 1
  br i1 %6108, label %6131, label %6109

6109:                                             ; preds = %6104
  %6110 = load i32, ptr %1329, align 4, !tbaa !5
  %6111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6112 = call i32 @s2n_print_stacktrace(ptr noundef %6111) #13
  %6113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6114 = trunc nuw i8 %6113 to i1
  br i1 %6114, label %6115, label %6119

6115:                                             ; preds = %6109
  %6116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6117 = call i32 @fileno(ptr noundef %6116) #13
  %6118 = call i32 @isatty(i32 noundef %6117) #13
  %.not2019 = icmp eq i32 %6118, 0
  br i1 %.not2019, label %6119, label %6120

6119:                                             ; preds = %6115, %6109
  br label %6120

6120:                                             ; preds = %6115, %6119
  %.str.5.sink4463 = phi ptr [ @.str.5, %6119 ], [ @.str.2, %6115 ]
  store i32 %6110, ptr %1329, align 4, !tbaa !5
  %6121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6122 = load i32, ptr @test_count, align 4, !tbaa !5
  %6123 = load i32, ptr %1275, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror(i32 noundef %6123, ptr noundef nonnull @.str.4) #13
  %6125 = load i32, ptr %1275, align 4, !tbaa !5
  %6126 = call ptr @s2n_strerror_debug(i32 noundef %6125, ptr noundef nonnull @.str.4) #13
  %6127 = load i32, ptr %1329, align 4, !tbaa !5
  %6128 = call ptr @strerror(i32 noundef %6127) #13
  %6129 = load i32, ptr %1329, align 4, !tbaa !5
  %6130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6121, ptr noundef nonnull %.str.5.sink4463, i32 noundef %6122, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 899, ptr noundef %6124, ptr noundef %6126, ptr noundef %6128, i32 noundef %6129) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6131:                                             ; preds = %6104
  %6132 = add nsw i32 %6077, 3
  store i32 %6132, ptr @test_count, align 4, !tbaa !5
  %6133 = load i32, ptr %108, align 4, !tbaa !5
  %6134 = icmp eq i32 %6133, -1
  br i1 %6134, label %6157, label %6135

6135:                                             ; preds = %6131
  %6136 = load i32, ptr %1329, align 4, !tbaa !5
  %6137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6138 = call i32 @s2n_print_stacktrace(ptr noundef %6137) #13
  %6139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6140 = trunc nuw i8 %6139 to i1
  br i1 %6140, label %6141, label %6145

6141:                                             ; preds = %6135
  %6142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6143 = call i32 @fileno(ptr noundef %6142) #13
  %6144 = call i32 @isatty(i32 noundef %6143) #13
  %.not2020 = icmp eq i32 %6144, 0
  br i1 %.not2020, label %6145, label %6146

6145:                                             ; preds = %6141, %6135
  br label %6146

6146:                                             ; preds = %6141, %6145
  %.str.5.sink4472 = phi ptr [ @.str.5, %6145 ], [ @.str.2, %6141 ]
  store i32 %6136, ptr %1329, align 4, !tbaa !5
  %6147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6148 = load i32, ptr @test_count, align 4, !tbaa !5
  %6149 = load i32, ptr %1275, align 4, !tbaa !5
  %6150 = call ptr @s2n_strerror(i32 noundef %6149, ptr noundef nonnull @.str.4) #13
  %6151 = load i32, ptr %1275, align 4, !tbaa !5
  %6152 = call ptr @s2n_strerror_debug(i32 noundef %6151, ptr noundef nonnull @.str.4) #13
  %6153 = load i32, ptr %1329, align 4, !tbaa !5
  %6154 = call ptr @strerror(i32 noundef %6153) #13
  %6155 = load i32, ptr %1329, align 4, !tbaa !5
  %6156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6147, ptr noundef nonnull %.str.5.sink4472, i32 noundef %6148, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 900, ptr noundef %6150, ptr noundef %6152, ptr noundef %6154, i32 noundef %6155) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6157:                                             ; preds = %6131
  %6158 = call i32 @s2n_connection_free(ptr noundef nonnull %5859) #13
  %6159 = call i32 @s2n_pkey_free(ptr noundef nonnull %107) #13
  %6160 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %105) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %103) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %108) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %107) #13
  %6161 = call i32 @s2n_stuffer_free(ptr noundef nonnull %106) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %106) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %105) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %109) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %109) #13
  %6162 = load i32, ptr @test_count, align 4, !tbaa !5
  %6163 = add nsw i32 %6162, 1
  store i32 %6163, ptr @test_count, align 4, !tbaa !5
  %6164 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %109, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %6165 = icmp eq i32 %6164, -1
  br i1 %6165, label %6166, label %6188

6166:                                             ; preds = %6157
  %6167 = load i32, ptr %1329, align 4, !tbaa !5
  %6168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6169 = call i32 @s2n_print_stacktrace(ptr noundef %6168) #13
  %6170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6171 = trunc nuw i8 %6170 to i1
  br i1 %6171, label %6172, label %6176

6172:                                             ; preds = %6166
  %6173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6174 = call i32 @fileno(ptr noundef %6173) #13
  %6175 = call i32 @isatty(i32 noundef %6174) #13
  %.not2413 = icmp eq i32 %6175, 0
  br i1 %.not2413, label %6176, label %6177

6176:                                             ; preds = %6172, %6166
  br label %6177

6177:                                             ; preds = %6172, %6176
  %.str.5.sink4481 = phi ptr [ @.str.5, %6176 ], [ @.str.2, %6172 ]
  store i32 %6167, ptr %1329, align 4, !tbaa !5
  %6178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6179 = load i32, ptr @test_count, align 4, !tbaa !5
  %6180 = load i32, ptr %1275, align 4, !tbaa !5
  %6181 = call ptr @s2n_strerror(i32 noundef %6180, ptr noundef nonnull @.str.4) #13
  %6182 = load i32, ptr %1275, align 4, !tbaa !5
  %6183 = call ptr @s2n_strerror_debug(i32 noundef %6182, ptr noundef nonnull @.str.4) #13
  %6184 = load i32, ptr %1329, align 4, !tbaa !5
  %6185 = call ptr @strerror(i32 noundef %6184) #13
  %6186 = load i32, ptr %1329, align 4, !tbaa !5
  %6187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6178, ptr noundef nonnull %.str.5.sink4481, i32 noundef %6179, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 912, ptr noundef %6181, ptr noundef %6183, ptr noundef %6185, i32 noundef %6186) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6188:                                             ; preds = %6157
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %110) #13
  %6189 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %110, ptr noundef nonnull %109, i8 noundef zeroext 1) #13
  %6190 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %6191 = load i32, ptr @test_count, align 4, !tbaa !5
  %6192 = add nsw i32 %6191, 1
  store i32 %6192, ptr @test_count, align 4, !tbaa !5
  %6193 = icmp eq ptr %6190, null
  br i1 %6193, label %6194, label %6216

6194:                                             ; preds = %6188
  %6195 = load i32, ptr %1329, align 4, !tbaa !5
  %6196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6197 = call i32 @s2n_print_stacktrace(ptr noundef %6196) #13
  %6198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6199 = trunc nuw i8 %6198 to i1
  br i1 %6199, label %6200, label %6204

6200:                                             ; preds = %6194
  %6201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6202 = call i32 @fileno(ptr noundef %6201) #13
  %6203 = call i32 @isatty(i32 noundef %6202) #13
  %.not2412 = icmp eq i32 %6203, 0
  br i1 %.not2412, label %6204, label %6205

6204:                                             ; preds = %6200, %6194
  br label %6205

6205:                                             ; preds = %6200, %6204
  %.str.5.sink4490 = phi ptr [ @.str.5, %6204 ], [ @.str.2, %6200 ]
  store i32 %6195, ptr %1329, align 4, !tbaa !5
  %6206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6207 = load i32, ptr @test_count, align 4, !tbaa !5
  %6208 = load i32, ptr %1275, align 4, !tbaa !5
  %6209 = call ptr @s2n_strerror(i32 noundef %6208, ptr noundef nonnull @.str.4) #13
  %6210 = load i32, ptr %1275, align 4, !tbaa !5
  %6211 = call ptr @s2n_strerror_debug(i32 noundef %6210, ptr noundef nonnull @.str.4) #13
  %6212 = load i32, ptr %1329, align 4, !tbaa !5
  %6213 = call ptr @strerror(i32 noundef %6212) #13
  %6214 = load i32, ptr %1329, align 4, !tbaa !5
  %6215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6206, ptr noundef nonnull %.str.5.sink4490, i32 noundef %6207, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 918, ptr noundef %6209, ptr noundef %6211, ptr noundef %6213, i32 noundef %6214) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6216:                                             ; preds = %6188
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %111) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %111, i8 0, i64 16, i1 false)
  %6217 = add nsw i32 %6191, 2
  store i32 %6217, ptr @test_count, align 4, !tbaa !5
  %6218 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %6190, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %111) #13
  %6219 = icmp eq i32 %6218, -1
  br i1 %6219, label %6220, label %6242

6220:                                             ; preds = %6216
  %6221 = load i32, ptr %1329, align 4, !tbaa !5
  %6222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6223 = call i32 @s2n_print_stacktrace(ptr noundef %6222) #13
  %6224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6225 = trunc nuw i8 %6224 to i1
  br i1 %6225, label %6226, label %6230

6226:                                             ; preds = %6220
  %6227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6228 = call i32 @fileno(ptr noundef %6227) #13
  %6229 = call i32 @isatty(i32 noundef %6228) #13
  %.not2411 = icmp eq i32 %6229, 0
  br i1 %.not2411, label %6230, label %6231

6230:                                             ; preds = %6226, %6220
  br label %6231

6231:                                             ; preds = %6226, %6230
  %.str.5.sink4499 = phi ptr [ @.str.5, %6230 ], [ @.str.2, %6226 ]
  store i32 %6221, ptr %1329, align 4, !tbaa !5
  %6232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6233 = load i32, ptr @test_count, align 4, !tbaa !5
  %6234 = load i32, ptr %1275, align 4, !tbaa !5
  %6235 = call ptr @s2n_strerror(i32 noundef %6234, ptr noundef nonnull @.str.4) #13
  %6236 = load i32, ptr %1275, align 4, !tbaa !5
  %6237 = call ptr @s2n_strerror_debug(i32 noundef %6236, ptr noundef nonnull @.str.4) #13
  %6238 = load i32, ptr %1329, align 4, !tbaa !5
  %6239 = call ptr @strerror(i32 noundef %6238) #13
  %6240 = load i32, ptr %1329, align 4, !tbaa !5
  %6241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6232, ptr noundef nonnull %.str.5.sink4499, i32 noundef %6233, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 921, ptr noundef %6235, ptr noundef %6237, ptr noundef %6239, i32 noundef %6240) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6242:                                             ; preds = %6216
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %112) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %112, i8 0, i64 40, i1 false)
  %6243 = load i32, ptr @test_count, align 4, !tbaa !5
  %6244 = add nsw i32 %6243, 1
  store i32 %6244, ptr @test_count, align 4, !tbaa !5
  %6245 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %6190, ptr noundef nonnull @.str.72, ptr noundef nonnull %112) #13
  %6246 = call zeroext i1 @s2n_result_is_ok(i32 %6245)
  br i1 %6246, label %6269, label %6247

6247:                                             ; preds = %6242
  %6248 = load i32, ptr %1329, align 4, !tbaa !5
  %6249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6250 = call i32 @s2n_print_stacktrace(ptr noundef %6249) #13
  %6251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6252 = trunc nuw i8 %6251 to i1
  br i1 %6252, label %6253, label %6257

6253:                                             ; preds = %6247
  %6254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6255 = call i32 @fileno(ptr noundef %6254) #13
  %6256 = call i32 @isatty(i32 noundef %6255) #13
  %.not2021 = icmp eq i32 %6256, 0
  br i1 %.not2021, label %6257, label %6258

6257:                                             ; preds = %6253, %6247
  br label %6258

6258:                                             ; preds = %6253, %6257
  %.str.5.sink4508 = phi ptr [ @.str.5, %6257 ], [ @.str.2, %6253 ]
  store i32 %6248, ptr %1329, align 4, !tbaa !5
  %6259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6260 = load i32, ptr @test_count, align 4, !tbaa !5
  %6261 = load i32, ptr %1275, align 4, !tbaa !5
  %6262 = call ptr @s2n_strerror(i32 noundef %6261, ptr noundef nonnull @.str.4) #13
  %6263 = load i32, ptr %1275, align 4, !tbaa !5
  %6264 = call ptr @s2n_strerror_debug(i32 noundef %6263, ptr noundef nonnull @.str.4) #13
  %6265 = load i32, ptr %1329, align 4, !tbaa !5
  %6266 = call ptr @strerror(i32 noundef %6265) #13
  %6267 = load i32, ptr %1329, align 4, !tbaa !5
  %6268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6259, ptr noundef nonnull %.str.5.sink4508, i32 noundef %6260, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 924, ptr noundef %6262, ptr noundef %6264, ptr noundef %6266, i32 noundef %6267) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6269:                                             ; preds = %6242
  %6270 = getelementptr inbounds i8, ptr %112, i64 28
  %6271 = load i32, ptr %6270, align 4, !tbaa !15
  %6272 = getelementptr inbounds i8, ptr %112, i64 24
  %6273 = load i32, ptr %6272, align 8, !tbaa !18
  %6274 = sub i32 %6271, %6273
  %6275 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %112, i32 noundef %6274) #13
  %6276 = load i32, ptr @test_count, align 4, !tbaa !5
  %6277 = add nsw i32 %6276, 1
  store i32 %6277, ptr @test_count, align 4, !tbaa !5
  %6278 = icmp eq ptr %6275, null
  br i1 %6278, label %6279, label %6301

6279:                                             ; preds = %6269
  %6280 = load i32, ptr %1329, align 4, !tbaa !5
  %6281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6282 = call i32 @s2n_print_stacktrace(ptr noundef %6281) #13
  %6283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6284 = trunc nuw i8 %6283 to i1
  br i1 %6284, label %6285, label %6289

6285:                                             ; preds = %6279
  %6286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6287 = call i32 @fileno(ptr noundef %6286) #13
  %6288 = call i32 @isatty(i32 noundef %6287) #13
  %.not2410 = icmp eq i32 %6288, 0
  br i1 %.not2410, label %6289, label %6290

6289:                                             ; preds = %6285, %6279
  br label %6290

6290:                                             ; preds = %6285, %6289
  %.str.5.sink4517 = phi ptr [ @.str.5, %6289 ], [ @.str.2, %6285 ]
  store i32 %6280, ptr %1329, align 4, !tbaa !5
  %6291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6292 = load i32, ptr @test_count, align 4, !tbaa !5
  %6293 = load i32, ptr %1275, align 4, !tbaa !5
  %6294 = call ptr @s2n_strerror(i32 noundef %6293, ptr noundef nonnull @.str.4) #13
  %6295 = load i32, ptr %1275, align 4, !tbaa !5
  %6296 = call ptr @s2n_strerror_debug(i32 noundef %6295, ptr noundef nonnull @.str.4) #13
  %6297 = load i32, ptr %1329, align 4, !tbaa !5
  %6298 = call ptr @strerror(i32 noundef %6297) #13
  %6299 = load i32, ptr %1329, align 4, !tbaa !5
  %6300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6291, ptr noundef nonnull %.str.5.sink4517, i32 noundef %6292, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 927, ptr noundef %6294, ptr noundef %6296, ptr noundef %6298, i32 noundef %6299) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6301:                                             ; preds = %6269
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %113) #13
  %6302 = add nsw i32 %6276, 2
  store i32 %6302, ptr @test_count, align 4, !tbaa !5
  %6303 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %113) #13
  %6304 = icmp eq i32 %6303, -1
  br i1 %6304, label %6305, label %6327

6305:                                             ; preds = %6301
  %6306 = load i32, ptr %1329, align 4, !tbaa !5
  %6307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6308 = call i32 @s2n_print_stacktrace(ptr noundef %6307) #13
  %6309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6310 = trunc nuw i8 %6309 to i1
  br i1 %6310, label %6311, label %6315

6311:                                             ; preds = %6305
  %6312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6313 = call i32 @fileno(ptr noundef %6312) #13
  %6314 = call i32 @isatty(i32 noundef %6313) #13
  %.not2409 = icmp eq i32 %6314, 0
  br i1 %.not2409, label %6315, label %6316

6315:                                             ; preds = %6311, %6305
  br label %6316

6316:                                             ; preds = %6311, %6315
  %.str.5.sink4526 = phi ptr [ @.str.5, %6315 ], [ @.str.2, %6311 ]
  store i32 %6306, ptr %1329, align 4, !tbaa !5
  %6317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6318 = load i32, ptr @test_count, align 4, !tbaa !5
  %6319 = load i32, ptr %1275, align 4, !tbaa !5
  %6320 = call ptr @s2n_strerror(i32 noundef %6319, ptr noundef nonnull @.str.4) #13
  %6321 = load i32, ptr %1275, align 4, !tbaa !5
  %6322 = call ptr @s2n_strerror_debug(i32 noundef %6321, ptr noundef nonnull @.str.4) #13
  %6323 = load i32, ptr %1329, align 4, !tbaa !5
  %6324 = call ptr @strerror(i32 noundef %6323) #13
  %6325 = load i32, ptr %1329, align 4, !tbaa !5
  %6326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6317, ptr noundef nonnull %.str.5.sink4526, i32 noundef %6318, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 930, ptr noundef %6320, ptr noundef %6322, ptr noundef %6324, i32 noundef %6325) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6327:                                             ; preds = %6301
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %114) #13
  store i32 -1, ptr %114, align 4, !tbaa !5
  %6328 = load i32, ptr @test_count, align 4, !tbaa !5
  %6329 = add nsw i32 %6328, 1
  store i32 %6329, ptr @test_count, align 4, !tbaa !5
  %6330 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %110, ptr noundef nonnull %6190, ptr noundef nonnull %6275, i32 noundef %6274, ptr noundef nonnull %114, ptr noundef nonnull %113) #13
  %6331 = call zeroext i1 @s2n_result_is_ok(i32 %6330)
  br i1 %6331, label %6354, label %6332

6332:                                             ; preds = %6327
  %6333 = load i32, ptr %1329, align 4, !tbaa !5
  %6334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6335 = call i32 @s2n_print_stacktrace(ptr noundef %6334) #13
  %6336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6337 = trunc nuw i8 %6336 to i1
  br i1 %6337, label %6338, label %6342

6338:                                             ; preds = %6332
  %6339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6340 = call i32 @fileno(ptr noundef %6339) #13
  %6341 = call i32 @isatty(i32 noundef %6340) #13
  %.not2022 = icmp eq i32 %6341, 0
  br i1 %.not2022, label %6342, label %6343

6342:                                             ; preds = %6338, %6332
  br label %6343

6343:                                             ; preds = %6338, %6342
  %.str.5.sink4535 = phi ptr [ @.str.5, %6342 ], [ @.str.2, %6338 ]
  store i32 %6333, ptr %1329, align 4, !tbaa !5
  %6344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6345 = load i32, ptr @test_count, align 4, !tbaa !5
  %6346 = load i32, ptr %1275, align 4, !tbaa !5
  %6347 = call ptr @s2n_strerror(i32 noundef %6346, ptr noundef nonnull @.str.4) #13
  %6348 = load i32, ptr %1275, align 4, !tbaa !5
  %6349 = call ptr @s2n_strerror_debug(i32 noundef %6348, ptr noundef nonnull @.str.4) #13
  %6350 = load i32, ptr %1329, align 4, !tbaa !5
  %6351 = call ptr @strerror(i32 noundef %6350) #13
  %6352 = load i32, ptr %1329, align 4, !tbaa !5
  %6353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6344, ptr noundef nonnull %.str.5.sink4535, i32 noundef %6345, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 932, ptr noundef %6347, ptr noundef %6349, ptr noundef %6351, i32 noundef %6352) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6354:                                             ; preds = %6327
  %6355 = load i32, ptr @test_count, align 4, !tbaa !5
  %6356 = add nsw i32 %6355, 1
  store i32 %6356, ptr @test_count, align 4, !tbaa !5
  %6357 = getelementptr inbounds i8, ptr %111, i64 9
  %6358 = load i8, ptr %6357, align 1, !tbaa !19
  %6359 = icmp eq i8 %6358, 1
  br i1 %6359, label %6382, label %6360

6360:                                             ; preds = %6354
  %6361 = load i32, ptr %1329, align 4, !tbaa !5
  %6362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6363 = call i32 @s2n_print_stacktrace(ptr noundef %6362) #13
  %6364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6365 = trunc nuw i8 %6364 to i1
  br i1 %6365, label %6366, label %6370

6366:                                             ; preds = %6360
  %6367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6368 = call i32 @fileno(ptr noundef %6367) #13
  %6369 = call i32 @isatty(i32 noundef %6368) #13
  %.not2023 = icmp eq i32 %6369, 0
  br i1 %.not2023, label %6370, label %6371

6370:                                             ; preds = %6366, %6360
  br label %6371

6371:                                             ; preds = %6366, %6370
  %.str.5.sink4544 = phi ptr [ @.str.5, %6370 ], [ @.str.2, %6366 ]
  store i32 %6361, ptr %1329, align 4, !tbaa !5
  %6372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6373 = load i32, ptr @test_count, align 4, !tbaa !5
  %6374 = load i32, ptr %1275, align 4, !tbaa !5
  %6375 = call ptr @s2n_strerror(i32 noundef %6374, ptr noundef nonnull @.str.4) #13
  %6376 = load i32, ptr %1275, align 4, !tbaa !5
  %6377 = call ptr @s2n_strerror_debug(i32 noundef %6376, ptr noundef nonnull @.str.4) #13
  %6378 = load i32, ptr %1329, align 4, !tbaa !5
  %6379 = call ptr @strerror(i32 noundef %6378) #13
  %6380 = load i32, ptr %1329, align 4, !tbaa !5
  %6381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6372, ptr noundef nonnull %.str.5.sink4544, i32 noundef %6373, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 934, ptr noundef %6375, ptr noundef %6377, ptr noundef %6379, i32 noundef %6380) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6382:                                             ; preds = %6354
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %115) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %115, i8 0, i64 40, i1 false)
  %6383 = add nsw i32 %6355, 2
  store i32 %6383, ptr @test_count, align 4, !tbaa !5
  %6384 = call i32 @read_file(ptr noundef nonnull %115, ptr noundef nonnull @.str.74, i32 noundef 12000)
  %6385 = icmp eq i32 %6384, -1
  br i1 %6385, label %6386, label %6408

6386:                                             ; preds = %6382
  %6387 = load i32, ptr %1329, align 4, !tbaa !5
  %6388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6389 = call i32 @s2n_print_stacktrace(ptr noundef %6388) #13
  %6390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6391 = trunc nuw i8 %6390 to i1
  br i1 %6391, label %6392, label %6396

6392:                                             ; preds = %6386
  %6393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6394 = call i32 @fileno(ptr noundef %6393) #13
  %6395 = call i32 @isatty(i32 noundef %6394) #13
  %.not2408 = icmp eq i32 %6395, 0
  br i1 %.not2408, label %6396, label %6397

6396:                                             ; preds = %6392, %6386
  br label %6397

6397:                                             ; preds = %6392, %6396
  %.str.5.sink4553 = phi ptr [ @.str.5, %6396 ], [ @.str.2, %6392 ]
  store i32 %6387, ptr %1329, align 4, !tbaa !5
  %6398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6399 = load i32, ptr @test_count, align 4, !tbaa !5
  %6400 = load i32, ptr %1275, align 4, !tbaa !5
  %6401 = call ptr @s2n_strerror(i32 noundef %6400, ptr noundef nonnull @.str.4) #13
  %6402 = load i32, ptr %1275, align 4, !tbaa !5
  %6403 = call ptr @s2n_strerror_debug(i32 noundef %6402, ptr noundef nonnull @.str.4) #13
  %6404 = load i32, ptr %1329, align 4, !tbaa !5
  %6405 = call ptr @strerror(i32 noundef %6404) #13
  %6406 = load i32, ptr %1329, align 4, !tbaa !5
  %6407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6398, ptr noundef nonnull %.str.5.sink4553, i32 noundef %6399, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 936, ptr noundef %6401, ptr noundef %6403, ptr noundef %6405, i32 noundef %6406) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6408:                                             ; preds = %6382
  %6409 = getelementptr inbounds i8, ptr %115, i64 28
  %6410 = load i32, ptr %6409, align 4, !tbaa !15
  %6411 = getelementptr inbounds i8, ptr %115, i64 24
  %6412 = load i32, ptr %6411, align 8, !tbaa !18
  %6413 = load i32, ptr @test_count, align 4, !tbaa !5
  %6414 = add nsw i32 %6413, 1
  store i32 %6414, ptr @test_count, align 4, !tbaa !5
  %.not2024 = icmp eq i32 %6410, %6412
  br i1 %.not2024, label %6415, label %6437

6415:                                             ; preds = %6408
  %6416 = load i32, ptr %1329, align 4, !tbaa !5
  %6417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6418 = call i32 @s2n_print_stacktrace(ptr noundef %6417) #13
  %6419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6420 = trunc nuw i8 %6419 to i1
  br i1 %6420, label %6421, label %6425

6421:                                             ; preds = %6415
  %6422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6423 = call i32 @fileno(ptr noundef %6422) #13
  %6424 = call i32 @isatty(i32 noundef %6423) #13
  %.not2025 = icmp eq i32 %6424, 0
  br i1 %.not2025, label %6425, label %6426

6425:                                             ; preds = %6421, %6415
  br label %6426

6426:                                             ; preds = %6421, %6425
  %.str.5.sink4562 = phi ptr [ @.str.5, %6425 ], [ @.str.2, %6421 ]
  store i32 %6416, ptr %1329, align 4, !tbaa !5
  %6427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6428 = load i32, ptr @test_count, align 4, !tbaa !5
  %6429 = load i32, ptr %1275, align 4, !tbaa !5
  %6430 = call ptr @s2n_strerror(i32 noundef %6429, ptr noundef nonnull @.str.4) #13
  %6431 = load i32, ptr %1275, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror_debug(i32 noundef %6431, ptr noundef nonnull @.str.4) #13
  %6433 = load i32, ptr %1329, align 4, !tbaa !5
  %6434 = call ptr @strerror(i32 noundef %6433) #13
  %6435 = load i32, ptr %1329, align 4, !tbaa !5
  %6436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6427, ptr noundef nonnull %.str.5.sink4562, i32 noundef %6428, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 938, ptr noundef %6430, ptr noundef %6432, ptr noundef %6434, i32 noundef %6435) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6437:                                             ; preds = %6408
  %6438 = sub i32 %6410, %6412
  %6439 = add nsw i32 %6413, 2
  store i32 %6439, ptr @test_count, align 4, !tbaa !5
  %6440 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %115, i32 noundef %6438) #13
  %6441 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %110, ptr noundef nonnull %6190, ptr noundef %6440, i32 noundef %6438) #13
  %6442 = call zeroext i1 @s2n_result_is_ok(i32 %6441)
  br i1 %6442, label %6465, label %6443

6443:                                             ; preds = %6437
  %6444 = load i32, ptr %1329, align 4, !tbaa !5
  %6445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6446 = call i32 @s2n_print_stacktrace(ptr noundef %6445) #13
  %6447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6448 = trunc nuw i8 %6447 to i1
  br i1 %6448, label %6449, label %6453

6449:                                             ; preds = %6443
  %6450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6451 = call i32 @fileno(ptr noundef %6450) #13
  %6452 = call i32 @isatty(i32 noundef %6451) #13
  %.not2026 = icmp eq i32 %6452, 0
  br i1 %.not2026, label %6453, label %6454

6453:                                             ; preds = %6449, %6443
  br label %6454

6454:                                             ; preds = %6449, %6453
  %.str.5.sink4571 = phi ptr [ @.str.5, %6453 ], [ @.str.2, %6449 ]
  store i32 %6444, ptr %1329, align 4, !tbaa !5
  %6455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6456 = load i32, ptr @test_count, align 4, !tbaa !5
  %6457 = load i32, ptr %1275, align 4, !tbaa !5
  %6458 = call ptr @s2n_strerror(i32 noundef %6457, ptr noundef nonnull @.str.4) #13
  %6459 = load i32, ptr %1275, align 4, !tbaa !5
  %6460 = call ptr @s2n_strerror_debug(i32 noundef %6459, ptr noundef nonnull @.str.4) #13
  %6461 = load i32, ptr %1329, align 4, !tbaa !5
  %6462 = call ptr @strerror(i32 noundef %6461) #13
  %6463 = load i32, ptr %1329, align 4, !tbaa !5
  %6464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6455, ptr noundef nonnull %.str.5.sink4571, i32 noundef %6456, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 940, ptr noundef %6458, ptr noundef %6460, ptr noundef %6462, i32 noundef %6463) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6465:                                             ; preds = %6437
  %6466 = call i32 @s2n_stuffer_free(ptr noundef nonnull %115) #13
  %6467 = call i32 @s2n_connection_free(ptr noundef nonnull %6190) #13
  %6468 = call i32 @s2n_pkey_free(ptr noundef nonnull %113) #13
  %6469 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %110) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %109) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %115) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %114) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %113) #13
  %6470 = call i32 @s2n_stuffer_free(ptr noundef nonnull %112) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %112) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %110) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %109) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %116) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %116) #13
  %6471 = load i32, ptr @test_count, align 4, !tbaa !5
  %6472 = add nsw i32 %6471, 1
  store i32 %6472, ptr @test_count, align 4, !tbaa !5
  %6473 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %116, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %6474 = icmp eq i32 %6473, -1
  br i1 %6474, label %6475, label %6497

6475:                                             ; preds = %6465
  %6476 = load i32, ptr %1329, align 4, !tbaa !5
  %6477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6478 = call i32 @s2n_print_stacktrace(ptr noundef %6477) #13
  %6479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6480 = trunc nuw i8 %6479 to i1
  br i1 %6480, label %6481, label %6485

6481:                                             ; preds = %6475
  %6482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6483 = call i32 @fileno(ptr noundef %6482) #13
  %6484 = call i32 @isatty(i32 noundef %6483) #13
  %.not2407 = icmp eq i32 %6484, 0
  br i1 %.not2407, label %6485, label %6486

6485:                                             ; preds = %6481, %6475
  br label %6486

6486:                                             ; preds = %6481, %6485
  %.str.5.sink4580 = phi ptr [ @.str.5, %6485 ], [ @.str.2, %6481 ]
  store i32 %6476, ptr %1329, align 4, !tbaa !5
  %6487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6488 = load i32, ptr @test_count, align 4, !tbaa !5
  %6489 = load i32, ptr %1275, align 4, !tbaa !5
  %6490 = call ptr @s2n_strerror(i32 noundef %6489, ptr noundef nonnull @.str.4) #13
  %6491 = load i32, ptr %1275, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror_debug(i32 noundef %6491, ptr noundef nonnull @.str.4) #13
  %6493 = load i32, ptr %1329, align 4, !tbaa !5
  %6494 = call ptr @strerror(i32 noundef %6493) #13
  %6495 = load i32, ptr %1329, align 4, !tbaa !5
  %6496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6487, ptr noundef nonnull %.str.5.sink4580, i32 noundef %6488, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 953, ptr noundef %6490, ptr noundef %6492, ptr noundef %6494, i32 noundef %6495) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6497:                                             ; preds = %6465
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %117) #13
  %6498 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %117, ptr noundef nonnull %116, i8 noundef zeroext 1) #13
  %6499 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %6500 = load i32, ptr @test_count, align 4, !tbaa !5
  %6501 = add nsw i32 %6500, 1
  store i32 %6501, ptr @test_count, align 4, !tbaa !5
  %6502 = icmp eq ptr %6499, null
  br i1 %6502, label %6503, label %6525

6503:                                             ; preds = %6497
  %6504 = load i32, ptr %1329, align 4, !tbaa !5
  %6505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6506 = call i32 @s2n_print_stacktrace(ptr noundef %6505) #13
  %6507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6508 = trunc nuw i8 %6507 to i1
  br i1 %6508, label %6509, label %6513

6509:                                             ; preds = %6503
  %6510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6511 = call i32 @fileno(ptr noundef %6510) #13
  %6512 = call i32 @isatty(i32 noundef %6511) #13
  %.not2406 = icmp eq i32 %6512, 0
  br i1 %.not2406, label %6513, label %6514

6513:                                             ; preds = %6509, %6503
  br label %6514

6514:                                             ; preds = %6509, %6513
  %.str.5.sink4589 = phi ptr [ @.str.5, %6513 ], [ @.str.2, %6509 ]
  store i32 %6504, ptr %1329, align 4, !tbaa !5
  %6515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6516 = load i32, ptr @test_count, align 4, !tbaa !5
  %6517 = load i32, ptr %1275, align 4, !tbaa !5
  %6518 = call ptr @s2n_strerror(i32 noundef %6517, ptr noundef nonnull @.str.4) #13
  %6519 = load i32, ptr %1275, align 4, !tbaa !5
  %6520 = call ptr @s2n_strerror_debug(i32 noundef %6519, ptr noundef nonnull @.str.4) #13
  %6521 = load i32, ptr %1329, align 4, !tbaa !5
  %6522 = call ptr @strerror(i32 noundef %6521) #13
  %6523 = load i32, ptr %1329, align 4, !tbaa !5
  %6524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6515, ptr noundef nonnull %.str.5.sink4589, i32 noundef %6516, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 959, ptr noundef %6518, ptr noundef %6520, ptr noundef %6522, i32 noundef %6523) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6525:                                             ; preds = %6497
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %118) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %118, i8 0, i64 16, i1 false)
  %6526 = add nsw i32 %6500, 2
  store i32 %6526, ptr @test_count, align 4, !tbaa !5
  %6527 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %6499, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %118) #13
  %6528 = icmp eq i32 %6527, -1
  br i1 %6528, label %6529, label %6551

6529:                                             ; preds = %6525
  %6530 = load i32, ptr %1329, align 4, !tbaa !5
  %6531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6532 = call i32 @s2n_print_stacktrace(ptr noundef %6531) #13
  %6533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6534 = trunc nuw i8 %6533 to i1
  br i1 %6534, label %6535, label %6539

6535:                                             ; preds = %6529
  %6536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6537 = call i32 @fileno(ptr noundef %6536) #13
  %6538 = call i32 @isatty(i32 noundef %6537) #13
  %.not2405 = icmp eq i32 %6538, 0
  br i1 %.not2405, label %6539, label %6540

6539:                                             ; preds = %6535, %6529
  br label %6540

6540:                                             ; preds = %6535, %6539
  %.str.5.sink4598 = phi ptr [ @.str.5, %6539 ], [ @.str.2, %6535 ]
  store i32 %6530, ptr %1329, align 4, !tbaa !5
  %6541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6542 = load i32, ptr @test_count, align 4, !tbaa !5
  %6543 = load i32, ptr %1275, align 4, !tbaa !5
  %6544 = call ptr @s2n_strerror(i32 noundef %6543, ptr noundef nonnull @.str.4) #13
  %6545 = load i32, ptr %1275, align 4, !tbaa !5
  %6546 = call ptr @s2n_strerror_debug(i32 noundef %6545, ptr noundef nonnull @.str.4) #13
  %6547 = load i32, ptr %1329, align 4, !tbaa !5
  %6548 = call ptr @strerror(i32 noundef %6547) #13
  %6549 = load i32, ptr %1329, align 4, !tbaa !5
  %6550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6541, ptr noundef nonnull %.str.5.sink4598, i32 noundef %6542, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 962, ptr noundef %6544, ptr noundef %6546, ptr noundef %6548, i32 noundef %6549) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6551:                                             ; preds = %6525
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %119) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %119, i8 0, i64 40, i1 false)
  %6552 = load i32, ptr @test_count, align 4, !tbaa !5
  %6553 = add nsw i32 %6552, 1
  store i32 %6553, ptr @test_count, align 4, !tbaa !5
  %6554 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %6499, ptr noundef nonnull @.str.72, ptr noundef nonnull %119) #13
  %6555 = call zeroext i1 @s2n_result_is_ok(i32 %6554)
  br i1 %6555, label %6578, label %6556

6556:                                             ; preds = %6551
  %6557 = load i32, ptr %1329, align 4, !tbaa !5
  %6558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6559 = call i32 @s2n_print_stacktrace(ptr noundef %6558) #13
  %6560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6561 = trunc nuw i8 %6560 to i1
  br i1 %6561, label %6562, label %6566

6562:                                             ; preds = %6556
  %6563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6564 = call i32 @fileno(ptr noundef %6563) #13
  %6565 = call i32 @isatty(i32 noundef %6564) #13
  %.not2027 = icmp eq i32 %6565, 0
  br i1 %.not2027, label %6566, label %6567

6566:                                             ; preds = %6562, %6556
  br label %6567

6567:                                             ; preds = %6562, %6566
  %.str.5.sink4607 = phi ptr [ @.str.5, %6566 ], [ @.str.2, %6562 ]
  store i32 %6557, ptr %1329, align 4, !tbaa !5
  %6568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6569 = load i32, ptr @test_count, align 4, !tbaa !5
  %6570 = load i32, ptr %1275, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror(i32 noundef %6570, ptr noundef nonnull @.str.4) #13
  %6572 = load i32, ptr %1275, align 4, !tbaa !5
  %6573 = call ptr @s2n_strerror_debug(i32 noundef %6572, ptr noundef nonnull @.str.4) #13
  %6574 = load i32, ptr %1329, align 4, !tbaa !5
  %6575 = call ptr @strerror(i32 noundef %6574) #13
  %6576 = load i32, ptr %1329, align 4, !tbaa !5
  %6577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6568, ptr noundef nonnull %.str.5.sink4607, i32 noundef %6569, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 965, ptr noundef %6571, ptr noundef %6573, ptr noundef %6575, i32 noundef %6576) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6578:                                             ; preds = %6551
  %6579 = getelementptr inbounds i8, ptr %119, i64 28
  %6580 = load i32, ptr %6579, align 4, !tbaa !15
  %6581 = getelementptr inbounds i8, ptr %119, i64 24
  %6582 = load i32, ptr %6581, align 8, !tbaa !18
  %6583 = sub i32 %6580, %6582
  %6584 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %119, i32 noundef %6583) #13
  %6585 = load i32, ptr @test_count, align 4, !tbaa !5
  %6586 = add nsw i32 %6585, 1
  store i32 %6586, ptr @test_count, align 4, !tbaa !5
  %6587 = icmp eq ptr %6584, null
  br i1 %6587, label %6588, label %6610

6588:                                             ; preds = %6578
  %6589 = load i32, ptr %1329, align 4, !tbaa !5
  %6590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6591 = call i32 @s2n_print_stacktrace(ptr noundef %6590) #13
  %6592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6593 = trunc nuw i8 %6592 to i1
  br i1 %6593, label %6594, label %6598

6594:                                             ; preds = %6588
  %6595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6596 = call i32 @fileno(ptr noundef %6595) #13
  %6597 = call i32 @isatty(i32 noundef %6596) #13
  %.not2404 = icmp eq i32 %6597, 0
  br i1 %.not2404, label %6598, label %6599

6598:                                             ; preds = %6594, %6588
  br label %6599

6599:                                             ; preds = %6594, %6598
  %.str.5.sink4616 = phi ptr [ @.str.5, %6598 ], [ @.str.2, %6594 ]
  store i32 %6589, ptr %1329, align 4, !tbaa !5
  %6600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6601 = load i32, ptr @test_count, align 4, !tbaa !5
  %6602 = load i32, ptr %1275, align 4, !tbaa !5
  %6603 = call ptr @s2n_strerror(i32 noundef %6602, ptr noundef nonnull @.str.4) #13
  %6604 = load i32, ptr %1275, align 4, !tbaa !5
  %6605 = call ptr @s2n_strerror_debug(i32 noundef %6604, ptr noundef nonnull @.str.4) #13
  %6606 = load i32, ptr %1329, align 4, !tbaa !5
  %6607 = call ptr @strerror(i32 noundef %6606) #13
  %6608 = load i32, ptr %1329, align 4, !tbaa !5
  %6609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6600, ptr noundef nonnull %.str.5.sink4616, i32 noundef %6601, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 968, ptr noundef %6603, ptr noundef %6605, ptr noundef %6607, i32 noundef %6608) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6610:                                             ; preds = %6578
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %120) #13
  %6611 = add nsw i32 %6585, 2
  store i32 %6611, ptr @test_count, align 4, !tbaa !5
  %6612 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %120) #13
  %6613 = icmp eq i32 %6612, -1
  br i1 %6613, label %6614, label %6636

6614:                                             ; preds = %6610
  %6615 = load i32, ptr %1329, align 4, !tbaa !5
  %6616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6617 = call i32 @s2n_print_stacktrace(ptr noundef %6616) #13
  %6618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6619 = trunc nuw i8 %6618 to i1
  br i1 %6619, label %6620, label %6624

6620:                                             ; preds = %6614
  %6621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6622 = call i32 @fileno(ptr noundef %6621) #13
  %6623 = call i32 @isatty(i32 noundef %6622) #13
  %.not2403 = icmp eq i32 %6623, 0
  br i1 %.not2403, label %6624, label %6625

6624:                                             ; preds = %6620, %6614
  br label %6625

6625:                                             ; preds = %6620, %6624
  %.str.5.sink4625 = phi ptr [ @.str.5, %6624 ], [ @.str.2, %6620 ]
  store i32 %6615, ptr %1329, align 4, !tbaa !5
  %6626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6627 = load i32, ptr @test_count, align 4, !tbaa !5
  %6628 = load i32, ptr %1275, align 4, !tbaa !5
  %6629 = call ptr @s2n_strerror(i32 noundef %6628, ptr noundef nonnull @.str.4) #13
  %6630 = load i32, ptr %1275, align 4, !tbaa !5
  %6631 = call ptr @s2n_strerror_debug(i32 noundef %6630, ptr noundef nonnull @.str.4) #13
  %6632 = load i32, ptr %1329, align 4, !tbaa !5
  %6633 = call ptr @strerror(i32 noundef %6632) #13
  %6634 = load i32, ptr %1329, align 4, !tbaa !5
  %6635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6626, ptr noundef nonnull %.str.5.sink4625, i32 noundef %6627, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 971, ptr noundef %6629, ptr noundef %6631, ptr noundef %6633, i32 noundef %6634) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6636:                                             ; preds = %6610
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %121) #13
  store i32 -1, ptr %121, align 4, !tbaa !5
  %6637 = load i32, ptr @test_count, align 4, !tbaa !5
  %6638 = add nsw i32 %6637, 1
  store i32 %6638, ptr @test_count, align 4, !tbaa !5
  %6639 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %117, ptr noundef nonnull %6499, ptr noundef nonnull %6584, i32 noundef %6583, ptr noundef nonnull %121, ptr noundef nonnull %120) #13
  %6640 = call zeroext i1 @s2n_result_is_ok(i32 %6639)
  br i1 %6640, label %6663, label %6641

6641:                                             ; preds = %6636
  %6642 = load i32, ptr %1329, align 4, !tbaa !5
  %6643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6644 = call i32 @s2n_print_stacktrace(ptr noundef %6643) #13
  %6645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6646 = trunc nuw i8 %6645 to i1
  br i1 %6646, label %6647, label %6651

6647:                                             ; preds = %6641
  %6648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6649 = call i32 @fileno(ptr noundef %6648) #13
  %6650 = call i32 @isatty(i32 noundef %6649) #13
  %.not2028 = icmp eq i32 %6650, 0
  br i1 %.not2028, label %6651, label %6652

6651:                                             ; preds = %6647, %6641
  br label %6652

6652:                                             ; preds = %6647, %6651
  %.str.5.sink4634 = phi ptr [ @.str.5, %6651 ], [ @.str.2, %6647 ]
  store i32 %6642, ptr %1329, align 4, !tbaa !5
  %6653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6654 = load i32, ptr @test_count, align 4, !tbaa !5
  %6655 = load i32, ptr %1275, align 4, !tbaa !5
  %6656 = call ptr @s2n_strerror(i32 noundef %6655, ptr noundef nonnull @.str.4) #13
  %6657 = load i32, ptr %1275, align 4, !tbaa !5
  %6658 = call ptr @s2n_strerror_debug(i32 noundef %6657, ptr noundef nonnull @.str.4) #13
  %6659 = load i32, ptr %1329, align 4, !tbaa !5
  %6660 = call ptr @strerror(i32 noundef %6659) #13
  %6661 = load i32, ptr %1329, align 4, !tbaa !5
  %6662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6653, ptr noundef nonnull %.str.5.sink4634, i32 noundef %6654, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 973, ptr noundef %6656, ptr noundef %6658, ptr noundef %6660, i32 noundef %6661) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6663:                                             ; preds = %6636
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %122) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %122, i8 0, i64 40, i1 false)
  %6664 = load i32, ptr @test_count, align 4, !tbaa !5
  %6665 = add nsw i32 %6664, 1
  store i32 %6665, ptr @test_count, align 4, !tbaa !5
  %6666 = call i32 @read_file(ptr noundef nonnull %122, ptr noundef nonnull @.str.78, i32 noundef 12000)
  %6667 = icmp eq i32 %6666, -1
  br i1 %6667, label %6668, label %6690

6668:                                             ; preds = %6663
  %6669 = load i32, ptr %1329, align 4, !tbaa !5
  %6670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6671 = call i32 @s2n_print_stacktrace(ptr noundef %6670) #13
  %6672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6673 = trunc nuw i8 %6672 to i1
  br i1 %6673, label %6674, label %6678

6674:                                             ; preds = %6668
  %6675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6676 = call i32 @fileno(ptr noundef %6675) #13
  %6677 = call i32 @isatty(i32 noundef %6676) #13
  %.not2402 = icmp eq i32 %6677, 0
  br i1 %.not2402, label %6678, label %6679

6678:                                             ; preds = %6674, %6668
  br label %6679

6679:                                             ; preds = %6674, %6678
  %.str.5.sink4643 = phi ptr [ @.str.5, %6678 ], [ @.str.2, %6674 ]
  store i32 %6669, ptr %1329, align 4, !tbaa !5
  %6680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6681 = load i32, ptr @test_count, align 4, !tbaa !5
  %6682 = load i32, ptr %1275, align 4, !tbaa !5
  %6683 = call ptr @s2n_strerror(i32 noundef %6682, ptr noundef nonnull @.str.4) #13
  %6684 = load i32, ptr %1275, align 4, !tbaa !5
  %6685 = call ptr @s2n_strerror_debug(i32 noundef %6684, ptr noundef nonnull @.str.4) #13
  %6686 = load i32, ptr %1329, align 4, !tbaa !5
  %6687 = call ptr @strerror(i32 noundef %6686) #13
  %6688 = load i32, ptr %1329, align 4, !tbaa !5
  %6689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6680, ptr noundef nonnull %.str.5.sink4643, i32 noundef %6681, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 976, ptr noundef %6683, ptr noundef %6685, ptr noundef %6687, i32 noundef %6688) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6690:                                             ; preds = %6663
  %6691 = getelementptr inbounds i8, ptr %122, i64 28
  %6692 = load i32, ptr %6691, align 4, !tbaa !15
  %6693 = getelementptr inbounds i8, ptr %122, i64 24
  %6694 = load i32, ptr %6693, align 8, !tbaa !18
  %6695 = load i32, ptr @test_count, align 4, !tbaa !5
  %6696 = add nsw i32 %6695, 1
  store i32 %6696, ptr @test_count, align 4, !tbaa !5
  %.not2029 = icmp eq i32 %6692, %6694
  br i1 %.not2029, label %6697, label %6719

6697:                                             ; preds = %6690
  %6698 = load i32, ptr %1329, align 4, !tbaa !5
  %6699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6700 = call i32 @s2n_print_stacktrace(ptr noundef %6699) #13
  %6701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6702 = trunc nuw i8 %6701 to i1
  br i1 %6702, label %6703, label %6707

6703:                                             ; preds = %6697
  %6704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6705 = call i32 @fileno(ptr noundef %6704) #13
  %6706 = call i32 @isatty(i32 noundef %6705) #13
  %.not2030 = icmp eq i32 %6706, 0
  br i1 %.not2030, label %6707, label %6708

6707:                                             ; preds = %6703, %6697
  br label %6708

6708:                                             ; preds = %6703, %6707
  %.str.5.sink4652 = phi ptr [ @.str.5, %6707 ], [ @.str.2, %6703 ]
  store i32 %6698, ptr %1329, align 4, !tbaa !5
  %6709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6710 = load i32, ptr @test_count, align 4, !tbaa !5
  %6711 = load i32, ptr %1275, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror(i32 noundef %6711, ptr noundef nonnull @.str.4) #13
  %6713 = load i32, ptr %1275, align 4, !tbaa !5
  %6714 = call ptr @s2n_strerror_debug(i32 noundef %6713, ptr noundef nonnull @.str.4) #13
  %6715 = load i32, ptr %1329, align 4, !tbaa !5
  %6716 = call ptr @strerror(i32 noundef %6715) #13
  %6717 = load i32, ptr %1329, align 4, !tbaa !5
  %6718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6709, ptr noundef nonnull %.str.5.sink4652, i32 noundef %6710, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 978, ptr noundef %6712, ptr noundef %6714, ptr noundef %6716, i32 noundef %6717) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6719:                                             ; preds = %6690
  %6720 = sub i32 %6692, %6694
  %6721 = getelementptr inbounds i8, ptr %6499, i64 8
  %6722 = load ptr, ptr %6721, align 8, !tbaa !22
  %6723 = getelementptr inbounds i8, ptr %6722, i64 80
  %6724 = load ptr, ptr %6723, align 8, !tbaa !47
  %6725 = call i32 @s2n_config_set_wall_clock(ptr noundef %6722, ptr noundef nonnull @fetch_not_expired_ocsp_timestamp, ptr noundef null) #13
  %6726 = load i32, ptr @test_count, align 4, !tbaa !5
  %6727 = add nsw i32 %6726, 1
  store i32 %6727, ptr @test_count, align 4, !tbaa !5
  %6728 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %122, i32 noundef %6720) #13
  %6729 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %117, ptr noundef nonnull %6499, ptr noundef %6728, i32 noundef %6720) #13
  %6730 = call zeroext i1 @s2n_result_is_ok(i32 %6729)
  br i1 %6730, label %6753, label %6731

6731:                                             ; preds = %6719
  %6732 = load i32, ptr %1329, align 4, !tbaa !5
  %6733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6734 = call i32 @s2n_print_stacktrace(ptr noundef %6733) #13
  %6735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6736 = trunc nuw i8 %6735 to i1
  br i1 %6736, label %6737, label %6741

6737:                                             ; preds = %6731
  %6738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6739 = call i32 @fileno(ptr noundef %6738) #13
  %6740 = call i32 @isatty(i32 noundef %6739) #13
  %.not2031 = icmp eq i32 %6740, 0
  br i1 %.not2031, label %6741, label %6742

6741:                                             ; preds = %6737, %6731
  br label %6742

6742:                                             ; preds = %6737, %6741
  %.str.5.sink4661 = phi ptr [ @.str.5, %6741 ], [ @.str.2, %6737 ]
  store i32 %6732, ptr %1329, align 4, !tbaa !5
  %6743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6744 = load i32, ptr @test_count, align 4, !tbaa !5
  %6745 = load i32, ptr %1275, align 4, !tbaa !5
  %6746 = call ptr @s2n_strerror(i32 noundef %6745, ptr noundef nonnull @.str.4) #13
  %6747 = load i32, ptr %1275, align 4, !tbaa !5
  %6748 = call ptr @s2n_strerror_debug(i32 noundef %6747, ptr noundef nonnull @.str.4) #13
  %6749 = load i32, ptr %1329, align 4, !tbaa !5
  %6750 = call ptr @strerror(i32 noundef %6749) #13
  %6751 = load i32, ptr %1329, align 4, !tbaa !5
  %6752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6743, ptr noundef nonnull %.str.5.sink4661, i32 noundef %6744, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 984, ptr noundef %6746, ptr noundef %6748, ptr noundef %6750, i32 noundef %6751) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6753:                                             ; preds = %6719
  %6754 = load i32, ptr @test_count, align 4, !tbaa !5
  %6755 = add nsw i32 %6754, 1
  store i32 %6755, ptr @test_count, align 4, !tbaa !5
  %6756 = getelementptr inbounds i8, ptr %118, i64 9
  %6757 = load i8, ptr %6756, align 1, !tbaa !19
  %6758 = icmp eq i8 %6757, 1
  br i1 %6758, label %6781, label %6759

6759:                                             ; preds = %6753
  %6760 = load i32, ptr %1329, align 4, !tbaa !5
  %6761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6762 = call i32 @s2n_print_stacktrace(ptr noundef %6761) #13
  %6763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6764 = trunc nuw i8 %6763 to i1
  br i1 %6764, label %6765, label %6769

6765:                                             ; preds = %6759
  %6766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6767 = call i32 @fileno(ptr noundef %6766) #13
  %6768 = call i32 @isatty(i32 noundef %6767) #13
  %.not2032 = icmp eq i32 %6768, 0
  br i1 %.not2032, label %6769, label %6770

6769:                                             ; preds = %6765, %6759
  br label %6770

6770:                                             ; preds = %6765, %6769
  %.str.5.sink4670 = phi ptr [ @.str.5, %6769 ], [ @.str.2, %6765 ]
  store i32 %6760, ptr %1329, align 4, !tbaa !5
  %6771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6772 = load i32, ptr @test_count, align 4, !tbaa !5
  %6773 = load i32, ptr %1275, align 4, !tbaa !5
  %6774 = call ptr @s2n_strerror(i32 noundef %6773, ptr noundef nonnull @.str.4) #13
  %6775 = load i32, ptr %1275, align 4, !tbaa !5
  %6776 = call ptr @s2n_strerror_debug(i32 noundef %6775, ptr noundef nonnull @.str.4) #13
  %6777 = load i32, ptr %1329, align 4, !tbaa !5
  %6778 = call ptr @strerror(i32 noundef %6777) #13
  %6779 = load i32, ptr %1329, align 4, !tbaa !5
  %6780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6771, ptr noundef nonnull %.str.5.sink4670, i32 noundef %6772, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 985, ptr noundef %6774, ptr noundef %6776, ptr noundef %6778, i32 noundef %6779) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6781:                                             ; preds = %6753
  %6782 = load ptr, ptr %6721, align 8, !tbaa !22
  %6783 = call i32 @s2n_config_set_wall_clock(ptr noundef %6782, ptr noundef %6724, ptr noundef null) #13
  %6784 = call i32 @s2n_stuffer_free(ptr noundef nonnull %122) #13
  %6785 = call i32 @s2n_connection_free(ptr noundef nonnull %6499) #13
  %6786 = call i32 @s2n_pkey_free(ptr noundef nonnull %120) #13
  %6787 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %117) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %116) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %122) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %121) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %120) #13
  %6788 = call i32 @s2n_stuffer_free(ptr noundef nonnull %119) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %119) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %118) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %117) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %123) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %123) #13
  %6789 = load i32, ptr @test_count, align 4, !tbaa !5
  %6790 = add nsw i32 %6789, 1
  store i32 %6790, ptr @test_count, align 4, !tbaa !5
  %6791 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %6792 = icmp eq ptr %6791, null
  br i1 %6792, label %6793, label %6815

6793:                                             ; preds = %6781
  %6794 = load i32, ptr %1329, align 4, !tbaa !5
  %6795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6796 = call i32 @s2n_print_stacktrace(ptr noundef %6795) #13
  %6797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6798 = trunc nuw i8 %6797 to i1
  br i1 %6798, label %6799, label %6803

6799:                                             ; preds = %6793
  %6800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6801 = call i32 @fileno(ptr noundef %6800) #13
  %6802 = call i32 @isatty(i32 noundef %6801) #13
  %.not2401 = icmp eq i32 %6802, 0
  br i1 %.not2401, label %6803, label %6804

6803:                                             ; preds = %6799, %6793
  br label %6804

6804:                                             ; preds = %6799, %6803
  %.str.5.sink4679 = phi ptr [ @.str.5, %6803 ], [ @.str.2, %6799 ]
  store i32 %6794, ptr %1329, align 4, !tbaa !5
  %6805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6806 = load i32, ptr @test_count, align 4, !tbaa !5
  %6807 = load i32, ptr %1275, align 4, !tbaa !5
  %6808 = call ptr @s2n_strerror(i32 noundef %6807, ptr noundef nonnull @.str.4) #13
  %6809 = load i32, ptr %1275, align 4, !tbaa !5
  %6810 = call ptr @s2n_strerror_debug(i32 noundef %6809, ptr noundef nonnull @.str.4) #13
  %6811 = load i32, ptr %1329, align 4, !tbaa !5
  %6812 = call ptr @strerror(i32 noundef %6811) #13
  %6813 = load i32, ptr %1329, align 4, !tbaa !5
  %6814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6805, ptr noundef nonnull %.str.5.sink4679, i32 noundef %6806, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 1001, ptr noundef %6808, ptr noundef %6810, ptr noundef %6812, i32 noundef %6813) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6815:                                             ; preds = %6781
  %6816 = add nsw i32 %6789, 2
  store i32 %6816, ptr @test_count, align 4, !tbaa !5
  %6817 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.48, ptr noundef nonnull %6791, i64 noundef 12000) #13
  %6818 = icmp eq i32 %6817, -1
  br i1 %6818, label %6819, label %6841

6819:                                             ; preds = %6815
  %6820 = load i32, ptr %1329, align 4, !tbaa !5
  %6821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6822 = call i32 @s2n_print_stacktrace(ptr noundef %6821) #13
  %6823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6824 = trunc nuw i8 %6823 to i1
  br i1 %6824, label %6825, label %6829

6825:                                             ; preds = %6819
  %6826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6827 = call i32 @fileno(ptr noundef %6826) #13
  %6828 = call i32 @isatty(i32 noundef %6827) #13
  %.not2400 = icmp eq i32 %6828, 0
  br i1 %.not2400, label %6829, label %6830

6829:                                             ; preds = %6825, %6819
  br label %6830

6830:                                             ; preds = %6825, %6829
  %.str.5.sink4688 = phi ptr [ @.str.5, %6829 ], [ @.str.2, %6825 ]
  store i32 %6820, ptr %1329, align 4, !tbaa !5
  %6831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6832 = load i32, ptr @test_count, align 4, !tbaa !5
  %6833 = load i32, ptr %1275, align 4, !tbaa !5
  %6834 = call ptr @s2n_strerror(i32 noundef %6833, ptr noundef nonnull @.str.4) #13
  %6835 = load i32, ptr %1275, align 4, !tbaa !5
  %6836 = call ptr @s2n_strerror_debug(i32 noundef %6835, ptr noundef nonnull @.str.4) #13
  %6837 = load i32, ptr %1329, align 4, !tbaa !5
  %6838 = call ptr @strerror(i32 noundef %6837) #13
  %6839 = load i32, ptr %1329, align 4, !tbaa !5
  %6840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6831, ptr noundef nonnull %.str.5.sink4688, i32 noundef %6832, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 1002, ptr noundef %6834, ptr noundef %6836, ptr noundef %6838, i32 noundef %6839) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6841:                                             ; preds = %6815
  %6842 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %123, ptr noundef nonnull %6791) #13
  call void @free(ptr noundef nonnull %6791) #13
  %6843 = load i32, ptr @test_count, align 4, !tbaa !5
  %6844 = add nsw i32 %6843, 1
  store i32 %6844, ptr @test_count, align 4, !tbaa !5
  %6845 = icmp eq i32 %6842, 0
  br i1 %6845, label %6868, label %6846

6846:                                             ; preds = %6841
  %6847 = load i32, ptr %1329, align 4, !tbaa !5
  %6848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6849 = call i32 @s2n_print_stacktrace(ptr noundef %6848) #13
  %6850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6851 = trunc nuw i8 %6850 to i1
  br i1 %6851, label %6852, label %6856

6852:                                             ; preds = %6846
  %6853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6854 = call i32 @fileno(ptr noundef %6853) #13
  %6855 = call i32 @isatty(i32 noundef %6854) #13
  %.not2033 = icmp eq i32 %6855, 0
  br i1 %.not2033, label %6856, label %6857

6856:                                             ; preds = %6852, %6846
  br label %6857

6857:                                             ; preds = %6852, %6856
  %.str.5.sink4697 = phi ptr [ @.str.5, %6856 ], [ @.str.2, %6852 ]
  store i32 %6847, ptr %1329, align 4, !tbaa !5
  %6858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6859 = load i32, ptr @test_count, align 4, !tbaa !5
  %6860 = load i32, ptr %1275, align 4, !tbaa !5
  %6861 = call ptr @s2n_strerror(i32 noundef %6860, ptr noundef nonnull @.str.4) #13
  %6862 = load i32, ptr %1275, align 4, !tbaa !5
  %6863 = call ptr @s2n_strerror_debug(i32 noundef %6862, ptr noundef nonnull @.str.4) #13
  %6864 = load i32, ptr %1329, align 4, !tbaa !5
  %6865 = call ptr @strerror(i32 noundef %6864) #13
  %6866 = load i32, ptr %1329, align 4, !tbaa !5
  %6867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6858, ptr noundef nonnull %.str.5.sink4697, i32 noundef %6859, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 1005, ptr noundef %6861, ptr noundef %6863, ptr noundef %6865, i32 noundef %6866) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6868:                                             ; preds = %6841
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %124) #13
  %6869 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %124, ptr noundef nonnull %123, i8 noundef zeroext 1) #13
  %6870 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %6871 = load i32, ptr @test_count, align 4, !tbaa !5
  %6872 = add nsw i32 %6871, 1
  store i32 %6872, ptr @test_count, align 4, !tbaa !5
  %6873 = icmp eq ptr %6870, null
  br i1 %6873, label %6874, label %6896

6874:                                             ; preds = %6868
  %6875 = load i32, ptr %1329, align 4, !tbaa !5
  %6876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6877 = call i32 @s2n_print_stacktrace(ptr noundef %6876) #13
  %6878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6879 = trunc nuw i8 %6878 to i1
  br i1 %6879, label %6880, label %6884

6880:                                             ; preds = %6874
  %6881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6882 = call i32 @fileno(ptr noundef %6881) #13
  %6883 = call i32 @isatty(i32 noundef %6882) #13
  %.not2399 = icmp eq i32 %6883, 0
  br i1 %.not2399, label %6884, label %6885

6884:                                             ; preds = %6880, %6874
  br label %6885

6885:                                             ; preds = %6880, %6884
  %.str.5.sink4706 = phi ptr [ @.str.5, %6884 ], [ @.str.2, %6880 ]
  store i32 %6875, ptr %1329, align 4, !tbaa !5
  %6886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6887 = load i32, ptr @test_count, align 4, !tbaa !5
  %6888 = load i32, ptr %1275, align 4, !tbaa !5
  %6889 = call ptr @s2n_strerror(i32 noundef %6888, ptr noundef nonnull @.str.4) #13
  %6890 = load i32, ptr %1275, align 4, !tbaa !5
  %6891 = call ptr @s2n_strerror_debug(i32 noundef %6890, ptr noundef nonnull @.str.4) #13
  %6892 = load i32, ptr %1329, align 4, !tbaa !5
  %6893 = call ptr @strerror(i32 noundef %6892) #13
  %6894 = load i32, ptr %1329, align 4, !tbaa !5
  %6895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6886, ptr noundef nonnull %.str.5.sink4706, i32 noundef %6887, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1011, ptr noundef %6889, ptr noundef %6891, ptr noundef %6893, i32 noundef %6894) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6896:                                             ; preds = %6868
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %125) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %125, i8 0, i64 16, i1 false)
  %6897 = add nsw i32 %6871, 2
  store i32 %6897, ptr @test_count, align 4, !tbaa !5
  %6898 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %6870, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %125) #13
  %6899 = icmp eq i32 %6898, -1
  br i1 %6899, label %6900, label %6922

6900:                                             ; preds = %6896
  %6901 = load i32, ptr %1329, align 4, !tbaa !5
  %6902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6903 = call i32 @s2n_print_stacktrace(ptr noundef %6902) #13
  %6904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6905 = trunc nuw i8 %6904 to i1
  br i1 %6905, label %6906, label %6910

6906:                                             ; preds = %6900
  %6907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6908 = call i32 @fileno(ptr noundef %6907) #13
  %6909 = call i32 @isatty(i32 noundef %6908) #13
  %.not2398 = icmp eq i32 %6909, 0
  br i1 %.not2398, label %6910, label %6911

6910:                                             ; preds = %6906, %6900
  br label %6911

6911:                                             ; preds = %6906, %6910
  %.str.5.sink4715 = phi ptr [ @.str.5, %6910 ], [ @.str.2, %6906 ]
  store i32 %6901, ptr %1329, align 4, !tbaa !5
  %6912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = load i32, ptr %1275, align 4, !tbaa !5
  %6915 = call ptr @s2n_strerror(i32 noundef %6914, ptr noundef nonnull @.str.4) #13
  %6916 = load i32, ptr %1275, align 4, !tbaa !5
  %6917 = call ptr @s2n_strerror_debug(i32 noundef %6916, ptr noundef nonnull @.str.4) #13
  %6918 = load i32, ptr %1329, align 4, !tbaa !5
  %6919 = call ptr @strerror(i32 noundef %6918) #13
  %6920 = load i32, ptr %1329, align 4, !tbaa !5
  %6921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6912, ptr noundef nonnull %.str.5.sink4715, i32 noundef %6913, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1014, ptr noundef %6915, ptr noundef %6917, ptr noundef %6919, i32 noundef %6920) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6922:                                             ; preds = %6896
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %126) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %126, i8 0, i64 40, i1 false)
  %6923 = load i32, ptr @test_count, align 4, !tbaa !5
  %6924 = add nsw i32 %6923, 1
  store i32 %6924, ptr @test_count, align 4, !tbaa !5
  %6925 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %6870, ptr noundef nonnull @.str.72, ptr noundef nonnull %126) #13
  %6926 = call zeroext i1 @s2n_result_is_ok(i32 %6925)
  br i1 %6926, label %6949, label %6927

6927:                                             ; preds = %6922
  %6928 = load i32, ptr %1329, align 4, !tbaa !5
  %6929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6930 = call i32 @s2n_print_stacktrace(ptr noundef %6929) #13
  %6931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6932 = trunc nuw i8 %6931 to i1
  br i1 %6932, label %6933, label %6937

6933:                                             ; preds = %6927
  %6934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6935 = call i32 @fileno(ptr noundef %6934) #13
  %6936 = call i32 @isatty(i32 noundef %6935) #13
  %.not2034 = icmp eq i32 %6936, 0
  br i1 %.not2034, label %6937, label %6938

6937:                                             ; preds = %6933, %6927
  br label %6938

6938:                                             ; preds = %6933, %6937
  %.str.5.sink4724 = phi ptr [ @.str.5, %6937 ], [ @.str.2, %6933 ]
  store i32 %6928, ptr %1329, align 4, !tbaa !5
  %6939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6940 = load i32, ptr @test_count, align 4, !tbaa !5
  %6941 = load i32, ptr %1275, align 4, !tbaa !5
  %6942 = call ptr @s2n_strerror(i32 noundef %6941, ptr noundef nonnull @.str.4) #13
  %6943 = load i32, ptr %1275, align 4, !tbaa !5
  %6944 = call ptr @s2n_strerror_debug(i32 noundef %6943, ptr noundef nonnull @.str.4) #13
  %6945 = load i32, ptr %1329, align 4, !tbaa !5
  %6946 = call ptr @strerror(i32 noundef %6945) #13
  %6947 = load i32, ptr %1329, align 4, !tbaa !5
  %6948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6939, ptr noundef nonnull %.str.5.sink4724, i32 noundef %6940, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 1017, ptr noundef %6942, ptr noundef %6944, ptr noundef %6946, i32 noundef %6947) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6949:                                             ; preds = %6922
  %6950 = getelementptr inbounds i8, ptr %126, i64 28
  %6951 = load i32, ptr %6950, align 4, !tbaa !15
  %6952 = getelementptr inbounds i8, ptr %126, i64 24
  %6953 = load i32, ptr %6952, align 8, !tbaa !18
  %6954 = sub i32 %6951, %6953
  %6955 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %126, i32 noundef %6954) #13
  %6956 = load i32, ptr @test_count, align 4, !tbaa !5
  %6957 = add nsw i32 %6956, 1
  store i32 %6957, ptr @test_count, align 4, !tbaa !5
  %6958 = icmp eq ptr %6955, null
  br i1 %6958, label %6959, label %6981

6959:                                             ; preds = %6949
  %6960 = load i32, ptr %1329, align 4, !tbaa !5
  %6961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6962 = call i32 @s2n_print_stacktrace(ptr noundef %6961) #13
  %6963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6964 = trunc nuw i8 %6963 to i1
  br i1 %6964, label %6965, label %6969

6965:                                             ; preds = %6959
  %6966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6967 = call i32 @fileno(ptr noundef %6966) #13
  %6968 = call i32 @isatty(i32 noundef %6967) #13
  %.not2397 = icmp eq i32 %6968, 0
  br i1 %.not2397, label %6969, label %6970

6969:                                             ; preds = %6965, %6959
  br label %6970

6970:                                             ; preds = %6965, %6969
  %.str.5.sink4733 = phi ptr [ @.str.5, %6969 ], [ @.str.2, %6965 ]
  store i32 %6960, ptr %1329, align 4, !tbaa !5
  %6971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6972 = load i32, ptr @test_count, align 4, !tbaa !5
  %6973 = load i32, ptr %1275, align 4, !tbaa !5
  %6974 = call ptr @s2n_strerror(i32 noundef %6973, ptr noundef nonnull @.str.4) #13
  %6975 = load i32, ptr %1275, align 4, !tbaa !5
  %6976 = call ptr @s2n_strerror_debug(i32 noundef %6975, ptr noundef nonnull @.str.4) #13
  %6977 = load i32, ptr %1329, align 4, !tbaa !5
  %6978 = call ptr @strerror(i32 noundef %6977) #13
  %6979 = load i32, ptr %1329, align 4, !tbaa !5
  %6980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6971, ptr noundef nonnull %.str.5.sink4733, i32 noundef %6972, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1020, ptr noundef %6974, ptr noundef %6976, ptr noundef %6978, i32 noundef %6979) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6981:                                             ; preds = %6949
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %127) #13
  %6982 = add nsw i32 %6956, 2
  store i32 %6982, ptr @test_count, align 4, !tbaa !5
  %6983 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %127) #13
  %6984 = icmp eq i32 %6983, -1
  br i1 %6984, label %6985, label %7007

6985:                                             ; preds = %6981
  %6986 = load i32, ptr %1329, align 4, !tbaa !5
  %6987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6988 = call i32 @s2n_print_stacktrace(ptr noundef %6987) #13
  %6989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6990 = trunc nuw i8 %6989 to i1
  br i1 %6990, label %6991, label %6995

6991:                                             ; preds = %6985
  %6992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6993 = call i32 @fileno(ptr noundef %6992) #13
  %6994 = call i32 @isatty(i32 noundef %6993) #13
  %.not2396 = icmp eq i32 %6994, 0
  br i1 %.not2396, label %6995, label %6996

6995:                                             ; preds = %6991, %6985
  br label %6996

6996:                                             ; preds = %6991, %6995
  %.str.5.sink4742 = phi ptr [ @.str.5, %6995 ], [ @.str.2, %6991 ]
  store i32 %6986, ptr %1329, align 4, !tbaa !5
  %6997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6998 = load i32, ptr @test_count, align 4, !tbaa !5
  %6999 = load i32, ptr %1275, align 4, !tbaa !5
  %7000 = call ptr @s2n_strerror(i32 noundef %6999, ptr noundef nonnull @.str.4) #13
  %7001 = load i32, ptr %1275, align 4, !tbaa !5
  %7002 = call ptr @s2n_strerror_debug(i32 noundef %7001, ptr noundef nonnull @.str.4) #13
  %7003 = load i32, ptr %1329, align 4, !tbaa !5
  %7004 = call ptr @strerror(i32 noundef %7003) #13
  %7005 = load i32, ptr %1329, align 4, !tbaa !5
  %7006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6997, ptr noundef nonnull %.str.5.sink4742, i32 noundef %6998, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1023, ptr noundef %7000, ptr noundef %7002, ptr noundef %7004, i32 noundef %7005) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7007:                                             ; preds = %6981
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %128) #13
  store i32 -1, ptr %128, align 4, !tbaa !5
  %7008 = load i32, ptr @test_count, align 4, !tbaa !5
  %7009 = add nsw i32 %7008, 1
  store i32 %7009, ptr @test_count, align 4, !tbaa !5
  %7010 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %124, ptr noundef nonnull %6870, ptr noundef nonnull %6955, i32 noundef %6954, ptr noundef nonnull %128, ptr noundef nonnull %127) #13
  %7011 = call zeroext i1 @s2n_result_is_ok(i32 %7010)
  br i1 %7011, label %7034, label %7012

7012:                                             ; preds = %7007
  %7013 = load i32, ptr %1329, align 4, !tbaa !5
  %7014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7015 = call i32 @s2n_print_stacktrace(ptr noundef %7014) #13
  %7016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7017 = trunc nuw i8 %7016 to i1
  br i1 %7017, label %7018, label %7022

7018:                                             ; preds = %7012
  %7019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7020 = call i32 @fileno(ptr noundef %7019) #13
  %7021 = call i32 @isatty(i32 noundef %7020) #13
  %.not2035 = icmp eq i32 %7021, 0
  br i1 %.not2035, label %7022, label %7023

7022:                                             ; preds = %7018, %7012
  br label %7023

7023:                                             ; preds = %7018, %7022
  %.str.5.sink4751 = phi ptr [ @.str.5, %7022 ], [ @.str.2, %7018 ]
  store i32 %7013, ptr %1329, align 4, !tbaa !5
  %7024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7025 = load i32, ptr @test_count, align 4, !tbaa !5
  %7026 = load i32, ptr %1275, align 4, !tbaa !5
  %7027 = call ptr @s2n_strerror(i32 noundef %7026, ptr noundef nonnull @.str.4) #13
  %7028 = load i32, ptr %1275, align 4, !tbaa !5
  %7029 = call ptr @s2n_strerror_debug(i32 noundef %7028, ptr noundef nonnull @.str.4) #13
  %7030 = load i32, ptr %1329, align 4, !tbaa !5
  %7031 = call ptr @strerror(i32 noundef %7030) #13
  %7032 = load i32, ptr %1329, align 4, !tbaa !5
  %7033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7024, ptr noundef nonnull %.str.5.sink4751, i32 noundef %7025, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1025, ptr noundef %7027, ptr noundef %7029, ptr noundef %7031, i32 noundef %7032) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7034:                                             ; preds = %7007
  %7035 = call i32 @s2n_pkey_free(ptr noundef nonnull %127) #13
  %7036 = load i32, ptr @test_count, align 4, !tbaa !5
  %7037 = add nsw i32 %7036, 1
  store i32 %7037, ptr @test_count, align 4, !tbaa !5
  %7038 = getelementptr inbounds i8, ptr %125, i64 9
  %7039 = load i8, ptr %7038, align 1, !tbaa !19
  %7040 = icmp eq i8 %7039, 1
  br i1 %7040, label %7063, label %7041

7041:                                             ; preds = %7034
  %7042 = load i32, ptr %1329, align 4, !tbaa !5
  %7043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7044 = call i32 @s2n_print_stacktrace(ptr noundef %7043) #13
  %7045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7046 = trunc nuw i8 %7045 to i1
  br i1 %7046, label %7047, label %7051

7047:                                             ; preds = %7041
  %7048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7049 = call i32 @fileno(ptr noundef %7048) #13
  %7050 = call i32 @isatty(i32 noundef %7049) #13
  %.not2036 = icmp eq i32 %7050, 0
  br i1 %.not2036, label %7051, label %7052

7051:                                             ; preds = %7047, %7041
  br label %7052

7052:                                             ; preds = %7047, %7051
  %.str.5.sink4760 = phi ptr [ @.str.5, %7051 ], [ @.str.2, %7047 ]
  store i32 %7042, ptr %1329, align 4, !tbaa !5
  %7053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7054 = load i32, ptr @test_count, align 4, !tbaa !5
  %7055 = load i32, ptr %1275, align 4, !tbaa !5
  %7056 = call ptr @s2n_strerror(i32 noundef %7055, ptr noundef nonnull @.str.4) #13
  %7057 = load i32, ptr %1275, align 4, !tbaa !5
  %7058 = call ptr @s2n_strerror_debug(i32 noundef %7057, ptr noundef nonnull @.str.4) #13
  %7059 = load i32, ptr %1329, align 4, !tbaa !5
  %7060 = call ptr @strerror(i32 noundef %7059) #13
  %7061 = load i32, ptr %1329, align 4, !tbaa !5
  %7062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7053, ptr noundef nonnull %.str.5.sink4760, i32 noundef %7054, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1029, ptr noundef %7056, ptr noundef %7058, ptr noundef %7060, i32 noundef %7061) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7063:                                             ; preds = %7034
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %129) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %129, i8 0, i64 40, i1 false)
  %7064 = add nsw i32 %7036, 2
  store i32 %7064, ptr @test_count, align 4, !tbaa !5
  %7065 = call i32 @read_file(ptr noundef nonnull %129, ptr noundef nonnull @.str.74, i32 noundef 12000)
  %7066 = icmp eq i32 %7065, -1
  br i1 %7066, label %7067, label %7089

7067:                                             ; preds = %7063
  %7068 = load i32, ptr %1329, align 4, !tbaa !5
  %7069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7070 = call i32 @s2n_print_stacktrace(ptr noundef %7069) #13
  %7071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7072 = trunc nuw i8 %7071 to i1
  br i1 %7072, label %7073, label %7077

7073:                                             ; preds = %7067
  %7074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7075 = call i32 @fileno(ptr noundef %7074) #13
  %7076 = call i32 @isatty(i32 noundef %7075) #13
  %.not2395 = icmp eq i32 %7076, 0
  br i1 %.not2395, label %7077, label %7078

7077:                                             ; preds = %7073, %7067
  br label %7078

7078:                                             ; preds = %7073, %7077
  %.str.5.sink4769 = phi ptr [ @.str.5, %7077 ], [ @.str.2, %7073 ]
  store i32 %7068, ptr %1329, align 4, !tbaa !5
  %7079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7080 = load i32, ptr @test_count, align 4, !tbaa !5
  %7081 = load i32, ptr %1275, align 4, !tbaa !5
  %7082 = call ptr @s2n_strerror(i32 noundef %7081, ptr noundef nonnull @.str.4) #13
  %7083 = load i32, ptr %1275, align 4, !tbaa !5
  %7084 = call ptr @s2n_strerror_debug(i32 noundef %7083, ptr noundef nonnull @.str.4) #13
  %7085 = load i32, ptr %1329, align 4, !tbaa !5
  %7086 = call ptr @strerror(i32 noundef %7085) #13
  %7087 = load i32, ptr %1329, align 4, !tbaa !5
  %7088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7079, ptr noundef nonnull %.str.5.sink4769, i32 noundef %7080, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 1031, ptr noundef %7082, ptr noundef %7084, ptr noundef %7086, i32 noundef %7087) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7089:                                             ; preds = %7063
  %7090 = getelementptr inbounds i8, ptr %129, i64 28
  %7091 = load i32, ptr %7090, align 4, !tbaa !15
  %7092 = getelementptr inbounds i8, ptr %129, i64 24
  %7093 = load i32, ptr %7092, align 8, !tbaa !18
  %7094 = load i32, ptr @test_count, align 4, !tbaa !5
  %7095 = add nsw i32 %7094, 1
  store i32 %7095, ptr @test_count, align 4, !tbaa !5
  %.not2037 = icmp eq i32 %7091, %7093
  br i1 %.not2037, label %7096, label %7118

7096:                                             ; preds = %7089
  %7097 = load i32, ptr %1329, align 4, !tbaa !5
  %7098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7099 = call i32 @s2n_print_stacktrace(ptr noundef %7098) #13
  %7100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7101 = trunc nuw i8 %7100 to i1
  br i1 %7101, label %7102, label %7106

7102:                                             ; preds = %7096
  %7103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7104 = call i32 @fileno(ptr noundef %7103) #13
  %7105 = call i32 @isatty(i32 noundef %7104) #13
  %.not2038 = icmp eq i32 %7105, 0
  br i1 %.not2038, label %7106, label %7107

7106:                                             ; preds = %7102, %7096
  br label %7107

7107:                                             ; preds = %7102, %7106
  %.str.5.sink4778 = phi ptr [ @.str.5, %7106 ], [ @.str.2, %7102 ]
  store i32 %7097, ptr %1329, align 4, !tbaa !5
  %7108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7109 = load i32, ptr @test_count, align 4, !tbaa !5
  %7110 = load i32, ptr %1275, align 4, !tbaa !5
  %7111 = call ptr @s2n_strerror(i32 noundef %7110, ptr noundef nonnull @.str.4) #13
  %7112 = load i32, ptr %1275, align 4, !tbaa !5
  %7113 = call ptr @s2n_strerror_debug(i32 noundef %7112, ptr noundef nonnull @.str.4) #13
  %7114 = load i32, ptr %1329, align 4, !tbaa !5
  %7115 = call ptr @strerror(i32 noundef %7114) #13
  %7116 = load i32, ptr %1329, align 4, !tbaa !5
  %7117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7108, ptr noundef nonnull %.str.5.sink4778, i32 noundef %7109, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1033, ptr noundef %7111, ptr noundef %7113, ptr noundef %7115, i32 noundef %7116) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7118:                                             ; preds = %7089
  %7119 = sub i32 %7091, %7093
  %7120 = add nsw i32 %7094, 2
  store i32 %7120, ptr @test_count, align 4, !tbaa !5
  %7121 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %129, i32 noundef %7119) #13
  %7122 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %124, ptr noundef nonnull %6870, ptr noundef %7121, i32 noundef %7119) #13
  %7123 = call zeroext i1 @s2n_result_is_ok(i32 %7122)
  br i1 %7123, label %7146, label %7124

7124:                                             ; preds = %7118
  %7125 = load i32, ptr %1329, align 4, !tbaa !5
  %7126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7127 = call i32 @s2n_print_stacktrace(ptr noundef %7126) #13
  %7128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7129 = trunc nuw i8 %7128 to i1
  br i1 %7129, label %7130, label %7134

7130:                                             ; preds = %7124
  %7131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7132 = call i32 @fileno(ptr noundef %7131) #13
  %7133 = call i32 @isatty(i32 noundef %7132) #13
  %.not2039 = icmp eq i32 %7133, 0
  br i1 %.not2039, label %7134, label %7135

7134:                                             ; preds = %7130, %7124
  br label %7135

7135:                                             ; preds = %7130, %7134
  %.str.5.sink4787 = phi ptr [ @.str.5, %7134 ], [ @.str.2, %7130 ]
  store i32 %7125, ptr %1329, align 4, !tbaa !5
  %7136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7137 = load i32, ptr @test_count, align 4, !tbaa !5
  %7138 = load i32, ptr %1275, align 4, !tbaa !5
  %7139 = call ptr @s2n_strerror(i32 noundef %7138, ptr noundef nonnull @.str.4) #13
  %7140 = load i32, ptr %1275, align 4, !tbaa !5
  %7141 = call ptr @s2n_strerror_debug(i32 noundef %7140, ptr noundef nonnull @.str.4) #13
  %7142 = load i32, ptr %1329, align 4, !tbaa !5
  %7143 = call ptr @strerror(i32 noundef %7142) #13
  %7144 = load i32, ptr %1329, align 4, !tbaa !5
  %7145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7136, ptr noundef nonnull %.str.5.sink4787, i32 noundef %7137, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 1035, ptr noundef %7139, ptr noundef %7141, ptr noundef %7143, i32 noundef %7144) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7146:                                             ; preds = %7118
  %7147 = call i32 @s2n_stuffer_free(ptr noundef nonnull %129) #13
  %7148 = call i32 @s2n_connection_free(ptr noundef nonnull %6870) #13
  %7149 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %124) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %123) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %129) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %128) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %127) #13
  %7150 = call i32 @s2n_stuffer_free(ptr noundef nonnull %126) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %126) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %125) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %124) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %123) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %130) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %130) #13
  %7151 = load i32, ptr @test_count, align 4, !tbaa !5
  %7152 = add nsw i32 %7151, 1
  store i32 %7152, ptr @test_count, align 4, !tbaa !5
  %7153 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %130, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %7154 = icmp eq i32 %7153, -1
  br i1 %7154, label %7155, label %7177

7155:                                             ; preds = %7146
  %7156 = load i32, ptr %1329, align 4, !tbaa !5
  %7157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7158 = call i32 @s2n_print_stacktrace(ptr noundef %7157) #13
  %7159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7160 = trunc nuw i8 %7159 to i1
  br i1 %7160, label %7161, label %7165

7161:                                             ; preds = %7155
  %7162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7163 = call i32 @fileno(ptr noundef %7162) #13
  %7164 = call i32 @isatty(i32 noundef %7163) #13
  %.not2394 = icmp eq i32 %7164, 0
  br i1 %.not2394, label %7165, label %7166

7165:                                             ; preds = %7161, %7155
  br label %7166

7166:                                             ; preds = %7161, %7165
  %.str.5.sink4796 = phi ptr [ @.str.5, %7165 ], [ @.str.2, %7161 ]
  store i32 %7156, ptr %1329, align 4, !tbaa !5
  %7167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7168 = load i32, ptr @test_count, align 4, !tbaa !5
  %7169 = load i32, ptr %1275, align 4, !tbaa !5
  %7170 = call ptr @s2n_strerror(i32 noundef %7169, ptr noundef nonnull @.str.4) #13
  %7171 = load i32, ptr %1275, align 4, !tbaa !5
  %7172 = call ptr @s2n_strerror_debug(i32 noundef %7171, ptr noundef nonnull @.str.4) #13
  %7173 = load i32, ptr %1329, align 4, !tbaa !5
  %7174 = call ptr @strerror(i32 noundef %7173) #13
  %7175 = load i32, ptr %1329, align 4, !tbaa !5
  %7176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7167, ptr noundef nonnull %.str.5.sink4796, i32 noundef %7168, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1052, ptr noundef %7170, ptr noundef %7172, ptr noundef %7174, i32 noundef %7175) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7177:                                             ; preds = %7146
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %131) #13
  %7178 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %131, ptr noundef nonnull %130, i8 noundef zeroext 1) #13
  %7179 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %7180 = load i32, ptr @test_count, align 4, !tbaa !5
  %7181 = add nsw i32 %7180, 1
  store i32 %7181, ptr @test_count, align 4, !tbaa !5
  %7182 = icmp eq ptr %7179, null
  br i1 %7182, label %7183, label %7205

7183:                                             ; preds = %7177
  %7184 = load i32, ptr %1329, align 4, !tbaa !5
  %7185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7186 = call i32 @s2n_print_stacktrace(ptr noundef %7185) #13
  %7187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7188 = trunc nuw i8 %7187 to i1
  br i1 %7188, label %7189, label %7193

7189:                                             ; preds = %7183
  %7190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7191 = call i32 @fileno(ptr noundef %7190) #13
  %7192 = call i32 @isatty(i32 noundef %7191) #13
  %.not2393 = icmp eq i32 %7192, 0
  br i1 %.not2393, label %7193, label %7194

7193:                                             ; preds = %7189, %7183
  br label %7194

7194:                                             ; preds = %7189, %7193
  %.str.5.sink4805 = phi ptr [ @.str.5, %7193 ], [ @.str.2, %7189 ]
  store i32 %7184, ptr %1329, align 4, !tbaa !5
  %7195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7196 = load i32, ptr @test_count, align 4, !tbaa !5
  %7197 = load i32, ptr %1275, align 4, !tbaa !5
  %7198 = call ptr @s2n_strerror(i32 noundef %7197, ptr noundef nonnull @.str.4) #13
  %7199 = load i32, ptr %1275, align 4, !tbaa !5
  %7200 = call ptr @s2n_strerror_debug(i32 noundef %7199, ptr noundef nonnull @.str.4) #13
  %7201 = load i32, ptr %1329, align 4, !tbaa !5
  %7202 = call ptr @strerror(i32 noundef %7201) #13
  %7203 = load i32, ptr %1329, align 4, !tbaa !5
  %7204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7195, ptr noundef nonnull %.str.5.sink4805, i32 noundef %7196, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1058, ptr noundef %7198, ptr noundef %7200, ptr noundef %7202, i32 noundef %7203) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7205:                                             ; preds = %7177
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %132) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %132, i8 0, i64 16, i1 false)
  %7206 = add nsw i32 %7180, 2
  store i32 %7206, ptr @test_count, align 4, !tbaa !5
  %7207 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %7179, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %132) #13
  %7208 = icmp eq i32 %7207, -1
  br i1 %7208, label %7209, label %7231

7209:                                             ; preds = %7205
  %7210 = load i32, ptr %1329, align 4, !tbaa !5
  %7211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7212 = call i32 @s2n_print_stacktrace(ptr noundef %7211) #13
  %7213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7214 = trunc nuw i8 %7213 to i1
  br i1 %7214, label %7215, label %7219

7215:                                             ; preds = %7209
  %7216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7217 = call i32 @fileno(ptr noundef %7216) #13
  %7218 = call i32 @isatty(i32 noundef %7217) #13
  %.not2392 = icmp eq i32 %7218, 0
  br i1 %.not2392, label %7219, label %7220

7219:                                             ; preds = %7215, %7209
  br label %7220

7220:                                             ; preds = %7215, %7219
  %.str.5.sink4814 = phi ptr [ @.str.5, %7219 ], [ @.str.2, %7215 ]
  store i32 %7210, ptr %1329, align 4, !tbaa !5
  %7221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7222 = load i32, ptr @test_count, align 4, !tbaa !5
  %7223 = load i32, ptr %1275, align 4, !tbaa !5
  %7224 = call ptr @s2n_strerror(i32 noundef %7223, ptr noundef nonnull @.str.4) #13
  %7225 = load i32, ptr %1275, align 4, !tbaa !5
  %7226 = call ptr @s2n_strerror_debug(i32 noundef %7225, ptr noundef nonnull @.str.4) #13
  %7227 = load i32, ptr %1329, align 4, !tbaa !5
  %7228 = call ptr @strerror(i32 noundef %7227) #13
  %7229 = load i32, ptr %1329, align 4, !tbaa !5
  %7230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7221, ptr noundef nonnull %.str.5.sink4814, i32 noundef %7222, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1061, ptr noundef %7224, ptr noundef %7226, ptr noundef %7228, i32 noundef %7229) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7231:                                             ; preds = %7205
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %133) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %133, i8 0, i64 40, i1 false)
  %7232 = load i32, ptr @test_count, align 4, !tbaa !5
  %7233 = add nsw i32 %7232, 1
  store i32 %7233, ptr @test_count, align 4, !tbaa !5
  %7234 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %7179, ptr noundef nonnull @.str.72, ptr noundef nonnull %133) #13
  %7235 = call zeroext i1 @s2n_result_is_ok(i32 %7234)
  br i1 %7235, label %7258, label %7236

7236:                                             ; preds = %7231
  %7237 = load i32, ptr %1329, align 4, !tbaa !5
  %7238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7239 = call i32 @s2n_print_stacktrace(ptr noundef %7238) #13
  %7240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7241 = trunc nuw i8 %7240 to i1
  br i1 %7241, label %7242, label %7246

7242:                                             ; preds = %7236
  %7243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7244 = call i32 @fileno(ptr noundef %7243) #13
  %7245 = call i32 @isatty(i32 noundef %7244) #13
  %.not2040 = icmp eq i32 %7245, 0
  br i1 %.not2040, label %7246, label %7247

7246:                                             ; preds = %7242, %7236
  br label %7247

7247:                                             ; preds = %7242, %7246
  %.str.5.sink4823 = phi ptr [ @.str.5, %7246 ], [ @.str.2, %7242 ]
  store i32 %7237, ptr %1329, align 4, !tbaa !5
  %7248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7249 = load i32, ptr @test_count, align 4, !tbaa !5
  %7250 = load i32, ptr %1275, align 4, !tbaa !5
  %7251 = call ptr @s2n_strerror(i32 noundef %7250, ptr noundef nonnull @.str.4) #13
  %7252 = load i32, ptr %1275, align 4, !tbaa !5
  %7253 = call ptr @s2n_strerror_debug(i32 noundef %7252, ptr noundef nonnull @.str.4) #13
  %7254 = load i32, ptr %1329, align 4, !tbaa !5
  %7255 = call ptr @strerror(i32 noundef %7254) #13
  %7256 = load i32, ptr %1329, align 4, !tbaa !5
  %7257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7248, ptr noundef nonnull %.str.5.sink4823, i32 noundef %7249, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 1064, ptr noundef %7251, ptr noundef %7253, ptr noundef %7255, i32 noundef %7256) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7258:                                             ; preds = %7231
  %7259 = getelementptr inbounds i8, ptr %133, i64 28
  %7260 = load i32, ptr %7259, align 4, !tbaa !15
  %7261 = getelementptr inbounds i8, ptr %133, i64 24
  %7262 = load i32, ptr %7261, align 8, !tbaa !18
  %7263 = sub i32 %7260, %7262
  %7264 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %133, i32 noundef %7263) #13
  %7265 = load i32, ptr @test_count, align 4, !tbaa !5
  %7266 = add nsw i32 %7265, 1
  store i32 %7266, ptr @test_count, align 4, !tbaa !5
  %7267 = icmp eq ptr %7264, null
  br i1 %7267, label %7268, label %7290

7268:                                             ; preds = %7258
  %7269 = load i32, ptr %1329, align 4, !tbaa !5
  %7270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7271 = call i32 @s2n_print_stacktrace(ptr noundef %7270) #13
  %7272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7273 = trunc nuw i8 %7272 to i1
  br i1 %7273, label %7274, label %7278

7274:                                             ; preds = %7268
  %7275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7276 = call i32 @fileno(ptr noundef %7275) #13
  %7277 = call i32 @isatty(i32 noundef %7276) #13
  %.not2391 = icmp eq i32 %7277, 0
  br i1 %.not2391, label %7278, label %7279

7278:                                             ; preds = %7274, %7268
  br label %7279

7279:                                             ; preds = %7274, %7278
  %.str.5.sink4832 = phi ptr [ @.str.5, %7278 ], [ @.str.2, %7274 ]
  store i32 %7269, ptr %1329, align 4, !tbaa !5
  %7280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7281 = load i32, ptr @test_count, align 4, !tbaa !5
  %7282 = load i32, ptr %1275, align 4, !tbaa !5
  %7283 = call ptr @s2n_strerror(i32 noundef %7282, ptr noundef nonnull @.str.4) #13
  %7284 = load i32, ptr %1275, align 4, !tbaa !5
  %7285 = call ptr @s2n_strerror_debug(i32 noundef %7284, ptr noundef nonnull @.str.4) #13
  %7286 = load i32, ptr %1329, align 4, !tbaa !5
  %7287 = call ptr @strerror(i32 noundef %7286) #13
  %7288 = load i32, ptr %1329, align 4, !tbaa !5
  %7289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7280, ptr noundef nonnull %.str.5.sink4832, i32 noundef %7281, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1067, ptr noundef %7283, ptr noundef %7285, ptr noundef %7287, i32 noundef %7288) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7290:                                             ; preds = %7258
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %134) #13
  %7291 = add nsw i32 %7265, 2
  store i32 %7291, ptr @test_count, align 4, !tbaa !5
  %7292 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %134) #13
  %7293 = icmp eq i32 %7292, -1
  br i1 %7293, label %7294, label %7316

7294:                                             ; preds = %7290
  %7295 = load i32, ptr %1329, align 4, !tbaa !5
  %7296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7297 = call i32 @s2n_print_stacktrace(ptr noundef %7296) #13
  %7298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7299 = trunc nuw i8 %7298 to i1
  br i1 %7299, label %7300, label %7304

7300:                                             ; preds = %7294
  %7301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7302 = call i32 @fileno(ptr noundef %7301) #13
  %7303 = call i32 @isatty(i32 noundef %7302) #13
  %.not2390 = icmp eq i32 %7303, 0
  br i1 %.not2390, label %7304, label %7305

7304:                                             ; preds = %7300, %7294
  br label %7305

7305:                                             ; preds = %7300, %7304
  %.str.5.sink4841 = phi ptr [ @.str.5, %7304 ], [ @.str.2, %7300 ]
  store i32 %7295, ptr %1329, align 4, !tbaa !5
  %7306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7307 = load i32, ptr @test_count, align 4, !tbaa !5
  %7308 = load i32, ptr %1275, align 4, !tbaa !5
  %7309 = call ptr @s2n_strerror(i32 noundef %7308, ptr noundef nonnull @.str.4) #13
  %7310 = load i32, ptr %1275, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror_debug(i32 noundef %7310, ptr noundef nonnull @.str.4) #13
  %7312 = load i32, ptr %1329, align 4, !tbaa !5
  %7313 = call ptr @strerror(i32 noundef %7312) #13
  %7314 = load i32, ptr %1329, align 4, !tbaa !5
  %7315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7306, ptr noundef nonnull %.str.5.sink4841, i32 noundef %7307, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1070, ptr noundef %7309, ptr noundef %7311, ptr noundef %7313, i32 noundef %7314) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7316:                                             ; preds = %7290
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %135) #13
  store i32 -1, ptr %135, align 4, !tbaa !5
  %7317 = load i32, ptr @test_count, align 4, !tbaa !5
  %7318 = add nsw i32 %7317, 1
  store i32 %7318, ptr @test_count, align 4, !tbaa !5
  %7319 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %131, ptr noundef nonnull %7179, ptr noundef nonnull %7264, i32 noundef %7263, ptr noundef nonnull %135, ptr noundef nonnull %134) #13
  %7320 = call zeroext i1 @s2n_result_is_ok(i32 %7319)
  br i1 %7320, label %7343, label %7321

7321:                                             ; preds = %7316
  %7322 = load i32, ptr %1329, align 4, !tbaa !5
  %7323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7324 = call i32 @s2n_print_stacktrace(ptr noundef %7323) #13
  %7325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7326 = trunc nuw i8 %7325 to i1
  br i1 %7326, label %7327, label %7331

7327:                                             ; preds = %7321
  %7328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7329 = call i32 @fileno(ptr noundef %7328) #13
  %7330 = call i32 @isatty(i32 noundef %7329) #13
  %.not2041 = icmp eq i32 %7330, 0
  br i1 %.not2041, label %7331, label %7332

7331:                                             ; preds = %7327, %7321
  br label %7332

7332:                                             ; preds = %7327, %7331
  %.str.5.sink4850 = phi ptr [ @.str.5, %7331 ], [ @.str.2, %7327 ]
  store i32 %7322, ptr %1329, align 4, !tbaa !5
  %7333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7334 = load i32, ptr @test_count, align 4, !tbaa !5
  %7335 = load i32, ptr %1275, align 4, !tbaa !5
  %7336 = call ptr @s2n_strerror(i32 noundef %7335, ptr noundef nonnull @.str.4) #13
  %7337 = load i32, ptr %1275, align 4, !tbaa !5
  %7338 = call ptr @s2n_strerror_debug(i32 noundef %7337, ptr noundef nonnull @.str.4) #13
  %7339 = load i32, ptr %1329, align 4, !tbaa !5
  %7340 = call ptr @strerror(i32 noundef %7339) #13
  %7341 = load i32, ptr %1329, align 4, !tbaa !5
  %7342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7333, ptr noundef nonnull %.str.5.sink4850, i32 noundef %7334, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1072, ptr noundef %7336, ptr noundef %7338, ptr noundef %7340, i32 noundef %7341) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7343:                                             ; preds = %7316
  %7344 = load i32, ptr @test_count, align 4, !tbaa !5
  %7345 = add nsw i32 %7344, 1
  store i32 %7345, ptr @test_count, align 4, !tbaa !5
  %7346 = getelementptr inbounds i8, ptr %132, i64 9
  %7347 = load i8, ptr %7346, align 1, !tbaa !19
  %7348 = icmp eq i8 %7347, 1
  br i1 %7348, label %7371, label %7349

7349:                                             ; preds = %7343
  %7350 = load i32, ptr %1329, align 4, !tbaa !5
  %7351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7352 = call i32 @s2n_print_stacktrace(ptr noundef %7351) #13
  %7353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7354 = trunc nuw i8 %7353 to i1
  br i1 %7354, label %7355, label %7359

7355:                                             ; preds = %7349
  %7356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7357 = call i32 @fileno(ptr noundef %7356) #13
  %7358 = call i32 @isatty(i32 noundef %7357) #13
  %.not2042 = icmp eq i32 %7358, 0
  br i1 %.not2042, label %7359, label %7360

7359:                                             ; preds = %7355, %7349
  br label %7360

7360:                                             ; preds = %7355, %7359
  %.str.5.sink4859 = phi ptr [ @.str.5, %7359 ], [ @.str.2, %7355 ]
  store i32 %7350, ptr %1329, align 4, !tbaa !5
  %7361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7362 = load i32, ptr @test_count, align 4, !tbaa !5
  %7363 = load i32, ptr %1275, align 4, !tbaa !5
  %7364 = call ptr @s2n_strerror(i32 noundef %7363, ptr noundef nonnull @.str.4) #13
  %7365 = load i32, ptr %1275, align 4, !tbaa !5
  %7366 = call ptr @s2n_strerror_debug(i32 noundef %7365, ptr noundef nonnull @.str.4) #13
  %7367 = load i32, ptr %1329, align 4, !tbaa !5
  %7368 = call ptr @strerror(i32 noundef %7367) #13
  %7369 = load i32, ptr %1329, align 4, !tbaa !5
  %7370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7361, ptr noundef nonnull %.str.5.sink4859, i32 noundef %7362, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1074, ptr noundef %7364, ptr noundef %7366, ptr noundef %7368, i32 noundef %7369) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7371:                                             ; preds = %7343
  %7372 = getelementptr inbounds i8, ptr %7179, i64 8
  %7373 = load ptr, ptr %7372, align 8, !tbaa !22
  %7374 = getelementptr inbounds i8, ptr %7373, i64 80
  %7375 = load ptr, ptr %7374, align 8, !tbaa !47
  %7376 = call i32 @s2n_config_set_wall_clock(ptr noundef %7373, ptr noundef nonnull @fetch_expired_after_ocsp_timestamp, ptr noundef null) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %136) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %136, i8 0, i64 40, i1 false)
  %7377 = load i32, ptr @test_count, align 4, !tbaa !5
  %7378 = add nsw i32 %7377, 1
  store i32 %7378, ptr @test_count, align 4, !tbaa !5
  %7379 = call i32 @read_file(ptr noundef nonnull %136, ptr noundef nonnull @.str.74, i32 noundef 12000)
  %7380 = icmp eq i32 %7379, -1
  br i1 %7380, label %7381, label %7403

7381:                                             ; preds = %7371
  %7382 = load i32, ptr %1329, align 4, !tbaa !5
  %7383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7384 = call i32 @s2n_print_stacktrace(ptr noundef %7383) #13
  %7385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7386 = trunc nuw i8 %7385 to i1
  br i1 %7386, label %7387, label %7391

7387:                                             ; preds = %7381
  %7388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7389 = call i32 @fileno(ptr noundef %7388) #13
  %7390 = call i32 @isatty(i32 noundef %7389) #13
  %.not2389 = icmp eq i32 %7390, 0
  br i1 %.not2389, label %7391, label %7392

7391:                                             ; preds = %7387, %7381
  br label %7392

7392:                                             ; preds = %7387, %7391
  %.str.5.sink4868 = phi ptr [ @.str.5, %7391 ], [ @.str.2, %7387 ]
  store i32 %7382, ptr %1329, align 4, !tbaa !5
  %7393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7394 = load i32, ptr @test_count, align 4, !tbaa !5
  %7395 = load i32, ptr %1275, align 4, !tbaa !5
  %7396 = call ptr @s2n_strerror(i32 noundef %7395, ptr noundef nonnull @.str.4) #13
  %7397 = load i32, ptr %1275, align 4, !tbaa !5
  %7398 = call ptr @s2n_strerror_debug(i32 noundef %7397, ptr noundef nonnull @.str.4) #13
  %7399 = load i32, ptr %1329, align 4, !tbaa !5
  %7400 = call ptr @strerror(i32 noundef %7399) #13
  %7401 = load i32, ptr %1329, align 4, !tbaa !5
  %7402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7393, ptr noundef nonnull %.str.5.sink4868, i32 noundef %7394, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 1079, ptr noundef %7396, ptr noundef %7398, ptr noundef %7400, i32 noundef %7401) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7403:                                             ; preds = %7371
  %7404 = getelementptr inbounds i8, ptr %136, i64 28
  %7405 = load i32, ptr %7404, align 4, !tbaa !15
  %7406 = getelementptr inbounds i8, ptr %136, i64 24
  %7407 = load i32, ptr %7406, align 8, !tbaa !18
  %7408 = load i32, ptr @test_count, align 4, !tbaa !5
  %7409 = add nsw i32 %7408, 1
  store i32 %7409, ptr @test_count, align 4, !tbaa !5
  %.not2043 = icmp eq i32 %7405, %7407
  br i1 %.not2043, label %7410, label %7432

7410:                                             ; preds = %7403
  %7411 = load i32, ptr %1329, align 4, !tbaa !5
  %7412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7413 = call i32 @s2n_print_stacktrace(ptr noundef %7412) #13
  %7414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7415 = trunc nuw i8 %7414 to i1
  br i1 %7415, label %7416, label %7420

7416:                                             ; preds = %7410
  %7417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7418 = call i32 @fileno(ptr noundef %7417) #13
  %7419 = call i32 @isatty(i32 noundef %7418) #13
  %.not2044 = icmp eq i32 %7419, 0
  br i1 %.not2044, label %7420, label %7421

7420:                                             ; preds = %7416, %7410
  br label %7421

7421:                                             ; preds = %7416, %7420
  %.str.5.sink4877 = phi ptr [ @.str.5, %7420 ], [ @.str.2, %7416 ]
  store i32 %7411, ptr %1329, align 4, !tbaa !5
  %7422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7423 = load i32, ptr @test_count, align 4, !tbaa !5
  %7424 = load i32, ptr %1275, align 4, !tbaa !5
  %7425 = call ptr @s2n_strerror(i32 noundef %7424, ptr noundef nonnull @.str.4) #13
  %7426 = load i32, ptr %1275, align 4, !tbaa !5
  %7427 = call ptr @s2n_strerror_debug(i32 noundef %7426, ptr noundef nonnull @.str.4) #13
  %7428 = load i32, ptr %1329, align 4, !tbaa !5
  %7429 = call ptr @strerror(i32 noundef %7428) #13
  %7430 = load i32, ptr %1329, align 4, !tbaa !5
  %7431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7422, ptr noundef nonnull %.str.5.sink4877, i32 noundef %7423, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1081, ptr noundef %7425, ptr noundef %7427, ptr noundef %7429, i32 noundef %7430) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7432:                                             ; preds = %7403
  %7433 = sub i32 %7405, %7407
  %7434 = call zeroext i1 @s2n_supports_large_time_t()
  %7435 = load i32, ptr @test_count, align 4, !tbaa !5
  %7436 = add nsw i32 %7435, 1
  store i32 %7436, ptr @test_count, align 4, !tbaa !5
  %7437 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %136, i32 noundef %7433) #13
  %7438 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %131, ptr noundef nonnull %7179, ptr noundef %7437, i32 noundef %7433) #13
  %7439 = call zeroext i1 @s2n_result_is_error(i32 %7438)
  br i1 %7434, label %7440, label %7516

7440:                                             ; preds = %7432
  br i1 %7439, label %7463, label %7441

7441:                                             ; preds = %7440
  %7442 = load i32, ptr %1329, align 4, !tbaa !5
  %7443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7444 = call i32 @s2n_print_stacktrace(ptr noundef %7443) #13
  %7445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7446 = trunc nuw i8 %7445 to i1
  br i1 %7446, label %7447, label %7451

7447:                                             ; preds = %7441
  %7448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7449 = call i32 @fileno(ptr noundef %7448) #13
  %7450 = call i32 @isatty(i32 noundef %7449) #13
  %.not2048 = icmp eq i32 %7450, 0
  br i1 %.not2048, label %7451, label %7452

7451:                                             ; preds = %7447, %7441
  br label %7452

7452:                                             ; preds = %7447, %7451
  %.str.5.sink4886 = phi ptr [ @.str.5, %7451 ], [ @.str.2, %7447 ]
  store i32 %7442, ptr %1329, align 4, !tbaa !5
  %7453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7454 = load i32, ptr @test_count, align 4, !tbaa !5
  %7455 = load i32, ptr %1275, align 4, !tbaa !5
  %7456 = call ptr @s2n_strerror(i32 noundef %7455, ptr noundef nonnull @.str.4) #13
  %7457 = load i32, ptr %1275, align 4, !tbaa !5
  %7458 = call ptr @s2n_strerror_debug(i32 noundef %7457, ptr noundef nonnull @.str.4) #13
  %7459 = load i32, ptr %1329, align 4, !tbaa !5
  %7460 = call ptr @strerror(i32 noundef %7459) #13
  %7461 = load i32, ptr %1329, align 4, !tbaa !5
  %7462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7453, ptr noundef nonnull %.str.5.sink4886, i32 noundef %7454, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 1086, ptr noundef %7456, ptr noundef %7458, ptr noundef %7460, i32 noundef %7461) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7463:                                             ; preds = %7440
  %7464 = load i32, ptr @test_count, align 4, !tbaa !5
  %7465 = add nsw i32 %7464, 1
  store i32 %7465, ptr @test_count, align 4, !tbaa !5
  %7466 = load i32, ptr %1275, align 4, !tbaa !5
  %7467 = icmp eq i32 %7466, 335544369
  br i1 %7467, label %7490, label %7468

7468:                                             ; preds = %7463
  %7469 = load i32, ptr %1329, align 4, !tbaa !5
  %7470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7471 = call i32 @s2n_print_stacktrace(ptr noundef %7470) #13
  %7472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7473 = trunc nuw i8 %7472 to i1
  br i1 %7473, label %7474, label %7478

7474:                                             ; preds = %7468
  %7475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7476 = call i32 @fileno(ptr noundef %7475) #13
  %7477 = call i32 @isatty(i32 noundef %7476) #13
  %.not2049 = icmp eq i32 %7477, 0
  br i1 %.not2049, label %7478, label %7479

7478:                                             ; preds = %7474, %7468
  br label %7479

7479:                                             ; preds = %7474, %7478
  %.str.5.sink4895 = phi ptr [ @.str.5, %7478 ], [ @.str.2, %7474 ]
  store i32 %7469, ptr %1329, align 4, !tbaa !5
  %7480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7481 = load i32, ptr @test_count, align 4, !tbaa !5
  %7482 = load i32, ptr %1275, align 4, !tbaa !5
  %7483 = call ptr @s2n_strerror(i32 noundef %7482, ptr noundef nonnull @.str.4) #13
  %7484 = load i32, ptr %1275, align 4, !tbaa !5
  %7485 = call ptr @s2n_strerror_debug(i32 noundef %7484, ptr noundef nonnull @.str.4) #13
  %7486 = load i32, ptr %1329, align 4, !tbaa !5
  %7487 = call ptr @strerror(i32 noundef %7486) #13
  %7488 = load i32, ptr %1329, align 4, !tbaa !5
  %7489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7480, ptr noundef nonnull %.str.5.sink4895, i32 noundef %7481, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 1086, ptr noundef %7483, ptr noundef %7485, ptr noundef %7487, i32 noundef %7488) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7490:                                             ; preds = %7463
  %7491 = add nsw i32 %7464, 2
  store i32 %7491, ptr @test_count, align 4, !tbaa !5
  %7492 = call ptr @s2n_strerror_debug(i32 noundef 335544369, ptr noundef nonnull @.str.4) #13
  %7493 = icmp eq ptr %7492, null
  br i1 %7493, label %7494, label %7592

7494:                                             ; preds = %7490
  %7495 = load i32, ptr %1329, align 4, !tbaa !5
  %7496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7497 = call i32 @s2n_print_stacktrace(ptr noundef %7496) #13
  %7498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7499 = trunc nuw i8 %7498 to i1
  br i1 %7499, label %7500, label %7504

7500:                                             ; preds = %7494
  %7501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7502 = call i32 @fileno(ptr noundef %7501) #13
  %7503 = call i32 @isatty(i32 noundef %7502) #13
  %.not2388 = icmp eq i32 %7503, 0
  br i1 %.not2388, label %7504, label %7505

7504:                                             ; preds = %7500, %7494
  br label %7505

7505:                                             ; preds = %7500, %7504
  %.str.5.sink4904 = phi ptr [ @.str.5, %7504 ], [ @.str.2, %7500 ]
  store i32 %7495, ptr %1329, align 4, !tbaa !5
  %7506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7507 = load i32, ptr @test_count, align 4, !tbaa !5
  %7508 = load i32, ptr %1275, align 4, !tbaa !5
  %7509 = call ptr @s2n_strerror(i32 noundef %7508, ptr noundef nonnull @.str.4) #13
  %7510 = load i32, ptr %1275, align 4, !tbaa !5
  %7511 = call ptr @s2n_strerror_debug(i32 noundef %7510, ptr noundef nonnull @.str.4) #13
  %7512 = load i32, ptr %1329, align 4, !tbaa !5
  %7513 = call ptr @strerror(i32 noundef %7512) #13
  %7514 = load i32, ptr %1329, align 4, !tbaa !5
  %7515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7506, ptr noundef nonnull %.str.5.sink4904, i32 noundef %7507, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1086, ptr noundef %7509, ptr noundef %7511, ptr noundef %7513, i32 noundef %7514) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7516:                                             ; preds = %7432
  br i1 %7439, label %7539, label %7517

7517:                                             ; preds = %7516
  %7518 = load i32, ptr %1329, align 4, !tbaa !5
  %7519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7520 = call i32 @s2n_print_stacktrace(ptr noundef %7519) #13
  %7521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7522 = trunc nuw i8 %7521 to i1
  br i1 %7522, label %7523, label %7527

7523:                                             ; preds = %7517
  %7524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7525 = call i32 @fileno(ptr noundef %7524) #13
  %7526 = call i32 @isatty(i32 noundef %7525) #13
  %.not2045 = icmp eq i32 %7526, 0
  br i1 %.not2045, label %7527, label %7528

7527:                                             ; preds = %7523, %7517
  br label %7528

7528:                                             ; preds = %7523, %7527
  %.str.5.sink4913 = phi ptr [ @.str.5, %7527 ], [ @.str.2, %7523 ]
  store i32 %7518, ptr %1329, align 4, !tbaa !5
  %7529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7530 = load i32, ptr @test_count, align 4, !tbaa !5
  %7531 = load i32, ptr %1275, align 4, !tbaa !5
  %7532 = call ptr @s2n_strerror(i32 noundef %7531, ptr noundef nonnull @.str.4) #13
  %7533 = load i32, ptr %1275, align 4, !tbaa !5
  %7534 = call ptr @s2n_strerror_debug(i32 noundef %7533, ptr noundef nonnull @.str.4) #13
  %7535 = load i32, ptr %1329, align 4, !tbaa !5
  %7536 = call ptr @strerror(i32 noundef %7535) #13
  %7537 = load i32, ptr %1329, align 4, !tbaa !5
  %7538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7529, ptr noundef nonnull %.str.5.sink4913, i32 noundef %7530, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 1093, ptr noundef %7532, ptr noundef %7534, ptr noundef %7536, i32 noundef %7537) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7539:                                             ; preds = %7516
  %7540 = load i32, ptr @test_count, align 4, !tbaa !5
  %7541 = add nsw i32 %7540, 1
  store i32 %7541, ptr @test_count, align 4, !tbaa !5
  %7542 = load i32, ptr %1275, align 4, !tbaa !5
  %7543 = icmp eq i32 %7542, 402653194
  br i1 %7543, label %7566, label %7544

7544:                                             ; preds = %7539
  %7545 = load i32, ptr %1329, align 4, !tbaa !5
  %7546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7547 = call i32 @s2n_print_stacktrace(ptr noundef %7546) #13
  %7548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7549 = trunc nuw i8 %7548 to i1
  br i1 %7549, label %7550, label %7554

7550:                                             ; preds = %7544
  %7551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7552 = call i32 @fileno(ptr noundef %7551) #13
  %7553 = call i32 @isatty(i32 noundef %7552) #13
  %.not2046 = icmp eq i32 %7553, 0
  br i1 %.not2046, label %7554, label %7555

7554:                                             ; preds = %7550, %7544
  br label %7555

7555:                                             ; preds = %7550, %7554
  %.str.5.sink4922 = phi ptr [ @.str.5, %7554 ], [ @.str.2, %7550 ]
  store i32 %7545, ptr %1329, align 4, !tbaa !5
  %7556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7557 = load i32, ptr @test_count, align 4, !tbaa !5
  %7558 = load i32, ptr %1275, align 4, !tbaa !5
  %7559 = call ptr @s2n_strerror(i32 noundef %7558, ptr noundef nonnull @.str.4) #13
  %7560 = load i32, ptr %1275, align 4, !tbaa !5
  %7561 = call ptr @s2n_strerror_debug(i32 noundef %7560, ptr noundef nonnull @.str.4) #13
  %7562 = load i32, ptr %1329, align 4, !tbaa !5
  %7563 = call ptr @strerror(i32 noundef %7562) #13
  %7564 = load i32, ptr %1329, align 4, !tbaa !5
  %7565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7556, ptr noundef nonnull %.str.5.sink4922, i32 noundef %7557, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 1093, ptr noundef %7559, ptr noundef %7561, ptr noundef %7563, i32 noundef %7564) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7566:                                             ; preds = %7539
  %7567 = add nsw i32 %7540, 2
  store i32 %7567, ptr @test_count, align 4, !tbaa !5
  %7568 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #13
  %7569 = icmp eq ptr %7568, null
  br i1 %7569, label %7570, label %7592

7570:                                             ; preds = %7566
  %7571 = load i32, ptr %1329, align 4, !tbaa !5
  %7572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7573 = call i32 @s2n_print_stacktrace(ptr noundef %7572) #13
  %7574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7575 = trunc nuw i8 %7574 to i1
  br i1 %7575, label %7576, label %7580

7576:                                             ; preds = %7570
  %7577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7578 = call i32 @fileno(ptr noundef %7577) #13
  %7579 = call i32 @isatty(i32 noundef %7578) #13
  %.not2047 = icmp eq i32 %7579, 0
  br i1 %.not2047, label %7580, label %7581

7580:                                             ; preds = %7576, %7570
  br label %7581

7581:                                             ; preds = %7576, %7580
  %.str.5.sink4931 = phi ptr [ @.str.5, %7580 ], [ @.str.2, %7576 ]
  store i32 %7571, ptr %1329, align 4, !tbaa !5
  %7582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7583 = load i32, ptr @test_count, align 4, !tbaa !5
  %7584 = load i32, ptr %1275, align 4, !tbaa !5
  %7585 = call ptr @s2n_strerror(i32 noundef %7584, ptr noundef nonnull @.str.4) #13
  %7586 = load i32, ptr %1275, align 4, !tbaa !5
  %7587 = call ptr @s2n_strerror_debug(i32 noundef %7586, ptr noundef nonnull @.str.4) #13
  %7588 = load i32, ptr %1329, align 4, !tbaa !5
  %7589 = call ptr @strerror(i32 noundef %7588) #13
  %7590 = load i32, ptr %1329, align 4, !tbaa !5
  %7591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7582, ptr noundef nonnull %.str.5.sink4931, i32 noundef %7583, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1093, ptr noundef %7585, ptr noundef %7587, ptr noundef %7589, i32 noundef %7590) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7592:                                             ; preds = %7566, %7490
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %7593 = load ptr, ptr %7372, align 8, !tbaa !22
  %7594 = call i32 @s2n_config_set_wall_clock(ptr noundef %7593, ptr noundef %7375, ptr noundef null) #13
  %7595 = call i32 @s2n_stuffer_free(ptr noundef nonnull %136) #13
  %7596 = call i32 @s2n_connection_free(ptr noundef nonnull %7179) #13
  %7597 = call i32 @s2n_pkey_free(ptr noundef nonnull %134) #13
  %7598 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %131) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %130) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %136) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %135) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %134) #13
  %7599 = call i32 @s2n_stuffer_free(ptr noundef nonnull %133) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %133) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %132) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %131) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %130) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %137) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %137, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %137) #13
  %7600 = load i32, ptr @test_count, align 4, !tbaa !5
  %7601 = add nsw i32 %7600, 1
  store i32 %7601, ptr @test_count, align 4, !tbaa !5
  %7602 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %137, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %7603 = icmp eq i32 %7602, -1
  br i1 %7603, label %7604, label %7626

7604:                                             ; preds = %7592
  %7605 = load i32, ptr %1329, align 4, !tbaa !5
  %7606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7607 = call i32 @s2n_print_stacktrace(ptr noundef %7606) #13
  %7608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7609 = trunc nuw i8 %7608 to i1
  br i1 %7609, label %7610, label %7614

7610:                                             ; preds = %7604
  %7611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7612 = call i32 @fileno(ptr noundef %7611) #13
  %7613 = call i32 @isatty(i32 noundef %7612) #13
  %.not2387 = icmp eq i32 %7613, 0
  br i1 %.not2387, label %7614, label %7615

7614:                                             ; preds = %7610, %7604
  br label %7615

7615:                                             ; preds = %7610, %7614
  %.str.5.sink4940 = phi ptr [ @.str.5, %7614 ], [ @.str.2, %7610 ]
  store i32 %7605, ptr %1329, align 4, !tbaa !5
  %7616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7617 = load i32, ptr @test_count, align 4, !tbaa !5
  %7618 = load i32, ptr %1275, align 4, !tbaa !5
  %7619 = call ptr @s2n_strerror(i32 noundef %7618, ptr noundef nonnull @.str.4) #13
  %7620 = load i32, ptr %1275, align 4, !tbaa !5
  %7621 = call ptr @s2n_strerror_debug(i32 noundef %7620, ptr noundef nonnull @.str.4) #13
  %7622 = load i32, ptr %1329, align 4, !tbaa !5
  %7623 = call ptr @strerror(i32 noundef %7622) #13
  %7624 = load i32, ptr %1329, align 4, !tbaa !5
  %7625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7616, ptr noundef nonnull %.str.5.sink4940, i32 noundef %7617, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1113, ptr noundef %7619, ptr noundef %7621, ptr noundef %7623, i32 noundef %7624) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7626:                                             ; preds = %7592
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %138) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %138, i8 0, i64 56, i1 false)
  %7627 = load i32, ptr @test_count, align 4, !tbaa !5
  %7628 = add nsw i32 %7627, 1
  store i32 %7628, ptr @test_count, align 4, !tbaa !5
  %7629 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %138, ptr noundef nonnull %137, i8 noundef zeroext 1) #13
  %7630 = icmp eq i32 %7629, -1
  br i1 %7630, label %7631, label %7653

7631:                                             ; preds = %7626
  %7632 = load i32, ptr %1329, align 4, !tbaa !5
  %7633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7634 = call i32 @s2n_print_stacktrace(ptr noundef %7633) #13
  %7635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7636 = trunc nuw i8 %7635 to i1
  br i1 %7636, label %7637, label %7641

7637:                                             ; preds = %7631
  %7638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7639 = call i32 @fileno(ptr noundef %7638) #13
  %7640 = call i32 @isatty(i32 noundef %7639) #13
  %.not2386 = icmp eq i32 %7640, 0
  br i1 %.not2386, label %7641, label %7642

7641:                                             ; preds = %7637, %7631
  br label %7642

7642:                                             ; preds = %7637, %7641
  %.str.5.sink4949 = phi ptr [ @.str.5, %7641 ], [ @.str.2, %7637 ]
  store i32 %7632, ptr %1329, align 4, !tbaa !5
  %7643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7644 = load i32, ptr @test_count, align 4, !tbaa !5
  %7645 = load i32, ptr %1275, align 4, !tbaa !5
  %7646 = call ptr @s2n_strerror(i32 noundef %7645, ptr noundef nonnull @.str.4) #13
  %7647 = load i32, ptr %1275, align 4, !tbaa !5
  %7648 = call ptr @s2n_strerror_debug(i32 noundef %7647, ptr noundef nonnull @.str.4) #13
  %7649 = load i32, ptr %1329, align 4, !tbaa !5
  %7650 = call ptr @strerror(i32 noundef %7649) #13
  %7651 = load i32, ptr %1329, align 4, !tbaa !5
  %7652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7643, ptr noundef nonnull %.str.5.sink4949, i32 noundef %7644, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 1116, ptr noundef %7646, ptr noundef %7648, ptr noundef %7650, i32 noundef %7651) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7653:                                             ; preds = %7626
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %139) #13
  %7654 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %7654, ptr %139, align 8, !tbaa !9
  %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 = icmp eq ptr %7654, null
  br i1 %7657, label %7658, label %7680

7658:                                             ; preds = %7653
  %7659 = load i32, ptr %1329, align 4, !tbaa !5
  %7660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7661 = call i32 @s2n_print_stacktrace(ptr noundef %7660) #13
  %7662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7663 = trunc nuw i8 %7662 to i1
  br i1 %7663, label %7664, label %7668

7664:                                             ; preds = %7658
  %7665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7666 = call i32 @fileno(ptr noundef %7665) #13
  %7667 = call i32 @isatty(i32 noundef %7666) #13
  %.not2385 = icmp eq i32 %7667, 0
  br i1 %.not2385, label %7668, label %7669

7668:                                             ; preds = %7664, %7658
  br label %7669

7669:                                             ; preds = %7664, %7668
  %.str.5.sink4958 = phi ptr [ @.str.5, %7668 ], [ @.str.2, %7664 ]
  store i32 %7659, ptr %1329, align 4, !tbaa !5
  %7670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7671 = load i32, ptr @test_count, align 4, !tbaa !5
  %7672 = load i32, ptr %1275, align 4, !tbaa !5
  %7673 = call ptr @s2n_strerror(i32 noundef %7672, ptr noundef nonnull @.str.4) #13
  %7674 = load i32, ptr %1275, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror_debug(i32 noundef %7674, ptr noundef nonnull @.str.4) #13
  %7676 = load i32, ptr %1329, align 4, !tbaa !5
  %7677 = call ptr @strerror(i32 noundef %7676) #13
  %7678 = load i32, ptr %1329, align 4, !tbaa !5
  %7679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7670, ptr noundef nonnull %.str.5.sink4958, i32 noundef %7671, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1119, ptr noundef %7673, ptr noundef %7675, ptr noundef %7677, i32 noundef %7678) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7680:                                             ; preds = %7653
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %140) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %140, i8 0, i64 16, i1 false)
  %7681 = add nsw i32 %7655, 2
  store i32 %7681, ptr @test_count, align 4, !tbaa !5
  %7682 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %7654, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %140) #13
  %7683 = icmp eq i32 %7682, -1
  br i1 %7683, label %7684, label %7706

7684:                                             ; preds = %7680
  %7685 = load i32, ptr %1329, align 4, !tbaa !5
  %7686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7687 = call i32 @s2n_print_stacktrace(ptr noundef %7686) #13
  %7688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7689 = trunc nuw i8 %7688 to i1
  br i1 %7689, label %7690, label %7694

7690:                                             ; preds = %7684
  %7691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7692 = call i32 @fileno(ptr noundef %7691) #13
  %7693 = call i32 @isatty(i32 noundef %7692) #13
  %.not2384 = icmp eq i32 %7693, 0
  br i1 %.not2384, label %7694, label %7695

7694:                                             ; preds = %7690, %7684
  br label %7695

7695:                                             ; preds = %7690, %7694
  %.str.5.sink4967 = phi ptr [ @.str.5, %7694 ], [ @.str.2, %7690 ]
  store i32 %7685, ptr %1329, align 4, !tbaa !5
  %7696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7697 = load i32, ptr @test_count, align 4, !tbaa !5
  %7698 = load i32, ptr %1275, align 4, !tbaa !5
  %7699 = call ptr @s2n_strerror(i32 noundef %7698, ptr noundef nonnull @.str.4) #13
  %7700 = load i32, ptr %1275, align 4, !tbaa !5
  %7701 = call ptr @s2n_strerror_debug(i32 noundef %7700, ptr noundef nonnull @.str.4) #13
  %7702 = load i32, ptr %1329, align 4, !tbaa !5
  %7703 = call ptr @strerror(i32 noundef %7702) #13
  %7704 = load i32, ptr %1329, align 4, !tbaa !5
  %7705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7696, ptr noundef nonnull %.str.5.sink4967, i32 noundef %7697, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1122, ptr noundef %7699, ptr noundef %7701, ptr noundef %7703, i32 noundef %7704) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7706:                                             ; preds = %7680
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %141) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %141, i8 0, i64 40, i1 false)
  %7707 = load i32, ptr @test_count, align 4, !tbaa !5
  %7708 = add nsw i32 %7707, 1
  store i32 %7708, ptr @test_count, align 4, !tbaa !5
  %7709 = load ptr, ptr %139, align 8, !tbaa !9
  %7710 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %7709, ptr noundef nonnull @.str.51, ptr noundef nonnull %141) #13
  %7711 = call zeroext i1 @s2n_result_is_ok(i32 %7710)
  br i1 %7711, label %7734, label %7712

7712:                                             ; preds = %7706
  %7713 = load i32, ptr %1329, align 4, !tbaa !5
  %7714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7715 = call i32 @s2n_print_stacktrace(ptr noundef %7714) #13
  %7716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7717 = trunc nuw i8 %7716 to i1
  br i1 %7717, label %7718, label %7722

7718:                                             ; preds = %7712
  %7719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7720 = call i32 @fileno(ptr noundef %7719) #13
  %7721 = call i32 @isatty(i32 noundef %7720) #13
  %.not2050 = icmp eq i32 %7721, 0
  br i1 %.not2050, label %7722, label %7723

7722:                                             ; preds = %7718, %7712
  br label %7723

7723:                                             ; preds = %7718, %7722
  %.str.5.sink4976 = phi ptr [ @.str.5, %7722 ], [ @.str.2, %7718 ]
  store i32 %7713, ptr %1329, align 4, !tbaa !5
  %7724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7725 = load i32, ptr @test_count, align 4, !tbaa !5
  %7726 = load i32, ptr %1275, align 4, !tbaa !5
  %7727 = call ptr @s2n_strerror(i32 noundef %7726, ptr noundef nonnull @.str.4) #13
  %7728 = load i32, ptr %1275, align 4, !tbaa !5
  %7729 = call ptr @s2n_strerror_debug(i32 noundef %7728, ptr noundef nonnull @.str.4) #13
  %7730 = load i32, ptr %1329, align 4, !tbaa !5
  %7731 = call ptr @strerror(i32 noundef %7730) #13
  %7732 = load i32, ptr %1329, align 4, !tbaa !5
  %7733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7724, ptr noundef nonnull %.str.5.sink4976, i32 noundef %7725, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1125, ptr noundef %7727, ptr noundef %7729, ptr noundef %7731, i32 noundef %7732) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7734:                                             ; preds = %7706
  %7735 = getelementptr inbounds i8, ptr %141, i64 28
  %7736 = load i32, ptr %7735, align 4, !tbaa !15
  %7737 = getelementptr inbounds i8, ptr %141, i64 24
  %7738 = load i32, ptr %7737, align 8, !tbaa !18
  %7739 = sub i32 %7736, %7738
  %7740 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %141, i32 noundef %7739) #13
  %7741 = load i32, ptr @test_count, align 4, !tbaa !5
  %7742 = add nsw i32 %7741, 1
  store i32 %7742, ptr @test_count, align 4, !tbaa !5
  %7743 = icmp eq ptr %7740, null
  br i1 %7743, label %7744, label %7766

7744:                                             ; preds = %7734
  %7745 = load i32, ptr %1329, align 4, !tbaa !5
  %7746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7747 = call i32 @s2n_print_stacktrace(ptr noundef %7746) #13
  %7748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7749 = trunc nuw i8 %7748 to i1
  br i1 %7749, label %7750, label %7754

7750:                                             ; preds = %7744
  %7751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7752 = call i32 @fileno(ptr noundef %7751) #13
  %7753 = call i32 @isatty(i32 noundef %7752) #13
  %.not2383 = icmp eq i32 %7753, 0
  br i1 %.not2383, label %7754, label %7755

7754:                                             ; preds = %7750, %7744
  br label %7755

7755:                                             ; preds = %7750, %7754
  %.str.5.sink4985 = phi ptr [ @.str.5, %7754 ], [ @.str.2, %7750 ]
  store i32 %7745, ptr %1329, align 4, !tbaa !5
  %7756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7757 = load i32, ptr @test_count, align 4, !tbaa !5
  %7758 = load i32, ptr %1275, align 4, !tbaa !5
  %7759 = call ptr @s2n_strerror(i32 noundef %7758, ptr noundef nonnull @.str.4) #13
  %7760 = load i32, ptr %1275, align 4, !tbaa !5
  %7761 = call ptr @s2n_strerror_debug(i32 noundef %7760, ptr noundef nonnull @.str.4) #13
  %7762 = load i32, ptr %1329, align 4, !tbaa !5
  %7763 = call ptr @strerror(i32 noundef %7762) #13
  %7764 = load i32, ptr %1329, align 4, !tbaa !5
  %7765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7756, ptr noundef nonnull %.str.5.sink4985, i32 noundef %7757, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1128, ptr noundef %7759, ptr noundef %7761, ptr noundef %7763, i32 noundef %7764) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7766:                                             ; preds = %7734
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %142) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %142, i8 0, i64 48, i1 false)
  %7767 = add nsw i32 %7741, 2
  store i32 %7767, ptr @test_count, align 4, !tbaa !5
  %7768 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %142) #13
  %7769 = icmp eq i32 %7768, -1
  br i1 %7769, label %7770, label %7792

7770:                                             ; preds = %7766
  %7771 = load i32, ptr %1329, align 4, !tbaa !5
  %7772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7773 = call i32 @s2n_print_stacktrace(ptr noundef %7772) #13
  %7774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7775 = trunc nuw i8 %7774 to i1
  br i1 %7775, label %7776, label %7780

7776:                                             ; preds = %7770
  %7777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7778 = call i32 @fileno(ptr noundef %7777) #13
  %7779 = call i32 @isatty(i32 noundef %7778) #13
  %.not2382 = icmp eq i32 %7779, 0
  br i1 %.not2382, label %7780, label %7781

7780:                                             ; preds = %7776, %7770
  br label %7781

7781:                                             ; preds = %7776, %7780
  %.str.5.sink4994 = phi ptr [ @.str.5, %7780 ], [ @.str.2, %7776 ]
  store i32 %7771, ptr %1329, align 4, !tbaa !5
  %7782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7783 = load i32, ptr @test_count, align 4, !tbaa !5
  %7784 = load i32, ptr %1275, align 4, !tbaa !5
  %7785 = call ptr @s2n_strerror(i32 noundef %7784, ptr noundef nonnull @.str.4) #13
  %7786 = load i32, ptr %1275, align 4, !tbaa !5
  %7787 = call ptr @s2n_strerror_debug(i32 noundef %7786, ptr noundef nonnull @.str.4) #13
  %7788 = load i32, ptr %1329, align 4, !tbaa !5
  %7789 = call ptr @strerror(i32 noundef %7788) #13
  %7790 = load i32, ptr %1329, align 4, !tbaa !5
  %7791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7782, ptr noundef nonnull %.str.5.sink4994, i32 noundef %7783, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1131, ptr noundef %7785, ptr noundef %7787, ptr noundef %7789, i32 noundef %7790) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7792:                                             ; preds = %7766
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %143) #13
  store i32 -1, ptr %143, align 4, !tbaa !5
  %7793 = load i32, ptr @test_count, align 4, !tbaa !5
  %7794 = add nsw i32 %7793, 1
  store i32 %7794, ptr @test_count, align 4, !tbaa !5
  %7795 = load ptr, ptr %139, align 8, !tbaa !9
  %7796 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %138, ptr noundef %7795, ptr noundef nonnull %7740, i32 noundef %7739, ptr noundef nonnull %143, ptr noundef nonnull %142) #13
  %7797 = call zeroext i1 @s2n_result_is_ok(i32 %7796)
  br i1 %7797, label %7820, label %7798

7798:                                             ; preds = %7792
  %7799 = load i32, ptr %1329, align 4, !tbaa !5
  %7800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7801 = call i32 @s2n_print_stacktrace(ptr noundef %7800) #13
  %7802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7803 = trunc nuw i8 %7802 to i1
  br i1 %7803, label %7804, label %7808

7804:                                             ; preds = %7798
  %7805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7806 = call i32 @fileno(ptr noundef %7805) #13
  %7807 = call i32 @isatty(i32 noundef %7806) #13
  %.not2051 = icmp eq i32 %7807, 0
  br i1 %.not2051, label %7808, label %7809

7808:                                             ; preds = %7804, %7798
  br label %7809

7809:                                             ; preds = %7804, %7808
  %.str.5.sink5003 = phi ptr [ @.str.5, %7808 ], [ @.str.2, %7804 ]
  store i32 %7799, ptr %1329, align 4, !tbaa !5
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = load i32, ptr @test_count, align 4, !tbaa !5
  %7812 = load i32, ptr %1275, align 4, !tbaa !5
  %7813 = call ptr @s2n_strerror(i32 noundef %7812, ptr noundef nonnull @.str.4) #13
  %7814 = load i32, ptr %1275, align 4, !tbaa !5
  %7815 = call ptr @s2n_strerror_debug(i32 noundef %7814, ptr noundef nonnull @.str.4) #13
  %7816 = load i32, ptr %1329, align 4, !tbaa !5
  %7817 = call ptr @strerror(i32 noundef %7816) #13
  %7818 = load i32, ptr %1329, align 4, !tbaa !5
  %7819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7810, ptr noundef nonnull %.str.5.sink5003, i32 noundef %7811, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1133, ptr noundef %7813, ptr noundef %7815, ptr noundef %7817, i32 noundef %7818) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7820:                                             ; preds = %7792
  %7821 = load i32, ptr @test_count, align 4, !tbaa !5
  %7822 = add nsw i32 %7821, 1
  store i32 %7822, ptr @test_count, align 4, !tbaa !5
  %7823 = getelementptr inbounds i8, ptr %140, i64 9
  %7824 = load i8, ptr %7823, align 1, !tbaa !19
  %7825 = icmp eq i8 %7824, 1
  br i1 %7825, label %7848, label %7826

7826:                                             ; preds = %7820
  %7827 = load i32, ptr %1329, align 4, !tbaa !5
  %7828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7829 = call i32 @s2n_print_stacktrace(ptr noundef %7828) #13
  %7830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7831 = trunc nuw i8 %7830 to i1
  br i1 %7831, label %7832, label %7836

7832:                                             ; preds = %7826
  %7833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7834 = call i32 @fileno(ptr noundef %7833) #13
  %7835 = call i32 @isatty(i32 noundef %7834) #13
  %.not2052 = icmp eq i32 %7835, 0
  br i1 %.not2052, label %7836, label %7837

7836:                                             ; preds = %7832, %7826
  br label %7837

7837:                                             ; preds = %7832, %7836
  %.str.5.sink5012 = phi ptr [ @.str.5, %7836 ], [ @.str.2, %7832 ]
  store i32 %7827, ptr %1329, align 4, !tbaa !5
  %7838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7839 = load i32, ptr @test_count, align 4, !tbaa !5
  %7840 = load i32, ptr %1275, align 4, !tbaa !5
  %7841 = call ptr @s2n_strerror(i32 noundef %7840, ptr noundef nonnull @.str.4) #13
  %7842 = load i32, ptr %1275, align 4, !tbaa !5
  %7843 = call ptr @s2n_strerror_debug(i32 noundef %7842, ptr noundef nonnull @.str.4) #13
  %7844 = load i32, ptr %1329, align 4, !tbaa !5
  %7845 = call ptr @strerror(i32 noundef %7844) #13
  %7846 = load i32, ptr %1329, align 4, !tbaa !5
  %7847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7838, ptr noundef nonnull %.str.5.sink5012, i32 noundef %7839, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1135, ptr noundef %7841, ptr noundef %7843, ptr noundef %7845, i32 noundef %7846) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7848:                                             ; preds = %7820
  %7849 = load ptr, ptr %139, align 8, !tbaa !9
  %7850 = getelementptr inbounds i8, ptr %7849, i64 8
  %7851 = load ptr, ptr %7850, align 8, !tbaa !22
  %7852 = getelementptr inbounds i8, ptr %7851, i64 80
  %7853 = load ptr, ptr %7852, align 8, !tbaa !47
  %7854 = add nsw i32 %7821, 2
  store i32 %7854, ptr @test_count, align 4, !tbaa !5
  %7855 = call i32 @s2n_config_set_wall_clock(ptr noundef %7851, ptr noundef nonnull @fetch_early_expired_after_ocsp_timestamp, ptr noundef null) #13
  %7856 = icmp eq i32 %7855, -1
  br i1 %7856, label %7857, label %7879

7857:                                             ; preds = %7848
  %7858 = load i32, ptr %1329, align 4, !tbaa !5
  %7859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7860 = call i32 @s2n_print_stacktrace(ptr noundef %7859) #13
  %7861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7862 = trunc nuw i8 %7861 to i1
  br i1 %7862, label %7863, label %7867

7863:                                             ; preds = %7857
  %7864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7865 = call i32 @fileno(ptr noundef %7864) #13
  %7866 = call i32 @isatty(i32 noundef %7865) #13
  %.not2381 = icmp eq i32 %7866, 0
  br i1 %.not2381, label %7867, label %7868

7867:                                             ; preds = %7863, %7857
  br label %7868

7868:                                             ; preds = %7863, %7867
  %.str.5.sink5021 = phi ptr [ @.str.5, %7867 ], [ @.str.2, %7863 ]
  store i32 %7858, ptr %1329, align 4, !tbaa !5
  %7869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7870 = load i32, ptr @test_count, align 4, !tbaa !5
  %7871 = load i32, ptr %1275, align 4, !tbaa !5
  %7872 = call ptr @s2n_strerror(i32 noundef %7871, ptr noundef nonnull @.str.4) #13
  %7873 = load i32, ptr %1275, align 4, !tbaa !5
  %7874 = call ptr @s2n_strerror_debug(i32 noundef %7873, ptr noundef nonnull @.str.4) #13
  %7875 = load i32, ptr %1329, align 4, !tbaa !5
  %7876 = call ptr @strerror(i32 noundef %7875) #13
  %7877 = load i32, ptr %1329, align 4, !tbaa !5
  %7878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7869, ptr noundef nonnull %.str.5.sink5021, i32 noundef %7870, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 1137, ptr noundef %7872, ptr noundef %7874, ptr noundef %7876, i32 noundef %7877) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7879:                                             ; preds = %7848
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %144) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %144, i8 0, i64 40, i1 false)
  %7880 = load i32, ptr @test_count, align 4, !tbaa !5
  %7881 = add nsw i32 %7880, 1
  store i32 %7881, ptr @test_count, align 4, !tbaa !5
  %7882 = call i32 @read_file(ptr noundef nonnull %144, ptr noundef nonnull @.str.84, i32 noundef 12000)
  %7883 = icmp eq i32 %7882, -1
  br i1 %7883, label %7884, label %7906

7884:                                             ; preds = %7879
  %7885 = load i32, ptr %1329, align 4, !tbaa !5
  %7886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7887 = call i32 @s2n_print_stacktrace(ptr noundef %7886) #13
  %7888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7889 = trunc nuw i8 %7888 to i1
  br i1 %7889, label %7890, label %7894

7890:                                             ; preds = %7884
  %7891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7892 = call i32 @fileno(ptr noundef %7891) #13
  %7893 = call i32 @isatty(i32 noundef %7892) #13
  %.not2380 = icmp eq i32 %7893, 0
  br i1 %.not2380, label %7894, label %7895

7894:                                             ; preds = %7890, %7884
  br label %7895

7895:                                             ; preds = %7890, %7894
  %.str.5.sink5030 = phi ptr [ @.str.5, %7894 ], [ @.str.2, %7890 ]
  store i32 %7885, ptr %1329, align 4, !tbaa !5
  %7896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7897 = load i32, ptr @test_count, align 4, !tbaa !5
  %7898 = load i32, ptr %1275, align 4, !tbaa !5
  %7899 = call ptr @s2n_strerror(i32 noundef %7898, ptr noundef nonnull @.str.4) #13
  %7900 = load i32, ptr %1275, align 4, !tbaa !5
  %7901 = call ptr @s2n_strerror_debug(i32 noundef %7900, ptr noundef nonnull @.str.4) #13
  %7902 = load i32, ptr %1329, align 4, !tbaa !5
  %7903 = call ptr @strerror(i32 noundef %7902) #13
  %7904 = load i32, ptr %1329, align 4, !tbaa !5
  %7905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7896, ptr noundef nonnull %.str.5.sink5030, i32 noundef %7897, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 1140, ptr noundef %7899, ptr noundef %7901, ptr noundef %7903, i32 noundef %7904) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7906:                                             ; preds = %7879
  %7907 = getelementptr inbounds i8, ptr %144, i64 28
  %7908 = load i32, ptr %7907, align 4, !tbaa !15
  %7909 = getelementptr inbounds i8, ptr %144, i64 24
  %7910 = load i32, ptr %7909, align 8, !tbaa !18
  %7911 = load i32, ptr @test_count, align 4, !tbaa !5
  %7912 = add nsw i32 %7911, 1
  store i32 %7912, ptr @test_count, align 4, !tbaa !5
  %.not2053 = icmp eq i32 %7908, %7910
  br i1 %.not2053, label %7913, label %7935

7913:                                             ; preds = %7906
  %7914 = load i32, ptr %1329, align 4, !tbaa !5
  %7915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7916 = call i32 @s2n_print_stacktrace(ptr noundef %7915) #13
  %7917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7918 = trunc nuw i8 %7917 to i1
  br i1 %7918, label %7919, label %7923

7919:                                             ; preds = %7913
  %7920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7921 = call i32 @fileno(ptr noundef %7920) #13
  %7922 = call i32 @isatty(i32 noundef %7921) #13
  %.not2054 = icmp eq i32 %7922, 0
  br i1 %.not2054, label %7923, label %7924

7923:                                             ; preds = %7919, %7913
  br label %7924

7924:                                             ; preds = %7919, %7923
  %.str.5.sink5039 = phi ptr [ @.str.5, %7923 ], [ @.str.2, %7919 ]
  store i32 %7914, ptr %1329, align 4, !tbaa !5
  %7925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7926 = load i32, ptr @test_count, align 4, !tbaa !5
  %7927 = load i32, ptr %1275, align 4, !tbaa !5
  %7928 = call ptr @s2n_strerror(i32 noundef %7927, ptr noundef nonnull @.str.4) #13
  %7929 = load i32, ptr %1275, align 4, !tbaa !5
  %7930 = call ptr @s2n_strerror_debug(i32 noundef %7929, ptr noundef nonnull @.str.4) #13
  %7931 = load i32, ptr %1329, align 4, !tbaa !5
  %7932 = call ptr @strerror(i32 noundef %7931) #13
  %7933 = load i32, ptr %1329, align 4, !tbaa !5
  %7934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7925, ptr noundef nonnull %.str.5.sink5039, i32 noundef %7926, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1142, ptr noundef %7928, ptr noundef %7930, ptr noundef %7932, i32 noundef %7933) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7935:                                             ; preds = %7906
  %7936 = sub i32 %7908, %7910
  %7937 = add nsw i32 %7911, 2
  store i32 %7937, ptr @test_count, align 4, !tbaa !5
  %7938 = load ptr, ptr %139, align 8, !tbaa !9
  %7939 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %144, i32 noundef %7936) #13
  %7940 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %138, ptr noundef %7938, ptr noundef %7939, i32 noundef %7936) #13
  %7941 = call zeroext i1 @s2n_result_is_error(i32 %7940)
  br i1 %7941, label %7964, label %7942

7942:                                             ; preds = %7935
  %7943 = load i32, ptr %1329, align 4, !tbaa !5
  %7944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7945 = call i32 @s2n_print_stacktrace(ptr noundef %7944) #13
  %7946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7947 = trunc nuw i8 %7946 to i1
  br i1 %7947, label %7948, label %7952

7948:                                             ; preds = %7942
  %7949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7950 = call i32 @fileno(ptr noundef %7949) #13
  %7951 = call i32 @isatty(i32 noundef %7950) #13
  %.not2055 = icmp eq i32 %7951, 0
  br i1 %.not2055, label %7952, label %7953

7952:                                             ; preds = %7948, %7942
  br label %7953

7953:                                             ; preds = %7948, %7952
  %.str.5.sink5048 = phi ptr [ @.str.5, %7952 ], [ @.str.2, %7948 ]
  store i32 %7943, ptr %1329, align 4, !tbaa !5
  %7954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7955 = load i32, ptr @test_count, align 4, !tbaa !5
  %7956 = load i32, ptr %1275, align 4, !tbaa !5
  %7957 = call ptr @s2n_strerror(i32 noundef %7956, ptr noundef nonnull @.str.4) #13
  %7958 = load i32, ptr %1275, align 4, !tbaa !5
  %7959 = call ptr @s2n_strerror_debug(i32 noundef %7958, ptr noundef nonnull @.str.4) #13
  %7960 = load i32, ptr %1329, align 4, !tbaa !5
  %7961 = call ptr @strerror(i32 noundef %7960) #13
  %7962 = load i32, ptr %1329, align 4, !tbaa !5
  %7963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7954, ptr noundef nonnull %.str.5.sink5048, i32 noundef %7955, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 1145, ptr noundef %7957, ptr noundef %7959, ptr noundef %7961, i32 noundef %7962) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7964:                                             ; preds = %7935
  %7965 = load i32, ptr @test_count, align 4, !tbaa !5
  %7966 = add nsw i32 %7965, 1
  store i32 %7966, ptr @test_count, align 4, !tbaa !5
  %7967 = load i32, ptr %1275, align 4, !tbaa !5
  %7968 = icmp eq i32 %7967, 335544369
  br i1 %7968, label %7991, label %7969

7969:                                             ; preds = %7964
  %7970 = load i32, ptr %1329, align 4, !tbaa !5
  %7971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7972 = call i32 @s2n_print_stacktrace(ptr noundef %7971) #13
  %7973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7974 = trunc nuw i8 %7973 to i1
  br i1 %7974, label %7975, label %7979

7975:                                             ; preds = %7969
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = call i32 @fileno(ptr noundef %7976) #13
  %7978 = call i32 @isatty(i32 noundef %7977) #13
  %.not2056 = icmp eq i32 %7978, 0
  br i1 %.not2056, label %7979, label %7980

7979:                                             ; preds = %7975, %7969
  br label %7980

7980:                                             ; preds = %7975, %7979
  %.str.5.sink5057 = phi ptr [ @.str.5, %7979 ], [ @.str.2, %7975 ]
  store i32 %7970, ptr %1329, align 4, !tbaa !5
  %7981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7982 = load i32, ptr @test_count, align 4, !tbaa !5
  %7983 = load i32, ptr %1275, align 4, !tbaa !5
  %7984 = call ptr @s2n_strerror(i32 noundef %7983, ptr noundef nonnull @.str.4) #13
  %7985 = load i32, ptr %1275, align 4, !tbaa !5
  %7986 = call ptr @s2n_strerror_debug(i32 noundef %7985, ptr noundef nonnull @.str.4) #13
  %7987 = load i32, ptr %1329, align 4, !tbaa !5
  %7988 = call ptr @strerror(i32 noundef %7987) #13
  %7989 = load i32, ptr %1329, align 4, !tbaa !5
  %7990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7981, ptr noundef nonnull %.str.5.sink5057, i32 noundef %7982, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 1145, ptr noundef %7984, ptr noundef %7986, ptr noundef %7988, i32 noundef %7989) #15
  call void @exit(i32 noundef 1) #16
  unreachable

7991:                                             ; preds = %7964
  %7992 = add nsw i32 %7965, 2
  store i32 %7992, ptr @test_count, align 4, !tbaa !5
  %7993 = call ptr @s2n_strerror_debug(i32 noundef 335544369, ptr noundef nonnull @.str.4) #13
  %7994 = icmp eq ptr %7993, null
  br i1 %7994, label %7995, label %8017

7995:                                             ; preds = %7991
  %7996 = load i32, ptr %1329, align 4, !tbaa !5
  %7997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7998 = call i32 @s2n_print_stacktrace(ptr noundef %7997) #13
  %7999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8000 = trunc nuw i8 %7999 to i1
  br i1 %8000, label %8001, label %8005

8001:                                             ; preds = %7995
  %8002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8003 = call i32 @fileno(ptr noundef %8002) #13
  %8004 = call i32 @isatty(i32 noundef %8003) #13
  %.not2379 = icmp eq i32 %8004, 0
  br i1 %.not2379, label %8005, label %8006

8005:                                             ; preds = %8001, %7995
  br label %8006

8006:                                             ; preds = %8001, %8005
  %.str.5.sink5066 = phi ptr [ @.str.5, %8005 ], [ @.str.2, %8001 ]
  store i32 %7996, ptr %1329, align 4, !tbaa !5
  %8007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8008 = load i32, ptr @test_count, align 4, !tbaa !5
  %8009 = load i32, ptr %1275, align 4, !tbaa !5
  %8010 = call ptr @s2n_strerror(i32 noundef %8009, ptr noundef nonnull @.str.4) #13
  %8011 = load i32, ptr %1275, align 4, !tbaa !5
  %8012 = call ptr @s2n_strerror_debug(i32 noundef %8011, ptr noundef nonnull @.str.4) #13
  %8013 = load i32, ptr %1329, align 4, !tbaa !5
  %8014 = call ptr @strerror(i32 noundef %8013) #13
  %8015 = load i32, ptr %1329, align 4, !tbaa !5
  %8016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8007, ptr noundef nonnull %.str.5.sink5066, i32 noundef %8008, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1145, ptr noundef %8010, ptr noundef %8012, ptr noundef %8014, i32 noundef %8015) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8017:                                             ; preds = %7991
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %8018 = load i32, ptr @test_count, align 4, !tbaa !5
  %8019 = add nsw i32 %8018, 1
  store i32 %8019, ptr @test_count, align 4, !tbaa !5
  %8020 = load ptr, ptr %139, align 8, !tbaa !9
  %8021 = getelementptr inbounds i8, ptr %8020, i64 8
  %8022 = load ptr, ptr %8021, align 8, !tbaa !22
  %8023 = call i32 @s2n_config_set_wall_clock(ptr noundef %8022, ptr noundef %7853, ptr noundef null) #13
  %8024 = icmp eq i32 %8023, -1
  br i1 %8024, label %8025, label %8047

8025:                                             ; preds = %8017
  %8026 = load i32, ptr %1329, align 4, !tbaa !5
  %8027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8028 = call i32 @s2n_print_stacktrace(ptr noundef %8027) #13
  %8029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8030 = trunc nuw i8 %8029 to i1
  br i1 %8030, label %8031, label %8035

8031:                                             ; preds = %8025
  %8032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8033 = call i32 @fileno(ptr noundef %8032) #13
  %8034 = call i32 @isatty(i32 noundef %8033) #13
  %.not2378 = icmp eq i32 %8034, 0
  br i1 %.not2378, label %8035, label %8036

8035:                                             ; preds = %8031, %8025
  br label %8036

8036:                                             ; preds = %8031, %8035
  %.str.5.sink5075 = phi ptr [ @.str.5, %8035 ], [ @.str.2, %8031 ]
  store i32 %8026, ptr %1329, align 4, !tbaa !5
  %8037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8038 = load i32, ptr @test_count, align 4, !tbaa !5
  %8039 = load i32, ptr %1275, align 4, !tbaa !5
  %8040 = call ptr @s2n_strerror(i32 noundef %8039, ptr noundef nonnull @.str.4) #13
  %8041 = load i32, ptr %1275, align 4, !tbaa !5
  %8042 = call ptr @s2n_strerror_debug(i32 noundef %8041, ptr noundef nonnull @.str.4) #13
  %8043 = load i32, ptr %1329, align 4, !tbaa !5
  %8044 = call ptr @strerror(i32 noundef %8043) #13
  %8045 = load i32, ptr %1329, align 4, !tbaa !5
  %8046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8037, ptr noundef nonnull %.str.5.sink5075, i32 noundef %8038, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 1147, ptr noundef %8040, ptr noundef %8042, ptr noundef %8044, i32 noundef %8045) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8047:                                             ; preds = %8017
  %8048 = call i32 @s2n_stuffer_free(ptr noundef nonnull %144) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %144) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %143) #13
  %8049 = call i32 @s2n_pkey_free(ptr noundef nonnull %142) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %142) #13
  %8050 = call i32 @s2n_stuffer_free(ptr noundef nonnull %141) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %141) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %140) #13
  %8051 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %139) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #13
  %8052 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %138) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %138) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %137) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %137) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %145) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %145) #13
  %8053 = load i32, ptr @test_count, align 4, !tbaa !5
  %8054 = add nsw i32 %8053, 1
  store i32 %8054, ptr @test_count, align 4, !tbaa !5
  %8055 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %145, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %8056 = icmp eq i32 %8055, -1
  br i1 %8056, label %8057, label %8079

8057:                                             ; preds = %8047
  %8058 = load i32, ptr %1329, align 4, !tbaa !5
  %8059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8060 = call i32 @s2n_print_stacktrace(ptr noundef %8059) #13
  %8061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8062 = trunc nuw i8 %8061 to i1
  br i1 %8062, label %8063, label %8067

8063:                                             ; preds = %8057
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = call i32 @fileno(ptr noundef %8064) #13
  %8066 = call i32 @isatty(i32 noundef %8065) #13
  %.not2377 = icmp eq i32 %8066, 0
  br i1 %.not2377, label %8067, label %8068

8067:                                             ; preds = %8063, %8057
  br label %8068

8068:                                             ; preds = %8063, %8067
  %.str.5.sink5084 = phi ptr [ @.str.5, %8067 ], [ @.str.2, %8063 ]
  store i32 %8058, ptr %1329, align 4, !tbaa !5
  %8069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8070 = load i32, ptr @test_count, align 4, !tbaa !5
  %8071 = load i32, ptr %1275, align 4, !tbaa !5
  %8072 = call ptr @s2n_strerror(i32 noundef %8071, ptr noundef nonnull @.str.4) #13
  %8073 = load i32, ptr %1275, align 4, !tbaa !5
  %8074 = call ptr @s2n_strerror_debug(i32 noundef %8073, ptr noundef nonnull @.str.4) #13
  %8075 = load i32, ptr %1329, align 4, !tbaa !5
  %8076 = call ptr @strerror(i32 noundef %8075) #13
  %8077 = load i32, ptr %1329, align 4, !tbaa !5
  %8078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8069, ptr noundef nonnull %.str.5.sink5084, i32 noundef %8070, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1154, ptr noundef %8072, ptr noundef %8074, ptr noundef %8076, i32 noundef %8077) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8079:                                             ; preds = %8047
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %146) #13
  %8080 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %146, ptr noundef nonnull %145, i8 noundef zeroext 1) #13
  %8081 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %8082 = load i32, ptr @test_count, align 4, !tbaa !5
  %8083 = add nsw i32 %8082, 1
  store i32 %8083, ptr @test_count, align 4, !tbaa !5
  %8084 = icmp eq ptr %8081, null
  br i1 %8084, label %8085, label %8107

8085:                                             ; preds = %8079
  %8086 = load i32, ptr %1329, align 4, !tbaa !5
  %8087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8088 = call i32 @s2n_print_stacktrace(ptr noundef %8087) #13
  %8089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8090 = trunc nuw i8 %8089 to i1
  br i1 %8090, label %8091, label %8095

8091:                                             ; preds = %8085
  %8092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8093 = call i32 @fileno(ptr noundef %8092) #13
  %8094 = call i32 @isatty(i32 noundef %8093) #13
  %.not2376 = icmp eq i32 %8094, 0
  br i1 %.not2376, label %8095, label %8096

8095:                                             ; preds = %8091, %8085
  br label %8096

8096:                                             ; preds = %8091, %8095
  %.str.5.sink5093 = phi ptr [ @.str.5, %8095 ], [ @.str.2, %8091 ]
  store i32 %8086, ptr %1329, align 4, !tbaa !5
  %8097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8098 = load i32, ptr @test_count, align 4, !tbaa !5
  %8099 = load i32, ptr %1275, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror(i32 noundef %8099, ptr noundef nonnull @.str.4) #13
  %8101 = load i32, ptr %1275, align 4, !tbaa !5
  %8102 = call ptr @s2n_strerror_debug(i32 noundef %8101, ptr noundef nonnull @.str.4) #13
  %8103 = load i32, ptr %1329, align 4, !tbaa !5
  %8104 = call ptr @strerror(i32 noundef %8103) #13
  %8105 = load i32, ptr %1329, align 4, !tbaa !5
  %8106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8097, ptr noundef nonnull %.str.5.sink5093, i32 noundef %8098, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1160, ptr noundef %8100, ptr noundef %8102, ptr noundef %8104, i32 noundef %8105) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8107:                                             ; preds = %8079
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %147) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %147, i8 0, i64 16, i1 false)
  %8108 = add nsw i32 %8082, 2
  store i32 %8108, ptr @test_count, align 4, !tbaa !5
  %8109 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %8081, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %147) #13
  %8110 = icmp eq i32 %8109, -1
  br i1 %8110, label %8111, label %8133

8111:                                             ; preds = %8107
  %8112 = load i32, ptr %1329, align 4, !tbaa !5
  %8113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8114 = call i32 @s2n_print_stacktrace(ptr noundef %8113) #13
  %8115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8116 = trunc nuw i8 %8115 to i1
  br i1 %8116, label %8117, label %8121

8117:                                             ; preds = %8111
  %8118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8119 = call i32 @fileno(ptr noundef %8118) #13
  %8120 = call i32 @isatty(i32 noundef %8119) #13
  %.not2375 = icmp eq i32 %8120, 0
  br i1 %.not2375, label %8121, label %8122

8121:                                             ; preds = %8117, %8111
  br label %8122

8122:                                             ; preds = %8117, %8121
  %.str.5.sink5102 = phi ptr [ @.str.5, %8121 ], [ @.str.2, %8117 ]
  store i32 %8112, ptr %1329, align 4, !tbaa !5
  %8123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8124 = load i32, ptr @test_count, align 4, !tbaa !5
  %8125 = load i32, ptr %1275, align 4, !tbaa !5
  %8126 = call ptr @s2n_strerror(i32 noundef %8125, ptr noundef nonnull @.str.4) #13
  %8127 = load i32, ptr %1275, align 4, !tbaa !5
  %8128 = call ptr @s2n_strerror_debug(i32 noundef %8127, ptr noundef nonnull @.str.4) #13
  %8129 = load i32, ptr %1329, align 4, !tbaa !5
  %8130 = call ptr @strerror(i32 noundef %8129) #13
  %8131 = load i32, ptr %1329, align 4, !tbaa !5
  %8132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8123, ptr noundef nonnull %.str.5.sink5102, i32 noundef %8124, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1163, ptr noundef %8126, ptr noundef %8128, ptr noundef %8130, i32 noundef %8131) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8133:                                             ; preds = %8107
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %148) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %148, i8 0, i64 40, i1 false)
  %8134 = load i32, ptr @test_count, align 4, !tbaa !5
  %8135 = add nsw i32 %8134, 1
  store i32 %8135, ptr @test_count, align 4, !tbaa !5
  %8136 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %8081, ptr noundef nonnull @.str.72, ptr noundef nonnull %148) #13
  %8137 = call zeroext i1 @s2n_result_is_ok(i32 %8136)
  br i1 %8137, label %8160, label %8138

8138:                                             ; preds = %8133
  %8139 = load i32, ptr %1329, align 4, !tbaa !5
  %8140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8141 = call i32 @s2n_print_stacktrace(ptr noundef %8140) #13
  %8142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8143 = trunc nuw i8 %8142 to i1
  br i1 %8143, label %8144, label %8148

8144:                                             ; preds = %8138
  %8145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8146 = call i32 @fileno(ptr noundef %8145) #13
  %8147 = call i32 @isatty(i32 noundef %8146) #13
  %.not2057 = icmp eq i32 %8147, 0
  br i1 %.not2057, label %8148, label %8149

8148:                                             ; preds = %8144, %8138
  br label %8149

8149:                                             ; preds = %8144, %8148
  %.str.5.sink5111 = phi ptr [ @.str.5, %8148 ], [ @.str.2, %8144 ]
  store i32 %8139, ptr %1329, align 4, !tbaa !5
  %8150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8151 = load i32, ptr @test_count, align 4, !tbaa !5
  %8152 = load i32, ptr %1275, align 4, !tbaa !5
  %8153 = call ptr @s2n_strerror(i32 noundef %8152, ptr noundef nonnull @.str.4) #13
  %8154 = load i32, ptr %1275, align 4, !tbaa !5
  %8155 = call ptr @s2n_strerror_debug(i32 noundef %8154, ptr noundef nonnull @.str.4) #13
  %8156 = load i32, ptr %1329, align 4, !tbaa !5
  %8157 = call ptr @strerror(i32 noundef %8156) #13
  %8158 = load i32, ptr %1329, align 4, !tbaa !5
  %8159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8150, ptr noundef nonnull %.str.5.sink5111, i32 noundef %8151, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 1166, ptr noundef %8153, ptr noundef %8155, ptr noundef %8157, i32 noundef %8158) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8160:                                             ; preds = %8133
  %8161 = getelementptr inbounds i8, ptr %148, i64 28
  %8162 = load i32, ptr %8161, align 4, !tbaa !15
  %8163 = getelementptr inbounds i8, ptr %148, i64 24
  %8164 = load i32, ptr %8163, align 8, !tbaa !18
  %8165 = sub i32 %8162, %8164
  %8166 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %148, i32 noundef %8165) #13
  %8167 = load i32, ptr @test_count, align 4, !tbaa !5
  %8168 = add nsw i32 %8167, 1
  store i32 %8168, ptr @test_count, align 4, !tbaa !5
  %8169 = icmp eq ptr %8166, null
  br i1 %8169, label %8170, label %8192

8170:                                             ; preds = %8160
  %8171 = load i32, ptr %1329, align 4, !tbaa !5
  %8172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8173 = call i32 @s2n_print_stacktrace(ptr noundef %8172) #13
  %8174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8175 = trunc nuw i8 %8174 to i1
  br i1 %8175, label %8176, label %8180

8176:                                             ; preds = %8170
  %8177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8178 = call i32 @fileno(ptr noundef %8177) #13
  %8179 = call i32 @isatty(i32 noundef %8178) #13
  %.not2374 = icmp eq i32 %8179, 0
  br i1 %.not2374, label %8180, label %8181

8180:                                             ; preds = %8176, %8170
  br label %8181

8181:                                             ; preds = %8176, %8180
  %.str.5.sink5120 = phi ptr [ @.str.5, %8180 ], [ @.str.2, %8176 ]
  store i32 %8171, ptr %1329, align 4, !tbaa !5
  %8182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8183 = load i32, ptr @test_count, align 4, !tbaa !5
  %8184 = load i32, ptr %1275, align 4, !tbaa !5
  %8185 = call ptr @s2n_strerror(i32 noundef %8184, ptr noundef nonnull @.str.4) #13
  %8186 = load i32, ptr %1275, align 4, !tbaa !5
  %8187 = call ptr @s2n_strerror_debug(i32 noundef %8186, ptr noundef nonnull @.str.4) #13
  %8188 = load i32, ptr %1329, align 4, !tbaa !5
  %8189 = call ptr @strerror(i32 noundef %8188) #13
  %8190 = load i32, ptr %1329, align 4, !tbaa !5
  %8191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8182, ptr noundef nonnull %.str.5.sink5120, i32 noundef %8183, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1169, ptr noundef %8185, ptr noundef %8187, ptr noundef %8189, i32 noundef %8190) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8192:                                             ; preds = %8160
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %149) #13
  %8193 = add nsw i32 %8167, 2
  store i32 %8193, ptr @test_count, align 4, !tbaa !5
  %8194 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %149) #13
  %8195 = icmp eq i32 %8194, -1
  br i1 %8195, label %8196, label %8218

8196:                                             ; preds = %8192
  %8197 = load i32, ptr %1329, align 4, !tbaa !5
  %8198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8199 = call i32 @s2n_print_stacktrace(ptr noundef %8198) #13
  %8200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8201 = trunc nuw i8 %8200 to i1
  br i1 %8201, label %8202, label %8206

8202:                                             ; preds = %8196
  %8203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8204 = call i32 @fileno(ptr noundef %8203) #13
  %8205 = call i32 @isatty(i32 noundef %8204) #13
  %.not2373 = icmp eq i32 %8205, 0
  br i1 %.not2373, label %8206, label %8207

8206:                                             ; preds = %8202, %8196
  br label %8207

8207:                                             ; preds = %8202, %8206
  %.str.5.sink5129 = phi ptr [ @.str.5, %8206 ], [ @.str.2, %8202 ]
  store i32 %8197, ptr %1329, align 4, !tbaa !5
  %8208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8209 = load i32, ptr @test_count, align 4, !tbaa !5
  %8210 = load i32, ptr %1275, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror(i32 noundef %8210, ptr noundef nonnull @.str.4) #13
  %8212 = load i32, ptr %1275, align 4, !tbaa !5
  %8213 = call ptr @s2n_strerror_debug(i32 noundef %8212, ptr noundef nonnull @.str.4) #13
  %8214 = load i32, ptr %1329, align 4, !tbaa !5
  %8215 = call ptr @strerror(i32 noundef %8214) #13
  %8216 = load i32, ptr %1329, align 4, !tbaa !5
  %8217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8208, ptr noundef nonnull %.str.5.sink5129, i32 noundef %8209, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1172, ptr noundef %8211, ptr noundef %8213, ptr noundef %8215, i32 noundef %8216) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8218:                                             ; preds = %8192
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %150) #13
  store i32 -1, ptr %150, align 4, !tbaa !5
  %8219 = load i32, ptr @test_count, align 4, !tbaa !5
  %8220 = add nsw i32 %8219, 1
  store i32 %8220, ptr @test_count, align 4, !tbaa !5
  %8221 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %146, ptr noundef nonnull %8081, ptr noundef nonnull %8166, i32 noundef %8165, ptr noundef nonnull %150, ptr noundef nonnull %149) #13
  %8222 = call zeroext i1 @s2n_result_is_ok(i32 %8221)
  br i1 %8222, label %8245, label %8223

8223:                                             ; preds = %8218
  %8224 = load i32, ptr %1329, align 4, !tbaa !5
  %8225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8226 = call i32 @s2n_print_stacktrace(ptr noundef %8225) #13
  %8227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8228 = trunc nuw i8 %8227 to i1
  br i1 %8228, label %8229, label %8233

8229:                                             ; preds = %8223
  %8230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8231 = call i32 @fileno(ptr noundef %8230) #13
  %8232 = call i32 @isatty(i32 noundef %8231) #13
  %.not2058 = icmp eq i32 %8232, 0
  br i1 %.not2058, label %8233, label %8234

8233:                                             ; preds = %8229, %8223
  br label %8234

8234:                                             ; preds = %8229, %8233
  %.str.5.sink5138 = phi ptr [ @.str.5, %8233 ], [ @.str.2, %8229 ]
  store i32 %8224, ptr %1329, align 4, !tbaa !5
  %8235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8236 = load i32, ptr @test_count, align 4, !tbaa !5
  %8237 = load i32, ptr %1275, align 4, !tbaa !5
  %8238 = call ptr @s2n_strerror(i32 noundef %8237, ptr noundef nonnull @.str.4) #13
  %8239 = load i32, ptr %1275, align 4, !tbaa !5
  %8240 = call ptr @s2n_strerror_debug(i32 noundef %8239, ptr noundef nonnull @.str.4) #13
  %8241 = load i32, ptr %1329, align 4, !tbaa !5
  %8242 = call ptr @strerror(i32 noundef %8241) #13
  %8243 = load i32, ptr %1329, align 4, !tbaa !5
  %8244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8235, ptr noundef nonnull %.str.5.sink5138, i32 noundef %8236, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1174, ptr noundef %8238, ptr noundef %8240, ptr noundef %8242, i32 noundef %8243) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8245:                                             ; preds = %8218
  %8246 = load i32, ptr @test_count, align 4, !tbaa !5
  %8247 = add nsw i32 %8246, 1
  store i32 %8247, ptr @test_count, align 4, !tbaa !5
  %8248 = getelementptr inbounds i8, ptr %147, i64 9
  %8249 = load i8, ptr %8248, align 1, !tbaa !19
  %8250 = icmp eq i8 %8249, 1
  br i1 %8250, label %8273, label %8251

8251:                                             ; preds = %8245
  %8252 = load i32, ptr %1329, align 4, !tbaa !5
  %8253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8254 = call i32 @s2n_print_stacktrace(ptr noundef %8253) #13
  %8255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8256 = trunc nuw i8 %8255 to i1
  br i1 %8256, label %8257, label %8261

8257:                                             ; preds = %8251
  %8258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8259 = call i32 @fileno(ptr noundef %8258) #13
  %8260 = call i32 @isatty(i32 noundef %8259) #13
  %.not2059 = icmp eq i32 %8260, 0
  br i1 %.not2059, label %8261, label %8262

8261:                                             ; preds = %8257, %8251
  br label %8262

8262:                                             ; preds = %8257, %8261
  %.str.5.sink5147 = phi ptr [ @.str.5, %8261 ], [ @.str.2, %8257 ]
  store i32 %8252, ptr %1329, align 4, !tbaa !5
  %8263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8264 = load i32, ptr @test_count, align 4, !tbaa !5
  %8265 = load i32, ptr %1275, align 4, !tbaa !5
  %8266 = call ptr @s2n_strerror(i32 noundef %8265, ptr noundef nonnull @.str.4) #13
  %8267 = load i32, ptr %1275, align 4, !tbaa !5
  %8268 = call ptr @s2n_strerror_debug(i32 noundef %8267, ptr noundef nonnull @.str.4) #13
  %8269 = load i32, ptr %1329, align 4, !tbaa !5
  %8270 = call ptr @strerror(i32 noundef %8269) #13
  %8271 = load i32, ptr %1329, align 4, !tbaa !5
  %8272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8263, ptr noundef nonnull %.str.5.sink5147, i32 noundef %8264, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1176, ptr noundef %8266, ptr noundef %8268, ptr noundef %8270, i32 noundef %8271) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8273:                                             ; preds = %8245
  %8274 = getelementptr inbounds i8, ptr %8081, i64 8
  %8275 = load ptr, ptr %8274, align 8, !tbaa !22
  %8276 = getelementptr inbounds i8, ptr %8275, i64 80
  %8277 = load ptr, ptr %8276, align 8, !tbaa !47
  %8278 = call i32 @s2n_config_set_wall_clock(ptr noundef %8275, ptr noundef nonnull @fetch_invalid_before_ocsp_timestamp, ptr noundef null) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %151) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %151, i8 0, i64 40, i1 false)
  %8279 = load i32, ptr @test_count, align 4, !tbaa !5
  %8280 = add nsw i32 %8279, 1
  store i32 %8280, ptr @test_count, align 4, !tbaa !5
  %8281 = call i32 @read_file(ptr noundef nonnull %151, ptr noundef nonnull @.str.74, i32 noundef 12000)
  %8282 = icmp eq i32 %8281, -1
  br i1 %8282, label %8283, label %8305

8283:                                             ; preds = %8273
  %8284 = load i32, ptr %1329, align 4, !tbaa !5
  %8285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8286 = call i32 @s2n_print_stacktrace(ptr noundef %8285) #13
  %8287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8288 = trunc nuw i8 %8287 to i1
  br i1 %8288, label %8289, label %8293

8289:                                             ; preds = %8283
  %8290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8291 = call i32 @fileno(ptr noundef %8290) #13
  %8292 = call i32 @isatty(i32 noundef %8291) #13
  %.not2372 = icmp eq i32 %8292, 0
  br i1 %.not2372, label %8293, label %8294

8293:                                             ; preds = %8289, %8283
  br label %8294

8294:                                             ; preds = %8289, %8293
  %.str.5.sink5156 = phi ptr [ @.str.5, %8293 ], [ @.str.2, %8289 ]
  store i32 %8284, ptr %1329, align 4, !tbaa !5
  %8295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8296 = load i32, ptr @test_count, align 4, !tbaa !5
  %8297 = load i32, ptr %1275, align 4, !tbaa !5
  %8298 = call ptr @s2n_strerror(i32 noundef %8297, ptr noundef nonnull @.str.4) #13
  %8299 = load i32, ptr %1275, align 4, !tbaa !5
  %8300 = call ptr @s2n_strerror_debug(i32 noundef %8299, ptr noundef nonnull @.str.4) #13
  %8301 = load i32, ptr %1329, align 4, !tbaa !5
  %8302 = call ptr @strerror(i32 noundef %8301) #13
  %8303 = load i32, ptr %1329, align 4, !tbaa !5
  %8304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8295, ptr noundef nonnull %.str.5.sink5156, i32 noundef %8296, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 1181, ptr noundef %8298, ptr noundef %8300, ptr noundef %8302, i32 noundef %8303) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8305:                                             ; preds = %8273
  %8306 = getelementptr inbounds i8, ptr %151, i64 28
  %8307 = load i32, ptr %8306, align 4, !tbaa !15
  %8308 = getelementptr inbounds i8, ptr %151, i64 24
  %8309 = load i32, ptr %8308, align 8, !tbaa !18
  %8310 = load i32, ptr @test_count, align 4, !tbaa !5
  %8311 = add nsw i32 %8310, 1
  store i32 %8311, ptr @test_count, align 4, !tbaa !5
  %.not2060 = icmp eq i32 %8307, %8309
  br i1 %.not2060, label %8312, label %8334

8312:                                             ; preds = %8305
  %8313 = load i32, ptr %1329, align 4, !tbaa !5
  %8314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8315 = call i32 @s2n_print_stacktrace(ptr noundef %8314) #13
  %8316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8317 = trunc nuw i8 %8316 to i1
  br i1 %8317, label %8318, label %8322

8318:                                             ; preds = %8312
  %8319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8320 = call i32 @fileno(ptr noundef %8319) #13
  %8321 = call i32 @isatty(i32 noundef %8320) #13
  %.not2061 = icmp eq i32 %8321, 0
  br i1 %.not2061, label %8322, label %8323

8322:                                             ; preds = %8318, %8312
  br label %8323

8323:                                             ; preds = %8318, %8322
  %.str.5.sink5165 = phi ptr [ @.str.5, %8322 ], [ @.str.2, %8318 ]
  store i32 %8313, ptr %1329, align 4, !tbaa !5
  %8324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8325 = load i32, ptr @test_count, align 4, !tbaa !5
  %8326 = load i32, ptr %1275, align 4, !tbaa !5
  %8327 = call ptr @s2n_strerror(i32 noundef %8326, ptr noundef nonnull @.str.4) #13
  %8328 = load i32, ptr %1275, align 4, !tbaa !5
  %8329 = call ptr @s2n_strerror_debug(i32 noundef %8328, ptr noundef nonnull @.str.4) #13
  %8330 = load i32, ptr %1329, align 4, !tbaa !5
  %8331 = call ptr @strerror(i32 noundef %8330) #13
  %8332 = load i32, ptr %1329, align 4, !tbaa !5
  %8333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8324, ptr noundef nonnull %.str.5.sink5165, i32 noundef %8325, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1183, ptr noundef %8327, ptr noundef %8329, ptr noundef %8331, i32 noundef %8332) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8334:                                             ; preds = %8305
  %8335 = sub i32 %8307, %8309
  %8336 = add nsw i32 %8310, 2
  store i32 %8336, ptr @test_count, align 4, !tbaa !5
  %8337 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %151, i32 noundef %8335) #13
  %8338 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %146, ptr noundef nonnull %8081, ptr noundef %8337, i32 noundef %8335) #13
  %8339 = call zeroext i1 @s2n_result_is_error(i32 %8338)
  br i1 %8339, label %8362, label %8340

8340:                                             ; preds = %8334
  %8341 = load i32, ptr %1329, align 4, !tbaa !5
  %8342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8343 = call i32 @s2n_print_stacktrace(ptr noundef %8342) #13
  %8344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8345 = trunc nuw i8 %8344 to i1
  br i1 %8345, label %8346, label %8350

8346:                                             ; preds = %8340
  %8347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8348 = call i32 @fileno(ptr noundef %8347) #13
  %8349 = call i32 @isatty(i32 noundef %8348) #13
  %.not2062 = icmp eq i32 %8349, 0
  br i1 %.not2062, label %8350, label %8351

8350:                                             ; preds = %8346, %8340
  br label %8351

8351:                                             ; preds = %8346, %8350
  %.str.5.sink5174 = phi ptr [ @.str.5, %8350 ], [ @.str.2, %8346 ]
  store i32 %8341, ptr %1329, align 4, !tbaa !5
  %8352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8353 = load i32, ptr @test_count, align 4, !tbaa !5
  %8354 = load i32, ptr %1275, align 4, !tbaa !5
  %8355 = call ptr @s2n_strerror(i32 noundef %8354, ptr noundef nonnull @.str.4) #13
  %8356 = load i32, ptr %1275, align 4, !tbaa !5
  %8357 = call ptr @s2n_strerror_debug(i32 noundef %8356, ptr noundef nonnull @.str.4) #13
  %8358 = load i32, ptr %1329, align 4, !tbaa !5
  %8359 = call ptr @strerror(i32 noundef %8358) #13
  %8360 = load i32, ptr %1329, align 4, !tbaa !5
  %8361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8352, ptr noundef nonnull %.str.5.sink5174, i32 noundef %8353, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 1186, ptr noundef %8355, ptr noundef %8357, ptr noundef %8359, i32 noundef %8360) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8362:                                             ; preds = %8334
  %8363 = load i32, ptr @test_count, align 4, !tbaa !5
  %8364 = add nsw i32 %8363, 1
  store i32 %8364, ptr @test_count, align 4, !tbaa !5
  %8365 = load i32, ptr %1275, align 4, !tbaa !5
  %8366 = icmp eq i32 %8365, 335544371
  br i1 %8366, label %8389, label %8367

8367:                                             ; preds = %8362
  %8368 = load i32, ptr %1329, align 4, !tbaa !5
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = call i32 @s2n_print_stacktrace(ptr noundef %8369) #13
  %8371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8372 = trunc nuw i8 %8371 to i1
  br i1 %8372, label %8373, label %8377

8373:                                             ; preds = %8367
  %8374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8375 = call i32 @fileno(ptr noundef %8374) #13
  %8376 = call i32 @isatty(i32 noundef %8375) #13
  %.not2063 = icmp eq i32 %8376, 0
  br i1 %.not2063, label %8377, label %8378

8377:                                             ; preds = %8373, %8367
  br label %8378

8378:                                             ; preds = %8373, %8377
  %.str.5.sink5183 = phi ptr [ @.str.5, %8377 ], [ @.str.2, %8373 ]
  store i32 %8368, ptr %1329, align 4, !tbaa !5
  %8379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8380 = load i32, ptr @test_count, align 4, !tbaa !5
  %8381 = load i32, ptr %1275, align 4, !tbaa !5
  %8382 = call ptr @s2n_strerror(i32 noundef %8381, ptr noundef nonnull @.str.4) #13
  %8383 = load i32, ptr %1275, align 4, !tbaa !5
  %8384 = call ptr @s2n_strerror_debug(i32 noundef %8383, ptr noundef nonnull @.str.4) #13
  %8385 = load i32, ptr %1329, align 4, !tbaa !5
  %8386 = call ptr @strerror(i32 noundef %8385) #13
  %8387 = load i32, ptr %1329, align 4, !tbaa !5
  %8388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8379, ptr noundef nonnull %.str.5.sink5183, i32 noundef %8380, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 1186, ptr noundef %8382, ptr noundef %8384, ptr noundef %8386, i32 noundef %8387) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8389:                                             ; preds = %8362
  %8390 = add nsw i32 %8363, 2
  store i32 %8390, ptr @test_count, align 4, !tbaa !5
  %8391 = call ptr @s2n_strerror_debug(i32 noundef 335544371, ptr noundef nonnull @.str.4) #13
  %8392 = icmp eq ptr %8391, null
  br i1 %8392, label %8393, label %8415

8393:                                             ; preds = %8389
  %8394 = load i32, ptr %1329, align 4, !tbaa !5
  %8395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8396 = call i32 @s2n_print_stacktrace(ptr noundef %8395) #13
  %8397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8398 = trunc nuw i8 %8397 to i1
  br i1 %8398, label %8399, label %8403

8399:                                             ; preds = %8393
  %8400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8401 = call i32 @fileno(ptr noundef %8400) #13
  %8402 = call i32 @isatty(i32 noundef %8401) #13
  %.not2371 = icmp eq i32 %8402, 0
  br i1 %.not2371, label %8403, label %8404

8403:                                             ; preds = %8399, %8393
  br label %8404

8404:                                             ; preds = %8399, %8403
  %.str.5.sink5192 = phi ptr [ @.str.5, %8403 ], [ @.str.2, %8399 ]
  store i32 %8394, ptr %1329, align 4, !tbaa !5
  %8405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8406 = load i32, ptr @test_count, align 4, !tbaa !5
  %8407 = load i32, ptr %1275, align 4, !tbaa !5
  %8408 = call ptr @s2n_strerror(i32 noundef %8407, ptr noundef nonnull @.str.4) #13
  %8409 = load i32, ptr %1275, align 4, !tbaa !5
  %8410 = call ptr @s2n_strerror_debug(i32 noundef %8409, ptr noundef nonnull @.str.4) #13
  %8411 = load i32, ptr %1329, align 4, !tbaa !5
  %8412 = call ptr @strerror(i32 noundef %8411) #13
  %8413 = load i32, ptr %1329, align 4, !tbaa !5
  %8414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8405, ptr noundef nonnull %.str.5.sink5192, i32 noundef %8406, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1186, ptr noundef %8408, ptr noundef %8410, ptr noundef %8412, i32 noundef %8413) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8415:                                             ; preds = %8389
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %8416 = load ptr, ptr %8274, align 8, !tbaa !22
  %8417 = call i32 @s2n_config_set_wall_clock(ptr noundef %8416, ptr noundef %8277, ptr noundef null) #13
  %8418 = call i32 @s2n_stuffer_free(ptr noundef nonnull %151) #13
  %8419 = call i32 @s2n_connection_free(ptr noundef nonnull %8081) #13
  %8420 = call i32 @s2n_pkey_free(ptr noundef nonnull %149) #13
  %8421 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %146) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %145) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %151) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %150) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %149) #13
  %8422 = call i32 @s2n_stuffer_free(ptr noundef nonnull %148) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %148) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %147) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %146) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %145) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %152) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %152) #13
  %8423 = load i32, ptr @test_count, align 4, !tbaa !5
  %8424 = add nsw i32 %8423, 1
  store i32 %8424, ptr @test_count, align 4, !tbaa !5
  %8425 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %152, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %8426 = icmp eq i32 %8425, -1
  br i1 %8426, label %8427, label %8449

8427:                                             ; preds = %8415
  %8428 = load i32, ptr %1329, align 4, !tbaa !5
  %8429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8430 = call i32 @s2n_print_stacktrace(ptr noundef %8429) #13
  %8431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8432 = trunc nuw i8 %8431 to i1
  br i1 %8432, label %8433, label %8437

8433:                                             ; preds = %8427
  %8434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8435 = call i32 @fileno(ptr noundef %8434) #13
  %8436 = call i32 @isatty(i32 noundef %8435) #13
  %.not2370 = icmp eq i32 %8436, 0
  br i1 %.not2370, label %8437, label %8438

8437:                                             ; preds = %8433, %8427
  br label %8438

8438:                                             ; preds = %8433, %8437
  %.str.5.sink5201 = phi ptr [ @.str.5, %8437 ], [ @.str.2, %8433 ]
  store i32 %8428, ptr %1329, align 4, !tbaa !5
  %8439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8440 = load i32, ptr @test_count, align 4, !tbaa !5
  %8441 = load i32, ptr %1275, align 4, !tbaa !5
  %8442 = call ptr @s2n_strerror(i32 noundef %8441, ptr noundef nonnull @.str.4) #13
  %8443 = load i32, ptr %1275, align 4, !tbaa !5
  %8444 = call ptr @s2n_strerror_debug(i32 noundef %8443, ptr noundef nonnull @.str.4) #13
  %8445 = load i32, ptr %1329, align 4, !tbaa !5
  %8446 = call ptr @strerror(i32 noundef %8445) #13
  %8447 = load i32, ptr %1329, align 4, !tbaa !5
  %8448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8439, ptr noundef nonnull %.str.5.sink5201, i32 noundef %8440, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1201, ptr noundef %8442, ptr noundef %8444, ptr noundef %8446, i32 noundef %8447) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8449:                                             ; preds = %8415
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %153) #13
  %8450 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %153, ptr noundef nonnull %152, i8 noundef zeroext 1) #13
  %8451 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %8452 = load i32, ptr @test_count, align 4, !tbaa !5
  %8453 = add nsw i32 %8452, 1
  store i32 %8453, ptr @test_count, align 4, !tbaa !5
  %8454 = icmp eq ptr %8451, null
  br i1 %8454, label %8455, label %8477

8455:                                             ; preds = %8449
  %8456 = load i32, ptr %1329, align 4, !tbaa !5
  %8457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8458 = call i32 @s2n_print_stacktrace(ptr noundef %8457) #13
  %8459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8460 = trunc nuw i8 %8459 to i1
  br i1 %8460, label %8461, label %8465

8461:                                             ; preds = %8455
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = call i32 @fileno(ptr noundef %8462) #13
  %8464 = call i32 @isatty(i32 noundef %8463) #13
  %.not2369 = icmp eq i32 %8464, 0
  br i1 %.not2369, label %8465, label %8466

8465:                                             ; preds = %8461, %8455
  br label %8466

8466:                                             ; preds = %8461, %8465
  %.str.5.sink5210 = phi ptr [ @.str.5, %8465 ], [ @.str.2, %8461 ]
  store i32 %8456, ptr %1329, align 4, !tbaa !5
  %8467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8468 = load i32, ptr @test_count, align 4, !tbaa !5
  %8469 = load i32, ptr %1275, align 4, !tbaa !5
  %8470 = call ptr @s2n_strerror(i32 noundef %8469, ptr noundef nonnull @.str.4) #13
  %8471 = load i32, ptr %1275, align 4, !tbaa !5
  %8472 = call ptr @s2n_strerror_debug(i32 noundef %8471, ptr noundef nonnull @.str.4) #13
  %8473 = load i32, ptr %1329, align 4, !tbaa !5
  %8474 = call ptr @strerror(i32 noundef %8473) #13
  %8475 = load i32, ptr %1329, align 4, !tbaa !5
  %8476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8467, ptr noundef nonnull %.str.5.sink5210, i32 noundef %8468, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1207, ptr noundef %8470, ptr noundef %8472, ptr noundef %8474, i32 noundef %8475) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8477:                                             ; preds = %8449
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %154) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %154, i8 0, i64 16, i1 false)
  %8478 = add nsw i32 %8452, 2
  store i32 %8478, ptr @test_count, align 4, !tbaa !5
  %8479 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %8451, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %154) #13
  %8480 = icmp eq i32 %8479, -1
  br i1 %8480, label %8481, label %8503

8481:                                             ; preds = %8477
  %8482 = load i32, ptr %1329, align 4, !tbaa !5
  %8483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8484 = call i32 @s2n_print_stacktrace(ptr noundef %8483) #13
  %8485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8486 = trunc nuw i8 %8485 to i1
  br i1 %8486, label %8487, label %8491

8487:                                             ; preds = %8481
  %8488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8489 = call i32 @fileno(ptr noundef %8488) #13
  %8490 = call i32 @isatty(i32 noundef %8489) #13
  %.not2368 = icmp eq i32 %8490, 0
  br i1 %.not2368, label %8491, label %8492

8491:                                             ; preds = %8487, %8481
  br label %8492

8492:                                             ; preds = %8487, %8491
  %.str.5.sink5219 = phi ptr [ @.str.5, %8491 ], [ @.str.2, %8487 ]
  store i32 %8482, ptr %1329, align 4, !tbaa !5
  %8493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8494 = load i32, ptr @test_count, align 4, !tbaa !5
  %8495 = load i32, ptr %1275, align 4, !tbaa !5
  %8496 = call ptr @s2n_strerror(i32 noundef %8495, ptr noundef nonnull @.str.4) #13
  %8497 = load i32, ptr %1275, align 4, !tbaa !5
  %8498 = call ptr @s2n_strerror_debug(i32 noundef %8497, ptr noundef nonnull @.str.4) #13
  %8499 = load i32, ptr %1329, align 4, !tbaa !5
  %8500 = call ptr @strerror(i32 noundef %8499) #13
  %8501 = load i32, ptr %1329, align 4, !tbaa !5
  %8502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8493, ptr noundef nonnull %.str.5.sink5219, i32 noundef %8494, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1210, ptr noundef %8496, ptr noundef %8498, ptr noundef %8500, i32 noundef %8501) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8503:                                             ; preds = %8477
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %155) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %155, i8 0, i64 40, i1 false)
  %8504 = load i32, ptr @test_count, align 4, !tbaa !5
  %8505 = add nsw i32 %8504, 1
  store i32 %8505, ptr @test_count, align 4, !tbaa !5
  %8506 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %8451, ptr noundef nonnull @.str.72, ptr noundef nonnull %155) #13
  %8507 = call zeroext i1 @s2n_result_is_ok(i32 %8506)
  br i1 %8507, label %8530, label %8508

8508:                                             ; preds = %8503
  %8509 = load i32, ptr %1329, align 4, !tbaa !5
  %8510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8511 = call i32 @s2n_print_stacktrace(ptr noundef %8510) #13
  %8512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8513 = trunc nuw i8 %8512 to i1
  br i1 %8513, label %8514, label %8518

8514:                                             ; preds = %8508
  %8515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8516 = call i32 @fileno(ptr noundef %8515) #13
  %8517 = call i32 @isatty(i32 noundef %8516) #13
  %.not2064 = icmp eq i32 %8517, 0
  br i1 %.not2064, label %8518, label %8519

8518:                                             ; preds = %8514, %8508
  br label %8519

8519:                                             ; preds = %8514, %8518
  %.str.5.sink5228 = phi ptr [ @.str.5, %8518 ], [ @.str.2, %8514 ]
  store i32 %8509, ptr %1329, align 4, !tbaa !5
  %8520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8521 = load i32, ptr @test_count, align 4, !tbaa !5
  %8522 = load i32, ptr %1275, align 4, !tbaa !5
  %8523 = call ptr @s2n_strerror(i32 noundef %8522, ptr noundef nonnull @.str.4) #13
  %8524 = load i32, ptr %1275, align 4, !tbaa !5
  %8525 = call ptr @s2n_strerror_debug(i32 noundef %8524, ptr noundef nonnull @.str.4) #13
  %8526 = load i32, ptr %1329, align 4, !tbaa !5
  %8527 = call ptr @strerror(i32 noundef %8526) #13
  %8528 = load i32, ptr %1329, align 4, !tbaa !5
  %8529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8520, ptr noundef nonnull %.str.5.sink5228, i32 noundef %8521, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 1213, ptr noundef %8523, ptr noundef %8525, ptr noundef %8527, i32 noundef %8528) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8530:                                             ; preds = %8503
  %8531 = getelementptr inbounds i8, ptr %155, i64 28
  %8532 = load i32, ptr %8531, align 4, !tbaa !15
  %8533 = getelementptr inbounds i8, ptr %155, i64 24
  %8534 = load i32, ptr %8533, align 8, !tbaa !18
  %8535 = sub i32 %8532, %8534
  %8536 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %155, i32 noundef %8535) #13
  %8537 = load i32, ptr @test_count, align 4, !tbaa !5
  %8538 = add nsw i32 %8537, 1
  store i32 %8538, ptr @test_count, align 4, !tbaa !5
  %8539 = icmp eq ptr %8536, null
  br i1 %8539, label %8540, label %8562

8540:                                             ; preds = %8530
  %8541 = load i32, ptr %1329, align 4, !tbaa !5
  %8542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8543 = call i32 @s2n_print_stacktrace(ptr noundef %8542) #13
  %8544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8545 = trunc nuw i8 %8544 to i1
  br i1 %8545, label %8546, label %8550

8546:                                             ; preds = %8540
  %8547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8548 = call i32 @fileno(ptr noundef %8547) #13
  %8549 = call i32 @isatty(i32 noundef %8548) #13
  %.not2367 = icmp eq i32 %8549, 0
  br i1 %.not2367, label %8550, label %8551

8550:                                             ; preds = %8546, %8540
  br label %8551

8551:                                             ; preds = %8546, %8550
  %.str.5.sink5237 = phi ptr [ @.str.5, %8550 ], [ @.str.2, %8546 ]
  store i32 %8541, ptr %1329, align 4, !tbaa !5
  %8552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8553 = load i32, ptr @test_count, align 4, !tbaa !5
  %8554 = load i32, ptr %1275, align 4, !tbaa !5
  %8555 = call ptr @s2n_strerror(i32 noundef %8554, ptr noundef nonnull @.str.4) #13
  %8556 = load i32, ptr %1275, align 4, !tbaa !5
  %8557 = call ptr @s2n_strerror_debug(i32 noundef %8556, ptr noundef nonnull @.str.4) #13
  %8558 = load i32, ptr %1329, align 4, !tbaa !5
  %8559 = call ptr @strerror(i32 noundef %8558) #13
  %8560 = load i32, ptr %1329, align 4, !tbaa !5
  %8561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8552, ptr noundef nonnull %.str.5.sink5237, i32 noundef %8553, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1216, ptr noundef %8555, ptr noundef %8557, ptr noundef %8559, i32 noundef %8560) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8562:                                             ; preds = %8530
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %156) #13
  %8563 = add nsw i32 %8537, 2
  store i32 %8563, ptr @test_count, align 4, !tbaa !5
  %8564 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %156) #13
  %8565 = icmp eq i32 %8564, -1
  br i1 %8565, label %8566, label %8588

8566:                                             ; preds = %8562
  %8567 = load i32, ptr %1329, align 4, !tbaa !5
  %8568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8569 = call i32 @s2n_print_stacktrace(ptr noundef %8568) #13
  %8570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8571 = trunc nuw i8 %8570 to i1
  br i1 %8571, label %8572, label %8576

8572:                                             ; preds = %8566
  %8573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8574 = call i32 @fileno(ptr noundef %8573) #13
  %8575 = call i32 @isatty(i32 noundef %8574) #13
  %.not2366 = icmp eq i32 %8575, 0
  br i1 %.not2366, label %8576, label %8577

8576:                                             ; preds = %8572, %8566
  br label %8577

8577:                                             ; preds = %8572, %8576
  %.str.5.sink5246 = phi ptr [ @.str.5, %8576 ], [ @.str.2, %8572 ]
  store i32 %8567, ptr %1329, align 4, !tbaa !5
  %8578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8579 = load i32, ptr @test_count, align 4, !tbaa !5
  %8580 = load i32, ptr %1275, align 4, !tbaa !5
  %8581 = call ptr @s2n_strerror(i32 noundef %8580, ptr noundef nonnull @.str.4) #13
  %8582 = load i32, ptr %1275, align 4, !tbaa !5
  %8583 = call ptr @s2n_strerror_debug(i32 noundef %8582, ptr noundef nonnull @.str.4) #13
  %8584 = load i32, ptr %1329, align 4, !tbaa !5
  %8585 = call ptr @strerror(i32 noundef %8584) #13
  %8586 = load i32, ptr %1329, align 4, !tbaa !5
  %8587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8578, ptr noundef nonnull %.str.5.sink5246, i32 noundef %8579, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1219, ptr noundef %8581, ptr noundef %8583, ptr noundef %8585, i32 noundef %8586) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8588:                                             ; preds = %8562
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %157) #13
  store i32 -1, ptr %157, align 4, !tbaa !5
  %8589 = load i32, ptr @test_count, align 4, !tbaa !5
  %8590 = add nsw i32 %8589, 1
  store i32 %8590, ptr @test_count, align 4, !tbaa !5
  %8591 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %153, ptr noundef nonnull %8451, ptr noundef nonnull %8536, i32 noundef %8535, ptr noundef nonnull %157, ptr noundef nonnull %156) #13
  %8592 = call zeroext i1 @s2n_result_is_ok(i32 %8591)
  br i1 %8592, label %8615, label %8593

8593:                                             ; preds = %8588
  %8594 = load i32, ptr %1329, align 4, !tbaa !5
  %8595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8596 = call i32 @s2n_print_stacktrace(ptr noundef %8595) #13
  %8597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8598 = trunc nuw i8 %8597 to i1
  br i1 %8598, label %8599, label %8603

8599:                                             ; preds = %8593
  %8600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8601 = call i32 @fileno(ptr noundef %8600) #13
  %8602 = call i32 @isatty(i32 noundef %8601) #13
  %.not2065 = icmp eq i32 %8602, 0
  br i1 %.not2065, label %8603, label %8604

8603:                                             ; preds = %8599, %8593
  br label %8604

8604:                                             ; preds = %8599, %8603
  %.str.5.sink5255 = phi ptr [ @.str.5, %8603 ], [ @.str.2, %8599 ]
  store i32 %8594, ptr %1329, align 4, !tbaa !5
  %8605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8606 = load i32, ptr @test_count, align 4, !tbaa !5
  %8607 = load i32, ptr %1275, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror(i32 noundef %8607, ptr noundef nonnull @.str.4) #13
  %8609 = load i32, ptr %1275, align 4, !tbaa !5
  %8610 = call ptr @s2n_strerror_debug(i32 noundef %8609, ptr noundef nonnull @.str.4) #13
  %8611 = load i32, ptr %1329, align 4, !tbaa !5
  %8612 = call ptr @strerror(i32 noundef %8611) #13
  %8613 = load i32, ptr %1329, align 4, !tbaa !5
  %8614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8605, ptr noundef nonnull %.str.5.sink5255, i32 noundef %8606, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1221, ptr noundef %8608, ptr noundef %8610, ptr noundef %8612, i32 noundef %8613) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8615:                                             ; preds = %8588
  %8616 = load i32, ptr @test_count, align 4, !tbaa !5
  %8617 = add nsw i32 %8616, 1
  store i32 %8617, ptr @test_count, align 4, !tbaa !5
  %8618 = getelementptr inbounds i8, ptr %154, i64 9
  %8619 = load i8, ptr %8618, align 1, !tbaa !19
  %8620 = icmp eq i8 %8619, 1
  br i1 %8620, label %8643, label %8621

8621:                                             ; preds = %8615
  %8622 = load i32, ptr %1329, align 4, !tbaa !5
  %8623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8624 = call i32 @s2n_print_stacktrace(ptr noundef %8623) #13
  %8625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8626 = trunc nuw i8 %8625 to i1
  br i1 %8626, label %8627, label %8631

8627:                                             ; preds = %8621
  %8628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8629 = call i32 @fileno(ptr noundef %8628) #13
  %8630 = call i32 @isatty(i32 noundef %8629) #13
  %.not2066 = icmp eq i32 %8630, 0
  br i1 %.not2066, label %8631, label %8632

8631:                                             ; preds = %8627, %8621
  br label %8632

8632:                                             ; preds = %8627, %8631
  %.str.5.sink5264 = phi ptr [ @.str.5, %8631 ], [ @.str.2, %8627 ]
  store i32 %8622, ptr %1329, align 4, !tbaa !5
  %8633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8634 = load i32, ptr @test_count, align 4, !tbaa !5
  %8635 = load i32, ptr %1275, align 4, !tbaa !5
  %8636 = call ptr @s2n_strerror(i32 noundef %8635, ptr noundef nonnull @.str.4) #13
  %8637 = load i32, ptr %1275, align 4, !tbaa !5
  %8638 = call ptr @s2n_strerror_debug(i32 noundef %8637, ptr noundef nonnull @.str.4) #13
  %8639 = load i32, ptr %1329, align 4, !tbaa !5
  %8640 = call ptr @strerror(i32 noundef %8639) #13
  %8641 = load i32, ptr %1329, align 4, !tbaa !5
  %8642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8633, ptr noundef nonnull %.str.5.sink5264, i32 noundef %8634, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1223, ptr noundef %8636, ptr noundef %8638, ptr noundef %8640, i32 noundef %8641) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8643:                                             ; preds = %8615
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %158) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %158, i8 0, i64 40, i1 false)
  %8644 = add nsw i32 %8616, 2
  store i32 %8644, ptr @test_count, align 4, !tbaa !5
  %8645 = call i32 @read_file(ptr noundef nonnull %158, ptr noundef nonnull @.str.74, i32 noundef 12000)
  %8646 = icmp eq i32 %8645, -1
  br i1 %8646, label %8647, label %8669

8647:                                             ; preds = %8643
  %8648 = load i32, ptr %1329, align 4, !tbaa !5
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = call i32 @s2n_print_stacktrace(ptr noundef %8649) #13
  %8651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8652 = trunc nuw i8 %8651 to i1
  br i1 %8652, label %8653, label %8657

8653:                                             ; preds = %8647
  %8654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8655 = call i32 @fileno(ptr noundef %8654) #13
  %8656 = call i32 @isatty(i32 noundef %8655) #13
  %.not2365 = icmp eq i32 %8656, 0
  br i1 %.not2365, label %8657, label %8658

8657:                                             ; preds = %8653, %8647
  br label %8658

8658:                                             ; preds = %8653, %8657
  %.str.5.sink5273 = phi ptr [ @.str.5, %8657 ], [ @.str.2, %8653 ]
  store i32 %8648, ptr %1329, align 4, !tbaa !5
  %8659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8660 = load i32, ptr @test_count, align 4, !tbaa !5
  %8661 = load i32, ptr %1275, align 4, !tbaa !5
  %8662 = call ptr @s2n_strerror(i32 noundef %8661, ptr noundef nonnull @.str.4) #13
  %8663 = load i32, ptr %1275, align 4, !tbaa !5
  %8664 = call ptr @s2n_strerror_debug(i32 noundef %8663, ptr noundef nonnull @.str.4) #13
  %8665 = load i32, ptr %1329, align 4, !tbaa !5
  %8666 = call ptr @strerror(i32 noundef %8665) #13
  %8667 = load i32, ptr %1329, align 4, !tbaa !5
  %8668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8659, ptr noundef nonnull %.str.5.sink5273, i32 noundef %8660, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 1225, ptr noundef %8662, ptr noundef %8664, ptr noundef %8666, i32 noundef %8667) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8669:                                             ; preds = %8643
  %8670 = getelementptr inbounds i8, ptr %158, i64 28
  %8671 = load i32, ptr %8670, align 4, !tbaa !15
  %8672 = getelementptr inbounds i8, ptr %158, i64 24
  %8673 = load i32, ptr %8672, align 8, !tbaa !18
  %8674 = load i32, ptr @test_count, align 4, !tbaa !5
  %8675 = add nsw i32 %8674, 1
  store i32 %8675, ptr @test_count, align 4, !tbaa !5
  %.not2067 = icmp eq i32 %8671, %8673
  br i1 %.not2067, label %8676, label %8698

8676:                                             ; preds = %8669
  %8677 = load i32, ptr %1329, align 4, !tbaa !5
  %8678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8679 = call i32 @s2n_print_stacktrace(ptr noundef %8678) #13
  %8680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8681 = trunc nuw i8 %8680 to i1
  br i1 %8681, label %8682, label %8686

8682:                                             ; preds = %8676
  %8683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8684 = call i32 @fileno(ptr noundef %8683) #13
  %8685 = call i32 @isatty(i32 noundef %8684) #13
  %.not2068 = icmp eq i32 %8685, 0
  br i1 %.not2068, label %8686, label %8687

8686:                                             ; preds = %8682, %8676
  br label %8687

8687:                                             ; preds = %8682, %8686
  %.str.5.sink5282 = phi ptr [ @.str.5, %8686 ], [ @.str.2, %8682 ]
  store i32 %8677, ptr %1329, align 4, !tbaa !5
  %8688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8689 = load i32, ptr @test_count, align 4, !tbaa !5
  %8690 = load i32, ptr %1275, align 4, !tbaa !5
  %8691 = call ptr @s2n_strerror(i32 noundef %8690, ptr noundef nonnull @.str.4) #13
  %8692 = load i32, ptr %1275, align 4, !tbaa !5
  %8693 = call ptr @s2n_strerror_debug(i32 noundef %8692, ptr noundef nonnull @.str.4) #13
  %8694 = load i32, ptr %1329, align 4, !tbaa !5
  %8695 = call ptr @strerror(i32 noundef %8694) #13
  %8696 = load i32, ptr %1329, align 4, !tbaa !5
  %8697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8688, ptr noundef nonnull %.str.5.sink5282, i32 noundef %8689, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1227, ptr noundef %8691, ptr noundef %8693, ptr noundef %8695, i32 noundef %8696) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8698:                                             ; preds = %8669
  %8699 = sub i32 %8671, %8673
  %8700 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %158, i32 noundef %8699) #13
  %8701 = getelementptr inbounds i8, ptr %8700, i64 800
  %8702 = load i8, ptr %8701, align 1, !tbaa !51
  %8703 = add i8 %8702, 1
  store i8 %8703, ptr %8701, align 1, !tbaa !51
  %8704 = load i32, ptr @test_count, align 4, !tbaa !5
  %8705 = add nsw i32 %8704, 1
  store i32 %8705, ptr @test_count, align 4, !tbaa !5
  %8706 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %153, ptr noundef nonnull %8451, ptr noundef %8700, i32 noundef %8699) #13
  %8707 = call zeroext i1 @s2n_result_is_error(i32 %8706)
  br i1 %8707, label %8730, label %8708

8708:                                             ; preds = %8698
  %8709 = load i32, ptr %1329, align 4, !tbaa !5
  %8710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8711 = call i32 @s2n_print_stacktrace(ptr noundef %8710) #13
  %8712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8713 = trunc nuw i8 %8712 to i1
  br i1 %8713, label %8714, label %8718

8714:                                             ; preds = %8708
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = call i32 @fileno(ptr noundef %8715) #13
  %8717 = call i32 @isatty(i32 noundef %8716) #13
  %.not2069 = icmp eq i32 %8717, 0
  br i1 %.not2069, label %8718, label %8719

8718:                                             ; preds = %8714, %8708
  br label %8719

8719:                                             ; preds = %8714, %8718
  %.str.5.sink5291 = phi ptr [ @.str.5, %8718 ], [ @.str.2, %8714 ]
  store i32 %8709, ptr %1329, align 4, !tbaa !5
  %8720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8721 = load i32, ptr @test_count, align 4, !tbaa !5
  %8722 = load i32, ptr %1275, align 4, !tbaa !5
  %8723 = call ptr @s2n_strerror(i32 noundef %8722, ptr noundef nonnull @.str.4) #13
  %8724 = load i32, ptr %1275, align 4, !tbaa !5
  %8725 = call ptr @s2n_strerror_debug(i32 noundef %8724, ptr noundef nonnull @.str.4) #13
  %8726 = load i32, ptr %1329, align 4, !tbaa !5
  %8727 = call ptr @strerror(i32 noundef %8726) #13
  %8728 = load i32, ptr %1329, align 4, !tbaa !5
  %8729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8720, ptr noundef nonnull %.str.5.sink5291, i32 noundef %8721, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 1235, ptr noundef %8723, ptr noundef %8725, ptr noundef %8727, i32 noundef %8728) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8730:                                             ; preds = %8698
  %8731 = load i32, ptr @test_count, align 4, !tbaa !5
  %8732 = add nsw i32 %8731, 1
  store i32 %8732, ptr @test_count, align 4, !tbaa !5
  %8733 = load i32, ptr %1275, align 4, !tbaa !5
  %8734 = icmp eq i32 %8733, 335544366
  br i1 %8734, label %8757, label %8735

8735:                                             ; preds = %8730
  %8736 = load i32, ptr %1329, align 4, !tbaa !5
  %8737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8738 = call i32 @s2n_print_stacktrace(ptr noundef %8737) #13
  %8739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8740 = trunc nuw i8 %8739 to i1
  br i1 %8740, label %8741, label %8745

8741:                                             ; preds = %8735
  %8742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8743 = call i32 @fileno(ptr noundef %8742) #13
  %8744 = call i32 @isatty(i32 noundef %8743) #13
  %.not2070 = icmp eq i32 %8744, 0
  br i1 %.not2070, label %8745, label %8746

8745:                                             ; preds = %8741, %8735
  br label %8746

8746:                                             ; preds = %8741, %8745
  %.str.5.sink5300 = phi ptr [ @.str.5, %8745 ], [ @.str.2, %8741 ]
  store i32 %8736, ptr %1329, align 4, !tbaa !5
  %8747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8748 = load i32, ptr @test_count, align 4, !tbaa !5
  %8749 = load i32, ptr %1275, align 4, !tbaa !5
  %8750 = call ptr @s2n_strerror(i32 noundef %8749, ptr noundef nonnull @.str.4) #13
  %8751 = load i32, ptr %1275, align 4, !tbaa !5
  %8752 = call ptr @s2n_strerror_debug(i32 noundef %8751, ptr noundef nonnull @.str.4) #13
  %8753 = load i32, ptr %1329, align 4, !tbaa !5
  %8754 = call ptr @strerror(i32 noundef %8753) #13
  %8755 = load i32, ptr %1329, align 4, !tbaa !5
  %8756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8747, ptr noundef nonnull %.str.5.sink5300, i32 noundef %8748, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 1235, ptr noundef %8750, ptr noundef %8752, ptr noundef %8754, i32 noundef %8755) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8757:                                             ; preds = %8730
  %8758 = add nsw i32 %8731, 2
  store i32 %8758, ptr @test_count, align 4, !tbaa !5
  %8759 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %8760 = icmp eq ptr %8759, null
  br i1 %8760, label %8761, label %8783

8761:                                             ; preds = %8757
  %8762 = load i32, ptr %1329, align 4, !tbaa !5
  %8763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8764 = call i32 @s2n_print_stacktrace(ptr noundef %8763) #13
  %8765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8766 = trunc nuw i8 %8765 to i1
  br i1 %8766, label %8767, label %8771

8767:                                             ; preds = %8761
  %8768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8769 = call i32 @fileno(ptr noundef %8768) #13
  %8770 = call i32 @isatty(i32 noundef %8769) #13
  %.not2364 = icmp eq i32 %8770, 0
  br i1 %.not2364, label %8771, label %8772

8771:                                             ; preds = %8767, %8761
  br label %8772

8772:                                             ; preds = %8767, %8771
  %.str.5.sink5309 = phi ptr [ @.str.5, %8771 ], [ @.str.2, %8767 ]
  store i32 %8762, ptr %1329, align 4, !tbaa !5
  %8773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8774 = load i32, ptr @test_count, align 4, !tbaa !5
  %8775 = load i32, ptr %1275, align 4, !tbaa !5
  %8776 = call ptr @s2n_strerror(i32 noundef %8775, ptr noundef nonnull @.str.4) #13
  %8777 = load i32, ptr %1275, align 4, !tbaa !5
  %8778 = call ptr @s2n_strerror_debug(i32 noundef %8777, ptr noundef nonnull @.str.4) #13
  %8779 = load i32, ptr %1329, align 4, !tbaa !5
  %8780 = call ptr @strerror(i32 noundef %8779) #13
  %8781 = load i32, ptr %1329, align 4, !tbaa !5
  %8782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8773, ptr noundef nonnull %.str.5.sink5309, i32 noundef %8774, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1235, ptr noundef %8776, ptr noundef %8778, ptr noundef %8780, i32 noundef %8781) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8783:                                             ; preds = %8757
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %8784 = call i32 @s2n_stuffer_free(ptr noundef nonnull %158) #13
  %8785 = call i32 @s2n_connection_free(ptr noundef nonnull %8451) #13
  %8786 = call i32 @s2n_pkey_free(ptr noundef nonnull %156) #13
  %8787 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %153) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %152) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %158) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %157) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %156) #13
  %8788 = call i32 @s2n_stuffer_free(ptr noundef nonnull %155) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %155) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %154) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %153) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %159) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %159) #13
  %8789 = load i32, ptr @test_count, align 4, !tbaa !5
  %8790 = add nsw i32 %8789, 1
  store i32 %8790, ptr @test_count, align 4, !tbaa !5
  %8791 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %159, ptr noundef nonnull @.str.88, ptr noundef null) #13
  %8792 = icmp eq i32 %8791, -1
  br i1 %8792, label %8793, label %8815

8793:                                             ; preds = %8783
  %8794 = load i32, ptr %1329, align 4, !tbaa !5
  %8795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8796 = call i32 @s2n_print_stacktrace(ptr noundef %8795) #13
  %8797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8798 = trunc nuw i8 %8797 to i1
  br i1 %8798, label %8799, label %8803

8799:                                             ; preds = %8793
  %8800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8801 = call i32 @fileno(ptr noundef %8800) #13
  %8802 = call i32 @isatty(i32 noundef %8801) #13
  %.not2363 = icmp eq i32 %8802, 0
  br i1 %.not2363, label %8803, label %8804

8803:                                             ; preds = %8799, %8793
  br label %8804

8804:                                             ; preds = %8799, %8803
  %.str.5.sink5318 = phi ptr [ @.str.5, %8803 ], [ @.str.2, %8799 ]
  store i32 %8794, ptr %1329, align 4, !tbaa !5
  %8805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8806 = load i32, ptr @test_count, align 4, !tbaa !5
  %8807 = load i32, ptr %1275, align 4, !tbaa !5
  %8808 = call ptr @s2n_strerror(i32 noundef %8807, ptr noundef nonnull @.str.4) #13
  %8809 = load i32, ptr %1275, align 4, !tbaa !5
  %8810 = call ptr @s2n_strerror_debug(i32 noundef %8809, ptr noundef nonnull @.str.4) #13
  %8811 = load i32, ptr %1329, align 4, !tbaa !5
  %8812 = call ptr @strerror(i32 noundef %8811) #13
  %8813 = load i32, ptr %1329, align 4, !tbaa !5
  %8814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8805, ptr noundef nonnull %.str.5.sink5318, i32 noundef %8806, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 1248, ptr noundef %8808, ptr noundef %8810, ptr noundef %8812, i32 noundef %8813) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8815:                                             ; preds = %8783
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %160) #13
  %8816 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %160, ptr noundef nonnull %159, i8 noundef zeroext 1) #13
  %8817 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %8818 = load i32, ptr @test_count, align 4, !tbaa !5
  %8819 = add nsw i32 %8818, 1
  store i32 %8819, ptr @test_count, align 4, !tbaa !5
  %8820 = icmp eq ptr %8817, null
  br i1 %8820, label %8821, label %8843

8821:                                             ; preds = %8815
  %8822 = load i32, ptr %1329, align 4, !tbaa !5
  %8823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8824 = call i32 @s2n_print_stacktrace(ptr noundef %8823) #13
  %8825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8826 = trunc nuw i8 %8825 to i1
  br i1 %8826, label %8827, label %8831

8827:                                             ; preds = %8821
  %8828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8829 = call i32 @fileno(ptr noundef %8828) #13
  %8830 = call i32 @isatty(i32 noundef %8829) #13
  %.not2362 = icmp eq i32 %8830, 0
  br i1 %.not2362, label %8831, label %8832

8831:                                             ; preds = %8827, %8821
  br label %8832

8832:                                             ; preds = %8827, %8831
  %.str.5.sink5327 = phi ptr [ @.str.5, %8831 ], [ @.str.2, %8827 ]
  store i32 %8822, ptr %1329, align 4, !tbaa !5
  %8833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8834 = load i32, ptr @test_count, align 4, !tbaa !5
  %8835 = load i32, ptr %1275, align 4, !tbaa !5
  %8836 = call ptr @s2n_strerror(i32 noundef %8835, ptr noundef nonnull @.str.4) #13
  %8837 = load i32, ptr %1275, align 4, !tbaa !5
  %8838 = call ptr @s2n_strerror_debug(i32 noundef %8837, ptr noundef nonnull @.str.4) #13
  %8839 = load i32, ptr %1329, align 4, !tbaa !5
  %8840 = call ptr @strerror(i32 noundef %8839) #13
  %8841 = load i32, ptr %1329, align 4, !tbaa !5
  %8842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8833, ptr noundef nonnull %.str.5.sink5327, i32 noundef %8834, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1254, ptr noundef %8836, ptr noundef %8838, ptr noundef %8840, i32 noundef %8841) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8843:                                             ; preds = %8815
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %161) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %161, i8 0, i64 16, i1 false)
  %8844 = add nsw i32 %8818, 2
  store i32 %8844, ptr @test_count, align 4, !tbaa !5
  %8845 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %8817, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %161) #13
  %8846 = icmp eq i32 %8845, -1
  br i1 %8846, label %8847, label %8869

8847:                                             ; preds = %8843
  %8848 = load i32, ptr %1329, align 4, !tbaa !5
  %8849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8850 = call i32 @s2n_print_stacktrace(ptr noundef %8849) #13
  %8851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8852 = trunc nuw i8 %8851 to i1
  br i1 %8852, label %8853, label %8857

8853:                                             ; preds = %8847
  %8854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8855 = call i32 @fileno(ptr noundef %8854) #13
  %8856 = call i32 @isatty(i32 noundef %8855) #13
  %.not2361 = icmp eq i32 %8856, 0
  br i1 %.not2361, label %8857, label %8858

8857:                                             ; preds = %8853, %8847
  br label %8858

8858:                                             ; preds = %8853, %8857
  %.str.5.sink5336 = phi ptr [ @.str.5, %8857 ], [ @.str.2, %8853 ]
  store i32 %8848, ptr %1329, align 4, !tbaa !5
  %8859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8860 = load i32, ptr @test_count, align 4, !tbaa !5
  %8861 = load i32, ptr %1275, align 4, !tbaa !5
  %8862 = call ptr @s2n_strerror(i32 noundef %8861, ptr noundef nonnull @.str.4) #13
  %8863 = load i32, ptr %1275, align 4, !tbaa !5
  %8864 = call ptr @s2n_strerror_debug(i32 noundef %8863, ptr noundef nonnull @.str.4) #13
  %8865 = load i32, ptr %1329, align 4, !tbaa !5
  %8866 = call ptr @strerror(i32 noundef %8865) #13
  %8867 = load i32, ptr %1329, align 4, !tbaa !5
  %8868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8859, ptr noundef nonnull %.str.5.sink5336, i32 noundef %8860, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1257, ptr noundef %8862, ptr noundef %8864, ptr noundef %8866, i32 noundef %8867) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8869:                                             ; preds = %8843
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %162) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %162, i8 0, i64 40, i1 false)
  %8870 = load i32, ptr @test_count, align 4, !tbaa !5
  %8871 = add nsw i32 %8870, 1
  store i32 %8871, ptr @test_count, align 4, !tbaa !5
  %8872 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %8817, ptr noundef nonnull @.str.88, ptr noundef nonnull %162) #13
  %8873 = call zeroext i1 @s2n_result_is_ok(i32 %8872)
  br i1 %8873, label %8896, label %8874

8874:                                             ; preds = %8869
  %8875 = load i32, ptr %1329, align 4, !tbaa !5
  %8876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8877 = call i32 @s2n_print_stacktrace(ptr noundef %8876) #13
  %8878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8879 = trunc nuw i8 %8878 to i1
  br i1 %8879, label %8880, label %8884

8880:                                             ; preds = %8874
  %8881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8882 = call i32 @fileno(ptr noundef %8881) #13
  %8883 = call i32 @isatty(i32 noundef %8882) #13
  %.not2071 = icmp eq i32 %8883, 0
  br i1 %.not2071, label %8884, label %8885

8884:                                             ; preds = %8880, %8874
  br label %8885

8885:                                             ; preds = %8880, %8884
  %.str.5.sink5345 = phi ptr [ @.str.5, %8884 ], [ @.str.2, %8880 ]
  store i32 %8875, ptr %1329, align 4, !tbaa !5
  %8886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8887 = load i32, ptr @test_count, align 4, !tbaa !5
  %8888 = load i32, ptr %1275, align 4, !tbaa !5
  %8889 = call ptr @s2n_strerror(i32 noundef %8888, ptr noundef nonnull @.str.4) #13
  %8890 = load i32, ptr %1275, align 4, !tbaa !5
  %8891 = call ptr @s2n_strerror_debug(i32 noundef %8890, ptr noundef nonnull @.str.4) #13
  %8892 = load i32, ptr %1329, align 4, !tbaa !5
  %8893 = call ptr @strerror(i32 noundef %8892) #13
  %8894 = load i32, ptr %1329, align 4, !tbaa !5
  %8895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8886, ptr noundef nonnull %.str.5.sink5345, i32 noundef %8887, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 1261, ptr noundef %8889, ptr noundef %8891, ptr noundef %8893, i32 noundef %8894) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8896:                                             ; preds = %8869
  %8897 = getelementptr inbounds i8, ptr %162, i64 28
  %8898 = load i32, ptr %8897, align 4, !tbaa !15
  %8899 = getelementptr inbounds i8, ptr %162, i64 24
  %8900 = load i32, ptr %8899, align 8, !tbaa !18
  %8901 = sub i32 %8898, %8900
  %8902 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %162, i32 noundef %8901) #13
  %8903 = load i32, ptr @test_count, align 4, !tbaa !5
  %8904 = add nsw i32 %8903, 1
  store i32 %8904, ptr @test_count, align 4, !tbaa !5
  %8905 = icmp eq ptr %8902, null
  br i1 %8905, label %8906, label %8928

8906:                                             ; preds = %8896
  %8907 = load i32, ptr %1329, align 4, !tbaa !5
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = call i32 @s2n_print_stacktrace(ptr noundef %8908) #13
  %8910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8911 = trunc nuw i8 %8910 to i1
  br i1 %8911, label %8912, label %8916

8912:                                             ; preds = %8906
  %8913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8914 = call i32 @fileno(ptr noundef %8913) #13
  %8915 = call i32 @isatty(i32 noundef %8914) #13
  %.not2360 = icmp eq i32 %8915, 0
  br i1 %.not2360, label %8916, label %8917

8916:                                             ; preds = %8912, %8906
  br label %8917

8917:                                             ; preds = %8912, %8916
  %.str.5.sink5354 = phi ptr [ @.str.5, %8916 ], [ @.str.2, %8912 ]
  store i32 %8907, ptr %1329, align 4, !tbaa !5
  %8918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8919 = load i32, ptr @test_count, align 4, !tbaa !5
  %8920 = load i32, ptr %1275, align 4, !tbaa !5
  %8921 = call ptr @s2n_strerror(i32 noundef %8920, ptr noundef nonnull @.str.4) #13
  %8922 = load i32, ptr %1275, align 4, !tbaa !5
  %8923 = call ptr @s2n_strerror_debug(i32 noundef %8922, ptr noundef nonnull @.str.4) #13
  %8924 = load i32, ptr %1329, align 4, !tbaa !5
  %8925 = call ptr @strerror(i32 noundef %8924) #13
  %8926 = load i32, ptr %1329, align 4, !tbaa !5
  %8927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8918, ptr noundef nonnull %.str.5.sink5354, i32 noundef %8919, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1264, ptr noundef %8921, ptr noundef %8923, ptr noundef %8925, i32 noundef %8926) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8928:                                             ; preds = %8896
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %163) #13
  %8929 = add nsw i32 %8903, 2
  store i32 %8929, ptr @test_count, align 4, !tbaa !5
  %8930 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %163) #13
  %8931 = icmp eq i32 %8930, -1
  br i1 %8931, label %8932, label %8954

8932:                                             ; preds = %8928
  %8933 = load i32, ptr %1329, align 4, !tbaa !5
  %8934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8935 = call i32 @s2n_print_stacktrace(ptr noundef %8934) #13
  %8936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8937 = trunc nuw i8 %8936 to i1
  br i1 %8937, label %8938, label %8942

8938:                                             ; preds = %8932
  %8939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8940 = call i32 @fileno(ptr noundef %8939) #13
  %8941 = call i32 @isatty(i32 noundef %8940) #13
  %.not2359 = icmp eq i32 %8941, 0
  br i1 %.not2359, label %8942, label %8943

8942:                                             ; preds = %8938, %8932
  br label %8943

8943:                                             ; preds = %8938, %8942
  %.str.5.sink5363 = phi ptr [ @.str.5, %8942 ], [ @.str.2, %8938 ]
  store i32 %8933, ptr %1329, align 4, !tbaa !5
  %8944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8945 = load i32, ptr @test_count, align 4, !tbaa !5
  %8946 = load i32, ptr %1275, align 4, !tbaa !5
  %8947 = call ptr @s2n_strerror(i32 noundef %8946, ptr noundef nonnull @.str.4) #13
  %8948 = load i32, ptr %1275, align 4, !tbaa !5
  %8949 = call ptr @s2n_strerror_debug(i32 noundef %8948, ptr noundef nonnull @.str.4) #13
  %8950 = load i32, ptr %1329, align 4, !tbaa !5
  %8951 = call ptr @strerror(i32 noundef %8950) #13
  %8952 = load i32, ptr %1329, align 4, !tbaa !5
  %8953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8944, ptr noundef nonnull %.str.5.sink5363, i32 noundef %8945, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1267, ptr noundef %8947, ptr noundef %8949, ptr noundef %8951, i32 noundef %8952) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8954:                                             ; preds = %8928
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %164) #13
  store i32 -1, ptr %164, align 4, !tbaa !5
  %8955 = load i32, ptr @test_count, align 4, !tbaa !5
  %8956 = add nsw i32 %8955, 1
  store i32 %8956, ptr @test_count, align 4, !tbaa !5
  %8957 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %160, ptr noundef nonnull %8817, ptr noundef nonnull %8902, i32 noundef %8901, ptr noundef nonnull %164, ptr noundef nonnull %163) #13
  %8958 = call zeroext i1 @s2n_result_is_ok(i32 %8957)
  br i1 %8958, label %8981, label %8959

8959:                                             ; preds = %8954
  %8960 = load i32, ptr %1329, align 4, !tbaa !5
  %8961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8962 = call i32 @s2n_print_stacktrace(ptr noundef %8961) #13
  %8963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8964 = trunc nuw i8 %8963 to i1
  br i1 %8964, label %8965, label %8969

8965:                                             ; preds = %8959
  %8966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8967 = call i32 @fileno(ptr noundef %8966) #13
  %8968 = call i32 @isatty(i32 noundef %8967) #13
  %.not2072 = icmp eq i32 %8968, 0
  br i1 %.not2072, label %8969, label %8970

8969:                                             ; preds = %8965, %8959
  br label %8970

8970:                                             ; preds = %8965, %8969
  %.str.5.sink5372 = phi ptr [ @.str.5, %8969 ], [ @.str.2, %8965 ]
  store i32 %8960, ptr %1329, align 4, !tbaa !5
  %8971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8972 = load i32, ptr @test_count, align 4, !tbaa !5
  %8973 = load i32, ptr %1275, align 4, !tbaa !5
  %8974 = call ptr @s2n_strerror(i32 noundef %8973, ptr noundef nonnull @.str.4) #13
  %8975 = load i32, ptr %1275, align 4, !tbaa !5
  %8976 = call ptr @s2n_strerror_debug(i32 noundef %8975, ptr noundef nonnull @.str.4) #13
  %8977 = load i32, ptr %1329, align 4, !tbaa !5
  %8978 = call ptr @strerror(i32 noundef %8977) #13
  %8979 = load i32, ptr %1329, align 4, !tbaa !5
  %8980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8971, ptr noundef nonnull %.str.5.sink5372, i32 noundef %8972, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1269, ptr noundef %8974, ptr noundef %8976, ptr noundef %8978, i32 noundef %8979) #15
  call void @exit(i32 noundef 1) #16
  unreachable

8981:                                             ; preds = %8954
  %8982 = load i32, ptr @test_count, align 4, !tbaa !5
  %8983 = add nsw i32 %8982, 1
  store i32 %8983, ptr @test_count, align 4, !tbaa !5
  %8984 = getelementptr inbounds i8, ptr %161, i64 9
  %8985 = load i8, ptr %8984, align 1, !tbaa !19
  %8986 = icmp eq i8 %8985, 1
  br i1 %8986, label %9009, label %8987

8987:                                             ; preds = %8981
  %8988 = load i32, ptr %1329, align 4, !tbaa !5
  %8989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8990 = call i32 @s2n_print_stacktrace(ptr noundef %8989) #13
  %8991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8992 = trunc nuw i8 %8991 to i1
  br i1 %8992, label %8993, label %8997

8993:                                             ; preds = %8987
  %8994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8995 = call i32 @fileno(ptr noundef %8994) #13
  %8996 = call i32 @isatty(i32 noundef %8995) #13
  %.not2073 = icmp eq i32 %8996, 0
  br i1 %.not2073, label %8997, label %8998

8997:                                             ; preds = %8993, %8987
  br label %8998

8998:                                             ; preds = %8993, %8997
  %.str.5.sink5381 = phi ptr [ @.str.5, %8997 ], [ @.str.2, %8993 ]
  store i32 %8988, ptr %1329, align 4, !tbaa !5
  %8999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9000 = load i32, ptr @test_count, align 4, !tbaa !5
  %9001 = load i32, ptr %1275, align 4, !tbaa !5
  %9002 = call ptr @s2n_strerror(i32 noundef %9001, ptr noundef nonnull @.str.4) #13
  %9003 = load i32, ptr %1275, align 4, !tbaa !5
  %9004 = call ptr @s2n_strerror_debug(i32 noundef %9003, ptr noundef nonnull @.str.4) #13
  %9005 = load i32, ptr %1329, align 4, !tbaa !5
  %9006 = call ptr @strerror(i32 noundef %9005) #13
  %9007 = load i32, ptr %1329, align 4, !tbaa !5
  %9008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8999, ptr noundef nonnull %.str.5.sink5381, i32 noundef %9000, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1271, ptr noundef %9002, ptr noundef %9004, ptr noundef %9006, i32 noundef %9007) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9009:                                             ; preds = %8981
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %165) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %165, i8 0, i64 40, i1 false)
  %9010 = add nsw i32 %8982, 2
  store i32 %9010, ptr @test_count, align 4, !tbaa !5
  %9011 = call i32 @read_file(ptr noundef nonnull %165, ptr noundef nonnull @.str.74, i32 noundef 12000)
  %9012 = icmp eq i32 %9011, -1
  br i1 %9012, label %9013, label %9035

9013:                                             ; preds = %9009
  %9014 = load i32, ptr %1329, align 4, !tbaa !5
  %9015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9016 = call i32 @s2n_print_stacktrace(ptr noundef %9015) #13
  %9017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9018 = trunc nuw i8 %9017 to i1
  br i1 %9018, label %9019, label %9023

9019:                                             ; preds = %9013
  %9020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9021 = call i32 @fileno(ptr noundef %9020) #13
  %9022 = call i32 @isatty(i32 noundef %9021) #13
  %.not2358 = icmp eq i32 %9022, 0
  br i1 %.not2358, label %9023, label %9024

9023:                                             ; preds = %9019, %9013
  br label %9024

9024:                                             ; preds = %9019, %9023
  %.str.5.sink5390 = phi ptr [ @.str.5, %9023 ], [ @.str.2, %9019 ]
  store i32 %9014, ptr %1329, align 4, !tbaa !5
  %9025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9026 = load i32, ptr @test_count, align 4, !tbaa !5
  %9027 = load i32, ptr %1275, align 4, !tbaa !5
  %9028 = call ptr @s2n_strerror(i32 noundef %9027, ptr noundef nonnull @.str.4) #13
  %9029 = load i32, ptr %1275, align 4, !tbaa !5
  %9030 = call ptr @s2n_strerror_debug(i32 noundef %9029, ptr noundef nonnull @.str.4) #13
  %9031 = load i32, ptr %1329, align 4, !tbaa !5
  %9032 = call ptr @strerror(i32 noundef %9031) #13
  %9033 = load i32, ptr %1329, align 4, !tbaa !5
  %9034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9025, ptr noundef nonnull %.str.5.sink5390, i32 noundef %9026, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 1273, ptr noundef %9028, ptr noundef %9030, ptr noundef %9032, i32 noundef %9033) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9035:                                             ; preds = %9009
  %9036 = getelementptr inbounds i8, ptr %165, i64 28
  %9037 = load i32, ptr %9036, align 4, !tbaa !15
  %9038 = getelementptr inbounds i8, ptr %165, i64 24
  %9039 = load i32, ptr %9038, align 8, !tbaa !18
  %9040 = load i32, ptr @test_count, align 4, !tbaa !5
  %9041 = add nsw i32 %9040, 1
  store i32 %9041, ptr @test_count, align 4, !tbaa !5
  %.not2074 = icmp eq i32 %9037, %9039
  br i1 %.not2074, label %9042, label %9064

9042:                                             ; preds = %9035
  %9043 = load i32, ptr %1329, align 4, !tbaa !5
  %9044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9045 = call i32 @s2n_print_stacktrace(ptr noundef %9044) #13
  %9046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9047 = trunc nuw i8 %9046 to i1
  br i1 %9047, label %9048, label %9052

9048:                                             ; preds = %9042
  %9049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9050 = call i32 @fileno(ptr noundef %9049) #13
  %9051 = call i32 @isatty(i32 noundef %9050) #13
  %.not2075 = icmp eq i32 %9051, 0
  br i1 %.not2075, label %9052, label %9053

9052:                                             ; preds = %9048, %9042
  br label %9053

9053:                                             ; preds = %9048, %9052
  %.str.5.sink5399 = phi ptr [ @.str.5, %9052 ], [ @.str.2, %9048 ]
  store i32 %9043, ptr %1329, align 4, !tbaa !5
  %9054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9055 = load i32, ptr @test_count, align 4, !tbaa !5
  %9056 = load i32, ptr %1275, align 4, !tbaa !5
  %9057 = call ptr @s2n_strerror(i32 noundef %9056, ptr noundef nonnull @.str.4) #13
  %9058 = load i32, ptr %1275, align 4, !tbaa !5
  %9059 = call ptr @s2n_strerror_debug(i32 noundef %9058, ptr noundef nonnull @.str.4) #13
  %9060 = load i32, ptr %1329, align 4, !tbaa !5
  %9061 = call ptr @strerror(i32 noundef %9060) #13
  %9062 = load i32, ptr %1329, align 4, !tbaa !5
  %9063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9054, ptr noundef nonnull %.str.5.sink5399, i32 noundef %9055, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1275, ptr noundef %9057, ptr noundef %9059, ptr noundef %9061, i32 noundef %9062) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9064:                                             ; preds = %9035
  %9065 = sub i32 %9037, %9039
  %9066 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %165, i32 noundef %9065) #13
  %9067 = load i32, ptr @test_count, align 4, !tbaa !5
  %9068 = add nsw i32 %9067, 1
  store i32 %9068, ptr @test_count, align 4, !tbaa !5
  %9069 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %160, ptr noundef nonnull %8817, ptr noundef %9066, i32 noundef %9065) #13
  %9070 = call zeroext i1 @s2n_result_is_error(i32 %9069)
  br i1 %9070, label %9093, label %9071

9071:                                             ; preds = %9064
  %9072 = load i32, ptr %1329, align 4, !tbaa !5
  %9073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9074 = call i32 @s2n_print_stacktrace(ptr noundef %9073) #13
  %9075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9076 = trunc nuw i8 %9075 to i1
  br i1 %9076, label %9077, label %9081

9077:                                             ; preds = %9071
  %9078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9079 = call i32 @fileno(ptr noundef %9078) #13
  %9080 = call i32 @isatty(i32 noundef %9079) #13
  %.not2076 = icmp eq i32 %9080, 0
  br i1 %.not2076, label %9081, label %9082

9081:                                             ; preds = %9077, %9071
  br label %9082

9082:                                             ; preds = %9077, %9081
  %.str.5.sink5408 = phi ptr [ @.str.5, %9081 ], [ @.str.2, %9077 ]
  store i32 %9072, ptr %1329, align 4, !tbaa !5
  %9083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9084 = load i32, ptr @test_count, align 4, !tbaa !5
  %9085 = load i32, ptr %1275, align 4, !tbaa !5
  %9086 = call ptr @s2n_strerror(i32 noundef %9085, ptr noundef nonnull @.str.4) #13
  %9087 = load i32, ptr %1275, align 4, !tbaa !5
  %9088 = call ptr @s2n_strerror_debug(i32 noundef %9087, ptr noundef nonnull @.str.4) #13
  %9089 = load i32, ptr %1329, align 4, !tbaa !5
  %9090 = call ptr @strerror(i32 noundef %9089) #13
  %9091 = load i32, ptr %1329, align 4, !tbaa !5
  %9092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9083, ptr noundef nonnull %.str.5.sink5408, i32 noundef %9084, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 1281, ptr noundef %9086, ptr noundef %9088, ptr noundef %9090, i32 noundef %9091) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9093:                                             ; preds = %9064
  %9094 = load i32, ptr @test_count, align 4, !tbaa !5
  %9095 = add nsw i32 %9094, 1
  store i32 %9095, ptr @test_count, align 4, !tbaa !5
  %9096 = load i32, ptr %1275, align 4, !tbaa !5
  %9097 = icmp eq i32 %9096, 335544366
  br i1 %9097, label %9120, label %9098

9098:                                             ; preds = %9093
  %9099 = load i32, ptr %1329, align 4, !tbaa !5
  %9100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9101 = call i32 @s2n_print_stacktrace(ptr noundef %9100) #13
  %9102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9103 = trunc nuw i8 %9102 to i1
  br i1 %9103, label %9104, label %9108

9104:                                             ; preds = %9098
  %9105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9106 = call i32 @fileno(ptr noundef %9105) #13
  %9107 = call i32 @isatty(i32 noundef %9106) #13
  %.not2077 = icmp eq i32 %9107, 0
  br i1 %.not2077, label %9108, label %9109

9108:                                             ; preds = %9104, %9098
  br label %9109

9109:                                             ; preds = %9104, %9108
  %.str.5.sink5417 = phi ptr [ @.str.5, %9108 ], [ @.str.2, %9104 ]
  store i32 %9099, ptr %1329, align 4, !tbaa !5
  %9110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9111 = load i32, ptr @test_count, align 4, !tbaa !5
  %9112 = load i32, ptr %1275, align 4, !tbaa !5
  %9113 = call ptr @s2n_strerror(i32 noundef %9112, ptr noundef nonnull @.str.4) #13
  %9114 = load i32, ptr %1275, align 4, !tbaa !5
  %9115 = call ptr @s2n_strerror_debug(i32 noundef %9114, ptr noundef nonnull @.str.4) #13
  %9116 = load i32, ptr %1329, align 4, !tbaa !5
  %9117 = call ptr @strerror(i32 noundef %9116) #13
  %9118 = load i32, ptr %1329, align 4, !tbaa !5
  %9119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9110, ptr noundef nonnull %.str.5.sink5417, i32 noundef %9111, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 1281, ptr noundef %9113, ptr noundef %9115, ptr noundef %9117, i32 noundef %9118) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9120:                                             ; preds = %9093
  %9121 = add nsw i32 %9094, 2
  store i32 %9121, ptr @test_count, align 4, !tbaa !5
  %9122 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %9123 = icmp eq ptr %9122, null
  br i1 %9123, label %9124, label %9146

9124:                                             ; preds = %9120
  %9125 = load i32, ptr %1329, align 4, !tbaa !5
  %9126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9127 = call i32 @s2n_print_stacktrace(ptr noundef %9126) #13
  %9128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9129 = trunc nuw i8 %9128 to i1
  br i1 %9129, label %9130, label %9134

9130:                                             ; preds = %9124
  %9131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9132 = call i32 @fileno(ptr noundef %9131) #13
  %9133 = call i32 @isatty(i32 noundef %9132) #13
  %.not2357 = icmp eq i32 %9133, 0
  br i1 %.not2357, label %9134, label %9135

9134:                                             ; preds = %9130, %9124
  br label %9135

9135:                                             ; preds = %9130, %9134
  %.str.5.sink5426 = phi ptr [ @.str.5, %9134 ], [ @.str.2, %9130 ]
  store i32 %9125, ptr %1329, align 4, !tbaa !5
  %9136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9137 = load i32, ptr @test_count, align 4, !tbaa !5
  %9138 = load i32, ptr %1275, align 4, !tbaa !5
  %9139 = call ptr @s2n_strerror(i32 noundef %9138, ptr noundef nonnull @.str.4) #13
  %9140 = load i32, ptr %1275, align 4, !tbaa !5
  %9141 = call ptr @s2n_strerror_debug(i32 noundef %9140, ptr noundef nonnull @.str.4) #13
  %9142 = load i32, ptr %1329, align 4, !tbaa !5
  %9143 = call ptr @strerror(i32 noundef %9142) #13
  %9144 = load i32, ptr %1329, align 4, !tbaa !5
  %9145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9136, ptr noundef nonnull %.str.5.sink5426, i32 noundef %9137, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1281, ptr noundef %9139, ptr noundef %9141, ptr noundef %9143, i32 noundef %9144) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9146:                                             ; preds = %9120
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %9147 = call i32 @s2n_stuffer_free(ptr noundef nonnull %165) #13
  %9148 = call i32 @s2n_connection_free(ptr noundef nonnull %8817) #13
  %9149 = call i32 @s2n_pkey_free(ptr noundef nonnull %163) #13
  %9150 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %160) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %159) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %165) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %164) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %163) #13
  %9151 = call i32 @s2n_stuffer_free(ptr noundef nonnull %162) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %162) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %161) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %160) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %159) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %166) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %166) #13
  %9152 = load i32, ptr @test_count, align 4, !tbaa !5
  %9153 = add nsw i32 %9152, 1
  store i32 %9153, ptr @test_count, align 4, !tbaa !5
  %9154 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %166, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %9155 = icmp eq i32 %9154, -1
  br i1 %9155, label %9156, label %9178

9156:                                             ; preds = %9146
  %9157 = load i32, ptr %1329, align 4, !tbaa !5
  %9158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9159 = call i32 @s2n_print_stacktrace(ptr noundef %9158) #13
  %9160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9161 = trunc nuw i8 %9160 to i1
  br i1 %9161, label %9162, label %9166

9162:                                             ; preds = %9156
  %9163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9164 = call i32 @fileno(ptr noundef %9163) #13
  %9165 = call i32 @isatty(i32 noundef %9164) #13
  %.not2356 = icmp eq i32 %9165, 0
  br i1 %.not2356, label %9166, label %9167

9166:                                             ; preds = %9162, %9156
  br label %9167

9167:                                             ; preds = %9162, %9166
  %.str.5.sink5435 = phi ptr [ @.str.5, %9166 ], [ @.str.2, %9162 ]
  store i32 %9157, ptr %1329, align 4, !tbaa !5
  %9168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9169 = load i32, ptr @test_count, align 4, !tbaa !5
  %9170 = load i32, ptr %1275, align 4, !tbaa !5
  %9171 = call ptr @s2n_strerror(i32 noundef %9170, ptr noundef nonnull @.str.4) #13
  %9172 = load i32, ptr %1275, align 4, !tbaa !5
  %9173 = call ptr @s2n_strerror_debug(i32 noundef %9172, ptr noundef nonnull @.str.4) #13
  %9174 = load i32, ptr %1329, align 4, !tbaa !5
  %9175 = call ptr @strerror(i32 noundef %9174) #13
  %9176 = load i32, ptr %1329, align 4, !tbaa !5
  %9177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9168, ptr noundef nonnull %.str.5.sink5435, i32 noundef %9169, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1295, ptr noundef %9171, ptr noundef %9173, ptr noundef %9175, i32 noundef %9176) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9178:                                             ; preds = %9146
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %167) #13
  %9179 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %167, ptr noundef nonnull %166, i8 noundef zeroext 1) #13
  %9180 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %9181 = load i32, ptr @test_count, align 4, !tbaa !5
  %9182 = add nsw i32 %9181, 1
  store i32 %9182, ptr @test_count, align 4, !tbaa !5
  %9183 = icmp eq ptr %9180, null
  br i1 %9183, label %9184, label %9206

9184:                                             ; preds = %9178
  %9185 = load i32, ptr %1329, align 4, !tbaa !5
  %9186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9187 = call i32 @s2n_print_stacktrace(ptr noundef %9186) #13
  %9188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9189 = trunc nuw i8 %9188 to i1
  br i1 %9189, label %9190, label %9194

9190:                                             ; preds = %9184
  %9191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9192 = call i32 @fileno(ptr noundef %9191) #13
  %9193 = call i32 @isatty(i32 noundef %9192) #13
  %.not2355 = icmp eq i32 %9193, 0
  br i1 %.not2355, label %9194, label %9195

9194:                                             ; preds = %9190, %9184
  br label %9195

9195:                                             ; preds = %9190, %9194
  %.str.5.sink5444 = phi ptr [ @.str.5, %9194 ], [ @.str.2, %9190 ]
  store i32 %9185, ptr %1329, align 4, !tbaa !5
  %9196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9197 = load i32, ptr @test_count, align 4, !tbaa !5
  %9198 = load i32, ptr %1275, align 4, !tbaa !5
  %9199 = call ptr @s2n_strerror(i32 noundef %9198, ptr noundef nonnull @.str.4) #13
  %9200 = load i32, ptr %1275, align 4, !tbaa !5
  %9201 = call ptr @s2n_strerror_debug(i32 noundef %9200, ptr noundef nonnull @.str.4) #13
  %9202 = load i32, ptr %1329, align 4, !tbaa !5
  %9203 = call ptr @strerror(i32 noundef %9202) #13
  %9204 = load i32, ptr %1329, align 4, !tbaa !5
  %9205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9196, ptr noundef nonnull %.str.5.sink5444, i32 noundef %9197, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1301, ptr noundef %9199, ptr noundef %9201, ptr noundef %9203, i32 noundef %9204) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9206:                                             ; preds = %9178
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %168) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %168, i8 0, i64 16, i1 false)
  %9207 = add nsw i32 %9181, 2
  store i32 %9207, ptr @test_count, align 4, !tbaa !5
  %9208 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %9180, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %168) #13
  %9209 = icmp eq i32 %9208, -1
  br i1 %9209, label %9210, label %9232

9210:                                             ; preds = %9206
  %9211 = load i32, ptr %1329, align 4, !tbaa !5
  %9212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9213 = call i32 @s2n_print_stacktrace(ptr noundef %9212) #13
  %9214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9215 = trunc nuw i8 %9214 to i1
  br i1 %9215, label %9216, label %9220

9216:                                             ; preds = %9210
  %9217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9218 = call i32 @fileno(ptr noundef %9217) #13
  %9219 = call i32 @isatty(i32 noundef %9218) #13
  %.not2354 = icmp eq i32 %9219, 0
  br i1 %.not2354, label %9220, label %9221

9220:                                             ; preds = %9216, %9210
  br label %9221

9221:                                             ; preds = %9216, %9220
  %.str.5.sink5453 = phi ptr [ @.str.5, %9220 ], [ @.str.2, %9216 ]
  store i32 %9211, ptr %1329, align 4, !tbaa !5
  %9222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9223 = load i32, ptr @test_count, align 4, !tbaa !5
  %9224 = load i32, ptr %1275, align 4, !tbaa !5
  %9225 = call ptr @s2n_strerror(i32 noundef %9224, ptr noundef nonnull @.str.4) #13
  %9226 = load i32, ptr %1275, align 4, !tbaa !5
  %9227 = call ptr @s2n_strerror_debug(i32 noundef %9226, ptr noundef nonnull @.str.4) #13
  %9228 = load i32, ptr %1329, align 4, !tbaa !5
  %9229 = call ptr @strerror(i32 noundef %9228) #13
  %9230 = load i32, ptr %1329, align 4, !tbaa !5
  %9231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9222, ptr noundef nonnull %.str.5.sink5453, i32 noundef %9223, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1304, ptr noundef %9225, ptr noundef %9227, ptr noundef %9229, i32 noundef %9230) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9232:                                             ; preds = %9206
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %169) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %169, i8 0, i64 40, i1 false)
  %9233 = load i32, ptr @test_count, align 4, !tbaa !5
  %9234 = add nsw i32 %9233, 1
  store i32 %9234, ptr @test_count, align 4, !tbaa !5
  %9235 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %9180, ptr noundef nonnull @.str.91, ptr noundef nonnull %169) #13
  %9236 = call zeroext i1 @s2n_result_is_ok(i32 %9235)
  br i1 %9236, label %9259, label %9237

9237:                                             ; preds = %9232
  %9238 = load i32, ptr %1329, align 4, !tbaa !5
  %9239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9240 = call i32 @s2n_print_stacktrace(ptr noundef %9239) #13
  %9241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9242 = trunc nuw i8 %9241 to i1
  br i1 %9242, label %9243, label %9247

9243:                                             ; preds = %9237
  %9244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9245 = call i32 @fileno(ptr noundef %9244) #13
  %9246 = call i32 @isatty(i32 noundef %9245) #13
  %.not2078 = icmp eq i32 %9246, 0
  br i1 %.not2078, label %9247, label %9248

9247:                                             ; preds = %9243, %9237
  br label %9248

9248:                                             ; preds = %9243, %9247
  %.str.5.sink5462 = phi ptr [ @.str.5, %9247 ], [ @.str.2, %9243 ]
  store i32 %9238, ptr %1329, align 4, !tbaa !5
  %9249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9250 = load i32, ptr @test_count, align 4, !tbaa !5
  %9251 = load i32, ptr %1275, align 4, !tbaa !5
  %9252 = call ptr @s2n_strerror(i32 noundef %9251, ptr noundef nonnull @.str.4) #13
  %9253 = load i32, ptr %1275, align 4, !tbaa !5
  %9254 = call ptr @s2n_strerror_debug(i32 noundef %9253, ptr noundef nonnull @.str.4) #13
  %9255 = load i32, ptr %1329, align 4, !tbaa !5
  %9256 = call ptr @strerror(i32 noundef %9255) #13
  %9257 = load i32, ptr %1329, align 4, !tbaa !5
  %9258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9249, ptr noundef nonnull %.str.5.sink5462, i32 noundef %9250, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 1307, ptr noundef %9252, ptr noundef %9254, ptr noundef %9256, i32 noundef %9257) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9259:                                             ; preds = %9232
  %9260 = getelementptr inbounds i8, ptr %169, i64 28
  %9261 = load i32, ptr %9260, align 4, !tbaa !15
  %9262 = getelementptr inbounds i8, ptr %169, i64 24
  %9263 = load i32, ptr %9262, align 8, !tbaa !18
  %9264 = sub i32 %9261, %9263
  %9265 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %169, i32 noundef %9264) #13
  %9266 = load i32, ptr @test_count, align 4, !tbaa !5
  %9267 = add nsw i32 %9266, 1
  store i32 %9267, ptr @test_count, align 4, !tbaa !5
  %9268 = icmp eq ptr %9265, null
  br i1 %9268, label %9269, label %9291

9269:                                             ; preds = %9259
  %9270 = load i32, ptr %1329, align 4, !tbaa !5
  %9271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9272 = call i32 @s2n_print_stacktrace(ptr noundef %9271) #13
  %9273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9274 = trunc nuw i8 %9273 to i1
  br i1 %9274, label %9275, label %9279

9275:                                             ; preds = %9269
  %9276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9277 = call i32 @fileno(ptr noundef %9276) #13
  %9278 = call i32 @isatty(i32 noundef %9277) #13
  %.not2353 = icmp eq i32 %9278, 0
  br i1 %.not2353, label %9279, label %9280

9279:                                             ; preds = %9275, %9269
  br label %9280

9280:                                             ; preds = %9275, %9279
  %.str.5.sink5471 = phi ptr [ @.str.5, %9279 ], [ @.str.2, %9275 ]
  store i32 %9270, ptr %1329, align 4, !tbaa !5
  %9281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9282 = load i32, ptr @test_count, align 4, !tbaa !5
  %9283 = load i32, ptr %1275, align 4, !tbaa !5
  %9284 = call ptr @s2n_strerror(i32 noundef %9283, ptr noundef nonnull @.str.4) #13
  %9285 = load i32, ptr %1275, align 4, !tbaa !5
  %9286 = call ptr @s2n_strerror_debug(i32 noundef %9285, ptr noundef nonnull @.str.4) #13
  %9287 = load i32, ptr %1329, align 4, !tbaa !5
  %9288 = call ptr @strerror(i32 noundef %9287) #13
  %9289 = load i32, ptr %1329, align 4, !tbaa !5
  %9290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9281, ptr noundef nonnull %.str.5.sink5471, i32 noundef %9282, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1310, ptr noundef %9284, ptr noundef %9286, ptr noundef %9288, i32 noundef %9289) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9291:                                             ; preds = %9259
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %170) #13
  %9292 = add nsw i32 %9266, 2
  store i32 %9292, ptr @test_count, align 4, !tbaa !5
  %9293 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %170) #13
  %9294 = icmp eq i32 %9293, -1
  br i1 %9294, label %9295, label %9317

9295:                                             ; preds = %9291
  %9296 = load i32, ptr %1329, align 4, !tbaa !5
  %9297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9298 = call i32 @s2n_print_stacktrace(ptr noundef %9297) #13
  %9299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9300 = trunc nuw i8 %9299 to i1
  br i1 %9300, label %9301, label %9305

9301:                                             ; preds = %9295
  %9302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9303 = call i32 @fileno(ptr noundef %9302) #13
  %9304 = call i32 @isatty(i32 noundef %9303) #13
  %.not2352 = icmp eq i32 %9304, 0
  br i1 %.not2352, label %9305, label %9306

9305:                                             ; preds = %9301, %9295
  br label %9306

9306:                                             ; preds = %9301, %9305
  %.str.5.sink5480 = phi ptr [ @.str.5, %9305 ], [ @.str.2, %9301 ]
  store i32 %9296, ptr %1329, align 4, !tbaa !5
  %9307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9308 = load i32, ptr @test_count, align 4, !tbaa !5
  %9309 = load i32, ptr %1275, align 4, !tbaa !5
  %9310 = call ptr @s2n_strerror(i32 noundef %9309, ptr noundef nonnull @.str.4) #13
  %9311 = load i32, ptr %1275, align 4, !tbaa !5
  %9312 = call ptr @s2n_strerror_debug(i32 noundef %9311, ptr noundef nonnull @.str.4) #13
  %9313 = load i32, ptr %1329, align 4, !tbaa !5
  %9314 = call ptr @strerror(i32 noundef %9313) #13
  %9315 = load i32, ptr %1329, align 4, !tbaa !5
  %9316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9307, ptr noundef nonnull %.str.5.sink5480, i32 noundef %9308, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1313, ptr noundef %9310, ptr noundef %9312, ptr noundef %9314, i32 noundef %9315) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9317:                                             ; preds = %9291
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %171) #13
  store i32 -1, ptr %171, align 4, !tbaa !5
  %9318 = load i32, ptr @test_count, align 4, !tbaa !5
  %9319 = add nsw i32 %9318, 1
  store i32 %9319, ptr @test_count, align 4, !tbaa !5
  %9320 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %167, ptr noundef nonnull %9180, ptr noundef nonnull %9265, i32 noundef %9264, ptr noundef nonnull %171, ptr noundef nonnull %170) #13
  %9321 = call zeroext i1 @s2n_result_is_ok(i32 %9320)
  br i1 %9321, label %9344, label %9322

9322:                                             ; preds = %9317
  %9323 = load i32, ptr %1329, align 4, !tbaa !5
  %9324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9325 = call i32 @s2n_print_stacktrace(ptr noundef %9324) #13
  %9326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9327 = trunc nuw i8 %9326 to i1
  br i1 %9327, label %9328, label %9332

9328:                                             ; preds = %9322
  %9329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9330 = call i32 @fileno(ptr noundef %9329) #13
  %9331 = call i32 @isatty(i32 noundef %9330) #13
  %.not2079 = icmp eq i32 %9331, 0
  br i1 %.not2079, label %9332, label %9333

9332:                                             ; preds = %9328, %9322
  br label %9333

9333:                                             ; preds = %9328, %9332
  %.str.5.sink5489 = phi ptr [ @.str.5, %9332 ], [ @.str.2, %9328 ]
  store i32 %9323, ptr %1329, align 4, !tbaa !5
  %9334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9335 = load i32, ptr @test_count, align 4, !tbaa !5
  %9336 = load i32, ptr %1275, align 4, !tbaa !5
  %9337 = call ptr @s2n_strerror(i32 noundef %9336, ptr noundef nonnull @.str.4) #13
  %9338 = load i32, ptr %1275, align 4, !tbaa !5
  %9339 = call ptr @s2n_strerror_debug(i32 noundef %9338, ptr noundef nonnull @.str.4) #13
  %9340 = load i32, ptr %1329, align 4, !tbaa !5
  %9341 = call ptr @strerror(i32 noundef %9340) #13
  %9342 = load i32, ptr %1329, align 4, !tbaa !5
  %9343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9334, ptr noundef nonnull %.str.5.sink5489, i32 noundef %9335, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1315, ptr noundef %9337, ptr noundef %9339, ptr noundef %9341, i32 noundef %9342) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9344:                                             ; preds = %9317
  %9345 = load i32, ptr @test_count, align 4, !tbaa !5
  %9346 = add nsw i32 %9345, 1
  store i32 %9346, ptr @test_count, align 4, !tbaa !5
  %9347 = getelementptr inbounds i8, ptr %168, i64 9
  %9348 = load i8, ptr %9347, align 1, !tbaa !19
  %9349 = icmp eq i8 %9348, 1
  br i1 %9349, label %9372, label %9350

9350:                                             ; preds = %9344
  %9351 = load i32, ptr %1329, align 4, !tbaa !5
  %9352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9353 = call i32 @s2n_print_stacktrace(ptr noundef %9352) #13
  %9354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9355 = trunc nuw i8 %9354 to i1
  br i1 %9355, label %9356, label %9360

9356:                                             ; preds = %9350
  %9357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9358 = call i32 @fileno(ptr noundef %9357) #13
  %9359 = call i32 @isatty(i32 noundef %9358) #13
  %.not2080 = icmp eq i32 %9359, 0
  br i1 %.not2080, label %9360, label %9361

9360:                                             ; preds = %9356, %9350
  br label %9361

9361:                                             ; preds = %9356, %9360
  %.str.5.sink5498 = phi ptr [ @.str.5, %9360 ], [ @.str.2, %9356 ]
  store i32 %9351, ptr %1329, align 4, !tbaa !5
  %9362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9363 = load i32, ptr @test_count, align 4, !tbaa !5
  %9364 = load i32, ptr %1275, align 4, !tbaa !5
  %9365 = call ptr @s2n_strerror(i32 noundef %9364, ptr noundef nonnull @.str.4) #13
  %9366 = load i32, ptr %1275, align 4, !tbaa !5
  %9367 = call ptr @s2n_strerror_debug(i32 noundef %9366, ptr noundef nonnull @.str.4) #13
  %9368 = load i32, ptr %1329, align 4, !tbaa !5
  %9369 = call ptr @strerror(i32 noundef %9368) #13
  %9370 = load i32, ptr %1329, align 4, !tbaa !5
  %9371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9362, ptr noundef nonnull %.str.5.sink5498, i32 noundef %9363, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1317, ptr noundef %9365, ptr noundef %9367, ptr noundef %9369, i32 noundef %9370) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9372:                                             ; preds = %9344
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %172) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %172, i8 0, i64 40, i1 false)
  %9373 = add nsw i32 %9345, 2
  store i32 %9373, ptr @test_count, align 4, !tbaa !5
  %9374 = call i32 @read_file(ptr noundef nonnull %172, ptr noundef nonnull @.str.74, i32 noundef 12000)
  %9375 = icmp eq i32 %9374, -1
  br i1 %9375, label %9376, label %9398

9376:                                             ; preds = %9372
  %9377 = load i32, ptr %1329, align 4, !tbaa !5
  %9378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9379 = call i32 @s2n_print_stacktrace(ptr noundef %9378) #13
  %9380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9381 = trunc nuw i8 %9380 to i1
  br i1 %9381, label %9382, label %9386

9382:                                             ; preds = %9376
  %9383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9384 = call i32 @fileno(ptr noundef %9383) #13
  %9385 = call i32 @isatty(i32 noundef %9384) #13
  %.not2351 = icmp eq i32 %9385, 0
  br i1 %.not2351, label %9386, label %9387

9386:                                             ; preds = %9382, %9376
  br label %9387

9387:                                             ; preds = %9382, %9386
  %.str.5.sink5507 = phi ptr [ @.str.5, %9386 ], [ @.str.2, %9382 ]
  store i32 %9377, ptr %1329, align 4, !tbaa !5
  %9388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9389 = load i32, ptr @test_count, align 4, !tbaa !5
  %9390 = load i32, ptr %1275, align 4, !tbaa !5
  %9391 = call ptr @s2n_strerror(i32 noundef %9390, ptr noundef nonnull @.str.4) #13
  %9392 = load i32, ptr %1275, align 4, !tbaa !5
  %9393 = call ptr @s2n_strerror_debug(i32 noundef %9392, ptr noundef nonnull @.str.4) #13
  %9394 = load i32, ptr %1329, align 4, !tbaa !5
  %9395 = call ptr @strerror(i32 noundef %9394) #13
  %9396 = load i32, ptr %1329, align 4, !tbaa !5
  %9397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9388, ptr noundef nonnull %.str.5.sink5507, i32 noundef %9389, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 1319, ptr noundef %9391, ptr noundef %9393, ptr noundef %9395, i32 noundef %9396) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9398:                                             ; preds = %9372
  %9399 = getelementptr inbounds i8, ptr %172, i64 28
  %9400 = load i32, ptr %9399, align 4, !tbaa !15
  %9401 = getelementptr inbounds i8, ptr %172, i64 24
  %9402 = load i32, ptr %9401, align 8, !tbaa !18
  %9403 = load i32, ptr @test_count, align 4, !tbaa !5
  %9404 = add nsw i32 %9403, 1
  store i32 %9404, ptr @test_count, align 4, !tbaa !5
  %.not2081 = icmp eq i32 %9400, %9402
  br i1 %.not2081, label %9405, label %9427

9405:                                             ; preds = %9398
  %9406 = load i32, ptr %1329, align 4, !tbaa !5
  %9407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9408 = call i32 @s2n_print_stacktrace(ptr noundef %9407) #13
  %9409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9410 = trunc nuw i8 %9409 to i1
  br i1 %9410, label %9411, label %9415

9411:                                             ; preds = %9405
  %9412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9413 = call i32 @fileno(ptr noundef %9412) #13
  %9414 = call i32 @isatty(i32 noundef %9413) #13
  %.not2082 = icmp eq i32 %9414, 0
  br i1 %.not2082, label %9415, label %9416

9415:                                             ; preds = %9411, %9405
  br label %9416

9416:                                             ; preds = %9411, %9415
  %.str.5.sink5516 = phi ptr [ @.str.5, %9415 ], [ @.str.2, %9411 ]
  store i32 %9406, ptr %1329, align 4, !tbaa !5
  %9417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9418 = load i32, ptr @test_count, align 4, !tbaa !5
  %9419 = load i32, ptr %1275, align 4, !tbaa !5
  %9420 = call ptr @s2n_strerror(i32 noundef %9419, ptr noundef nonnull @.str.4) #13
  %9421 = load i32, ptr %1275, align 4, !tbaa !5
  %9422 = call ptr @s2n_strerror_debug(i32 noundef %9421, ptr noundef nonnull @.str.4) #13
  %9423 = load i32, ptr %1329, align 4, !tbaa !5
  %9424 = call ptr @strerror(i32 noundef %9423) #13
  %9425 = load i32, ptr %1329, align 4, !tbaa !5
  %9426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9417, ptr noundef nonnull %.str.5.sink5516, i32 noundef %9418, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1321, ptr noundef %9420, ptr noundef %9422, ptr noundef %9424, i32 noundef %9425) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9427:                                             ; preds = %9398
  %9428 = sub i32 %9400, %9402
  %9429 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %172, i32 noundef %9428) #13
  %9430 = load i32, ptr @test_count, align 4, !tbaa !5
  %9431 = add nsw i32 %9430, 1
  store i32 %9431, ptr @test_count, align 4, !tbaa !5
  %9432 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %167, ptr noundef nonnull %9180, ptr noundef %9429, i32 noundef %9428) #13
  %9433 = call zeroext i1 @s2n_result_is_error(i32 %9432)
  br i1 %9433, label %9456, label %9434

9434:                                             ; preds = %9427
  %9435 = load i32, ptr %1329, align 4, !tbaa !5
  %9436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9437 = call i32 @s2n_print_stacktrace(ptr noundef %9436) #13
  %9438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9439 = trunc nuw i8 %9438 to i1
  br i1 %9439, label %9440, label %9444

9440:                                             ; preds = %9434
  %9441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9442 = call i32 @fileno(ptr noundef %9441) #13
  %9443 = call i32 @isatty(i32 noundef %9442) #13
  %.not2083 = icmp eq i32 %9443, 0
  br i1 %.not2083, label %9444, label %9445

9444:                                             ; preds = %9440, %9434
  br label %9445

9445:                                             ; preds = %9440, %9444
  %.str.5.sink5525 = phi ptr [ @.str.5, %9444 ], [ @.str.2, %9440 ]
  store i32 %9435, ptr %1329, align 4, !tbaa !5
  %9446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9447 = load i32, ptr @test_count, align 4, !tbaa !5
  %9448 = load i32, ptr %1275, align 4, !tbaa !5
  %9449 = call ptr @s2n_strerror(i32 noundef %9448, ptr noundef nonnull @.str.4) #13
  %9450 = load i32, ptr %1275, align 4, !tbaa !5
  %9451 = call ptr @s2n_strerror_debug(i32 noundef %9450, ptr noundef nonnull @.str.4) #13
  %9452 = load i32, ptr %1329, align 4, !tbaa !5
  %9453 = call ptr @strerror(i32 noundef %9452) #13
  %9454 = load i32, ptr %1329, align 4, !tbaa !5
  %9455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9446, ptr noundef nonnull %.str.5.sink5525, i32 noundef %9447, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 1327, ptr noundef %9449, ptr noundef %9451, ptr noundef %9453, i32 noundef %9454) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9456:                                             ; preds = %9427
  %9457 = load i32, ptr @test_count, align 4, !tbaa !5
  %9458 = add nsw i32 %9457, 1
  store i32 %9458, ptr @test_count, align 4, !tbaa !5
  %9459 = load i32, ptr %1275, align 4, !tbaa !5
  %9460 = icmp eq i32 %9459, 335544366
  br i1 %9460, label %9483, label %9461

9461:                                             ; preds = %9456
  %9462 = load i32, ptr %1329, align 4, !tbaa !5
  %9463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9464 = call i32 @s2n_print_stacktrace(ptr noundef %9463) #13
  %9465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9466 = trunc nuw i8 %9465 to i1
  br i1 %9466, label %9467, label %9471

9467:                                             ; preds = %9461
  %9468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9469 = call i32 @fileno(ptr noundef %9468) #13
  %9470 = call i32 @isatty(i32 noundef %9469) #13
  %.not2084 = icmp eq i32 %9470, 0
  br i1 %.not2084, label %9471, label %9472

9471:                                             ; preds = %9467, %9461
  br label %9472

9472:                                             ; preds = %9467, %9471
  %.str.5.sink5534 = phi ptr [ @.str.5, %9471 ], [ @.str.2, %9467 ]
  store i32 %9462, ptr %1329, align 4, !tbaa !5
  %9473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9474 = load i32, ptr @test_count, align 4, !tbaa !5
  %9475 = load i32, ptr %1275, align 4, !tbaa !5
  %9476 = call ptr @s2n_strerror(i32 noundef %9475, ptr noundef nonnull @.str.4) #13
  %9477 = load i32, ptr %1275, align 4, !tbaa !5
  %9478 = call ptr @s2n_strerror_debug(i32 noundef %9477, ptr noundef nonnull @.str.4) #13
  %9479 = load i32, ptr %1329, align 4, !tbaa !5
  %9480 = call ptr @strerror(i32 noundef %9479) #13
  %9481 = load i32, ptr %1329, align 4, !tbaa !5
  %9482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9473, ptr noundef nonnull %.str.5.sink5534, i32 noundef %9474, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 1327, ptr noundef %9476, ptr noundef %9478, ptr noundef %9480, i32 noundef %9481) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9483:                                             ; preds = %9456
  %9484 = add nsw i32 %9457, 2
  store i32 %9484, ptr @test_count, align 4, !tbaa !5
  %9485 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %9486 = icmp eq ptr %9485, null
  br i1 %9486, label %9487, label %9509

9487:                                             ; preds = %9483
  %9488 = load i32, ptr %1329, align 4, !tbaa !5
  %9489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9490 = call i32 @s2n_print_stacktrace(ptr noundef %9489) #13
  %9491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9492 = trunc nuw i8 %9491 to i1
  br i1 %9492, label %9493, label %9497

9493:                                             ; preds = %9487
  %9494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9495 = call i32 @fileno(ptr noundef %9494) #13
  %9496 = call i32 @isatty(i32 noundef %9495) #13
  %.not2350 = icmp eq i32 %9496, 0
  br i1 %.not2350, label %9497, label %9498

9497:                                             ; preds = %9493, %9487
  br label %9498

9498:                                             ; preds = %9493, %9497
  %.str.5.sink5543 = phi ptr [ @.str.5, %9497 ], [ @.str.2, %9493 ]
  store i32 %9488, ptr %1329, align 4, !tbaa !5
  %9499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9500 = load i32, ptr @test_count, align 4, !tbaa !5
  %9501 = load i32, ptr %1275, align 4, !tbaa !5
  %9502 = call ptr @s2n_strerror(i32 noundef %9501, ptr noundef nonnull @.str.4) #13
  %9503 = load i32, ptr %1275, align 4, !tbaa !5
  %9504 = call ptr @s2n_strerror_debug(i32 noundef %9503, ptr noundef nonnull @.str.4) #13
  %9505 = load i32, ptr %1329, align 4, !tbaa !5
  %9506 = call ptr @strerror(i32 noundef %9505) #13
  %9507 = load i32, ptr %1329, align 4, !tbaa !5
  %9508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9499, ptr noundef nonnull %.str.5.sink5543, i32 noundef %9500, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1327, ptr noundef %9502, ptr noundef %9504, ptr noundef %9506, i32 noundef %9507) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9509:                                             ; preds = %9483
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %9510 = call i32 @s2n_stuffer_free(ptr noundef nonnull %172) #13
  %9511 = call i32 @s2n_connection_free(ptr noundef nonnull %9180) #13
  %9512 = call i32 @s2n_pkey_free(ptr noundef nonnull %170) #13
  %9513 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %167) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %166) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %172) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %171) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %170) #13
  %9514 = call i32 @s2n_stuffer_free(ptr noundef nonnull %169) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %169) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %168) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %167) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %166) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %173) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %173) #13
  %9515 = load i32, ptr @test_count, align 4, !tbaa !5
  %9516 = add nsw i32 %9515, 1
  store i32 %9516, ptr @test_count, align 4, !tbaa !5
  %9517 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %173, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %9518 = icmp eq i32 %9517, -1
  br i1 %9518, label %9519, label %9541

9519:                                             ; preds = %9509
  %9520 = load i32, ptr %1329, align 4, !tbaa !5
  %9521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9522 = call i32 @s2n_print_stacktrace(ptr noundef %9521) #13
  %9523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9524 = trunc nuw i8 %9523 to i1
  br i1 %9524, label %9525, label %9529

9525:                                             ; preds = %9519
  %9526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9527 = call i32 @fileno(ptr noundef %9526) #13
  %9528 = call i32 @isatty(i32 noundef %9527) #13
  %.not2349 = icmp eq i32 %9528, 0
  br i1 %.not2349, label %9529, label %9530

9529:                                             ; preds = %9525, %9519
  br label %9530

9530:                                             ; preds = %9525, %9529
  %.str.5.sink5552 = phi ptr [ @.str.5, %9529 ], [ @.str.2, %9525 ]
  store i32 %9520, ptr %1329, align 4, !tbaa !5
  %9531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9532 = load i32, ptr @test_count, align 4, !tbaa !5
  %9533 = load i32, ptr %1275, align 4, !tbaa !5
  %9534 = call ptr @s2n_strerror(i32 noundef %9533, ptr noundef nonnull @.str.4) #13
  %9535 = load i32, ptr %1275, align 4, !tbaa !5
  %9536 = call ptr @s2n_strerror_debug(i32 noundef %9535, ptr noundef nonnull @.str.4) #13
  %9537 = load i32, ptr %1329, align 4, !tbaa !5
  %9538 = call ptr @strerror(i32 noundef %9537) #13
  %9539 = load i32, ptr %1329, align 4, !tbaa !5
  %9540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9531, ptr noundef nonnull %.str.5.sink5552, i32 noundef %9532, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1342, ptr noundef %9534, ptr noundef %9536, ptr noundef %9538, i32 noundef %9539) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9541:                                             ; preds = %9509
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %174) #13
  %9542 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %174, ptr noundef nonnull %173, i8 noundef zeroext 1) #13
  %9543 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %9544 = load i32, ptr @test_count, align 4, !tbaa !5
  %9545 = add nsw i32 %9544, 1
  store i32 %9545, ptr @test_count, align 4, !tbaa !5
  %9546 = icmp eq ptr %9543, null
  br i1 %9546, label %9547, label %9569

9547:                                             ; preds = %9541
  %9548 = load i32, ptr %1329, align 4, !tbaa !5
  %9549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9550 = call i32 @s2n_print_stacktrace(ptr noundef %9549) #13
  %9551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9552 = trunc nuw i8 %9551 to i1
  br i1 %9552, label %9553, label %9557

9553:                                             ; preds = %9547
  %9554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9555 = call i32 @fileno(ptr noundef %9554) #13
  %9556 = call i32 @isatty(i32 noundef %9555) #13
  %.not2348 = icmp eq i32 %9556, 0
  br i1 %.not2348, label %9557, label %9558

9557:                                             ; preds = %9553, %9547
  br label %9558

9558:                                             ; preds = %9553, %9557
  %.str.5.sink5561 = phi ptr [ @.str.5, %9557 ], [ @.str.2, %9553 ]
  store i32 %9548, ptr %1329, align 4, !tbaa !5
  %9559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9560 = load i32, ptr @test_count, align 4, !tbaa !5
  %9561 = load i32, ptr %1275, align 4, !tbaa !5
  %9562 = call ptr @s2n_strerror(i32 noundef %9561, ptr noundef nonnull @.str.4) #13
  %9563 = load i32, ptr %1275, align 4, !tbaa !5
  %9564 = call ptr @s2n_strerror_debug(i32 noundef %9563, ptr noundef nonnull @.str.4) #13
  %9565 = load i32, ptr %1329, align 4, !tbaa !5
  %9566 = call ptr @strerror(i32 noundef %9565) #13
  %9567 = load i32, ptr %1329, align 4, !tbaa !5
  %9568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9559, ptr noundef nonnull %.str.5.sink5561, i32 noundef %9560, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1348, ptr noundef %9562, ptr noundef %9564, ptr noundef %9566, i32 noundef %9567) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9569:                                             ; preds = %9541
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %175) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %175, i8 0, i64 16, i1 false)
  %9570 = add nsw i32 %9544, 2
  store i32 %9570, ptr @test_count, align 4, !tbaa !5
  %9571 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %9543, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %175) #13
  %9572 = icmp eq i32 %9571, -1
  br i1 %9572, label %9573, label %9595

9573:                                             ; preds = %9569
  %9574 = load i32, ptr %1329, align 4, !tbaa !5
  %9575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9576 = call i32 @s2n_print_stacktrace(ptr noundef %9575) #13
  %9577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9578 = trunc nuw i8 %9577 to i1
  br i1 %9578, label %9579, label %9583

9579:                                             ; preds = %9573
  %9580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9581 = call i32 @fileno(ptr noundef %9580) #13
  %9582 = call i32 @isatty(i32 noundef %9581) #13
  %.not2347 = icmp eq i32 %9582, 0
  br i1 %.not2347, label %9583, label %9584

9583:                                             ; preds = %9579, %9573
  br label %9584

9584:                                             ; preds = %9579, %9583
  %.str.5.sink5570 = phi ptr [ @.str.5, %9583 ], [ @.str.2, %9579 ]
  store i32 %9574, ptr %1329, align 4, !tbaa !5
  %9585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9586 = load i32, ptr @test_count, align 4, !tbaa !5
  %9587 = load i32, ptr %1275, align 4, !tbaa !5
  %9588 = call ptr @s2n_strerror(i32 noundef %9587, ptr noundef nonnull @.str.4) #13
  %9589 = load i32, ptr %1275, align 4, !tbaa !5
  %9590 = call ptr @s2n_strerror_debug(i32 noundef %9589, ptr noundef nonnull @.str.4) #13
  %9591 = load i32, ptr %1329, align 4, !tbaa !5
  %9592 = call ptr @strerror(i32 noundef %9591) #13
  %9593 = load i32, ptr %1329, align 4, !tbaa !5
  %9594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9585, ptr noundef nonnull %.str.5.sink5570, i32 noundef %9586, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1351, ptr noundef %9588, ptr noundef %9590, ptr noundef %9592, i32 noundef %9593) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9595:                                             ; preds = %9569
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %176) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %176, i8 0, i64 40, i1 false)
  %9596 = load i32, ptr @test_count, align 4, !tbaa !5
  %9597 = add nsw i32 %9596, 1
  store i32 %9597, ptr @test_count, align 4, !tbaa !5
  %9598 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %9543, ptr noundef nonnull @.str.91, ptr noundef nonnull %176) #13
  %9599 = call zeroext i1 @s2n_result_is_ok(i32 %9598)
  br i1 %9599, label %9622, label %9600

9600:                                             ; preds = %9595
  %9601 = load i32, ptr %1329, align 4, !tbaa !5
  %9602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9603 = call i32 @s2n_print_stacktrace(ptr noundef %9602) #13
  %9604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9605 = trunc nuw i8 %9604 to i1
  br i1 %9605, label %9606, label %9610

9606:                                             ; preds = %9600
  %9607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9608 = call i32 @fileno(ptr noundef %9607) #13
  %9609 = call i32 @isatty(i32 noundef %9608) #13
  %.not2085 = icmp eq i32 %9609, 0
  br i1 %.not2085, label %9610, label %9611

9610:                                             ; preds = %9606, %9600
  br label %9611

9611:                                             ; preds = %9606, %9610
  %.str.5.sink5579 = phi ptr [ @.str.5, %9610 ], [ @.str.2, %9606 ]
  store i32 %9601, ptr %1329, align 4, !tbaa !5
  %9612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9613 = load i32, ptr @test_count, align 4, !tbaa !5
  %9614 = load i32, ptr %1275, align 4, !tbaa !5
  %9615 = call ptr @s2n_strerror(i32 noundef %9614, ptr noundef nonnull @.str.4) #13
  %9616 = load i32, ptr %1275, align 4, !tbaa !5
  %9617 = call ptr @s2n_strerror_debug(i32 noundef %9616, ptr noundef nonnull @.str.4) #13
  %9618 = load i32, ptr %1329, align 4, !tbaa !5
  %9619 = call ptr @strerror(i32 noundef %9618) #13
  %9620 = load i32, ptr %1329, align 4, !tbaa !5
  %9621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9612, ptr noundef nonnull %.str.5.sink5579, i32 noundef %9613, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 1354, ptr noundef %9615, ptr noundef %9617, ptr noundef %9619, i32 noundef %9620) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9622:                                             ; preds = %9595
  %9623 = getelementptr inbounds i8, ptr %176, i64 28
  %9624 = load i32, ptr %9623, align 4, !tbaa !15
  %9625 = getelementptr inbounds i8, ptr %176, i64 24
  %9626 = load i32, ptr %9625, align 8, !tbaa !18
  %9627 = sub i32 %9624, %9626
  %9628 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %176, i32 noundef %9627) #13
  %9629 = load i32, ptr @test_count, align 4, !tbaa !5
  %9630 = add nsw i32 %9629, 1
  store i32 %9630, ptr @test_count, align 4, !tbaa !5
  %9631 = icmp eq ptr %9628, null
  br i1 %9631, label %9632, label %9654

9632:                                             ; preds = %9622
  %9633 = load i32, ptr %1329, align 4, !tbaa !5
  %9634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9635 = call i32 @s2n_print_stacktrace(ptr noundef %9634) #13
  %9636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9637 = trunc nuw i8 %9636 to i1
  br i1 %9637, label %9638, label %9642

9638:                                             ; preds = %9632
  %9639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9640 = call i32 @fileno(ptr noundef %9639) #13
  %9641 = call i32 @isatty(i32 noundef %9640) #13
  %.not2346 = icmp eq i32 %9641, 0
  br i1 %.not2346, label %9642, label %9643

9642:                                             ; preds = %9638, %9632
  br label %9643

9643:                                             ; preds = %9638, %9642
  %.str.5.sink5588 = phi ptr [ @.str.5, %9642 ], [ @.str.2, %9638 ]
  store i32 %9633, ptr %1329, align 4, !tbaa !5
  %9644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9645 = load i32, ptr @test_count, align 4, !tbaa !5
  %9646 = load i32, ptr %1275, align 4, !tbaa !5
  %9647 = call ptr @s2n_strerror(i32 noundef %9646, ptr noundef nonnull @.str.4) #13
  %9648 = load i32, ptr %1275, align 4, !tbaa !5
  %9649 = call ptr @s2n_strerror_debug(i32 noundef %9648, ptr noundef nonnull @.str.4) #13
  %9650 = load i32, ptr %1329, align 4, !tbaa !5
  %9651 = call ptr @strerror(i32 noundef %9650) #13
  %9652 = load i32, ptr %1329, align 4, !tbaa !5
  %9653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9644, ptr noundef nonnull %.str.5.sink5588, i32 noundef %9645, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1357, ptr noundef %9647, ptr noundef %9649, ptr noundef %9651, i32 noundef %9652) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9654:                                             ; preds = %9622
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %177) #13
  %9655 = add nsw i32 %9629, 2
  store i32 %9655, ptr @test_count, align 4, !tbaa !5
  %9656 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %177) #13
  %9657 = icmp eq i32 %9656, -1
  br i1 %9657, label %9658, label %9680

9658:                                             ; preds = %9654
  %9659 = load i32, ptr %1329, align 4, !tbaa !5
  %9660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9661 = call i32 @s2n_print_stacktrace(ptr noundef %9660) #13
  %9662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9663 = trunc nuw i8 %9662 to i1
  br i1 %9663, label %9664, label %9668

9664:                                             ; preds = %9658
  %9665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9666 = call i32 @fileno(ptr noundef %9665) #13
  %9667 = call i32 @isatty(i32 noundef %9666) #13
  %.not2345 = icmp eq i32 %9667, 0
  br i1 %.not2345, label %9668, label %9669

9668:                                             ; preds = %9664, %9658
  br label %9669

9669:                                             ; preds = %9664, %9668
  %.str.5.sink5597 = phi ptr [ @.str.5, %9668 ], [ @.str.2, %9664 ]
  store i32 %9659, ptr %1329, align 4, !tbaa !5
  %9670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9671 = load i32, ptr @test_count, align 4, !tbaa !5
  %9672 = load i32, ptr %1275, align 4, !tbaa !5
  %9673 = call ptr @s2n_strerror(i32 noundef %9672, ptr noundef nonnull @.str.4) #13
  %9674 = load i32, ptr %1275, align 4, !tbaa !5
  %9675 = call ptr @s2n_strerror_debug(i32 noundef %9674, ptr noundef nonnull @.str.4) #13
  %9676 = load i32, ptr %1329, align 4, !tbaa !5
  %9677 = call ptr @strerror(i32 noundef %9676) #13
  %9678 = load i32, ptr %1329, align 4, !tbaa !5
  %9679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9670, ptr noundef nonnull %.str.5.sink5597, i32 noundef %9671, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1360, ptr noundef %9673, ptr noundef %9675, ptr noundef %9677, i32 noundef %9678) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9680:                                             ; preds = %9654
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %178) #13
  store i32 -1, ptr %178, align 4, !tbaa !5
  %9681 = load i32, ptr @test_count, align 4, !tbaa !5
  %9682 = add nsw i32 %9681, 1
  store i32 %9682, ptr @test_count, align 4, !tbaa !5
  %9683 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %174, ptr noundef nonnull %9543, ptr noundef nonnull %9628, i32 noundef %9627, ptr noundef nonnull %178, ptr noundef nonnull %177) #13
  %9684 = call zeroext i1 @s2n_result_is_ok(i32 %9683)
  br i1 %9684, label %9707, label %9685

9685:                                             ; preds = %9680
  %9686 = load i32, ptr %1329, align 4, !tbaa !5
  %9687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9688 = call i32 @s2n_print_stacktrace(ptr noundef %9687) #13
  %9689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9690 = trunc nuw i8 %9689 to i1
  br i1 %9690, label %9691, label %9695

9691:                                             ; preds = %9685
  %9692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9693 = call i32 @fileno(ptr noundef %9692) #13
  %9694 = call i32 @isatty(i32 noundef %9693) #13
  %.not2086 = icmp eq i32 %9694, 0
  br i1 %.not2086, label %9695, label %9696

9695:                                             ; preds = %9691, %9685
  br label %9696

9696:                                             ; preds = %9691, %9695
  %.str.5.sink5606 = phi ptr [ @.str.5, %9695 ], [ @.str.2, %9691 ]
  store i32 %9686, ptr %1329, align 4, !tbaa !5
  %9697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9698 = load i32, ptr @test_count, align 4, !tbaa !5
  %9699 = load i32, ptr %1275, align 4, !tbaa !5
  %9700 = call ptr @s2n_strerror(i32 noundef %9699, ptr noundef nonnull @.str.4) #13
  %9701 = load i32, ptr %1275, align 4, !tbaa !5
  %9702 = call ptr @s2n_strerror_debug(i32 noundef %9701, ptr noundef nonnull @.str.4) #13
  %9703 = load i32, ptr %1329, align 4, !tbaa !5
  %9704 = call ptr @strerror(i32 noundef %9703) #13
  %9705 = load i32, ptr %1329, align 4, !tbaa !5
  %9706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9697, ptr noundef nonnull %.str.5.sink5606, i32 noundef %9698, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1362, ptr noundef %9700, ptr noundef %9702, ptr noundef %9704, i32 noundef %9705) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9707:                                             ; preds = %9680
  %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 = getelementptr inbounds i8, ptr %175, i64 9
  %9711 = load i8, ptr %9710, align 1, !tbaa !19
  %9712 = icmp eq i8 %9711, 1
  br i1 %9712, label %9735, label %9713

9713:                                             ; preds = %9707
  %9714 = load i32, ptr %1329, align 4, !tbaa !5
  %9715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9716 = call i32 @s2n_print_stacktrace(ptr noundef %9715) #13
  %9717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9718 = trunc nuw i8 %9717 to i1
  br i1 %9718, label %9719, label %9723

9719:                                             ; preds = %9713
  %9720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9721 = call i32 @fileno(ptr noundef %9720) #13
  %9722 = call i32 @isatty(i32 noundef %9721) #13
  %.not2087 = icmp eq i32 %9722, 0
  br i1 %.not2087, label %9723, label %9724

9723:                                             ; preds = %9719, %9713
  br label %9724

9724:                                             ; preds = %9719, %9723
  %.str.5.sink5615 = phi ptr [ @.str.5, %9723 ], [ @.str.2, %9719 ]
  store i32 %9714, ptr %1329, align 4, !tbaa !5
  %9725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9726 = load i32, ptr @test_count, align 4, !tbaa !5
  %9727 = load i32, ptr %1275, align 4, !tbaa !5
  %9728 = call ptr @s2n_strerror(i32 noundef %9727, ptr noundef nonnull @.str.4) #13
  %9729 = load i32, ptr %1275, align 4, !tbaa !5
  %9730 = call ptr @s2n_strerror_debug(i32 noundef %9729, ptr noundef nonnull @.str.4) #13
  %9731 = load i32, ptr %1329, align 4, !tbaa !5
  %9732 = call ptr @strerror(i32 noundef %9731) #13
  %9733 = load i32, ptr %1329, align 4, !tbaa !5
  %9734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9725, ptr noundef nonnull %.str.5.sink5615, i32 noundef %9726, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1364, ptr noundef %9728, ptr noundef %9730, ptr noundef %9732, i32 noundef %9733) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9735:                                             ; preds = %9707
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %179) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %179, i8 0, i64 40, i1 false)
  %9736 = add nsw i32 %9708, 2
  store i32 %9736, ptr @test_count, align 4, !tbaa !5
  %9737 = call i32 @read_file(ptr noundef nonnull %179, ptr noundef nonnull @.str.93, i32 noundef 12000)
  %9738 = icmp eq i32 %9737, -1
  br i1 %9738, label %9739, label %9761

9739:                                             ; preds = %9735
  %9740 = load i32, ptr %1329, align 4, !tbaa !5
  %9741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9742 = call i32 @s2n_print_stacktrace(ptr noundef %9741) #13
  %9743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9744 = trunc nuw i8 %9743 to i1
  br i1 %9744, label %9745, label %9749

9745:                                             ; preds = %9739
  %9746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9747 = call i32 @fileno(ptr noundef %9746) #13
  %9748 = call i32 @isatty(i32 noundef %9747) #13
  %.not2344 = icmp eq i32 %9748, 0
  br i1 %.not2344, label %9749, label %9750

9749:                                             ; preds = %9745, %9739
  br label %9750

9750:                                             ; preds = %9745, %9749
  %.str.5.sink5624 = phi ptr [ @.str.5, %9749 ], [ @.str.2, %9745 ]
  store i32 %9740, ptr %1329, align 4, !tbaa !5
  %9751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9752 = load i32, ptr @test_count, align 4, !tbaa !5
  %9753 = load i32, ptr %1275, align 4, !tbaa !5
  %9754 = call ptr @s2n_strerror(i32 noundef %9753, ptr noundef nonnull @.str.4) #13
  %9755 = load i32, ptr %1275, align 4, !tbaa !5
  %9756 = call ptr @s2n_strerror_debug(i32 noundef %9755, ptr noundef nonnull @.str.4) #13
  %9757 = load i32, ptr %1329, align 4, !tbaa !5
  %9758 = call ptr @strerror(i32 noundef %9757) #13
  %9759 = load i32, ptr %1329, align 4, !tbaa !5
  %9760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9751, ptr noundef nonnull %.str.5.sink5624, i32 noundef %9752, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 1366, ptr noundef %9754, ptr noundef %9756, ptr noundef %9758, i32 noundef %9759) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9761:                                             ; preds = %9735
  %9762 = getelementptr inbounds i8, ptr %179, i64 28
  %9763 = load i32, ptr %9762, align 4, !tbaa !15
  %9764 = getelementptr inbounds i8, ptr %179, i64 24
  %9765 = load i32, ptr %9764, align 8, !tbaa !18
  %9766 = load i32, ptr @test_count, align 4, !tbaa !5
  %9767 = add nsw i32 %9766, 1
  store i32 %9767, ptr @test_count, align 4, !tbaa !5
  %.not2088 = icmp eq i32 %9763, %9765
  br i1 %.not2088, label %9768, label %9790

9768:                                             ; preds = %9761
  %9769 = load i32, ptr %1329, align 4, !tbaa !5
  %9770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9771 = call i32 @s2n_print_stacktrace(ptr noundef %9770) #13
  %9772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9773 = trunc nuw i8 %9772 to i1
  br i1 %9773, label %9774, label %9778

9774:                                             ; preds = %9768
  %9775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9776 = call i32 @fileno(ptr noundef %9775) #13
  %9777 = call i32 @isatty(i32 noundef %9776) #13
  %.not2089 = icmp eq i32 %9777, 0
  br i1 %.not2089, label %9778, label %9779

9778:                                             ; preds = %9774, %9768
  br label %9779

9779:                                             ; preds = %9774, %9778
  %.str.5.sink5633 = phi ptr [ @.str.5, %9778 ], [ @.str.2, %9774 ]
  store i32 %9769, ptr %1329, align 4, !tbaa !5
  %9780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9781 = load i32, ptr @test_count, align 4, !tbaa !5
  %9782 = load i32, ptr %1275, align 4, !tbaa !5
  %9783 = call ptr @s2n_strerror(i32 noundef %9782, ptr noundef nonnull @.str.4) #13
  %9784 = load i32, ptr %1275, align 4, !tbaa !5
  %9785 = call ptr @s2n_strerror_debug(i32 noundef %9784, ptr noundef nonnull @.str.4) #13
  %9786 = load i32, ptr %1329, align 4, !tbaa !5
  %9787 = call ptr @strerror(i32 noundef %9786) #13
  %9788 = load i32, ptr %1329, align 4, !tbaa !5
  %9789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9780, ptr noundef nonnull %.str.5.sink5633, i32 noundef %9781, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1368, ptr noundef %9783, ptr noundef %9785, ptr noundef %9787, i32 noundef %9788) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9790:                                             ; preds = %9761
  %9791 = sub i32 %9763, %9765
  %9792 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %179, i32 noundef %9791) #13
  %9793 = load i32, ptr @test_count, align 4, !tbaa !5
  %9794 = add nsw i32 %9793, 1
  store i32 %9794, ptr @test_count, align 4, !tbaa !5
  %9795 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %174, ptr noundef nonnull %9543, ptr noundef %9792, i32 noundef %9791) #13
  %9796 = call zeroext i1 @s2n_result_is_error(i32 %9795)
  br i1 %9796, label %9819, label %9797

9797:                                             ; preds = %9790
  %9798 = load i32, ptr %1329, align 4, !tbaa !5
  %9799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9800 = call i32 @s2n_print_stacktrace(ptr noundef %9799) #13
  %9801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9802 = trunc nuw i8 %9801 to i1
  br i1 %9802, label %9803, label %9807

9803:                                             ; preds = %9797
  %9804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9805 = call i32 @fileno(ptr noundef %9804) #13
  %9806 = call i32 @isatty(i32 noundef %9805) #13
  %.not2090 = icmp eq i32 %9806, 0
  br i1 %.not2090, label %9807, label %9808

9807:                                             ; preds = %9803, %9797
  br label %9808

9808:                                             ; preds = %9803, %9807
  %.str.5.sink5642 = phi ptr [ @.str.5, %9807 ], [ @.str.2, %9803 ]
  store i32 %9798, ptr %1329, align 4, !tbaa !5
  %9809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9810 = load i32, ptr @test_count, align 4, !tbaa !5
  %9811 = load i32, ptr %1275, align 4, !tbaa !5
  %9812 = call ptr @s2n_strerror(i32 noundef %9811, ptr noundef nonnull @.str.4) #13
  %9813 = load i32, ptr %1275, align 4, !tbaa !5
  %9814 = call ptr @s2n_strerror_debug(i32 noundef %9813, ptr noundef nonnull @.str.4) #13
  %9815 = load i32, ptr %1329, align 4, !tbaa !5
  %9816 = call ptr @strerror(i32 noundef %9815) #13
  %9817 = load i32, ptr %1329, align 4, !tbaa !5
  %9818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9809, ptr noundef nonnull %.str.5.sink5642, i32 noundef %9810, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 1374, ptr noundef %9812, ptr noundef %9814, ptr noundef %9816, i32 noundef %9817) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9819:                                             ; preds = %9790
  %9820 = load i32, ptr @test_count, align 4, !tbaa !5
  %9821 = add nsw i32 %9820, 1
  store i32 %9821, ptr @test_count, align 4, !tbaa !5
  %9822 = load i32, ptr %1275, align 4, !tbaa !5
  %9823 = icmp eq i32 %9822, 335544366
  br i1 %9823, label %9846, label %9824

9824:                                             ; preds = %9819
  %9825 = load i32, ptr %1329, align 4, !tbaa !5
  %9826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9827 = call i32 @s2n_print_stacktrace(ptr noundef %9826) #13
  %9828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9829 = trunc nuw i8 %9828 to i1
  br i1 %9829, label %9830, label %9834

9830:                                             ; preds = %9824
  %9831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9832 = call i32 @fileno(ptr noundef %9831) #13
  %9833 = call i32 @isatty(i32 noundef %9832) #13
  %.not2091 = icmp eq i32 %9833, 0
  br i1 %.not2091, label %9834, label %9835

9834:                                             ; preds = %9830, %9824
  br label %9835

9835:                                             ; preds = %9830, %9834
  %.str.5.sink5651 = phi ptr [ @.str.5, %9834 ], [ @.str.2, %9830 ]
  store i32 %9825, ptr %1329, align 4, !tbaa !5
  %9836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9837 = load i32, ptr @test_count, align 4, !tbaa !5
  %9838 = load i32, ptr %1275, align 4, !tbaa !5
  %9839 = call ptr @s2n_strerror(i32 noundef %9838, ptr noundef nonnull @.str.4) #13
  %9840 = load i32, ptr %1275, align 4, !tbaa !5
  %9841 = call ptr @s2n_strerror_debug(i32 noundef %9840, ptr noundef nonnull @.str.4) #13
  %9842 = load i32, ptr %1329, align 4, !tbaa !5
  %9843 = call ptr @strerror(i32 noundef %9842) #13
  %9844 = load i32, ptr %1329, align 4, !tbaa !5
  %9845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9836, ptr noundef nonnull %.str.5.sink5651, i32 noundef %9837, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 1374, ptr noundef %9839, ptr noundef %9841, ptr noundef %9843, i32 noundef %9844) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9846:                                             ; preds = %9819
  %9847 = add nsw i32 %9820, 2
  store i32 %9847, ptr @test_count, align 4, !tbaa !5
  %9848 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %9849 = icmp eq ptr %9848, null
  br i1 %9849, label %9850, label %9872

9850:                                             ; preds = %9846
  %9851 = load i32, ptr %1329, align 4, !tbaa !5
  %9852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9853 = call i32 @s2n_print_stacktrace(ptr noundef %9852) #13
  %9854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9855 = trunc nuw i8 %9854 to i1
  br i1 %9855, label %9856, label %9860

9856:                                             ; preds = %9850
  %9857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9858 = call i32 @fileno(ptr noundef %9857) #13
  %9859 = call i32 @isatty(i32 noundef %9858) #13
  %.not2343 = icmp eq i32 %9859, 0
  br i1 %.not2343, label %9860, label %9861

9860:                                             ; preds = %9856, %9850
  br label %9861

9861:                                             ; preds = %9856, %9860
  %.str.5.sink5660 = phi ptr [ @.str.5, %9860 ], [ @.str.2, %9856 ]
  store i32 %9851, ptr %1329, align 4, !tbaa !5
  %9862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9863 = load i32, ptr @test_count, align 4, !tbaa !5
  %9864 = load i32, ptr %1275, align 4, !tbaa !5
  %9865 = call ptr @s2n_strerror(i32 noundef %9864, ptr noundef nonnull @.str.4) #13
  %9866 = load i32, ptr %1275, align 4, !tbaa !5
  %9867 = call ptr @s2n_strerror_debug(i32 noundef %9866, ptr noundef nonnull @.str.4) #13
  %9868 = load i32, ptr %1329, align 4, !tbaa !5
  %9869 = call ptr @strerror(i32 noundef %9868) #13
  %9870 = load i32, ptr %1329, align 4, !tbaa !5
  %9871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9862, ptr noundef nonnull %.str.5.sink5660, i32 noundef %9863, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1374, ptr noundef %9865, ptr noundef %9867, ptr noundef %9869, i32 noundef %9870) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9872:                                             ; preds = %9846
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %9873 = call i32 @s2n_stuffer_free(ptr noundef nonnull %179) #13
  %9874 = call i32 @s2n_connection_free(ptr noundef nonnull %9543) #13
  %9875 = call i32 @s2n_pkey_free(ptr noundef nonnull %177) #13
  %9876 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %174) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %173) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %179) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %178) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %177) #13
  %9877 = call i32 @s2n_stuffer_free(ptr noundef nonnull %176) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %176) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %175) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %174) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %173) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %180) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %180) #13
  %9878 = load i32, ptr @test_count, align 4, !tbaa !5
  %9879 = add nsw i32 %9878, 1
  store i32 %9879, ptr @test_count, align 4, !tbaa !5
  %9880 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %180, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %9881 = icmp eq i32 %9880, -1
  br i1 %9881, label %9882, label %9904

9882:                                             ; preds = %9872
  %9883 = load i32, ptr %1329, align 4, !tbaa !5
  %9884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9885 = call i32 @s2n_print_stacktrace(ptr noundef %9884) #13
  %9886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9887 = trunc nuw i8 %9886 to i1
  br i1 %9887, label %9888, label %9892

9888:                                             ; preds = %9882
  %9889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9890 = call i32 @fileno(ptr noundef %9889) #13
  %9891 = call i32 @isatty(i32 noundef %9890) #13
  %.not2342 = icmp eq i32 %9891, 0
  br i1 %.not2342, label %9892, label %9893

9892:                                             ; preds = %9888, %9882
  br label %9893

9893:                                             ; preds = %9888, %9892
  %.str.5.sink5669 = phi ptr [ @.str.5, %9892 ], [ @.str.2, %9888 ]
  store i32 %9883, ptr %1329, align 4, !tbaa !5
  %9894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9895 = load i32, ptr @test_count, align 4, !tbaa !5
  %9896 = load i32, ptr %1275, align 4, !tbaa !5
  %9897 = call ptr @s2n_strerror(i32 noundef %9896, ptr noundef nonnull @.str.4) #13
  %9898 = load i32, ptr %1275, align 4, !tbaa !5
  %9899 = call ptr @s2n_strerror_debug(i32 noundef %9898, ptr noundef nonnull @.str.4) #13
  %9900 = load i32, ptr %1329, align 4, !tbaa !5
  %9901 = call ptr @strerror(i32 noundef %9900) #13
  %9902 = load i32, ptr %1329, align 4, !tbaa !5
  %9903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9894, ptr noundef nonnull %.str.5.sink5669, i32 noundef %9895, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1387, ptr noundef %9897, ptr noundef %9899, ptr noundef %9901, i32 noundef %9902) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9904:                                             ; preds = %9872
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %181) #13
  %9905 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %181, ptr noundef nonnull %180, i8 noundef zeroext 1) #13
  %9906 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %9907 = load i32, ptr @test_count, align 4, !tbaa !5
  %9908 = add nsw i32 %9907, 1
  store i32 %9908, ptr @test_count, align 4, !tbaa !5
  %9909 = icmp eq ptr %9906, null
  br i1 %9909, label %9910, label %9932

9910:                                             ; preds = %9904
  %9911 = load i32, ptr %1329, align 4, !tbaa !5
  %9912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9913 = call i32 @s2n_print_stacktrace(ptr noundef %9912) #13
  %9914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9915 = trunc nuw i8 %9914 to i1
  br i1 %9915, label %9916, label %9920

9916:                                             ; preds = %9910
  %9917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9918 = call i32 @fileno(ptr noundef %9917) #13
  %9919 = call i32 @isatty(i32 noundef %9918) #13
  %.not2341 = icmp eq i32 %9919, 0
  br i1 %.not2341, label %9920, label %9921

9920:                                             ; preds = %9916, %9910
  br label %9921

9921:                                             ; preds = %9916, %9920
  %.str.5.sink5678 = phi ptr [ @.str.5, %9920 ], [ @.str.2, %9916 ]
  store i32 %9911, ptr %1329, align 4, !tbaa !5
  %9922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9923 = load i32, ptr @test_count, align 4, !tbaa !5
  %9924 = load i32, ptr %1275, align 4, !tbaa !5
  %9925 = call ptr @s2n_strerror(i32 noundef %9924, ptr noundef nonnull @.str.4) #13
  %9926 = load i32, ptr %1275, align 4, !tbaa !5
  %9927 = call ptr @s2n_strerror_debug(i32 noundef %9926, ptr noundef nonnull @.str.4) #13
  %9928 = load i32, ptr %1329, align 4, !tbaa !5
  %9929 = call ptr @strerror(i32 noundef %9928) #13
  %9930 = load i32, ptr %1329, align 4, !tbaa !5
  %9931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9922, ptr noundef nonnull %.str.5.sink5678, i32 noundef %9923, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1393, ptr noundef %9925, ptr noundef %9927, ptr noundef %9929, i32 noundef %9930) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9932:                                             ; preds = %9904
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %182) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %182, i8 0, i64 16, i1 false)
  %9933 = add nsw i32 %9907, 2
  store i32 %9933, ptr @test_count, align 4, !tbaa !5
  %9934 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %9906, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %182) #13
  %9935 = icmp eq i32 %9934, -1
  br i1 %9935, label %9936, label %9958

9936:                                             ; preds = %9932
  %9937 = load i32, ptr %1329, align 4, !tbaa !5
  %9938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9939 = call i32 @s2n_print_stacktrace(ptr noundef %9938) #13
  %9940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9941 = trunc nuw i8 %9940 to i1
  br i1 %9941, label %9942, label %9946

9942:                                             ; preds = %9936
  %9943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9944 = call i32 @fileno(ptr noundef %9943) #13
  %9945 = call i32 @isatty(i32 noundef %9944) #13
  %.not2340 = icmp eq i32 %9945, 0
  br i1 %.not2340, label %9946, label %9947

9946:                                             ; preds = %9942, %9936
  br label %9947

9947:                                             ; preds = %9942, %9946
  %.str.5.sink5687 = phi ptr [ @.str.5, %9946 ], [ @.str.2, %9942 ]
  store i32 %9937, ptr %1329, align 4, !tbaa !5
  %9948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9949 = load i32, ptr @test_count, align 4, !tbaa !5
  %9950 = load i32, ptr %1275, align 4, !tbaa !5
  %9951 = call ptr @s2n_strerror(i32 noundef %9950, ptr noundef nonnull @.str.4) #13
  %9952 = load i32, ptr %1275, align 4, !tbaa !5
  %9953 = call ptr @s2n_strerror_debug(i32 noundef %9952, ptr noundef nonnull @.str.4) #13
  %9954 = load i32, ptr %1329, align 4, !tbaa !5
  %9955 = call ptr @strerror(i32 noundef %9954) #13
  %9956 = load i32, ptr %1329, align 4, !tbaa !5
  %9957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9948, ptr noundef nonnull %.str.5.sink5687, i32 noundef %9949, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1396, ptr noundef %9951, ptr noundef %9953, ptr noundef %9955, i32 noundef %9956) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9958:                                             ; preds = %9932
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %183) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %183, i8 0, i64 40, i1 false)
  %9959 = load i32, ptr @test_count, align 4, !tbaa !5
  %9960 = add nsw i32 %9959, 1
  store i32 %9960, ptr @test_count, align 4, !tbaa !5
  %9961 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %9906, ptr noundef nonnull @.str.72, ptr noundef nonnull %183) #13
  %9962 = call zeroext i1 @s2n_result_is_ok(i32 %9961)
  br i1 %9962, label %9985, label %9963

9963:                                             ; preds = %9958
  %9964 = load i32, ptr %1329, align 4, !tbaa !5
  %9965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9966 = call i32 @s2n_print_stacktrace(ptr noundef %9965) #13
  %9967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9968 = trunc nuw i8 %9967 to i1
  br i1 %9968, label %9969, label %9973

9969:                                             ; preds = %9963
  %9970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9971 = call i32 @fileno(ptr noundef %9970) #13
  %9972 = call i32 @isatty(i32 noundef %9971) #13
  %.not2092 = icmp eq i32 %9972, 0
  br i1 %.not2092, label %9973, label %9974

9973:                                             ; preds = %9969, %9963
  br label %9974

9974:                                             ; preds = %9969, %9973
  %.str.5.sink5696 = phi ptr [ @.str.5, %9973 ], [ @.str.2, %9969 ]
  store i32 %9964, ptr %1329, align 4, !tbaa !5
  %9975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9976 = load i32, ptr @test_count, align 4, !tbaa !5
  %9977 = load i32, ptr %1275, align 4, !tbaa !5
  %9978 = call ptr @s2n_strerror(i32 noundef %9977, ptr noundef nonnull @.str.4) #13
  %9979 = load i32, ptr %1275, align 4, !tbaa !5
  %9980 = call ptr @s2n_strerror_debug(i32 noundef %9979, ptr noundef nonnull @.str.4) #13
  %9981 = load i32, ptr %1329, align 4, !tbaa !5
  %9982 = call ptr @strerror(i32 noundef %9981) #13
  %9983 = load i32, ptr %1329, align 4, !tbaa !5
  %9984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9975, ptr noundef nonnull %.str.5.sink5696, i32 noundef %9976, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 1399, ptr noundef %9978, ptr noundef %9980, ptr noundef %9982, i32 noundef %9983) #15
  call void @exit(i32 noundef 1) #16
  unreachable

9985:                                             ; preds = %9958
  %9986 = getelementptr inbounds i8, ptr %183, i64 28
  %9987 = load i32, ptr %9986, align 4, !tbaa !15
  %9988 = getelementptr inbounds i8, ptr %183, i64 24
  %9989 = load i32, ptr %9988, align 8, !tbaa !18
  %9990 = sub i32 %9987, %9989
  %9991 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %183, i32 noundef %9990) #13
  %9992 = load i32, ptr @test_count, align 4, !tbaa !5
  %9993 = add nsw i32 %9992, 1
  store i32 %9993, ptr @test_count, align 4, !tbaa !5
  %9994 = icmp eq ptr %9991, null
  br i1 %9994, label %9995, label %10017

9995:                                             ; preds = %9985
  %9996 = load i32, ptr %1329, align 4, !tbaa !5
  %9997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9998 = call i32 @s2n_print_stacktrace(ptr noundef %9997) #13
  %9999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10000 = trunc nuw i8 %9999 to i1
  br i1 %10000, label %10001, label %10005

10001:                                            ; preds = %9995
  %10002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10003 = call i32 @fileno(ptr noundef %10002) #13
  %10004 = call i32 @isatty(i32 noundef %10003) #13
  %.not2339 = icmp eq i32 %10004, 0
  br i1 %.not2339, label %10005, label %10006

10005:                                            ; preds = %10001, %9995
  br label %10006

10006:                                            ; preds = %10001, %10005
  %.str.5.sink5705 = phi ptr [ @.str.5, %10005 ], [ @.str.2, %10001 ]
  store i32 %9996, ptr %1329, align 4, !tbaa !5
  %10007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10008 = load i32, ptr @test_count, align 4, !tbaa !5
  %10009 = load i32, ptr %1275, align 4, !tbaa !5
  %10010 = call ptr @s2n_strerror(i32 noundef %10009, ptr noundef nonnull @.str.4) #13
  %10011 = load i32, ptr %1275, align 4, !tbaa !5
  %10012 = call ptr @s2n_strerror_debug(i32 noundef %10011, ptr noundef nonnull @.str.4) #13
  %10013 = load i32, ptr %1329, align 4, !tbaa !5
  %10014 = call ptr @strerror(i32 noundef %10013) #13
  %10015 = load i32, ptr %1329, align 4, !tbaa !5
  %10016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10007, ptr noundef nonnull %.str.5.sink5705, i32 noundef %10008, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1402, ptr noundef %10010, ptr noundef %10012, ptr noundef %10014, i32 noundef %10015) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10017:                                            ; preds = %9985
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %184) #13
  %10018 = add nsw i32 %9992, 2
  store i32 %10018, ptr @test_count, align 4, !tbaa !5
  %10019 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %184) #13
  %10020 = icmp eq i32 %10019, -1
  br i1 %10020, label %10021, label %10043

10021:                                            ; preds = %10017
  %10022 = load i32, ptr %1329, align 4, !tbaa !5
  %10023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10024 = call i32 @s2n_print_stacktrace(ptr noundef %10023) #13
  %10025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10026 = trunc nuw i8 %10025 to i1
  br i1 %10026, label %10027, label %10031

10027:                                            ; preds = %10021
  %10028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10029 = call i32 @fileno(ptr noundef %10028) #13
  %10030 = call i32 @isatty(i32 noundef %10029) #13
  %.not2338 = icmp eq i32 %10030, 0
  br i1 %.not2338, label %10031, label %10032

10031:                                            ; preds = %10027, %10021
  br label %10032

10032:                                            ; preds = %10027, %10031
  %.str.5.sink5714 = phi ptr [ @.str.5, %10031 ], [ @.str.2, %10027 ]
  store i32 %10022, ptr %1329, align 4, !tbaa !5
  %10033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10034 = load i32, ptr @test_count, align 4, !tbaa !5
  %10035 = load i32, ptr %1275, align 4, !tbaa !5
  %10036 = call ptr @s2n_strerror(i32 noundef %10035, ptr noundef nonnull @.str.4) #13
  %10037 = load i32, ptr %1275, align 4, !tbaa !5
  %10038 = call ptr @s2n_strerror_debug(i32 noundef %10037, ptr noundef nonnull @.str.4) #13
  %10039 = load i32, ptr %1329, align 4, !tbaa !5
  %10040 = call ptr @strerror(i32 noundef %10039) #13
  %10041 = load i32, ptr %1329, align 4, !tbaa !5
  %10042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10033, ptr noundef nonnull %.str.5.sink5714, i32 noundef %10034, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1405, ptr noundef %10036, ptr noundef %10038, ptr noundef %10040, i32 noundef %10041) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10043:                                            ; preds = %10017
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %185) #13
  store i32 -1, ptr %185, align 4, !tbaa !5
  %10044 = load i32, ptr @test_count, align 4, !tbaa !5
  %10045 = add nsw i32 %10044, 1
  store i32 %10045, ptr @test_count, align 4, !tbaa !5
  %10046 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %181, ptr noundef nonnull %9906, ptr noundef nonnull %9991, i32 noundef %9990, ptr noundef nonnull %185, ptr noundef nonnull %184) #13
  %10047 = call zeroext i1 @s2n_result_is_ok(i32 %10046)
  br i1 %10047, label %10070, label %10048

10048:                                            ; preds = %10043
  %10049 = load i32, ptr %1329, align 4, !tbaa !5
  %10050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10051 = call i32 @s2n_print_stacktrace(ptr noundef %10050) #13
  %10052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10053 = trunc nuw i8 %10052 to i1
  br i1 %10053, label %10054, label %10058

10054:                                            ; preds = %10048
  %10055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10056 = call i32 @fileno(ptr noundef %10055) #13
  %10057 = call i32 @isatty(i32 noundef %10056) #13
  %.not2093 = icmp eq i32 %10057, 0
  br i1 %.not2093, label %10058, label %10059

10058:                                            ; preds = %10054, %10048
  br label %10059

10059:                                            ; preds = %10054, %10058
  %.str.5.sink5723 = phi ptr [ @.str.5, %10058 ], [ @.str.2, %10054 ]
  store i32 %10049, ptr %1329, align 4, !tbaa !5
  %10060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10061 = load i32, ptr @test_count, align 4, !tbaa !5
  %10062 = load i32, ptr %1275, align 4, !tbaa !5
  %10063 = call ptr @s2n_strerror(i32 noundef %10062, ptr noundef nonnull @.str.4) #13
  %10064 = load i32, ptr %1275, align 4, !tbaa !5
  %10065 = call ptr @s2n_strerror_debug(i32 noundef %10064, ptr noundef nonnull @.str.4) #13
  %10066 = load i32, ptr %1329, align 4, !tbaa !5
  %10067 = call ptr @strerror(i32 noundef %10066) #13
  %10068 = load i32, ptr %1329, align 4, !tbaa !5
  %10069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10060, ptr noundef nonnull %.str.5.sink5723, i32 noundef %10061, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1407, ptr noundef %10063, ptr noundef %10065, ptr noundef %10067, i32 noundef %10068) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10070:                                            ; preds = %10043
  %10071 = load i32, ptr @test_count, align 4, !tbaa !5
  %10072 = add nsw i32 %10071, 1
  store i32 %10072, ptr @test_count, align 4, !tbaa !5
  %10073 = getelementptr inbounds i8, ptr %182, i64 9
  %10074 = load i8, ptr %10073, align 1, !tbaa !19
  %10075 = icmp eq i8 %10074, 1
  br i1 %10075, label %10098, label %10076

10076:                                            ; preds = %10070
  %10077 = load i32, ptr %1329, align 4, !tbaa !5
  %10078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10079 = call i32 @s2n_print_stacktrace(ptr noundef %10078) #13
  %10080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10081 = trunc nuw i8 %10080 to i1
  br i1 %10081, label %10082, label %10086

10082:                                            ; preds = %10076
  %10083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10084 = call i32 @fileno(ptr noundef %10083) #13
  %10085 = call i32 @isatty(i32 noundef %10084) #13
  %.not2094 = icmp eq i32 %10085, 0
  br i1 %.not2094, label %10086, label %10087

10086:                                            ; preds = %10082, %10076
  br label %10087

10087:                                            ; preds = %10082, %10086
  %.str.5.sink5732 = phi ptr [ @.str.5, %10086 ], [ @.str.2, %10082 ]
  store i32 %10077, ptr %1329, align 4, !tbaa !5
  %10088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10089 = load i32, ptr @test_count, align 4, !tbaa !5
  %10090 = load i32, ptr %1275, align 4, !tbaa !5
  %10091 = call ptr @s2n_strerror(i32 noundef %10090, ptr noundef nonnull @.str.4) #13
  %10092 = load i32, ptr %1275, align 4, !tbaa !5
  %10093 = call ptr @s2n_strerror_debug(i32 noundef %10092, ptr noundef nonnull @.str.4) #13
  %10094 = load i32, ptr %1329, align 4, !tbaa !5
  %10095 = call ptr @strerror(i32 noundef %10094) #13
  %10096 = load i32, ptr %1329, align 4, !tbaa !5
  %10097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10088, ptr noundef nonnull %.str.5.sink5732, i32 noundef %10089, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 1409, ptr noundef %10091, ptr noundef %10093, ptr noundef %10095, i32 noundef %10096) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10098:                                            ; preds = %10070
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %186) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %186, i8 0, i64 40, i1 false)
  %10099 = add nsw i32 %10071, 2
  store i32 %10099, ptr @test_count, align 4, !tbaa !5
  %10100 = call i32 @read_file(ptr noundef nonnull %186, ptr noundef nonnull @.str.95, i32 noundef 12000)
  %10101 = icmp eq i32 %10100, -1
  br i1 %10101, label %10102, label %10124

10102:                                            ; preds = %10098
  %10103 = load i32, ptr %1329, align 4, !tbaa !5
  %10104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10105 = call i32 @s2n_print_stacktrace(ptr noundef %10104) #13
  %10106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10107 = trunc nuw i8 %10106 to i1
  br i1 %10107, label %10108, label %10112

10108:                                            ; preds = %10102
  %10109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10110 = call i32 @fileno(ptr noundef %10109) #13
  %10111 = call i32 @isatty(i32 noundef %10110) #13
  %.not2337 = icmp eq i32 %10111, 0
  br i1 %.not2337, label %10112, label %10113

10112:                                            ; preds = %10108, %10102
  br label %10113

10113:                                            ; preds = %10108, %10112
  %.str.5.sink5741 = phi ptr [ @.str.5, %10112 ], [ @.str.2, %10108 ]
  store i32 %10103, ptr %1329, align 4, !tbaa !5
  %10114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10115 = load i32, ptr @test_count, align 4, !tbaa !5
  %10116 = load i32, ptr %1275, align 4, !tbaa !5
  %10117 = call ptr @s2n_strerror(i32 noundef %10116, ptr noundef nonnull @.str.4) #13
  %10118 = load i32, ptr %1275, align 4, !tbaa !5
  %10119 = call ptr @s2n_strerror_debug(i32 noundef %10118, ptr noundef nonnull @.str.4) #13
  %10120 = load i32, ptr %1329, align 4, !tbaa !5
  %10121 = call ptr @strerror(i32 noundef %10120) #13
  %10122 = load i32, ptr %1329, align 4, !tbaa !5
  %10123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10114, ptr noundef nonnull %.str.5.sink5741, i32 noundef %10115, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 1411, ptr noundef %10117, ptr noundef %10119, ptr noundef %10121, i32 noundef %10122) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10124:                                            ; preds = %10098
  %10125 = getelementptr inbounds i8, ptr %186, i64 28
  %10126 = load i32, ptr %10125, align 4, !tbaa !15
  %10127 = getelementptr inbounds i8, ptr %186, i64 24
  %10128 = load i32, ptr %10127, align 8, !tbaa !18
  %10129 = load i32, ptr @test_count, align 4, !tbaa !5
  %10130 = add nsw i32 %10129, 1
  store i32 %10130, ptr @test_count, align 4, !tbaa !5
  %.not2095 = icmp eq i32 %10126, %10128
  br i1 %.not2095, label %10131, label %10153

10131:                                            ; preds = %10124
  %10132 = load i32, ptr %1329, align 4, !tbaa !5
  %10133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10134 = call i32 @s2n_print_stacktrace(ptr noundef %10133) #13
  %10135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10136 = trunc nuw i8 %10135 to i1
  br i1 %10136, label %10137, label %10141

10137:                                            ; preds = %10131
  %10138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10139 = call i32 @fileno(ptr noundef %10138) #13
  %10140 = call i32 @isatty(i32 noundef %10139) #13
  %.not2096 = icmp eq i32 %10140, 0
  br i1 %.not2096, label %10141, label %10142

10141:                                            ; preds = %10137, %10131
  br label %10142

10142:                                            ; preds = %10137, %10141
  %.str.5.sink5750 = phi ptr [ @.str.5, %10141 ], [ @.str.2, %10137 ]
  store i32 %10132, ptr %1329, align 4, !tbaa !5
  %10143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10144 = load i32, ptr @test_count, align 4, !tbaa !5
  %10145 = load i32, ptr %1275, align 4, !tbaa !5
  %10146 = call ptr @s2n_strerror(i32 noundef %10145, ptr noundef nonnull @.str.4) #13
  %10147 = load i32, ptr %1275, align 4, !tbaa !5
  %10148 = call ptr @s2n_strerror_debug(i32 noundef %10147, ptr noundef nonnull @.str.4) #13
  %10149 = load i32, ptr %1329, align 4, !tbaa !5
  %10150 = call ptr @strerror(i32 noundef %10149) #13
  %10151 = load i32, ptr %1329, align 4, !tbaa !5
  %10152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10143, ptr noundef nonnull %.str.5.sink5750, i32 noundef %10144, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1413, ptr noundef %10146, ptr noundef %10148, ptr noundef %10150, i32 noundef %10151) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10153:                                            ; preds = %10124
  %10154 = sub i32 %10126, %10128
  %10155 = add nsw i32 %10129, 2
  store i32 %10155, ptr @test_count, align 4, !tbaa !5
  %10156 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %186, i32 noundef %10154) #13
  %10157 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %181, ptr noundef nonnull %9906, ptr noundef %10156, i32 noundef %10154) #13
  %10158 = call zeroext i1 @s2n_result_is_error(i32 %10157)
  br i1 %10158, label %10181, label %10159

10159:                                            ; preds = %10153
  %10160 = load i32, ptr %1329, align 4, !tbaa !5
  %10161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10162 = call i32 @s2n_print_stacktrace(ptr noundef %10161) #13
  %10163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10164 = trunc nuw i8 %10163 to i1
  br i1 %10164, label %10165, label %10169

10165:                                            ; preds = %10159
  %10166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10167 = call i32 @fileno(ptr noundef %10166) #13
  %10168 = call i32 @isatty(i32 noundef %10167) #13
  %.not2097 = icmp eq i32 %10168, 0
  br i1 %.not2097, label %10169, label %10170

10169:                                            ; preds = %10165, %10159
  br label %10170

10170:                                            ; preds = %10165, %10169
  %.str.5.sink5759 = phi ptr [ @.str.5, %10169 ], [ @.str.2, %10165 ]
  store i32 %10160, ptr %1329, align 4, !tbaa !5
  %10171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10172 = load i32, ptr @test_count, align 4, !tbaa !5
  %10173 = load i32, ptr %1275, align 4, !tbaa !5
  %10174 = call ptr @s2n_strerror(i32 noundef %10173, ptr noundef nonnull @.str.4) #13
  %10175 = load i32, ptr %1275, align 4, !tbaa !5
  %10176 = call ptr @s2n_strerror_debug(i32 noundef %10175, ptr noundef nonnull @.str.4) #13
  %10177 = load i32, ptr %1329, align 4, !tbaa !5
  %10178 = call ptr @strerror(i32 noundef %10177) #13
  %10179 = load i32, ptr %1329, align 4, !tbaa !5
  %10180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10171, ptr noundef nonnull %.str.5.sink5759, i32 noundef %10172, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 1416, ptr noundef %10174, ptr noundef %10176, ptr noundef %10178, i32 noundef %10179) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10181:                                            ; preds = %10153
  %10182 = load i32, ptr @test_count, align 4, !tbaa !5
  %10183 = add nsw i32 %10182, 1
  store i32 %10183, ptr @test_count, align 4, !tbaa !5
  %10184 = load i32, ptr %1275, align 4, !tbaa !5
  %10185 = icmp eq i32 %10184, 335544367
  br i1 %10185, label %10208, label %10186

10186:                                            ; preds = %10181
  %10187 = load i32, ptr %1329, align 4, !tbaa !5
  %10188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10189 = call i32 @s2n_print_stacktrace(ptr noundef %10188) #13
  %10190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10191 = trunc nuw i8 %10190 to i1
  br i1 %10191, label %10192, label %10196

10192:                                            ; preds = %10186
  %10193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10194 = call i32 @fileno(ptr noundef %10193) #13
  %10195 = call i32 @isatty(i32 noundef %10194) #13
  %.not2098 = icmp eq i32 %10195, 0
  br i1 %.not2098, label %10196, label %10197

10196:                                            ; preds = %10192, %10186
  br label %10197

10197:                                            ; preds = %10192, %10196
  %.str.5.sink5768 = phi ptr [ @.str.5, %10196 ], [ @.str.2, %10192 ]
  store i32 %10187, ptr %1329, align 4, !tbaa !5
  %10198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10199 = load i32, ptr @test_count, align 4, !tbaa !5
  %10200 = load i32, ptr %1275, align 4, !tbaa !5
  %10201 = call ptr @s2n_strerror(i32 noundef %10200, ptr noundef nonnull @.str.4) #13
  %10202 = load i32, ptr %1275, align 4, !tbaa !5
  %10203 = call ptr @s2n_strerror_debug(i32 noundef %10202, ptr noundef nonnull @.str.4) #13
  %10204 = load i32, ptr %1329, align 4, !tbaa !5
  %10205 = call ptr @strerror(i32 noundef %10204) #13
  %10206 = load i32, ptr %1329, align 4, !tbaa !5
  %10207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10198, ptr noundef nonnull %.str.5.sink5768, i32 noundef %10199, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 1416, ptr noundef %10201, ptr noundef %10203, ptr noundef %10205, i32 noundef %10206) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10208:                                            ; preds = %10181
  %10209 = add nsw i32 %10182, 2
  store i32 %10209, ptr @test_count, align 4, !tbaa !5
  %10210 = call ptr @s2n_strerror_debug(i32 noundef 335544367, ptr noundef nonnull @.str.4) #13
  %10211 = icmp eq ptr %10210, null
  br i1 %10211, label %10212, label %10234

10212:                                            ; preds = %10208
  %10213 = load i32, ptr %1329, align 4, !tbaa !5
  %10214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10215 = call i32 @s2n_print_stacktrace(ptr noundef %10214) #13
  %10216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10217 = trunc nuw i8 %10216 to i1
  br i1 %10217, label %10218, label %10222

10218:                                            ; preds = %10212
  %10219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10220 = call i32 @fileno(ptr noundef %10219) #13
  %10221 = call i32 @isatty(i32 noundef %10220) #13
  %.not2336 = icmp eq i32 %10221, 0
  br i1 %.not2336, label %10222, label %10223

10222:                                            ; preds = %10218, %10212
  br label %10223

10223:                                            ; preds = %10218, %10222
  %.str.5.sink5777 = phi ptr [ @.str.5, %10222 ], [ @.str.2, %10218 ]
  store i32 %10213, ptr %1329, align 4, !tbaa !5
  %10224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10225 = load i32, ptr @test_count, align 4, !tbaa !5
  %10226 = load i32, ptr %1275, align 4, !tbaa !5
  %10227 = call ptr @s2n_strerror(i32 noundef %10226, ptr noundef nonnull @.str.4) #13
  %10228 = load i32, ptr %1275, align 4, !tbaa !5
  %10229 = call ptr @s2n_strerror_debug(i32 noundef %10228, ptr noundef nonnull @.str.4) #13
  %10230 = load i32, ptr %1329, align 4, !tbaa !5
  %10231 = call ptr @strerror(i32 noundef %10230) #13
  %10232 = load i32, ptr %1329, align 4, !tbaa !5
  %10233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10224, ptr noundef nonnull %.str.5.sink5777, i32 noundef %10225, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1416, ptr noundef %10227, ptr noundef %10229, ptr noundef %10231, i32 noundef %10232) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10234:                                            ; preds = %10208
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %10235 = call i32 @s2n_stuffer_free(ptr noundef nonnull %186) #13
  %10236 = call i32 @s2n_connection_free(ptr noundef nonnull %9906) #13
  %10237 = call i32 @s2n_pkey_free(ptr noundef nonnull %184) #13
  %10238 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %181) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %180) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %186) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %185) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %184) #13
  %10239 = call i32 @s2n_stuffer_free(ptr noundef nonnull %183) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %183) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %182) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %181) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %180) #13
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %187) #13
  store i64 1682629916000000000, ptr %187, align 16, !tbaa !52
  %10240 = getelementptr inbounds i8, ptr %187, i64 8
  store i32 335544371, ptr %10240, align 8, !tbaa !54
  %10241 = getelementptr inbounds i8, ptr %187, i64 16
  store i64 1682716316000000000, ptr %10241, align 16, !tbaa !52
  %10242 = getelementptr inbounds i8, ptr %187, i64 24
  store i32 335544371, ptr %10242, align 8, !tbaa !54
  %10243 = getelementptr inbounds i8, ptr %187, i64 32
  store i64 1682723516000000000, ptr %10243, align 16, !tbaa !52
  %10244 = getelementptr inbounds i8, ptr %187, i64 40
  store i32 0, ptr %10244, align 8, !tbaa !54
  %10245 = getelementptr inbounds i8, ptr %187, i64 48
  store i64 1682809916000000000, ptr %10245, align 16, !tbaa !52
  %10246 = getelementptr inbounds i8, ptr %187, i64 56
  store i32 0, ptr %10246, align 8, !tbaa !54
  %10247 = getelementptr inbounds i8, ptr %187, i64 64
  store i64 2082748316000000000, ptr %10247, align 16, !tbaa !52
  %10248 = getelementptr inbounds i8, ptr %187, i64 72
  store i32 0, ptr %10248, align 8, !tbaa !54
  %10249 = getelementptr inbounds i8, ptr %187, i64 80
  store i64 2082834716000000000, ptr %10249, align 16, !tbaa !52
  %10250 = getelementptr inbounds i8, ptr %187, i64 88
  store i32 0, ptr %10250, align 8, !tbaa !54
  %10251 = getelementptr inbounds i8, ptr %187, i64 96
  store i64 2082841916000000000, ptr %10251, align 16, !tbaa !52
  %10252 = getelementptr inbounds i8, ptr %187, i64 104
  store i32 335544369, ptr %10252, align 8, !tbaa !54
  %10253 = getelementptr inbounds i8, ptr %187, i64 112
  store i64 2082928316000000000, ptr %10253, align 16, !tbaa !52
  %10254 = getelementptr inbounds i8, ptr %187, i64 120
  store i32 335544369, ptr %10254, align 8, !tbaa !54
  %10255 = getelementptr inbounds i8, ptr %192, i64 28
  %10256 = getelementptr inbounds i8, ptr %192, i64 24
  %10257 = getelementptr inbounds i8, ptr %196, i64 28
  %10258 = getelementptr inbounds i8, ptr %196, i64 24
  br label %10264

10259:                                            ; preds = %10711
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %187) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %197) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %197) #13
  %10260 = load i32, ptr @test_count, align 4, !tbaa !5
  %10261 = add nsw i32 %10260, 1
  store i32 %10261, ptr @test_count, align 4, !tbaa !5
  %10262 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %197, ptr noundef nonnull @.str.88, ptr noundef null) #13
  %10263 = icmp eq i32 %10262, 0
  br i1 %10263, label %10739, label %10717

10264:                                            ; preds = %10234, %10711
  %indvars.iv = phi i64 [ 0, %10234 ], [ %indvars.iv.next, %10711 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %188) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %188, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %188) #13
  %10265 = load i32, ptr @test_count, align 4, !tbaa !5
  %10266 = add nsw i32 %10265, 1
  store i32 %10266, ptr @test_count, align 4, !tbaa !5
  %10267 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %188, ptr noundef nonnull @.str.48, ptr noundef null) #13
  %10268 = icmp eq i32 %10267, -1
  br i1 %10268, label %10269, label %10291

10269:                                            ; preds = %10264
  %10270 = load i32, ptr %1329, align 4, !tbaa !5
  %10271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10272 = call i32 @s2n_print_stacktrace(ptr noundef %10271) #13
  %10273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10274 = trunc nuw i8 %10273 to i1
  br i1 %10274, label %10275, label %10279

10275:                                            ; preds = %10269
  %10276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10277 = call i32 @fileno(ptr noundef %10276) #13
  %10278 = call i32 @isatty(i32 noundef %10277) #13
  %.not2335 = icmp eq i32 %10278, 0
  br i1 %.not2335, label %10279, label %10280

10279:                                            ; preds = %10275, %10269
  br label %10280

10280:                                            ; preds = %10275, %10279
  %.str.5.sink5786 = phi ptr [ @.str.5, %10279 ], [ @.str.2, %10275 ]
  store i32 %10270, ptr %1329, align 4, !tbaa !5
  %10281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10282 = load i32, ptr @test_count, align 4, !tbaa !5
  %10283 = load i32, ptr %1275, align 4, !tbaa !5
  %10284 = call ptr @s2n_strerror(i32 noundef %10283, ptr noundef nonnull @.str.4) #13
  %10285 = load i32, ptr %1275, align 4, !tbaa !5
  %10286 = call ptr @s2n_strerror_debug(i32 noundef %10285, ptr noundef nonnull @.str.4) #13
  %10287 = load i32, ptr %1329, align 4, !tbaa !5
  %10288 = call ptr @strerror(i32 noundef %10287) #13
  %10289 = load i32, ptr %1329, align 4, !tbaa !5
  %10290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10281, ptr noundef nonnull %.str.5.sink5786, i32 noundef %10282, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 1500, ptr noundef %10284, ptr noundef %10286, ptr noundef %10288, i32 noundef %10289) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10291:                                            ; preds = %10264
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %189) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %189, i8 0, i64 56, i1 false)
  %10292 = load i32, ptr @test_count, align 4, !tbaa !5
  %10293 = add nsw i32 %10292, 1
  store i32 %10293, ptr @test_count, align 4, !tbaa !5
  %10294 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %189, ptr noundef nonnull %188, i8 noundef zeroext 1) #13
  %10295 = icmp eq i32 %10294, -1
  br i1 %10295, label %10296, label %10318

10296:                                            ; preds = %10291
  %10297 = load i32, ptr %1329, align 4, !tbaa !5
  %10298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10299 = call i32 @s2n_print_stacktrace(ptr noundef %10298) #13
  %10300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10301 = trunc nuw i8 %10300 to i1
  br i1 %10301, label %10302, label %10306

10302:                                            ; preds = %10296
  %10303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10304 = call i32 @fileno(ptr noundef %10303) #13
  %10305 = call i32 @isatty(i32 noundef %10304) #13
  %.not2334 = icmp eq i32 %10305, 0
  br i1 %.not2334, label %10306, label %10307

10306:                                            ; preds = %10302, %10296
  br label %10307

10307:                                            ; preds = %10302, %10306
  %.str.5.sink5795 = phi ptr [ @.str.5, %10306 ], [ @.str.2, %10302 ]
  store i32 %10297, ptr %1329, align 4, !tbaa !5
  %10308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10309 = load i32, ptr @test_count, align 4, !tbaa !5
  %10310 = load i32, ptr %1275, align 4, !tbaa !5
  %10311 = call ptr @s2n_strerror(i32 noundef %10310, ptr noundef nonnull @.str.4) #13
  %10312 = load i32, ptr %1275, align 4, !tbaa !5
  %10313 = call ptr @s2n_strerror_debug(i32 noundef %10312, ptr noundef nonnull @.str.4) #13
  %10314 = load i32, ptr %1329, align 4, !tbaa !5
  %10315 = call ptr @strerror(i32 noundef %10314) #13
  %10316 = load i32, ptr %1329, align 4, !tbaa !5
  %10317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10308, ptr noundef nonnull %.str.5.sink5795, i32 noundef %10309, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 1503, ptr noundef %10311, ptr noundef %10313, ptr noundef %10315, i32 noundef %10316) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10318:                                            ; preds = %10291
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %190) #13
  %10319 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %10319, ptr %190, align 8, !tbaa !9
  %10320 = load i32, ptr @test_count, align 4, !tbaa !5
  %10321 = add nsw i32 %10320, 1
  store i32 %10321, ptr @test_count, align 4, !tbaa !5
  %10322 = icmp eq ptr %10319, null
  br i1 %10322, label %10323, label %10345

10323:                                            ; preds = %10318
  %10324 = load i32, ptr %1329, align 4, !tbaa !5
  %10325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10326 = call i32 @s2n_print_stacktrace(ptr noundef %10325) #13
  %10327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10328 = trunc nuw i8 %10327 to i1
  br i1 %10328, label %10329, label %10333

10329:                                            ; preds = %10323
  %10330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10331 = call i32 @fileno(ptr noundef %10330) #13
  %10332 = call i32 @isatty(i32 noundef %10331) #13
  %.not2333 = icmp eq i32 %10332, 0
  br i1 %.not2333, label %10333, label %10334

10333:                                            ; preds = %10329, %10323
  br label %10334

10334:                                            ; preds = %10329, %10333
  %.str.5.sink5804 = phi ptr [ @.str.5, %10333 ], [ @.str.2, %10329 ]
  store i32 %10324, ptr %1329, align 4, !tbaa !5
  %10335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10336 = load i32, ptr @test_count, align 4, !tbaa !5
  %10337 = load i32, ptr %1275, align 4, !tbaa !5
  %10338 = call ptr @s2n_strerror(i32 noundef %10337, ptr noundef nonnull @.str.4) #13
  %10339 = load i32, ptr %1275, align 4, !tbaa !5
  %10340 = call ptr @s2n_strerror_debug(i32 noundef %10339, ptr noundef nonnull @.str.4) #13
  %10341 = load i32, ptr %1329, align 4, !tbaa !5
  %10342 = call ptr @strerror(i32 noundef %10341) #13
  %10343 = load i32, ptr %1329, align 4, !tbaa !5
  %10344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10335, ptr noundef nonnull %.str.5.sink5804, i32 noundef %10336, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1506, ptr noundef %10338, ptr noundef %10340, ptr noundef %10342, i32 noundef %10343) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10345:                                            ; preds = %10318
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %191) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %191, i8 0, i64 16, i1 false)
  %10346 = add nsw i32 %10320, 2
  store i32 %10346, ptr @test_count, align 4, !tbaa !5
  %10347 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %10319, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %191) #13
  %10348 = icmp eq i32 %10347, -1
  br i1 %10348, label %10349, label %10371

10349:                                            ; preds = %10345
  %10350 = load i32, ptr %1329, align 4, !tbaa !5
  %10351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10352 = call i32 @s2n_print_stacktrace(ptr noundef %10351) #13
  %10353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10354 = trunc nuw i8 %10353 to i1
  br i1 %10354, label %10355, label %10359

10355:                                            ; preds = %10349
  %10356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10357 = call i32 @fileno(ptr noundef %10356) #13
  %10358 = call i32 @isatty(i32 noundef %10357) #13
  %.not2332 = icmp eq i32 %10358, 0
  br i1 %.not2332, label %10359, label %10360

10359:                                            ; preds = %10355, %10349
  br label %10360

10360:                                            ; preds = %10355, %10359
  %.str.5.sink5813 = phi ptr [ @.str.5, %10359 ], [ @.str.2, %10355 ]
  store i32 %10350, ptr %1329, align 4, !tbaa !5
  %10361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10362 = load i32, ptr @test_count, align 4, !tbaa !5
  %10363 = load i32, ptr %1275, align 4, !tbaa !5
  %10364 = call ptr @s2n_strerror(i32 noundef %10363, ptr noundef nonnull @.str.4) #13
  %10365 = load i32, ptr %1275, align 4, !tbaa !5
  %10366 = call ptr @s2n_strerror_debug(i32 noundef %10365, ptr noundef nonnull @.str.4) #13
  %10367 = load i32, ptr %1329, align 4, !tbaa !5
  %10368 = call ptr @strerror(i32 noundef %10367) #13
  %10369 = load i32, ptr %1329, align 4, !tbaa !5
  %10370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10361, ptr noundef nonnull %.str.5.sink5813, i32 noundef %10362, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1509, ptr noundef %10364, ptr noundef %10366, ptr noundef %10368, i32 noundef %10369) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10371:                                            ; preds = %10345
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %192) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %192, i8 0, i64 40, i1 false)
  %10372 = load i32, ptr @test_count, align 4, !tbaa !5
  %10373 = add nsw i32 %10372, 1
  store i32 %10373, ptr @test_count, align 4, !tbaa !5
  %10374 = load ptr, ptr %190, align 8, !tbaa !9
  %10375 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %10374, ptr noundef nonnull @.str.51, ptr noundef nonnull %192) #13
  %10376 = call zeroext i1 @s2n_result_is_ok(i32 %10375)
  br i1 %10376, label %10399, label %10377

10377:                                            ; preds = %10371
  %10378 = load i32, ptr %1329, align 4, !tbaa !5
  %10379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10380 = call i32 @s2n_print_stacktrace(ptr noundef %10379) #13
  %10381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10382 = trunc nuw i8 %10381 to i1
  br i1 %10382, label %10383, label %10387

10383:                                            ; preds = %10377
  %10384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10385 = call i32 @fileno(ptr noundef %10384) #13
  %10386 = call i32 @isatty(i32 noundef %10385) #13
  %.not2318 = icmp eq i32 %10386, 0
  br i1 %.not2318, label %10387, label %10388

10387:                                            ; preds = %10383, %10377
  br label %10388

10388:                                            ; preds = %10383, %10387
  %.str.5.sink5822 = phi ptr [ @.str.5, %10387 ], [ @.str.2, %10383 ]
  store i32 %10378, ptr %1329, align 4, !tbaa !5
  %10389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10390 = load i32, ptr @test_count, align 4, !tbaa !5
  %10391 = load i32, ptr %1275, align 4, !tbaa !5
  %10392 = call ptr @s2n_strerror(i32 noundef %10391, ptr noundef nonnull @.str.4) #13
  %10393 = load i32, ptr %1275, align 4, !tbaa !5
  %10394 = call ptr @s2n_strerror_debug(i32 noundef %10393, ptr noundef nonnull @.str.4) #13
  %10395 = load i32, ptr %1329, align 4, !tbaa !5
  %10396 = call ptr @strerror(i32 noundef %10395) #13
  %10397 = load i32, ptr %1329, align 4, !tbaa !5
  %10398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10389, ptr noundef nonnull %.str.5.sink5822, i32 noundef %10390, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 1512, ptr noundef %10392, ptr noundef %10394, ptr noundef %10396, i32 noundef %10397) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10399:                                            ; preds = %10371
  %10400 = load i32, ptr %10255, align 4, !tbaa !15
  %10401 = load i32, ptr %10256, align 8, !tbaa !18
  %10402 = sub i32 %10400, %10401
  %10403 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %192, i32 noundef %10402) #13
  %10404 = load i32, ptr @test_count, align 4, !tbaa !5
  %10405 = add nsw i32 %10404, 1
  store i32 %10405, ptr @test_count, align 4, !tbaa !5
  %10406 = icmp eq ptr %10403, null
  br i1 %10406, label %10407, label %10429

10407:                                            ; preds = %10399
  %10408 = load i32, ptr %1329, align 4, !tbaa !5
  %10409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10410 = call i32 @s2n_print_stacktrace(ptr noundef %10409) #13
  %10411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10412 = trunc nuw i8 %10411 to i1
  br i1 %10412, label %10413, label %10417

10413:                                            ; preds = %10407
  %10414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10415 = call i32 @fileno(ptr noundef %10414) #13
  %10416 = call i32 @isatty(i32 noundef %10415) #13
  %.not2331 = icmp eq i32 %10416, 0
  br i1 %.not2331, label %10417, label %10418

10417:                                            ; preds = %10413, %10407
  br label %10418

10418:                                            ; preds = %10413, %10417
  %.str.5.sink5831 = phi ptr [ @.str.5, %10417 ], [ @.str.2, %10413 ]
  store i32 %10408, ptr %1329, align 4, !tbaa !5
  %10419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10420 = load i32, ptr @test_count, align 4, !tbaa !5
  %10421 = load i32, ptr %1275, align 4, !tbaa !5
  %10422 = call ptr @s2n_strerror(i32 noundef %10421, ptr noundef nonnull @.str.4) #13
  %10423 = load i32, ptr %1275, align 4, !tbaa !5
  %10424 = call ptr @s2n_strerror_debug(i32 noundef %10423, ptr noundef nonnull @.str.4) #13
  %10425 = load i32, ptr %1329, align 4, !tbaa !5
  %10426 = call ptr @strerror(i32 noundef %10425) #13
  %10427 = load i32, ptr %1329, align 4, !tbaa !5
  %10428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10419, ptr noundef nonnull %.str.5.sink5831, i32 noundef %10420, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1515, ptr noundef %10422, ptr noundef %10424, ptr noundef %10426, i32 noundef %10427) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10429:                                            ; preds = %10399
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %193) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %193, i8 0, i64 48, i1 false)
  %10430 = add nsw i32 %10404, 2
  store i32 %10430, ptr @test_count, align 4, !tbaa !5
  %10431 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %193) #13
  %10432 = icmp eq i32 %10431, -1
  br i1 %10432, label %10433, label %10455

10433:                                            ; preds = %10429
  %10434 = load i32, ptr %1329, align 4, !tbaa !5
  %10435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10436 = call i32 @s2n_print_stacktrace(ptr noundef %10435) #13
  %10437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10438 = trunc nuw i8 %10437 to i1
  br i1 %10438, label %10439, label %10443

10439:                                            ; preds = %10433
  %10440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10441 = call i32 @fileno(ptr noundef %10440) #13
  %10442 = call i32 @isatty(i32 noundef %10441) #13
  %.not2330 = icmp eq i32 %10442, 0
  br i1 %.not2330, label %10443, label %10444

10443:                                            ; preds = %10439, %10433
  br label %10444

10444:                                            ; preds = %10439, %10443
  %.str.5.sink5840 = phi ptr [ @.str.5, %10443 ], [ @.str.2, %10439 ]
  store i32 %10434, ptr %1329, align 4, !tbaa !5
  %10445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10446 = load i32, ptr @test_count, align 4, !tbaa !5
  %10447 = load i32, ptr %1275, align 4, !tbaa !5
  %10448 = call ptr @s2n_strerror(i32 noundef %10447, ptr noundef nonnull @.str.4) #13
  %10449 = load i32, ptr %1275, align 4, !tbaa !5
  %10450 = call ptr @s2n_strerror_debug(i32 noundef %10449, ptr noundef nonnull @.str.4) #13
  %10451 = load i32, ptr %1329, align 4, !tbaa !5
  %10452 = call ptr @strerror(i32 noundef %10451) #13
  %10453 = load i32, ptr %1329, align 4, !tbaa !5
  %10454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10445, ptr noundef nonnull %.str.5.sink5840, i32 noundef %10446, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1518, ptr noundef %10448, ptr noundef %10450, ptr noundef %10452, i32 noundef %10453) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10455:                                            ; preds = %10429
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %194) #13
  store i32 -1, ptr %194, align 4, !tbaa !5
  %10456 = load i32, ptr @test_count, align 4, !tbaa !5
  %10457 = add nsw i32 %10456, 1
  store i32 %10457, ptr @test_count, align 4, !tbaa !5
  %10458 = load ptr, ptr %190, align 8, !tbaa !9
  %10459 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %189, ptr noundef %10458, ptr noundef nonnull %10403, i32 noundef %10402, ptr noundef nonnull %194, ptr noundef nonnull %193) #13
  %10460 = call zeroext i1 @s2n_result_is_ok(i32 %10459)
  br i1 %10460, label %10483, label %10461

10461:                                            ; preds = %10455
  %10462 = load i32, ptr %1329, align 4, !tbaa !5
  %10463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10464 = call i32 @s2n_print_stacktrace(ptr noundef %10463) #13
  %10465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10466 = trunc nuw i8 %10465 to i1
  br i1 %10466, label %10467, label %10471

10467:                                            ; preds = %10461
  %10468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10469 = call i32 @fileno(ptr noundef %10468) #13
  %10470 = call i32 @isatty(i32 noundef %10469) #13
  %.not2319 = icmp eq i32 %10470, 0
  br i1 %.not2319, label %10471, label %10472

10471:                                            ; preds = %10467, %10461
  br label %10472

10472:                                            ; preds = %10467, %10471
  %.str.5.sink5849 = phi ptr [ @.str.5, %10471 ], [ @.str.2, %10467 ]
  store i32 %10462, ptr %1329, align 4, !tbaa !5
  %10473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10474 = load i32, ptr @test_count, align 4, !tbaa !5
  %10475 = load i32, ptr %1275, align 4, !tbaa !5
  %10476 = call ptr @s2n_strerror(i32 noundef %10475, ptr noundef nonnull @.str.4) #13
  %10477 = load i32, ptr %1275, align 4, !tbaa !5
  %10478 = call ptr @s2n_strerror_debug(i32 noundef %10477, ptr noundef nonnull @.str.4) #13
  %10479 = load i32, ptr %1329, align 4, !tbaa !5
  %10480 = call ptr @strerror(i32 noundef %10479) #13
  %10481 = load i32, ptr %1329, align 4, !tbaa !5
  %10482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10473, ptr noundef nonnull %.str.5.sink5849, i32 noundef %10474, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1520, ptr noundef %10476, ptr noundef %10478, ptr noundef %10480, i32 noundef %10481) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10483:                                            ; preds = %10455
  %10484 = load ptr, ptr %190, align 8, !tbaa !9
  %10485 = getelementptr inbounds i8, ptr %10484, i64 8
  %10486 = load ptr, ptr %10485, align 8, !tbaa !22
  %10487 = getelementptr inbounds i8, ptr %10486, i64 80
  %10488 = load ptr, ptr %10487, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %195) #13
  %10489 = getelementptr inbounds [8 x %struct.anon], ptr %187, i64 0, i64 %indvars.iv
  %10490 = load i64, ptr %10489, align 16, !tbaa !52
  store i64 %10490, ptr %195, align 8, !tbaa !55
  %10491 = load i32, ptr @test_count, align 4, !tbaa !5
  %10492 = add nsw i32 %10491, 1
  store i32 %10492, ptr @test_count, align 4, !tbaa !5
  %10493 = call i32 @s2n_config_set_wall_clock(ptr noundef %10486, ptr noundef nonnull @mock_time, ptr noundef nonnull %195) #13
  %10494 = icmp eq i32 %10493, -1
  br i1 %10494, label %10495, label %10517

10495:                                            ; preds = %10483
  %10496 = load i32, ptr %1329, align 4, !tbaa !5
  %10497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10498 = call i32 @s2n_print_stacktrace(ptr noundef %10497) #13
  %10499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10500 = trunc nuw i8 %10499 to i1
  br i1 %10500, label %10501, label %10505

10501:                                            ; preds = %10495
  %10502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10503 = call i32 @fileno(ptr noundef %10502) #13
  %10504 = call i32 @isatty(i32 noundef %10503) #13
  %.not2329 = icmp eq i32 %10504, 0
  br i1 %.not2329, label %10505, label %10506

10505:                                            ; preds = %10501, %10495
  br label %10506

10506:                                            ; preds = %10501, %10505
  %.str.5.sink5858 = phi ptr [ @.str.5, %10505 ], [ @.str.2, %10501 ]
  store i32 %10496, ptr %1329, align 4, !tbaa !5
  %10507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10508 = load i32, ptr @test_count, align 4, !tbaa !5
  %10509 = load i32, ptr %1275, align 4, !tbaa !5
  %10510 = call ptr @s2n_strerror(i32 noundef %10509, ptr noundef nonnull @.str.4) #13
  %10511 = load i32, ptr %1275, align 4, !tbaa !5
  %10512 = call ptr @s2n_strerror_debug(i32 noundef %10511, ptr noundef nonnull @.str.4) #13
  %10513 = load i32, ptr %1329, align 4, !tbaa !5
  %10514 = call ptr @strerror(i32 noundef %10513) #13
  %10515 = load i32, ptr %1329, align 4, !tbaa !5
  %10516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10507, ptr noundef nonnull %.str.5.sink5858, i32 noundef %10508, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 1528, ptr noundef %10510, ptr noundef %10512, ptr noundef %10514, i32 noundef %10515) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10517:                                            ; preds = %10483
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %196) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %196, i8 0, i64 40, i1 false)
  %10518 = load i32, ptr @test_count, align 4, !tbaa !5
  %10519 = add nsw i32 %10518, 1
  store i32 %10519, ptr @test_count, align 4, !tbaa !5
  %10520 = call i32 @read_file(ptr noundef nonnull %196, ptr noundef nonnull @.str.84, i32 noundef 12000)
  %10521 = icmp eq i32 %10520, -1
  br i1 %10521, label %10522, label %10544

10522:                                            ; preds = %10517
  %10523 = load i32, ptr %1329, align 4, !tbaa !5
  %10524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10525 = call i32 @s2n_print_stacktrace(ptr noundef %10524) #13
  %10526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10527 = trunc nuw i8 %10526 to i1
  br i1 %10527, label %10528, label %10532

10528:                                            ; preds = %10522
  %10529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10530 = call i32 @fileno(ptr noundef %10529) #13
  %10531 = call i32 @isatty(i32 noundef %10530) #13
  %.not2328 = icmp eq i32 %10531, 0
  br i1 %.not2328, label %10532, label %10533

10532:                                            ; preds = %10528, %10522
  br label %10533

10533:                                            ; preds = %10528, %10532
  %.str.5.sink5867 = phi ptr [ @.str.5, %10532 ], [ @.str.2, %10528 ]
  store i32 %10523, ptr %1329, align 4, !tbaa !5
  %10534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10535 = load i32, ptr @test_count, align 4, !tbaa !5
  %10536 = load i32, ptr %1275, align 4, !tbaa !5
  %10537 = call ptr @s2n_strerror(i32 noundef %10536, ptr noundef nonnull @.str.4) #13
  %10538 = load i32, ptr %1275, align 4, !tbaa !5
  %10539 = call ptr @s2n_strerror_debug(i32 noundef %10538, ptr noundef nonnull @.str.4) #13
  %10540 = load i32, ptr %1329, align 4, !tbaa !5
  %10541 = call ptr @strerror(i32 noundef %10540) #13
  %10542 = load i32, ptr %1329, align 4, !tbaa !5
  %10543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10534, ptr noundef nonnull %.str.5.sink5867, i32 noundef %10535, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 1531, ptr noundef %10537, ptr noundef %10539, ptr noundef %10541, i32 noundef %10542) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10544:                                            ; preds = %10517
  %10545 = load i32, ptr %10257, align 4, !tbaa !15
  %10546 = load i32, ptr %10258, align 8, !tbaa !18
  %10547 = load i32, ptr @test_count, align 4, !tbaa !5
  %10548 = add nsw i32 %10547, 1
  store i32 %10548, ptr @test_count, align 4, !tbaa !5
  %.not2320 = icmp eq i32 %10545, %10546
  br i1 %.not2320, label %10549, label %10571

10549:                                            ; preds = %10544
  %10550 = load i32, ptr %1329, align 4, !tbaa !5
  %10551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10552 = call i32 @s2n_print_stacktrace(ptr noundef %10551) #13
  %10553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10554 = trunc nuw i8 %10553 to i1
  br i1 %10554, label %10555, label %10559

10555:                                            ; preds = %10549
  %10556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10557 = call i32 @fileno(ptr noundef %10556) #13
  %10558 = call i32 @isatty(i32 noundef %10557) #13
  %.not2321 = icmp eq i32 %10558, 0
  br i1 %.not2321, label %10559, label %10560

10559:                                            ; preds = %10555, %10549
  br label %10560

10560:                                            ; preds = %10555, %10559
  %.str.5.sink5876 = phi ptr [ @.str.5, %10559 ], [ @.str.2, %10555 ]
  store i32 %10550, ptr %1329, align 4, !tbaa !5
  %10561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10562 = load i32, ptr @test_count, align 4, !tbaa !5
  %10563 = load i32, ptr %1275, align 4, !tbaa !5
  %10564 = call ptr @s2n_strerror(i32 noundef %10563, ptr noundef nonnull @.str.4) #13
  %10565 = load i32, ptr %1275, align 4, !tbaa !5
  %10566 = call ptr @s2n_strerror_debug(i32 noundef %10565, ptr noundef nonnull @.str.4) #13
  %10567 = load i32, ptr %1329, align 4, !tbaa !5
  %10568 = call ptr @strerror(i32 noundef %10567) #13
  %10569 = load i32, ptr %1329, align 4, !tbaa !5
  %10570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10561, ptr noundef nonnull %.str.5.sink5876, i32 noundef %10562, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 1533, ptr noundef %10564, ptr noundef %10566, ptr noundef %10568, i32 noundef %10569) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10571:                                            ; preds = %10544
  %10572 = sub i32 %10545, %10546
  %10573 = getelementptr inbounds i8, ptr %10489, i64 8
  %10574 = load i32, ptr %10573, align 8, !tbaa !54
  %.not2322 = icmp eq i32 %10574, 0
  %10575 = add nsw i32 %10547, 2
  store i32 %10575, ptr @test_count, align 4, !tbaa !5
  %10576 = load ptr, ptr %190, align 8, !tbaa !9
  %10577 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %196, i32 noundef %10572) #13
  %10578 = call i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef nonnull %189, ptr noundef %10576, ptr noundef %10577, i32 noundef %10572) #13
  br i1 %.not2322, label %10657, label %10579

10579:                                            ; preds = %10571
  %10580 = call zeroext i1 @s2n_result_is_error(i32 %10578)
  br i1 %10580, label %10603, label %10581

10581:                                            ; preds = %10579
  %10582 = load i32, ptr %1329, align 4, !tbaa !5
  %10583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10584 = call i32 @s2n_print_stacktrace(ptr noundef %10583) #13
  %10585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10586 = trunc nuw i8 %10585 to i1
  br i1 %10586, label %10587, label %10591

10587:                                            ; preds = %10581
  %10588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10589 = call i32 @fileno(ptr noundef %10588) #13
  %10590 = call i32 @isatty(i32 noundef %10589) #13
  %.not2324 = icmp eq i32 %10590, 0
  br i1 %.not2324, label %10591, label %10592

10591:                                            ; preds = %10587, %10581
  br label %10592

10592:                                            ; preds = %10587, %10591
  %.str.5.sink5885 = phi ptr [ @.str.5, %10591 ], [ @.str.2, %10587 ]
  store i32 %10582, ptr %1329, align 4, !tbaa !5
  %10593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10594 = load i32, ptr @test_count, align 4, !tbaa !5
  %10595 = load i32, ptr %1275, align 4, !tbaa !5
  %10596 = call ptr @s2n_strerror(i32 noundef %10595, ptr noundef nonnull @.str.4) #13
  %10597 = load i32, ptr %1275, align 4, !tbaa !5
  %10598 = call ptr @s2n_strerror_debug(i32 noundef %10597, ptr noundef nonnull @.str.4) #13
  %10599 = load i32, ptr %1329, align 4, !tbaa !5
  %10600 = call ptr @strerror(i32 noundef %10599) #13
  %10601 = load i32, ptr %1329, align 4, !tbaa !5
  %10602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10593, ptr noundef nonnull %.str.5.sink5885, i32 noundef %10594, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 1538, ptr noundef %10596, ptr noundef %10598, ptr noundef %10600, i32 noundef %10601) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10603:                                            ; preds = %10579
  %10604 = load i32, ptr @test_count, align 4, !tbaa !5
  %10605 = add nsw i32 %10604, 1
  store i32 %10605, ptr @test_count, align 4, !tbaa !5
  %10606 = load i32, ptr %1275, align 4, !tbaa !5
  %10607 = icmp eq i32 %10606, %10574
  br i1 %10607, label %10630, label %10608

10608:                                            ; preds = %10603
  %10609 = load i32, ptr %1329, align 4, !tbaa !5
  %10610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10611 = call i32 @s2n_print_stacktrace(ptr noundef %10610) #13
  %10612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10613 = trunc nuw i8 %10612 to i1
  br i1 %10613, label %10614, label %10618

10614:                                            ; preds = %10608
  %10615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10616 = call i32 @fileno(ptr noundef %10615) #13
  %10617 = call i32 @isatty(i32 noundef %10616) #13
  %.not2325 = icmp eq i32 %10617, 0
  br i1 %.not2325, label %10618, label %10619

10618:                                            ; preds = %10614, %10608
  br label %10619

10619:                                            ; preds = %10614, %10618
  %.str.5.sink5894 = phi ptr [ @.str.5, %10618 ], [ @.str.2, %10614 ]
  store i32 %10609, ptr %1329, align 4, !tbaa !5
  %10620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10621 = load i32, ptr @test_count, align 4, !tbaa !5
  %10622 = load i32, ptr %1275, align 4, !tbaa !5
  %10623 = call ptr @s2n_strerror(i32 noundef %10622, ptr noundef nonnull @.str.4) #13
  %10624 = load i32, ptr %1275, align 4, !tbaa !5
  %10625 = call ptr @s2n_strerror_debug(i32 noundef %10624, ptr noundef nonnull @.str.4) #13
  %10626 = load i32, ptr %1329, align 4, !tbaa !5
  %10627 = call ptr @strerror(i32 noundef %10626) #13
  %10628 = load i32, ptr %1329, align 4, !tbaa !5
  %10629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10620, ptr noundef nonnull %.str.5.sink5894, i32 noundef %10621, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 1538, ptr noundef %10623, ptr noundef %10625, ptr noundef %10627, i32 noundef %10628) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10630:                                            ; preds = %10603
  %10631 = add nsw i32 %10604, 2
  store i32 %10631, ptr @test_count, align 4, !tbaa !5
  %10632 = call ptr @s2n_strerror_debug(i32 noundef %10574, ptr noundef nonnull @.str.4) #13
  %10633 = icmp eq ptr %10632, null
  br i1 %10633, label %10634, label %10656

10634:                                            ; preds = %10630
  %10635 = load i32, ptr %1329, align 4, !tbaa !5
  %10636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10637 = call i32 @s2n_print_stacktrace(ptr noundef %10636) #13
  %10638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10639 = trunc nuw i8 %10638 to i1
  br i1 %10639, label %10640, label %10644

10640:                                            ; preds = %10634
  %10641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10642 = call i32 @fileno(ptr noundef %10641) #13
  %10643 = call i32 @isatty(i32 noundef %10642) #13
  %.not2327 = icmp eq i32 %10643, 0
  br i1 %.not2327, label %10644, label %10645

10644:                                            ; preds = %10640, %10634
  br label %10645

10645:                                            ; preds = %10640, %10644
  %.str.5.sink5903 = phi ptr [ @.str.5, %10644 ], [ @.str.2, %10640 ]
  store i32 %10635, ptr %1329, align 4, !tbaa !5
  %10646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10647 = load i32, ptr @test_count, align 4, !tbaa !5
  %10648 = load i32, ptr %1275, align 4, !tbaa !5
  %10649 = call ptr @s2n_strerror(i32 noundef %10648, ptr noundef nonnull @.str.4) #13
  %10650 = load i32, ptr %1275, align 4, !tbaa !5
  %10651 = call ptr @s2n_strerror_debug(i32 noundef %10650, ptr noundef nonnull @.str.4) #13
  %10652 = load i32, ptr %1329, align 4, !tbaa !5
  %10653 = call ptr @strerror(i32 noundef %10652) #13
  %10654 = load i32, ptr %1329, align 4, !tbaa !5
  %10655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10646, ptr noundef nonnull %.str.5.sink5903, i32 noundef %10647, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1538, ptr noundef %10649, ptr noundef %10651, ptr noundef %10653, i32 noundef %10654) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10656:                                            ; preds = %10630
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  br label %10681

10657:                                            ; preds = %10571
  %10658 = call zeroext i1 @s2n_result_is_ok(i32 %10578)
  br i1 %10658, label %10681, label %10659

10659:                                            ; preds = %10657
  %10660 = load i32, ptr %1329, align 4, !tbaa !5
  %10661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10662 = call i32 @s2n_print_stacktrace(ptr noundef %10661) #13
  %10663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10664 = trunc nuw i8 %10663 to i1
  br i1 %10664, label %10665, label %10669

10665:                                            ; preds = %10659
  %10666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10667 = call i32 @fileno(ptr noundef %10666) #13
  %10668 = call i32 @isatty(i32 noundef %10667) #13
  %.not2323 = icmp eq i32 %10668, 0
  br i1 %.not2323, label %10669, label %10670

10669:                                            ; preds = %10665, %10659
  br label %10670

10670:                                            ; preds = %10665, %10669
  %.str.5.sink5912 = phi ptr [ @.str.5, %10669 ], [ @.str.2, %10665 ]
  store i32 %10660, ptr %1329, align 4, !tbaa !5
  %10671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10672 = load i32, ptr @test_count, align 4, !tbaa !5
  %10673 = load i32, ptr %1275, align 4, !tbaa !5
  %10674 = call ptr @s2n_strerror(i32 noundef %10673, ptr noundef nonnull @.str.4) #13
  %10675 = load i32, ptr %1275, align 4, !tbaa !5
  %10676 = call ptr @s2n_strerror_debug(i32 noundef %10675, ptr noundef nonnull @.str.4) #13
  %10677 = load i32, ptr %1329, align 4, !tbaa !5
  %10678 = call ptr @strerror(i32 noundef %10677) #13
  %10679 = load i32, ptr %1329, align 4, !tbaa !5
  %10680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10671, ptr noundef nonnull %.str.5.sink5912, i32 noundef %10672, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 1541, ptr noundef %10674, ptr noundef %10676, ptr noundef %10678, i32 noundef %10679) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10681:                                            ; preds = %10656, %10657
  %10682 = load i32, ptr @test_count, align 4, !tbaa !5
  %10683 = add nsw i32 %10682, 1
  store i32 %10683, ptr @test_count, align 4, !tbaa !5
  %10684 = load ptr, ptr %190, align 8, !tbaa !9
  %10685 = getelementptr inbounds i8, ptr %10684, i64 8
  %10686 = load ptr, ptr %10685, align 8, !tbaa !22
  %10687 = call i32 @s2n_config_set_wall_clock(ptr noundef %10686, ptr noundef %10488, ptr noundef null) #13
  %10688 = icmp eq i32 %10687, -1
  br i1 %10688, label %10689, label %10711

10689:                                            ; preds = %10681
  %10690 = load i32, ptr %1329, align 4, !tbaa !5
  %10691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10692 = call i32 @s2n_print_stacktrace(ptr noundef %10691) #13
  %10693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10694 = trunc nuw i8 %10693 to i1
  br i1 %10694, label %10695, label %10699

10695:                                            ; preds = %10689
  %10696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10697 = call i32 @fileno(ptr noundef %10696) #13
  %10698 = call i32 @isatty(i32 noundef %10697) #13
  %.not2326 = icmp eq i32 %10698, 0
  br i1 %.not2326, label %10699, label %10700

10699:                                            ; preds = %10695, %10689
  br label %10700

10700:                                            ; preds = %10695, %10699
  %.str.5.sink5921 = phi ptr [ @.str.5, %10699 ], [ @.str.2, %10695 ]
  store i32 %10690, ptr %1329, align 4, !tbaa !5
  %10701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10702 = load i32, ptr @test_count, align 4, !tbaa !5
  %10703 = load i32, ptr %1275, align 4, !tbaa !5
  %10704 = call ptr @s2n_strerror(i32 noundef %10703, ptr noundef nonnull @.str.4) #13
  %10705 = load i32, ptr %1275, align 4, !tbaa !5
  %10706 = call ptr @s2n_strerror_debug(i32 noundef %10705, ptr noundef nonnull @.str.4) #13
  %10707 = load i32, ptr %1329, align 4, !tbaa !5
  %10708 = call ptr @strerror(i32 noundef %10707) #13
  %10709 = load i32, ptr %1329, align 4, !tbaa !5
  %10710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10701, ptr noundef nonnull %.str.5.sink5921, i32 noundef %10702, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 1544, ptr noundef %10704, ptr noundef %10706, ptr noundef %10708, i32 noundef %10709) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10711:                                            ; preds = %10681
  %10712 = call i32 @s2n_stuffer_free(ptr noundef nonnull %196) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %196) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %195) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %194) #13
  %10713 = call i32 @s2n_pkey_free(ptr noundef nonnull %193) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %193) #13
  %10714 = call i32 @s2n_stuffer_free(ptr noundef nonnull %192) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %192) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %191) #13
  %10715 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %190) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %190) #13
  %10716 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %189) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %189) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %188) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %188) #13
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 8
  br i1 %exitcond.not, label %10259, label %10264, !llvm.loop !56

10717:                                            ; preds = %10259
  %10718 = load i32, ptr %1329, align 4, !tbaa !5
  %10719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10720 = call i32 @s2n_print_stacktrace(ptr noundef %10719) #13
  %10721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10722 = trunc nuw i8 %10721 to i1
  br i1 %10722, label %10723, label %10727

10723:                                            ; preds = %10717
  %10724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10725 = call i32 @fileno(ptr noundef %10724) #13
  %10726 = call i32 @isatty(i32 noundef %10725) #13
  %.not2099 = icmp eq i32 %10726, 0
  br i1 %.not2099, label %10727, label %10728

10727:                                            ; preds = %10723, %10717
  br label %10728

10728:                                            ; preds = %10723, %10727
  %.str.5.sink5930 = phi ptr [ @.str.5, %10727 ], [ @.str.2, %10723 ]
  store i32 %10718, ptr %1329, align 4, !tbaa !5
  %10729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10730 = load i32, ptr @test_count, align 4, !tbaa !5
  %10731 = load i32, ptr %1275, align 4, !tbaa !5
  %10732 = call ptr @s2n_strerror(i32 noundef %10731, ptr noundef nonnull @.str.4) #13
  %10733 = load i32, ptr %1275, align 4, !tbaa !5
  %10734 = call ptr @s2n_strerror_debug(i32 noundef %10733, ptr noundef nonnull @.str.4) #13
  %10735 = load i32, ptr %1329, align 4, !tbaa !5
  %10736 = call ptr @strerror(i32 noundef %10735) #13
  %10737 = load i32, ptr %1329, align 4, !tbaa !5
  %10738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10729, ptr noundef nonnull %.str.5.sink5930, i32 noundef %10730, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 1552, ptr noundef %10732, ptr noundef %10734, ptr noundef %10736, i32 noundef %10737) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10739:                                            ; preds = %10259
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %198) #13
  %10740 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %198, ptr noundef nonnull %197, i8 noundef zeroext 1) #13
  %10741 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %10742 = load i32, ptr @test_count, align 4, !tbaa !5
  %10743 = add nsw i32 %10742, 1
  store i32 %10743, ptr @test_count, align 4, !tbaa !5
  %10744 = icmp eq ptr %10741, null
  br i1 %10744, label %10745, label %10767

10745:                                            ; preds = %10739
  %10746 = load i32, ptr %1329, align 4, !tbaa !5
  %10747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10748 = call i32 @s2n_print_stacktrace(ptr noundef %10747) #13
  %10749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10750 = trunc nuw i8 %10749 to i1
  br i1 %10750, label %10751, label %10755

10751:                                            ; preds = %10745
  %10752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10753 = call i32 @fileno(ptr noundef %10752) #13
  %10754 = call i32 @isatty(i32 noundef %10753) #13
  %.not2317 = icmp eq i32 %10754, 0
  br i1 %.not2317, label %10755, label %10756

10755:                                            ; preds = %10751, %10745
  br label %10756

10756:                                            ; preds = %10751, %10755
  %.str.5.sink5939 = phi ptr [ @.str.5, %10755 ], [ @.str.2, %10751 ]
  store i32 %10746, ptr %1329, align 4, !tbaa !5
  %10757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10758 = load i32, ptr @test_count, align 4, !tbaa !5
  %10759 = load i32, ptr %1275, align 4, !tbaa !5
  %10760 = call ptr @s2n_strerror(i32 noundef %10759, ptr noundef nonnull @.str.4) #13
  %10761 = load i32, ptr %1275, align 4, !tbaa !5
  %10762 = call ptr @s2n_strerror_debug(i32 noundef %10761, ptr noundef nonnull @.str.4) #13
  %10763 = load i32, ptr %1329, align 4, !tbaa !5
  %10764 = call ptr @strerror(i32 noundef %10763) #13
  %10765 = load i32, ptr %1329, align 4, !tbaa !5
  %10766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10757, ptr noundef nonnull %.str.5.sink5939, i32 noundef %10758, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1558, ptr noundef %10760, ptr noundef %10762, ptr noundef %10764, i32 noundef %10765) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10767:                                            ; preds = %10739
  %10768 = add nsw i32 %10742, 2
  store i32 %10768, ptr @test_count, align 4, !tbaa !5
  %10769 = call i32 @s2n_set_server_name(ptr noundef nonnull %10741, ptr noundef nonnull @.str.66) #13
  %10770 = icmp eq i32 %10769, -1
  br i1 %10770, label %10771, label %10793

10771:                                            ; preds = %10767
  %10772 = load i32, ptr %1329, align 4, !tbaa !5
  %10773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10774 = call i32 @s2n_print_stacktrace(ptr noundef %10773) #13
  %10775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10776 = trunc nuw i8 %10775 to i1
  br i1 %10776, label %10777, label %10781

10777:                                            ; preds = %10771
  %10778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10779 = call i32 @fileno(ptr noundef %10778) #13
  %10780 = call i32 @isatty(i32 noundef %10779) #13
  %.not2316 = icmp eq i32 %10780, 0
  br i1 %.not2316, label %10781, label %10782

10781:                                            ; preds = %10777, %10771
  br label %10782

10782:                                            ; preds = %10777, %10781
  %.str.5.sink5948 = phi ptr [ @.str.5, %10781 ], [ @.str.2, %10777 ]
  store i32 %10772, ptr %1329, align 4, !tbaa !5
  %10783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10784 = load i32, ptr @test_count, align 4, !tbaa !5
  %10785 = load i32, ptr %1275, align 4, !tbaa !5
  %10786 = call ptr @s2n_strerror(i32 noundef %10785, ptr noundef nonnull @.str.4) #13
  %10787 = load i32, ptr %1275, align 4, !tbaa !5
  %10788 = call ptr @s2n_strerror_debug(i32 noundef %10787, ptr noundef nonnull @.str.4) #13
  %10789 = load i32, ptr %1329, align 4, !tbaa !5
  %10790 = call ptr @strerror(i32 noundef %10789) #13
  %10791 = load i32, ptr %1329, align 4, !tbaa !5
  %10792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10783, ptr noundef nonnull %.str.5.sink5948, i32 noundef %10784, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 1560, ptr noundef %10786, ptr noundef %10788, ptr noundef %10790, i32 noundef %10791) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10793:                                            ; preds = %10767
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %199) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %199, i8 0, i64 40, i1 false)
  %10794 = load i32, ptr @test_count, align 4, !tbaa !5
  %10795 = add nsw i32 %10794, 1
  store i32 %10795, ptr @test_count, align 4, !tbaa !5
  %10796 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %10741, ptr noundef nonnull @.str.88, ptr noundef nonnull %199) #13
  %10797 = call zeroext i1 @s2n_result_is_ok(i32 %10796)
  br i1 %10797, label %10820, label %10798

10798:                                            ; preds = %10793
  %10799 = load i32, ptr %1329, align 4, !tbaa !5
  %10800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10801 = call i32 @s2n_print_stacktrace(ptr noundef %10800) #13
  %10802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10803 = trunc nuw i8 %10802 to i1
  br i1 %10803, label %10804, label %10808

10804:                                            ; preds = %10798
  %10805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10806 = call i32 @fileno(ptr noundef %10805) #13
  %10807 = call i32 @isatty(i32 noundef %10806) #13
  %.not2100 = icmp eq i32 %10807, 0
  br i1 %.not2100, label %10808, label %10809

10808:                                            ; preds = %10804, %10798
  br label %10809

10809:                                            ; preds = %10804, %10808
  %.str.5.sink5957 = phi ptr [ @.str.5, %10808 ], [ @.str.2, %10804 ]
  store i32 %10799, ptr %1329, align 4, !tbaa !5
  %10810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10811 = load i32, ptr @test_count, align 4, !tbaa !5
  %10812 = load i32, ptr %1275, align 4, !tbaa !5
  %10813 = call ptr @s2n_strerror(i32 noundef %10812, ptr noundef nonnull @.str.4) #13
  %10814 = load i32, ptr %1275, align 4, !tbaa !5
  %10815 = call ptr @s2n_strerror_debug(i32 noundef %10814, ptr noundef nonnull @.str.4) #13
  %10816 = load i32, ptr %1329, align 4, !tbaa !5
  %10817 = call ptr @strerror(i32 noundef %10816) #13
  %10818 = load i32, ptr %1329, align 4, !tbaa !5
  %10819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10810, ptr noundef nonnull %.str.5.sink5957, i32 noundef %10811, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 1564, ptr noundef %10813, ptr noundef %10815, ptr noundef %10817, i32 noundef %10818) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10820:                                            ; preds = %10793
  %10821 = getelementptr inbounds i8, ptr %199, i64 28
  %10822 = load i32, ptr %10821, align 4, !tbaa !15
  %10823 = getelementptr inbounds i8, ptr %199, i64 24
  %10824 = load i32, ptr %10823, align 8, !tbaa !18
  %10825 = sub i32 %10822, %10824
  %10826 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %199, i32 noundef %10825) #13
  %10827 = load i32, ptr @test_count, align 4, !tbaa !5
  %10828 = add nsw i32 %10827, 1
  store i32 %10828, ptr @test_count, align 4, !tbaa !5
  %10829 = icmp eq ptr %10826, null
  br i1 %10829, label %10830, label %10852

10830:                                            ; preds = %10820
  %10831 = load i32, ptr %1329, align 4, !tbaa !5
  %10832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10833 = call i32 @s2n_print_stacktrace(ptr noundef %10832) #13
  %10834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10835 = trunc nuw i8 %10834 to i1
  br i1 %10835, label %10836, label %10840

10836:                                            ; preds = %10830
  %10837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10838 = call i32 @fileno(ptr noundef %10837) #13
  %10839 = call i32 @isatty(i32 noundef %10838) #13
  %.not2315 = icmp eq i32 %10839, 0
  br i1 %.not2315, label %10840, label %10841

10840:                                            ; preds = %10836, %10830
  br label %10841

10841:                                            ; preds = %10836, %10840
  %.str.5.sink5966 = phi ptr [ @.str.5, %10840 ], [ @.str.2, %10836 ]
  store i32 %10831, ptr %1329, align 4, !tbaa !5
  %10842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10843 = load i32, ptr @test_count, align 4, !tbaa !5
  %10844 = load i32, ptr %1275, align 4, !tbaa !5
  %10845 = call ptr @s2n_strerror(i32 noundef %10844, ptr noundef nonnull @.str.4) #13
  %10846 = load i32, ptr %1275, align 4, !tbaa !5
  %10847 = call ptr @s2n_strerror_debug(i32 noundef %10846, ptr noundef nonnull @.str.4) #13
  %10848 = load i32, ptr %1329, align 4, !tbaa !5
  %10849 = call ptr @strerror(i32 noundef %10848) #13
  %10850 = load i32, ptr %1329, align 4, !tbaa !5
  %10851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10842, ptr noundef nonnull %.str.5.sink5966, i32 noundef %10843, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1567, ptr noundef %10845, ptr noundef %10847, ptr noundef %10849, i32 noundef %10850) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10852:                                            ; preds = %10820
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %200) #13
  %10853 = add nsw i32 %10827, 2
  store i32 %10853, ptr @test_count, align 4, !tbaa !5
  %10854 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %200) #13
  %10855 = icmp eq i32 %10854, -1
  br i1 %10855, label %10856, label %10878

10856:                                            ; preds = %10852
  %10857 = load i32, ptr %1329, align 4, !tbaa !5
  %10858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10859 = call i32 @s2n_print_stacktrace(ptr noundef %10858) #13
  %10860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10861 = trunc nuw i8 %10860 to i1
  br i1 %10861, label %10862, label %10866

10862:                                            ; preds = %10856
  %10863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10864 = call i32 @fileno(ptr noundef %10863) #13
  %10865 = call i32 @isatty(i32 noundef %10864) #13
  %.not2314 = icmp eq i32 %10865, 0
  br i1 %.not2314, label %10866, label %10867

10866:                                            ; preds = %10862, %10856
  br label %10867

10867:                                            ; preds = %10862, %10866
  %.str.5.sink5975 = phi ptr [ @.str.5, %10866 ], [ @.str.2, %10862 ]
  store i32 %10857, ptr %1329, align 4, !tbaa !5
  %10868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10869 = load i32, ptr @test_count, align 4, !tbaa !5
  %10870 = load i32, ptr %1275, align 4, !tbaa !5
  %10871 = call ptr @s2n_strerror(i32 noundef %10870, ptr noundef nonnull @.str.4) #13
  %10872 = load i32, ptr %1275, align 4, !tbaa !5
  %10873 = call ptr @s2n_strerror_debug(i32 noundef %10872, ptr noundef nonnull @.str.4) #13
  %10874 = load i32, ptr %1329, align 4, !tbaa !5
  %10875 = call ptr @strerror(i32 noundef %10874) #13
  %10876 = load i32, ptr %1329, align 4, !tbaa !5
  %10877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10868, ptr noundef nonnull %.str.5.sink5975, i32 noundef %10869, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1570, ptr noundef %10871, ptr noundef %10873, ptr noundef %10875, i32 noundef %10876) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10878:                                            ; preds = %10852
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %201) #13
  store i32 -1, ptr %201, align 4, !tbaa !5
  %10879 = load i32, ptr @test_count, align 4, !tbaa !5
  %10880 = add nsw i32 %10879, 1
  store i32 %10880, ptr @test_count, align 4, !tbaa !5
  %10881 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %198, ptr noundef nonnull %10741, ptr noundef nonnull %10826, i32 noundef %10825, ptr noundef nonnull %201, ptr noundef nonnull %200) #13
  %10882 = call zeroext i1 @s2n_result_is_ok(i32 %10881)
  br i1 %10882, label %10905, label %10883

10883:                                            ; preds = %10878
  %10884 = load i32, ptr %1329, align 4, !tbaa !5
  %10885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10886 = call i32 @s2n_print_stacktrace(ptr noundef %10885) #13
  %10887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10888 = trunc nuw i8 %10887 to i1
  br i1 %10888, label %10889, label %10893

10889:                                            ; preds = %10883
  %10890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10891 = call i32 @fileno(ptr noundef %10890) #13
  %10892 = call i32 @isatty(i32 noundef %10891) #13
  %.not2101 = icmp eq i32 %10892, 0
  br i1 %.not2101, label %10893, label %10894

10893:                                            ; preds = %10889, %10883
  br label %10894

10894:                                            ; preds = %10889, %10893
  %.str.5.sink5984 = phi ptr [ @.str.5, %10893 ], [ @.str.2, %10889 ]
  store i32 %10884, ptr %1329, align 4, !tbaa !5
  %10895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10896 = load i32, ptr @test_count, align 4, !tbaa !5
  %10897 = load i32, ptr %1275, align 4, !tbaa !5
  %10898 = call ptr @s2n_strerror(i32 noundef %10897, ptr noundef nonnull @.str.4) #13
  %10899 = load i32, ptr %1275, align 4, !tbaa !5
  %10900 = call ptr @s2n_strerror_debug(i32 noundef %10899, ptr noundef nonnull @.str.4) #13
  %10901 = load i32, ptr %1329, align 4, !tbaa !5
  %10902 = call ptr @strerror(i32 noundef %10901) #13
  %10903 = load i32, ptr %1329, align 4, !tbaa !5
  %10904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10895, ptr noundef nonnull %.str.5.sink5984, i32 noundef %10896, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1572, ptr noundef %10898, ptr noundef %10900, ptr noundef %10902, i32 noundef %10903) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10905:                                            ; preds = %10878
  %10906 = load i32, ptr @test_count, align 4, !tbaa !5
  %10907 = add nsw i32 %10906, 1
  store i32 %10907, ptr @test_count, align 4, !tbaa !5
  %10908 = load i32, ptr %201, align 4, !tbaa !5
  %10909 = icmp eq i32 %10908, 0
  br i1 %10909, label %10932, label %10910

10910:                                            ; preds = %10905
  %10911 = load i32, ptr %1329, align 4, !tbaa !5
  %10912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10913 = call i32 @s2n_print_stacktrace(ptr noundef %10912) #13
  %10914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10915 = trunc nuw i8 %10914 to i1
  br i1 %10915, label %10916, label %10920

10916:                                            ; preds = %10910
  %10917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10918 = call i32 @fileno(ptr noundef %10917) #13
  %10919 = call i32 @isatty(i32 noundef %10918) #13
  %.not2102 = icmp eq i32 %10919, 0
  br i1 %.not2102, label %10920, label %10921

10920:                                            ; preds = %10916, %10910
  br label %10921

10921:                                            ; preds = %10916, %10920
  %.str.5.sink5993 = phi ptr [ @.str.5, %10920 ], [ @.str.2, %10916 ]
  store i32 %10911, ptr %1329, align 4, !tbaa !5
  %10922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10923 = load i32, ptr @test_count, align 4, !tbaa !5
  %10924 = load i32, ptr %1275, align 4, !tbaa !5
  %10925 = call ptr @s2n_strerror(i32 noundef %10924, ptr noundef nonnull @.str.4) #13
  %10926 = load i32, ptr %1275, align 4, !tbaa !5
  %10927 = call ptr @s2n_strerror_debug(i32 noundef %10926, ptr noundef nonnull @.str.4) #13
  %10928 = load i32, ptr %1329, align 4, !tbaa !5
  %10929 = call ptr @strerror(i32 noundef %10928) #13
  %10930 = load i32, ptr %1329, align 4, !tbaa !5
  %10931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10922, ptr noundef nonnull %.str.5.sink5993, i32 noundef %10923, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 1573, ptr noundef %10925, ptr noundef %10927, ptr noundef %10929, i32 noundef %10930) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10932:                                            ; preds = %10905
  %10933 = call i32 @s2n_connection_free(ptr noundef nonnull %10741) #13
  %10934 = call i32 @s2n_pkey_free(ptr noundef nonnull %200) #13
  %10935 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %198) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %197) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %201) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %200) #13
  %10936 = call i32 @s2n_stuffer_free(ptr noundef nonnull %199) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %199) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %198) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %197) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %202) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %202) #13
  %10937 = load i32, ptr @test_count, align 4, !tbaa !5
  %10938 = add nsw i32 %10937, 1
  store i32 %10938, ptr @test_count, align 4, !tbaa !5
  %10939 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %202, ptr noundef nonnull @.str.88, ptr noundef null) #13
  %10940 = icmp eq i32 %10939, 0
  br i1 %10940, label %10963, label %10941

10941:                                            ; preds = %10932
  %10942 = load i32, ptr %1329, align 4, !tbaa !5
  %10943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10944 = call i32 @s2n_print_stacktrace(ptr noundef %10943) #13
  %10945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10946 = trunc nuw i8 %10945 to i1
  br i1 %10946, label %10947, label %10951

10947:                                            ; preds = %10941
  %10948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10949 = call i32 @fileno(ptr noundef %10948) #13
  %10950 = call i32 @isatty(i32 noundef %10949) #13
  %.not2103 = icmp eq i32 %10950, 0
  br i1 %.not2103, label %10951, label %10952

10951:                                            ; preds = %10947, %10941
  br label %10952

10952:                                            ; preds = %10947, %10951
  %.str.5.sink6002 = phi ptr [ @.str.5, %10951 ], [ @.str.2, %10947 ]
  store i32 %10942, ptr %1329, align 4, !tbaa !5
  %10953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10954 = load i32, ptr @test_count, align 4, !tbaa !5
  %10955 = load i32, ptr %1275, align 4, !tbaa !5
  %10956 = call ptr @s2n_strerror(i32 noundef %10955, ptr noundef nonnull @.str.4) #13
  %10957 = load i32, ptr %1275, align 4, !tbaa !5
  %10958 = call ptr @s2n_strerror_debug(i32 noundef %10957, ptr noundef nonnull @.str.4) #13
  %10959 = load i32, ptr %1329, align 4, !tbaa !5
  %10960 = call ptr @strerror(i32 noundef %10959) #13
  %10961 = load i32, ptr %1329, align 4, !tbaa !5
  %10962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10953, ptr noundef nonnull %.str.5.sink6002, i32 noundef %10954, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 1585, ptr noundef %10956, ptr noundef %10958, ptr noundef %10960, i32 noundef %10961) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10963:                                            ; preds = %10932
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %203) #13
  %10964 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %203, ptr noundef nonnull %202, i8 noundef zeroext 1) #13
  %10965 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %10966 = load i32, ptr @test_count, align 4, !tbaa !5
  %10967 = add nsw i32 %10966, 1
  store i32 %10967, ptr @test_count, align 4, !tbaa !5
  %10968 = icmp eq ptr %10965, null
  br i1 %10968, label %10969, label %10991

10969:                                            ; preds = %10963
  %10970 = load i32, ptr %1329, align 4, !tbaa !5
  %10971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10972 = call i32 @s2n_print_stacktrace(ptr noundef %10971) #13
  %10973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10974 = trunc nuw i8 %10973 to i1
  br i1 %10974, label %10975, label %10979

10975:                                            ; preds = %10969
  %10976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10977 = call i32 @fileno(ptr noundef %10976) #13
  %10978 = call i32 @isatty(i32 noundef %10977) #13
  %.not2313 = icmp eq i32 %10978, 0
  br i1 %.not2313, label %10979, label %10980

10979:                                            ; preds = %10975, %10969
  br label %10980

10980:                                            ; preds = %10975, %10979
  %.str.5.sink6011 = phi ptr [ @.str.5, %10979 ], [ @.str.2, %10975 ]
  store i32 %10970, ptr %1329, align 4, !tbaa !5
  %10981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10982 = load i32, ptr @test_count, align 4, !tbaa !5
  %10983 = load i32, ptr %1275, align 4, !tbaa !5
  %10984 = call ptr @s2n_strerror(i32 noundef %10983, ptr noundef nonnull @.str.4) #13
  %10985 = load i32, ptr %1275, align 4, !tbaa !5
  %10986 = call ptr @s2n_strerror_debug(i32 noundef %10985, ptr noundef nonnull @.str.4) #13
  %10987 = load i32, ptr %1329, align 4, !tbaa !5
  %10988 = call ptr @strerror(i32 noundef %10987) #13
  %10989 = load i32, ptr %1329, align 4, !tbaa !5
  %10990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10981, ptr noundef nonnull %.str.5.sink6011, i32 noundef %10982, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1591, ptr noundef %10984, ptr noundef %10986, ptr noundef %10988, i32 noundef %10989) #15
  call void @exit(i32 noundef 1) #16
  unreachable

10991:                                            ; preds = %10963
  %10992 = add nsw i32 %10966, 2
  store i32 %10992, ptr @test_count, align 4, !tbaa !5
  %10993 = call i32 @s2n_set_server_name(ptr noundef nonnull %10965, ptr noundef nonnull @.str.102) #13
  %10994 = icmp eq i32 %10993, -1
  br i1 %10994, label %10995, label %11017

10995:                                            ; preds = %10991
  %10996 = load i32, ptr %1329, align 4, !tbaa !5
  %10997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10998 = call i32 @s2n_print_stacktrace(ptr noundef %10997) #13
  %10999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11000 = trunc nuw i8 %10999 to i1
  br i1 %11000, label %11001, label %11005

11001:                                            ; preds = %10995
  %11002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11003 = call i32 @fileno(ptr noundef %11002) #13
  %11004 = call i32 @isatty(i32 noundef %11003) #13
  %.not2312 = icmp eq i32 %11004, 0
  br i1 %.not2312, label %11005, label %11006

11005:                                            ; preds = %11001, %10995
  br label %11006

11006:                                            ; preds = %11001, %11005
  %.str.5.sink6020 = phi ptr [ @.str.5, %11005 ], [ @.str.2, %11001 ]
  store i32 %10996, ptr %1329, align 4, !tbaa !5
  %11007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11008 = load i32, ptr @test_count, align 4, !tbaa !5
  %11009 = load i32, ptr %1275, align 4, !tbaa !5
  %11010 = call ptr @s2n_strerror(i32 noundef %11009, ptr noundef nonnull @.str.4) #13
  %11011 = load i32, ptr %1275, align 4, !tbaa !5
  %11012 = call ptr @s2n_strerror_debug(i32 noundef %11011, ptr noundef nonnull @.str.4) #13
  %11013 = load i32, ptr %1329, align 4, !tbaa !5
  %11014 = call ptr @strerror(i32 noundef %11013) #13
  %11015 = load i32, ptr %1329, align 4, !tbaa !5
  %11016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11007, ptr noundef nonnull %.str.5.sink6020, i32 noundef %11008, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 1593, ptr noundef %11010, ptr noundef %11012, ptr noundef %11014, i32 noundef %11015) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11017:                                            ; preds = %10991
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %204) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %204, i8 0, i64 40, i1 false)
  %11018 = load i32, ptr @test_count, align 4, !tbaa !5
  %11019 = add nsw i32 %11018, 1
  store i32 %11019, ptr @test_count, align 4, !tbaa !5
  %11020 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %10965, ptr noundef nonnull @.str.88, ptr noundef nonnull %204) #13
  %11021 = call zeroext i1 @s2n_result_is_ok(i32 %11020)
  br i1 %11021, label %11044, label %11022

11022:                                            ; preds = %11017
  %11023 = load i32, ptr %1329, align 4, !tbaa !5
  %11024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11025 = call i32 @s2n_print_stacktrace(ptr noundef %11024) #13
  %11026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11027 = trunc nuw i8 %11026 to i1
  br i1 %11027, label %11028, label %11032

11028:                                            ; preds = %11022
  %11029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11030 = call i32 @fileno(ptr noundef %11029) #13
  %11031 = call i32 @isatty(i32 noundef %11030) #13
  %.not2104 = icmp eq i32 %11031, 0
  br i1 %.not2104, label %11032, label %11033

11032:                                            ; preds = %11028, %11022
  br label %11033

11033:                                            ; preds = %11028, %11032
  %.str.5.sink6029 = phi ptr [ @.str.5, %11032 ], [ @.str.2, %11028 ]
  store i32 %11023, ptr %1329, align 4, !tbaa !5
  %11034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11035 = load i32, ptr @test_count, align 4, !tbaa !5
  %11036 = load i32, ptr %1275, align 4, !tbaa !5
  %11037 = call ptr @s2n_strerror(i32 noundef %11036, ptr noundef nonnull @.str.4) #13
  %11038 = load i32, ptr %1275, align 4, !tbaa !5
  %11039 = call ptr @s2n_strerror_debug(i32 noundef %11038, ptr noundef nonnull @.str.4) #13
  %11040 = load i32, ptr %1329, align 4, !tbaa !5
  %11041 = call ptr @strerror(i32 noundef %11040) #13
  %11042 = load i32, ptr %1329, align 4, !tbaa !5
  %11043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11034, ptr noundef nonnull %.str.5.sink6029, i32 noundef %11035, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 1597, ptr noundef %11037, ptr noundef %11039, ptr noundef %11041, i32 noundef %11042) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11044:                                            ; preds = %11017
  %11045 = getelementptr inbounds i8, ptr %204, i64 28
  %11046 = load i32, ptr %11045, align 4, !tbaa !15
  %11047 = getelementptr inbounds i8, ptr %204, i64 24
  %11048 = load i32, ptr %11047, align 8, !tbaa !18
  %11049 = sub i32 %11046, %11048
  %11050 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %204, i32 noundef %11049) #13
  %11051 = load i32, ptr @test_count, align 4, !tbaa !5
  %11052 = add nsw i32 %11051, 1
  store i32 %11052, ptr @test_count, align 4, !tbaa !5
  %11053 = icmp eq ptr %11050, null
  br i1 %11053, label %11054, label %11076

11054:                                            ; preds = %11044
  %11055 = load i32, ptr %1329, align 4, !tbaa !5
  %11056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11057 = call i32 @s2n_print_stacktrace(ptr noundef %11056) #13
  %11058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11059 = trunc nuw i8 %11058 to i1
  br i1 %11059, label %11060, label %11064

11060:                                            ; preds = %11054
  %11061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11062 = call i32 @fileno(ptr noundef %11061) #13
  %11063 = call i32 @isatty(i32 noundef %11062) #13
  %.not2311 = icmp eq i32 %11063, 0
  br i1 %.not2311, label %11064, label %11065

11064:                                            ; preds = %11060, %11054
  br label %11065

11065:                                            ; preds = %11060, %11064
  %.str.5.sink6038 = phi ptr [ @.str.5, %11064 ], [ @.str.2, %11060 ]
  store i32 %11055, ptr %1329, align 4, !tbaa !5
  %11066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11067 = load i32, ptr @test_count, align 4, !tbaa !5
  %11068 = load i32, ptr %1275, align 4, !tbaa !5
  %11069 = call ptr @s2n_strerror(i32 noundef %11068, ptr noundef nonnull @.str.4) #13
  %11070 = load i32, ptr %1275, align 4, !tbaa !5
  %11071 = call ptr @s2n_strerror_debug(i32 noundef %11070, ptr noundef nonnull @.str.4) #13
  %11072 = load i32, ptr %1329, align 4, !tbaa !5
  %11073 = call ptr @strerror(i32 noundef %11072) #13
  %11074 = load i32, ptr %1329, align 4, !tbaa !5
  %11075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11066, ptr noundef nonnull %.str.5.sink6038, i32 noundef %11067, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1600, ptr noundef %11069, ptr noundef %11071, ptr noundef %11073, i32 noundef %11074) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11076:                                            ; preds = %11044
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %205) #13
  %11077 = add nsw i32 %11051, 2
  store i32 %11077, ptr @test_count, align 4, !tbaa !5
  %11078 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %205) #13
  %11079 = icmp eq i32 %11078, -1
  br i1 %11079, label %11080, label %11102

11080:                                            ; preds = %11076
  %11081 = load i32, ptr %1329, align 4, !tbaa !5
  %11082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11083 = call i32 @s2n_print_stacktrace(ptr noundef %11082) #13
  %11084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11085 = trunc nuw i8 %11084 to i1
  br i1 %11085, label %11086, label %11090

11086:                                            ; preds = %11080
  %11087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11088 = call i32 @fileno(ptr noundef %11087) #13
  %11089 = call i32 @isatty(i32 noundef %11088) #13
  %.not2310 = icmp eq i32 %11089, 0
  br i1 %.not2310, label %11090, label %11091

11090:                                            ; preds = %11086, %11080
  br label %11091

11091:                                            ; preds = %11086, %11090
  %.str.5.sink6047 = phi ptr [ @.str.5, %11090 ], [ @.str.2, %11086 ]
  store i32 %11081, ptr %1329, align 4, !tbaa !5
  %11092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11093 = load i32, ptr @test_count, align 4, !tbaa !5
  %11094 = load i32, ptr %1275, align 4, !tbaa !5
  %11095 = call ptr @s2n_strerror(i32 noundef %11094, ptr noundef nonnull @.str.4) #13
  %11096 = load i32, ptr %1275, align 4, !tbaa !5
  %11097 = call ptr @s2n_strerror_debug(i32 noundef %11096, ptr noundef nonnull @.str.4) #13
  %11098 = load i32, ptr %1329, align 4, !tbaa !5
  %11099 = call ptr @strerror(i32 noundef %11098) #13
  %11100 = load i32, ptr %1329, align 4, !tbaa !5
  %11101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11092, ptr noundef nonnull %.str.5.sink6047, i32 noundef %11093, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1603, ptr noundef %11095, ptr noundef %11097, ptr noundef %11099, i32 noundef %11100) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11102:                                            ; preds = %11076
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %206) #13
  store i32 -1, ptr %206, align 4, !tbaa !5
  %11103 = load i32, ptr @test_count, align 4, !tbaa !5
  %11104 = add nsw i32 %11103, 1
  store i32 %11104, ptr @test_count, align 4, !tbaa !5
  %11105 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %203, ptr noundef nonnull %10965, ptr noundef nonnull %11050, i32 noundef %11049, ptr noundef nonnull %206, ptr noundef nonnull %205) #13
  %11106 = call zeroext i1 @s2n_result_is_ok(i32 %11105)
  br i1 %11106, label %11129, label %11107

11107:                                            ; preds = %11102
  %11108 = load i32, ptr %1329, align 4, !tbaa !5
  %11109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11110 = call i32 @s2n_print_stacktrace(ptr noundef %11109) #13
  %11111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11112 = trunc nuw i8 %11111 to i1
  br i1 %11112, label %11113, label %11117

11113:                                            ; preds = %11107
  %11114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11115 = call i32 @fileno(ptr noundef %11114) #13
  %11116 = call i32 @isatty(i32 noundef %11115) #13
  %.not2105 = icmp eq i32 %11116, 0
  br i1 %.not2105, label %11117, label %11118

11117:                                            ; preds = %11113, %11107
  br label %11118

11118:                                            ; preds = %11113, %11117
  %.str.5.sink6056 = phi ptr [ @.str.5, %11117 ], [ @.str.2, %11113 ]
  store i32 %11108, ptr %1329, align 4, !tbaa !5
  %11119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11120 = load i32, ptr @test_count, align 4, !tbaa !5
  %11121 = load i32, ptr %1275, align 4, !tbaa !5
  %11122 = call ptr @s2n_strerror(i32 noundef %11121, ptr noundef nonnull @.str.4) #13
  %11123 = load i32, ptr %1275, align 4, !tbaa !5
  %11124 = call ptr @s2n_strerror_debug(i32 noundef %11123, ptr noundef nonnull @.str.4) #13
  %11125 = load i32, ptr %1329, align 4, !tbaa !5
  %11126 = call ptr @strerror(i32 noundef %11125) #13
  %11127 = load i32, ptr %1329, align 4, !tbaa !5
  %11128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11119, ptr noundef nonnull %.str.5.sink6056, i32 noundef %11120, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1605, ptr noundef %11122, ptr noundef %11124, ptr noundef %11126, i32 noundef %11127) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11129:                                            ; preds = %11102
  %11130 = load i32, ptr @test_count, align 4, !tbaa !5
  %11131 = add nsw i32 %11130, 1
  store i32 %11131, ptr @test_count, align 4, !tbaa !5
  %11132 = load i32, ptr %206, align 4, !tbaa !5
  %11133 = icmp eq i32 %11132, 0
  br i1 %11133, label %11156, label %11134

11134:                                            ; preds = %11129
  %11135 = load i32, ptr %1329, align 4, !tbaa !5
  %11136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11137 = call i32 @s2n_print_stacktrace(ptr noundef %11136) #13
  %11138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11139 = trunc nuw i8 %11138 to i1
  br i1 %11139, label %11140, label %11144

11140:                                            ; preds = %11134
  %11141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11142 = call i32 @fileno(ptr noundef %11141) #13
  %11143 = call i32 @isatty(i32 noundef %11142) #13
  %.not2106 = icmp eq i32 %11143, 0
  br i1 %.not2106, label %11144, label %11145

11144:                                            ; preds = %11140, %11134
  br label %11145

11145:                                            ; preds = %11140, %11144
  %.str.5.sink6065 = phi ptr [ @.str.5, %11144 ], [ @.str.2, %11140 ]
  store i32 %11135, ptr %1329, align 4, !tbaa !5
  %11146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11147 = load i32, ptr @test_count, align 4, !tbaa !5
  %11148 = load i32, ptr %1275, align 4, !tbaa !5
  %11149 = call ptr @s2n_strerror(i32 noundef %11148, ptr noundef nonnull @.str.4) #13
  %11150 = load i32, ptr %1275, align 4, !tbaa !5
  %11151 = call ptr @s2n_strerror_debug(i32 noundef %11150, ptr noundef nonnull @.str.4) #13
  %11152 = load i32, ptr %1329, align 4, !tbaa !5
  %11153 = call ptr @strerror(i32 noundef %11152) #13
  %11154 = load i32, ptr %1329, align 4, !tbaa !5
  %11155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11146, ptr noundef nonnull %.str.5.sink6065, i32 noundef %11147, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 1606, ptr noundef %11149, ptr noundef %11151, ptr noundef %11153, i32 noundef %11154) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11156:                                            ; preds = %11129
  %11157 = call i32 @s2n_connection_free(ptr noundef nonnull %10965) #13
  %11158 = call i32 @s2n_pkey_free(ptr noundef nonnull %205) #13
  %11159 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %203) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %202) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %206) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %205) #13
  %11160 = call i32 @s2n_stuffer_free(ptr noundef nonnull %204) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %204) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %203) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %202) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %207) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %207) #13
  %11161 = load i32, ptr @test_count, align 4, !tbaa !5
  %11162 = add nsw i32 %11161, 1
  store i32 %11162, ptr @test_count, align 4, !tbaa !5
  %11163 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %207, ptr noundef nonnull @.str.88, ptr noundef null) #13
  %11164 = icmp eq i32 %11163, 0
  br i1 %11164, label %11187, label %11165

11165:                                            ; preds = %11156
  %11166 = load i32, ptr %1329, align 4, !tbaa !5
  %11167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11168 = call i32 @s2n_print_stacktrace(ptr noundef %11167) #13
  %11169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11170 = trunc nuw i8 %11169 to i1
  br i1 %11170, label %11171, label %11175

11171:                                            ; preds = %11165
  %11172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11173 = call i32 @fileno(ptr noundef %11172) #13
  %11174 = call i32 @isatty(i32 noundef %11173) #13
  %.not2107 = icmp eq i32 %11174, 0
  br i1 %.not2107, label %11175, label %11176

11175:                                            ; preds = %11171, %11165
  br label %11176

11176:                                            ; preds = %11171, %11175
  %.str.5.sink6074 = phi ptr [ @.str.5, %11175 ], [ @.str.2, %11171 ]
  store i32 %11166, ptr %1329, align 4, !tbaa !5
  %11177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11178 = load i32, ptr @test_count, align 4, !tbaa !5
  %11179 = load i32, ptr %1275, align 4, !tbaa !5
  %11180 = call ptr @s2n_strerror(i32 noundef %11179, ptr noundef nonnull @.str.4) #13
  %11181 = load i32, ptr %1275, align 4, !tbaa !5
  %11182 = call ptr @s2n_strerror_debug(i32 noundef %11181, ptr noundef nonnull @.str.4) #13
  %11183 = load i32, ptr %1329, align 4, !tbaa !5
  %11184 = call ptr @strerror(i32 noundef %11183) #13
  %11185 = load i32, ptr %1329, align 4, !tbaa !5
  %11186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11177, ptr noundef nonnull %.str.5.sink6074, i32 noundef %11178, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 1618, ptr noundef %11180, ptr noundef %11182, ptr noundef %11184, i32 noundef %11185) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11187:                                            ; preds = %11156
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %208) #13
  %11188 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %208, ptr noundef nonnull %207, i8 noundef zeroext 1) #13
  %11189 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %11190 = load i32, ptr @test_count, align 4, !tbaa !5
  %11191 = add nsw i32 %11190, 1
  store i32 %11191, ptr @test_count, align 4, !tbaa !5
  %11192 = icmp eq ptr %11189, null
  br i1 %11192, label %11193, label %11215

11193:                                            ; preds = %11187
  %11194 = load i32, ptr %1329, align 4, !tbaa !5
  %11195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11196 = call i32 @s2n_print_stacktrace(ptr noundef %11195) #13
  %11197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11198 = trunc nuw i8 %11197 to i1
  br i1 %11198, label %11199, label %11203

11199:                                            ; preds = %11193
  %11200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11201 = call i32 @fileno(ptr noundef %11200) #13
  %11202 = call i32 @isatty(i32 noundef %11201) #13
  %.not2309 = icmp eq i32 %11202, 0
  br i1 %.not2309, label %11203, label %11204

11203:                                            ; preds = %11199, %11193
  br label %11204

11204:                                            ; preds = %11199, %11203
  %.str.5.sink6083 = phi ptr [ @.str.5, %11203 ], [ @.str.2, %11199 ]
  store i32 %11194, ptr %1329, align 4, !tbaa !5
  %11205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11206 = load i32, ptr @test_count, align 4, !tbaa !5
  %11207 = load i32, ptr %1275, align 4, !tbaa !5
  %11208 = call ptr @s2n_strerror(i32 noundef %11207, ptr noundef nonnull @.str.4) #13
  %11209 = load i32, ptr %1275, align 4, !tbaa !5
  %11210 = call ptr @s2n_strerror_debug(i32 noundef %11209, ptr noundef nonnull @.str.4) #13
  %11211 = load i32, ptr %1329, align 4, !tbaa !5
  %11212 = call ptr @strerror(i32 noundef %11211) #13
  %11213 = load i32, ptr %1329, align 4, !tbaa !5
  %11214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11205, ptr noundef nonnull %.str.5.sink6083, i32 noundef %11206, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1624, ptr noundef %11208, ptr noundef %11210, ptr noundef %11212, i32 noundef %11213) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11215:                                            ; preds = %11187
  %11216 = add nsw i32 %11190, 2
  store i32 %11216, ptr @test_count, align 4, !tbaa !5
  %11217 = call i32 @s2n_set_server_name(ptr noundef nonnull %11189, ptr noundef nonnull @.str.57) #13
  %11218 = icmp eq i32 %11217, -1
  br i1 %11218, label %11219, label %11241

11219:                                            ; preds = %11215
  %11220 = load i32, ptr %1329, align 4, !tbaa !5
  %11221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11222 = call i32 @s2n_print_stacktrace(ptr noundef %11221) #13
  %11223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11224 = trunc nuw i8 %11223 to i1
  br i1 %11224, label %11225, label %11229

11225:                                            ; preds = %11219
  %11226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11227 = call i32 @fileno(ptr noundef %11226) #13
  %11228 = call i32 @isatty(i32 noundef %11227) #13
  %.not2308 = icmp eq i32 %11228, 0
  br i1 %.not2308, label %11229, label %11230

11229:                                            ; preds = %11225, %11219
  br label %11230

11230:                                            ; preds = %11225, %11229
  %.str.5.sink6092 = phi ptr [ @.str.5, %11229 ], [ @.str.2, %11225 ]
  store i32 %11220, ptr %1329, align 4, !tbaa !5
  %11231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11232 = load i32, ptr @test_count, align 4, !tbaa !5
  %11233 = load i32, ptr %1275, align 4, !tbaa !5
  %11234 = call ptr @s2n_strerror(i32 noundef %11233, ptr noundef nonnull @.str.4) #13
  %11235 = load i32, ptr %1275, align 4, !tbaa !5
  %11236 = call ptr @s2n_strerror_debug(i32 noundef %11235, ptr noundef nonnull @.str.4) #13
  %11237 = load i32, ptr %1329, align 4, !tbaa !5
  %11238 = call ptr @strerror(i32 noundef %11237) #13
  %11239 = load i32, ptr %1329, align 4, !tbaa !5
  %11240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11231, ptr noundef nonnull %.str.5.sink6092, i32 noundef %11232, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 1626, ptr noundef %11234, ptr noundef %11236, ptr noundef %11238, i32 noundef %11239) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11241:                                            ; preds = %11215
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %209) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %209, i8 0, i64 40, i1 false)
  %11242 = load i32, ptr @test_count, align 4, !tbaa !5
  %11243 = add nsw i32 %11242, 1
  store i32 %11243, ptr @test_count, align 4, !tbaa !5
  %11244 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %11189, ptr noundef nonnull @.str.88, ptr noundef nonnull %209) #13
  %11245 = call zeroext i1 @s2n_result_is_ok(i32 %11244)
  br i1 %11245, label %11268, label %11246

11246:                                            ; preds = %11241
  %11247 = load i32, ptr %1329, align 4, !tbaa !5
  %11248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11249 = call i32 @s2n_print_stacktrace(ptr noundef %11248) #13
  %11250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11251 = trunc nuw i8 %11250 to i1
  br i1 %11251, label %11252, label %11256

11252:                                            ; preds = %11246
  %11253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11254 = call i32 @fileno(ptr noundef %11253) #13
  %11255 = call i32 @isatty(i32 noundef %11254) #13
  %.not2108 = icmp eq i32 %11255, 0
  br i1 %.not2108, label %11256, label %11257

11256:                                            ; preds = %11252, %11246
  br label %11257

11257:                                            ; preds = %11252, %11256
  %.str.5.sink6101 = phi ptr [ @.str.5, %11256 ], [ @.str.2, %11252 ]
  store i32 %11247, ptr %1329, align 4, !tbaa !5
  %11258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11259 = load i32, ptr @test_count, align 4, !tbaa !5
  %11260 = load i32, ptr %1275, align 4, !tbaa !5
  %11261 = call ptr @s2n_strerror(i32 noundef %11260, ptr noundef nonnull @.str.4) #13
  %11262 = load i32, ptr %1275, align 4, !tbaa !5
  %11263 = call ptr @s2n_strerror_debug(i32 noundef %11262, ptr noundef nonnull @.str.4) #13
  %11264 = load i32, ptr %1329, align 4, !tbaa !5
  %11265 = call ptr @strerror(i32 noundef %11264) #13
  %11266 = load i32, ptr %1329, align 4, !tbaa !5
  %11267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11258, ptr noundef nonnull %.str.5.sink6101, i32 noundef %11259, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 1630, ptr noundef %11261, ptr noundef %11263, ptr noundef %11265, i32 noundef %11266) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11268:                                            ; preds = %11241
  %11269 = getelementptr inbounds i8, ptr %209, i64 28
  %11270 = load i32, ptr %11269, align 4, !tbaa !15
  %11271 = getelementptr inbounds i8, ptr %209, i64 24
  %11272 = load i32, ptr %11271, align 8, !tbaa !18
  %11273 = sub i32 %11270, %11272
  %11274 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %209, i32 noundef %11273) #13
  %11275 = load i32, ptr @test_count, align 4, !tbaa !5
  %11276 = add nsw i32 %11275, 1
  store i32 %11276, ptr @test_count, align 4, !tbaa !5
  %11277 = icmp eq ptr %11274, null
  br i1 %11277, label %11278, label %11300

11278:                                            ; preds = %11268
  %11279 = load i32, ptr %1329, align 4, !tbaa !5
  %11280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11281 = call i32 @s2n_print_stacktrace(ptr noundef %11280) #13
  %11282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11283 = trunc nuw i8 %11282 to i1
  br i1 %11283, label %11284, label %11288

11284:                                            ; preds = %11278
  %11285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11286 = call i32 @fileno(ptr noundef %11285) #13
  %11287 = call i32 @isatty(i32 noundef %11286) #13
  %.not2307 = icmp eq i32 %11287, 0
  br i1 %.not2307, label %11288, label %11289

11288:                                            ; preds = %11284, %11278
  br label %11289

11289:                                            ; preds = %11284, %11288
  %.str.5.sink6110 = phi ptr [ @.str.5, %11288 ], [ @.str.2, %11284 ]
  store i32 %11279, ptr %1329, align 4, !tbaa !5
  %11290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11291 = load i32, ptr @test_count, align 4, !tbaa !5
  %11292 = load i32, ptr %1275, align 4, !tbaa !5
  %11293 = call ptr @s2n_strerror(i32 noundef %11292, ptr noundef nonnull @.str.4) #13
  %11294 = load i32, ptr %1275, align 4, !tbaa !5
  %11295 = call ptr @s2n_strerror_debug(i32 noundef %11294, ptr noundef nonnull @.str.4) #13
  %11296 = load i32, ptr %1329, align 4, !tbaa !5
  %11297 = call ptr @strerror(i32 noundef %11296) #13
  %11298 = load i32, ptr %1329, align 4, !tbaa !5
  %11299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11290, ptr noundef nonnull %.str.5.sink6110, i32 noundef %11291, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1633, ptr noundef %11293, ptr noundef %11295, ptr noundef %11297, i32 noundef %11298) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11300:                                            ; preds = %11268
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %210) #13
  %11301 = add nsw i32 %11275, 2
  store i32 %11301, ptr @test_count, align 4, !tbaa !5
  %11302 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %210) #13
  %11303 = icmp eq i32 %11302, -1
  br i1 %11303, label %11304, label %11326

11304:                                            ; preds = %11300
  %11305 = load i32, ptr %1329, align 4, !tbaa !5
  %11306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11307 = call i32 @s2n_print_stacktrace(ptr noundef %11306) #13
  %11308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11309 = trunc nuw i8 %11308 to i1
  br i1 %11309, label %11310, label %11314

11310:                                            ; preds = %11304
  %11311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11312 = call i32 @fileno(ptr noundef %11311) #13
  %11313 = call i32 @isatty(i32 noundef %11312) #13
  %.not2306 = icmp eq i32 %11313, 0
  br i1 %.not2306, label %11314, label %11315

11314:                                            ; preds = %11310, %11304
  br label %11315

11315:                                            ; preds = %11310, %11314
  %.str.5.sink6119 = phi ptr [ @.str.5, %11314 ], [ @.str.2, %11310 ]
  store i32 %11305, ptr %1329, align 4, !tbaa !5
  %11316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11317 = load i32, ptr @test_count, align 4, !tbaa !5
  %11318 = load i32, ptr %1275, align 4, !tbaa !5
  %11319 = call ptr @s2n_strerror(i32 noundef %11318, ptr noundef nonnull @.str.4) #13
  %11320 = load i32, ptr %1275, align 4, !tbaa !5
  %11321 = call ptr @s2n_strerror_debug(i32 noundef %11320, ptr noundef nonnull @.str.4) #13
  %11322 = load i32, ptr %1329, align 4, !tbaa !5
  %11323 = call ptr @strerror(i32 noundef %11322) #13
  %11324 = load i32, ptr %1329, align 4, !tbaa !5
  %11325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11316, ptr noundef nonnull %.str.5.sink6119, i32 noundef %11317, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1636, ptr noundef %11319, ptr noundef %11321, ptr noundef %11323, i32 noundef %11324) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11326:                                            ; preds = %11300
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %211) #13
  store i32 -1, ptr %211, align 4, !tbaa !5
  %11327 = load i32, ptr @test_count, align 4, !tbaa !5
  %11328 = add nsw i32 %11327, 1
  store i32 %11328, ptr @test_count, align 4, !tbaa !5
  %11329 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %208, ptr noundef nonnull %11189, ptr noundef nonnull %11274, i32 noundef %11273, ptr noundef nonnull %211, ptr noundef nonnull %210) #13
  %11330 = call zeroext i1 @s2n_result_is_error(i32 %11329)
  br i1 %11330, label %11353, label %11331

11331:                                            ; preds = %11326
  %11332 = load i32, ptr %1329, align 4, !tbaa !5
  %11333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11334 = call i32 @s2n_print_stacktrace(ptr noundef %11333) #13
  %11335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11336 = trunc nuw i8 %11335 to i1
  br i1 %11336, label %11337, label %11341

11337:                                            ; preds = %11331
  %11338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11339 = call i32 @fileno(ptr noundef %11338) #13
  %11340 = call i32 @isatty(i32 noundef %11339) #13
  %.not2109 = icmp eq i32 %11340, 0
  br i1 %.not2109, label %11341, label %11342

11341:                                            ; preds = %11337, %11331
  br label %11342

11342:                                            ; preds = %11337, %11341
  %.str.5.sink6128 = phi ptr [ @.str.5, %11341 ], [ @.str.2, %11337 ]
  store i32 %11332, ptr %1329, align 4, !tbaa !5
  %11343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11344 = load i32, ptr @test_count, align 4, !tbaa !5
  %11345 = load i32, ptr %1275, align 4, !tbaa !5
  %11346 = call ptr @s2n_strerror(i32 noundef %11345, ptr noundef nonnull @.str.4) #13
  %11347 = load i32, ptr %1275, align 4, !tbaa !5
  %11348 = call ptr @s2n_strerror_debug(i32 noundef %11347, ptr noundef nonnull @.str.4) #13
  %11349 = load i32, ptr %1329, align 4, !tbaa !5
  %11350 = call ptr @strerror(i32 noundef %11349) #13
  %11351 = load i32, ptr %1329, align 4, !tbaa !5
  %11352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11343, ptr noundef nonnull %.str.5.sink6128, i32 noundef %11344, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 1640, ptr noundef %11346, ptr noundef %11348, ptr noundef %11350, i32 noundef %11351) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11353:                                            ; preds = %11326
  %11354 = load i32, ptr @test_count, align 4, !tbaa !5
  %11355 = add nsw i32 %11354, 1
  store i32 %11355, ptr @test_count, align 4, !tbaa !5
  %11356 = load i32, ptr %1275, align 4, !tbaa !5
  %11357 = icmp eq i32 %11356, 335544366
  br i1 %11357, label %11380, label %11358

11358:                                            ; preds = %11353
  %11359 = load i32, ptr %1329, align 4, !tbaa !5
  %11360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11361 = call i32 @s2n_print_stacktrace(ptr noundef %11360) #13
  %11362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11363 = trunc nuw i8 %11362 to i1
  br i1 %11363, label %11364, label %11368

11364:                                            ; preds = %11358
  %11365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11366 = call i32 @fileno(ptr noundef %11365) #13
  %11367 = call i32 @isatty(i32 noundef %11366) #13
  %.not2110 = icmp eq i32 %11367, 0
  br i1 %.not2110, label %11368, label %11369

11368:                                            ; preds = %11364, %11358
  br label %11369

11369:                                            ; preds = %11364, %11368
  %.str.5.sink6137 = phi ptr [ @.str.5, %11368 ], [ @.str.2, %11364 ]
  store i32 %11359, ptr %1329, align 4, !tbaa !5
  %11370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11371 = load i32, ptr @test_count, align 4, !tbaa !5
  %11372 = load i32, ptr %1275, align 4, !tbaa !5
  %11373 = call ptr @s2n_strerror(i32 noundef %11372, ptr noundef nonnull @.str.4) #13
  %11374 = load i32, ptr %1275, align 4, !tbaa !5
  %11375 = call ptr @s2n_strerror_debug(i32 noundef %11374, ptr noundef nonnull @.str.4) #13
  %11376 = load i32, ptr %1329, align 4, !tbaa !5
  %11377 = call ptr @strerror(i32 noundef %11376) #13
  %11378 = load i32, ptr %1329, align 4, !tbaa !5
  %11379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11370, ptr noundef nonnull %.str.5.sink6137, i32 noundef %11371, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 1640, ptr noundef %11373, ptr noundef %11375, ptr noundef %11377, i32 noundef %11378) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11380:                                            ; preds = %11353
  %11381 = add nsw i32 %11354, 2
  store i32 %11381, ptr @test_count, align 4, !tbaa !5
  %11382 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %11383 = icmp eq ptr %11382, null
  br i1 %11383, label %11384, label %11406

11384:                                            ; preds = %11380
  %11385 = load i32, ptr %1329, align 4, !tbaa !5
  %11386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11387 = call i32 @s2n_print_stacktrace(ptr noundef %11386) #13
  %11388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11389 = trunc nuw i8 %11388 to i1
  br i1 %11389, label %11390, label %11394

11390:                                            ; preds = %11384
  %11391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11392 = call i32 @fileno(ptr noundef %11391) #13
  %11393 = call i32 @isatty(i32 noundef %11392) #13
  %.not2305 = icmp eq i32 %11393, 0
  br i1 %.not2305, label %11394, label %11395

11394:                                            ; preds = %11390, %11384
  br label %11395

11395:                                            ; preds = %11390, %11394
  %.str.5.sink6146 = phi ptr [ @.str.5, %11394 ], [ @.str.2, %11390 ]
  store i32 %11385, ptr %1329, align 4, !tbaa !5
  %11396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11397 = load i32, ptr @test_count, align 4, !tbaa !5
  %11398 = load i32, ptr %1275, align 4, !tbaa !5
  %11399 = call ptr @s2n_strerror(i32 noundef %11398, ptr noundef nonnull @.str.4) #13
  %11400 = load i32, ptr %1275, align 4, !tbaa !5
  %11401 = call ptr @s2n_strerror_debug(i32 noundef %11400, ptr noundef nonnull @.str.4) #13
  %11402 = load i32, ptr %1329, align 4, !tbaa !5
  %11403 = call ptr @strerror(i32 noundef %11402) #13
  %11404 = load i32, ptr %1329, align 4, !tbaa !5
  %11405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11396, ptr noundef nonnull %.str.5.sink6146, i32 noundef %11397, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1640, ptr noundef %11399, ptr noundef %11401, ptr noundef %11403, i32 noundef %11404) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11406:                                            ; preds = %11380
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %11407 = load i32, ptr @test_count, align 4, !tbaa !5
  %11408 = add nsw i32 %11407, 1
  store i32 %11408, ptr @test_count, align 4, !tbaa !5
  %11409 = load i32, ptr %211, align 4, !tbaa !5
  %11410 = icmp eq i32 %11409, -1
  br i1 %11410, label %11433, label %11411

11411:                                            ; preds = %11406
  %11412 = load i32, ptr %1329, align 4, !tbaa !5
  %11413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11414 = call i32 @s2n_print_stacktrace(ptr noundef %11413) #13
  %11415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11416 = trunc nuw i8 %11415 to i1
  br i1 %11416, label %11417, label %11421

11417:                                            ; preds = %11411
  %11418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11419 = call i32 @fileno(ptr noundef %11418) #13
  %11420 = call i32 @isatty(i32 noundef %11419) #13
  %.not2111 = icmp eq i32 %11420, 0
  br i1 %.not2111, label %11421, label %11422

11421:                                            ; preds = %11417, %11411
  br label %11422

11422:                                            ; preds = %11417, %11421
  %.str.5.sink6155 = phi ptr [ @.str.5, %11421 ], [ @.str.2, %11417 ]
  store i32 %11412, ptr %1329, align 4, !tbaa !5
  %11423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11424 = load i32, ptr @test_count, align 4, !tbaa !5
  %11425 = load i32, ptr %1275, align 4, !tbaa !5
  %11426 = call ptr @s2n_strerror(i32 noundef %11425, ptr noundef nonnull @.str.4) #13
  %11427 = load i32, ptr %1275, align 4, !tbaa !5
  %11428 = call ptr @s2n_strerror_debug(i32 noundef %11427, ptr noundef nonnull @.str.4) #13
  %11429 = load i32, ptr %1329, align 4, !tbaa !5
  %11430 = call ptr @strerror(i32 noundef %11429) #13
  %11431 = load i32, ptr %1329, align 4, !tbaa !5
  %11432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11423, ptr noundef nonnull %.str.5.sink6155, i32 noundef %11424, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 1642, ptr noundef %11426, ptr noundef %11428, ptr noundef %11430, i32 noundef %11431) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11433:                                            ; preds = %11406
  %11434 = call i32 @s2n_connection_free(ptr noundef nonnull %11189) #13
  %11435 = call i32 @s2n_pkey_free(ptr noundef nonnull %210) #13
  %11436 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %208) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %207) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %211) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %210) #13
  %11437 = call i32 @s2n_stuffer_free(ptr noundef nonnull %209) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %209) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %208) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %207) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %212) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %212, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %212) #13
  %11438 = load i32, ptr @test_count, align 4, !tbaa !5
  %11439 = add nsw i32 %11438, 1
  store i32 %11439, ptr @test_count, align 4, !tbaa !5
  %11440 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %212, ptr noundef nonnull @.str.105, ptr noundef null) #13
  %11441 = icmp eq i32 %11440, 0
  br i1 %11441, label %11464, label %11442

11442:                                            ; preds = %11433
  %11443 = load i32, ptr %1329, align 4, !tbaa !5
  %11444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11445 = call i32 @s2n_print_stacktrace(ptr noundef %11444) #13
  %11446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11447 = trunc nuw i8 %11446 to i1
  br i1 %11447, label %11448, label %11452

11448:                                            ; preds = %11442
  %11449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11450 = call i32 @fileno(ptr noundef %11449) #13
  %11451 = call i32 @isatty(i32 noundef %11450) #13
  %.not2112 = icmp eq i32 %11451, 0
  br i1 %.not2112, label %11452, label %11453

11452:                                            ; preds = %11448, %11442
  br label %11453

11453:                                            ; preds = %11448, %11452
  %.str.5.sink6164 = phi ptr [ @.str.5, %11452 ], [ @.str.2, %11448 ]
  store i32 %11443, ptr %1329, align 4, !tbaa !5
  %11454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11455 = load i32, ptr @test_count, align 4, !tbaa !5
  %11456 = load i32, ptr %1275, align 4, !tbaa !5
  %11457 = call ptr @s2n_strerror(i32 noundef %11456, ptr noundef nonnull @.str.4) #13
  %11458 = load i32, ptr %1275, align 4, !tbaa !5
  %11459 = call ptr @s2n_strerror_debug(i32 noundef %11458, ptr noundef nonnull @.str.4) #13
  %11460 = load i32, ptr %1329, align 4, !tbaa !5
  %11461 = call ptr @strerror(i32 noundef %11460) #13
  %11462 = load i32, ptr %1329, align 4, !tbaa !5
  %11463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11454, ptr noundef nonnull %.str.5.sink6164, i32 noundef %11455, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 1654, ptr noundef %11457, ptr noundef %11459, ptr noundef %11461, i32 noundef %11462) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11464:                                            ; preds = %11433
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %213) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %213, i8 0, i64 56, i1 false)
  %11465 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %213, ptr noundef nonnull %212, i8 noundef zeroext 1) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %214) #13
  %11466 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %11466, ptr %214, align 8, !tbaa !9
  %11467 = load i32, ptr @test_count, align 4, !tbaa !5
  %11468 = add nsw i32 %11467, 1
  store i32 %11468, ptr @test_count, align 4, !tbaa !5
  %11469 = icmp eq ptr %11466, null
  br i1 %11469, label %11470, label %11492

11470:                                            ; preds = %11464
  %11471 = load i32, ptr %1329, align 4, !tbaa !5
  %11472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11473 = call i32 @s2n_print_stacktrace(ptr noundef %11472) #13
  %11474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11475 = trunc nuw i8 %11474 to i1
  br i1 %11475, label %11476, label %11480

11476:                                            ; preds = %11470
  %11477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11478 = call i32 @fileno(ptr noundef %11477) #13
  %11479 = call i32 @isatty(i32 noundef %11478) #13
  %.not2304 = icmp eq i32 %11479, 0
  br i1 %.not2304, label %11480, label %11481

11480:                                            ; preds = %11476, %11470
  br label %11481

11481:                                            ; preds = %11476, %11480
  %.str.5.sink6173 = phi ptr [ @.str.5, %11480 ], [ @.str.2, %11476 ]
  store i32 %11471, ptr %1329, align 4, !tbaa !5
  %11482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11483 = load i32, ptr @test_count, align 4, !tbaa !5
  %11484 = load i32, ptr %1275, align 4, !tbaa !5
  %11485 = call ptr @s2n_strerror(i32 noundef %11484, ptr noundef nonnull @.str.4) #13
  %11486 = load i32, ptr %1275, align 4, !tbaa !5
  %11487 = call ptr @s2n_strerror_debug(i32 noundef %11486, ptr noundef nonnull @.str.4) #13
  %11488 = load i32, ptr %1329, align 4, !tbaa !5
  %11489 = call ptr @strerror(i32 noundef %11488) #13
  %11490 = load i32, ptr %1329, align 4, !tbaa !5
  %11491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11482, ptr noundef nonnull %.str.5.sink6173, i32 noundef %11483, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1660, ptr noundef %11485, ptr noundef %11487, ptr noundef %11489, i32 noundef %11490) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11492:                                            ; preds = %11464
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %215) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.108, i64 16, i1 false)
  %11493 = add nsw i32 %11467, 2
  store i32 %11493, ptr @test_count, align 4, !tbaa !5
  %11494 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %11466, ptr noundef nonnull @verify_host_verify_alt, ptr noundef nonnull %215) #13
  %11495 = icmp eq i32 %11494, -1
  br i1 %11495, label %11496, label %11518

11496:                                            ; preds = %11492
  %11497 = load i32, ptr %1329, align 4, !tbaa !5
  %11498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11499 = call i32 @s2n_print_stacktrace(ptr noundef %11498) #13
  %11500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11501 = trunc nuw i8 %11500 to i1
  br i1 %11501, label %11502, label %11506

11502:                                            ; preds = %11496
  %11503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11504 = call i32 @fileno(ptr noundef %11503) #13
  %11505 = call i32 @isatty(i32 noundef %11504) #13
  %.not2303 = icmp eq i32 %11505, 0
  br i1 %.not2303, label %11506, label %11507

11506:                                            ; preds = %11502, %11496
  br label %11507

11507:                                            ; preds = %11502, %11506
  %.str.5.sink6182 = phi ptr [ @.str.5, %11506 ], [ @.str.2, %11502 ]
  store i32 %11497, ptr %1329, align 4, !tbaa !5
  %11508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11509 = load i32, ptr @test_count, align 4, !tbaa !5
  %11510 = load i32, ptr %1275, align 4, !tbaa !5
  %11511 = call ptr @s2n_strerror(i32 noundef %11510, ptr noundef nonnull @.str.4) #13
  %11512 = load i32, ptr %1275, align 4, !tbaa !5
  %11513 = call ptr @s2n_strerror_debug(i32 noundef %11512, ptr noundef nonnull @.str.4) #13
  %11514 = load i32, ptr %1329, align 4, !tbaa !5
  %11515 = call ptr @strerror(i32 noundef %11514) #13
  %11516 = load i32, ptr %1329, align 4, !tbaa !5
  %11517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11508, ptr noundef nonnull %.str.5.sink6182, i32 noundef %11509, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 1664, ptr noundef %11511, ptr noundef %11513, ptr noundef %11515, i32 noundef %11516) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11518:                                            ; preds = %11492
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %216) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %216, i8 0, i64 40, i1 false)
  %11519 = load i32, ptr @test_count, align 4, !tbaa !5
  %11520 = add nsw i32 %11519, 1
  store i32 %11520, ptr @test_count, align 4, !tbaa !5
  %11521 = load ptr, ptr %214, align 8, !tbaa !9
  %11522 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %11521, ptr noundef nonnull @.str.105, ptr noundef nonnull %216) #13
  %11523 = call zeroext i1 @s2n_result_is_ok(i32 %11522)
  br i1 %11523, label %11546, label %11524

11524:                                            ; preds = %11518
  %11525 = load i32, ptr %1329, align 4, !tbaa !5
  %11526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11527 = call i32 @s2n_print_stacktrace(ptr noundef %11526) #13
  %11528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11529 = trunc nuw i8 %11528 to i1
  br i1 %11529, label %11530, label %11534

11530:                                            ; preds = %11524
  %11531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11532 = call i32 @fileno(ptr noundef %11531) #13
  %11533 = call i32 @isatty(i32 noundef %11532) #13
  %.not2113 = icmp eq i32 %11533, 0
  br i1 %.not2113, label %11534, label %11535

11534:                                            ; preds = %11530, %11524
  br label %11535

11535:                                            ; preds = %11530, %11534
  %.str.5.sink6191 = phi ptr [ @.str.5, %11534 ], [ @.str.2, %11530 ]
  store i32 %11525, ptr %1329, align 4, !tbaa !5
  %11536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11537 = load i32, ptr @test_count, align 4, !tbaa !5
  %11538 = load i32, ptr %1275, align 4, !tbaa !5
  %11539 = call ptr @s2n_strerror(i32 noundef %11538, ptr noundef nonnull @.str.4) #13
  %11540 = load i32, ptr %1275, align 4, !tbaa !5
  %11541 = call ptr @s2n_strerror_debug(i32 noundef %11540, ptr noundef nonnull @.str.4) #13
  %11542 = load i32, ptr %1329, align 4, !tbaa !5
  %11543 = call ptr @strerror(i32 noundef %11542) #13
  %11544 = load i32, ptr %1329, align 4, !tbaa !5
  %11545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11536, ptr noundef nonnull %.str.5.sink6191, i32 noundef %11537, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 1670, ptr noundef %11539, ptr noundef %11541, ptr noundef %11543, i32 noundef %11544) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11546:                                            ; preds = %11518
  %11547 = getelementptr inbounds i8, ptr %216, i64 28
  %11548 = load i32, ptr %11547, align 4, !tbaa !15
  %11549 = getelementptr inbounds i8, ptr %216, i64 24
  %11550 = load i32, ptr %11549, align 8, !tbaa !18
  %11551 = sub i32 %11548, %11550
  %11552 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %216, i32 noundef %11551) #13
  %11553 = load i32, ptr @test_count, align 4, !tbaa !5
  %11554 = add nsw i32 %11553, 1
  store i32 %11554, ptr @test_count, align 4, !tbaa !5
  %11555 = icmp eq ptr %11552, null
  br i1 %11555, label %11556, label %11578

11556:                                            ; preds = %11546
  %11557 = load i32, ptr %1329, align 4, !tbaa !5
  %11558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11559 = call i32 @s2n_print_stacktrace(ptr noundef %11558) #13
  %11560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11561 = trunc nuw i8 %11560 to i1
  br i1 %11561, label %11562, label %11566

11562:                                            ; preds = %11556
  %11563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11564 = call i32 @fileno(ptr noundef %11563) #13
  %11565 = call i32 @isatty(i32 noundef %11564) #13
  %.not2302 = icmp eq i32 %11565, 0
  br i1 %.not2302, label %11566, label %11567

11566:                                            ; preds = %11562, %11556
  br label %11567

11567:                                            ; preds = %11562, %11566
  %.str.5.sink6200 = phi ptr [ @.str.5, %11566 ], [ @.str.2, %11562 ]
  store i32 %11557, ptr %1329, align 4, !tbaa !5
  %11568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11569 = load i32, ptr @test_count, align 4, !tbaa !5
  %11570 = load i32, ptr %1275, align 4, !tbaa !5
  %11571 = call ptr @s2n_strerror(i32 noundef %11570, ptr noundef nonnull @.str.4) #13
  %11572 = load i32, ptr %1275, align 4, !tbaa !5
  %11573 = call ptr @s2n_strerror_debug(i32 noundef %11572, ptr noundef nonnull @.str.4) #13
  %11574 = load i32, ptr %1329, align 4, !tbaa !5
  %11575 = call ptr @strerror(i32 noundef %11574) #13
  %11576 = load i32, ptr %1329, align 4, !tbaa !5
  %11577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11568, ptr noundef nonnull %.str.5.sink6200, i32 noundef %11569, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1673, ptr noundef %11571, ptr noundef %11573, ptr noundef %11575, i32 noundef %11576) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11578:                                            ; preds = %11546
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %217) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %217, i8 0, i64 48, i1 false)
  %11579 = add nsw i32 %11553, 2
  store i32 %11579, ptr @test_count, align 4, !tbaa !5
  %11580 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %217) #13
  %11581 = icmp eq i32 %11580, -1
  br i1 %11581, label %11582, label %11604

11582:                                            ; preds = %11578
  %11583 = load i32, ptr %1329, align 4, !tbaa !5
  %11584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11585 = call i32 @s2n_print_stacktrace(ptr noundef %11584) #13
  %11586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11587 = trunc nuw i8 %11586 to i1
  br i1 %11587, label %11588, label %11592

11588:                                            ; preds = %11582
  %11589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11590 = call i32 @fileno(ptr noundef %11589) #13
  %11591 = call i32 @isatty(i32 noundef %11590) #13
  %.not2301 = icmp eq i32 %11591, 0
  br i1 %.not2301, label %11592, label %11593

11592:                                            ; preds = %11588, %11582
  br label %11593

11593:                                            ; preds = %11588, %11592
  %.str.5.sink6209 = phi ptr [ @.str.5, %11592 ], [ @.str.2, %11588 ]
  store i32 %11583, ptr %1329, align 4, !tbaa !5
  %11594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11595 = load i32, ptr @test_count, align 4, !tbaa !5
  %11596 = load i32, ptr %1275, align 4, !tbaa !5
  %11597 = call ptr @s2n_strerror(i32 noundef %11596, ptr noundef nonnull @.str.4) #13
  %11598 = load i32, ptr %1275, align 4, !tbaa !5
  %11599 = call ptr @s2n_strerror_debug(i32 noundef %11598, ptr noundef nonnull @.str.4) #13
  %11600 = load i32, ptr %1329, align 4, !tbaa !5
  %11601 = call ptr @strerror(i32 noundef %11600) #13
  %11602 = load i32, ptr %1329, align 4, !tbaa !5
  %11603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11594, ptr noundef nonnull %.str.5.sink6209, i32 noundef %11595, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1676, ptr noundef %11597, ptr noundef %11599, ptr noundef %11601, i32 noundef %11602) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11604:                                            ; preds = %11578
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %218) #13
  store i32 -1, ptr %218, align 4, !tbaa !5
  %11605 = load i32, ptr @test_count, align 4, !tbaa !5
  %11606 = add nsw i32 %11605, 1
  store i32 %11606, ptr @test_count, align 4, !tbaa !5
  %11607 = load ptr, ptr %214, align 8, !tbaa !9
  %11608 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %213, ptr noundef %11607, ptr noundef nonnull %11552, i32 noundef %11551, ptr noundef nonnull %218, ptr noundef nonnull %217) #13
  %11609 = call zeroext i1 @s2n_result_is_ok(i32 %11608)
  br i1 %11609, label %11632, label %11610

11610:                                            ; preds = %11604
  %11611 = load i32, ptr %1329, align 4, !tbaa !5
  %11612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11613 = call i32 @s2n_print_stacktrace(ptr noundef %11612) #13
  %11614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11615 = trunc nuw i8 %11614 to i1
  br i1 %11615, label %11616, label %11620

11616:                                            ; preds = %11610
  %11617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11618 = call i32 @fileno(ptr noundef %11617) #13
  %11619 = call i32 @isatty(i32 noundef %11618) #13
  %.not2114 = icmp eq i32 %11619, 0
  br i1 %.not2114, label %11620, label %11621

11620:                                            ; preds = %11616, %11610
  br label %11621

11621:                                            ; preds = %11616, %11620
  %.str.5.sink6218 = phi ptr [ @.str.5, %11620 ], [ @.str.2, %11616 ]
  store i32 %11611, ptr %1329, align 4, !tbaa !5
  %11622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11623 = load i32, ptr @test_count, align 4, !tbaa !5
  %11624 = load i32, ptr %1275, align 4, !tbaa !5
  %11625 = call ptr @s2n_strerror(i32 noundef %11624, ptr noundef nonnull @.str.4) #13
  %11626 = load i32, ptr %1275, align 4, !tbaa !5
  %11627 = call ptr @s2n_strerror_debug(i32 noundef %11626, ptr noundef nonnull @.str.4) #13
  %11628 = load i32, ptr %1329, align 4, !tbaa !5
  %11629 = call ptr @strerror(i32 noundef %11628) #13
  %11630 = load i32, ptr %1329, align 4, !tbaa !5
  %11631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11622, ptr noundef nonnull %.str.5.sink6218, i32 noundef %11623, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1678, ptr noundef %11625, ptr noundef %11627, ptr noundef %11629, i32 noundef %11630) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11632:                                            ; preds = %11604
  %11633 = load i32, ptr @test_count, align 4, !tbaa !5
  %11634 = add nsw i32 %11633, 1
  store i32 %11634, ptr @test_count, align 4, !tbaa !5
  %11635 = load i32, ptr %218, align 4, !tbaa !5
  %11636 = icmp eq i32 %11635, 0
  br i1 %11636, label %11659, label %11637

11637:                                            ; preds = %11632
  %11638 = load i32, ptr %1329, align 4, !tbaa !5
  %11639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11640 = call i32 @s2n_print_stacktrace(ptr noundef %11639) #13
  %11641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11642 = trunc nuw i8 %11641 to i1
  br i1 %11642, label %11643, label %11647

11643:                                            ; preds = %11637
  %11644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11645 = call i32 @fileno(ptr noundef %11644) #13
  %11646 = call i32 @isatty(i32 noundef %11645) #13
  %.not2115 = icmp eq i32 %11646, 0
  br i1 %.not2115, label %11647, label %11648

11647:                                            ; preds = %11643, %11637
  br label %11648

11648:                                            ; preds = %11643, %11647
  %.str.5.sink6227 = phi ptr [ @.str.5, %11647 ], [ @.str.2, %11643 ]
  store i32 %11638, ptr %1329, align 4, !tbaa !5
  %11649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11650 = load i32, ptr @test_count, align 4, !tbaa !5
  %11651 = load i32, ptr %1275, align 4, !tbaa !5
  %11652 = call ptr @s2n_strerror(i32 noundef %11651, ptr noundef nonnull @.str.4) #13
  %11653 = load i32, ptr %1275, align 4, !tbaa !5
  %11654 = call ptr @s2n_strerror_debug(i32 noundef %11653, ptr noundef nonnull @.str.4) #13
  %11655 = load i32, ptr %1329, align 4, !tbaa !5
  %11656 = call ptr @strerror(i32 noundef %11655) #13
  %11657 = load i32, ptr %1329, align 4, !tbaa !5
  %11658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11649, ptr noundef nonnull %.str.5.sink6227, i32 noundef %11650, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 1679, ptr noundef %11652, ptr noundef %11654, ptr noundef %11656, i32 noundef %11657) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11659:                                            ; preds = %11632
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %218) #13
  %11660 = call i32 @s2n_pkey_free(ptr noundef nonnull %217) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %217) #13
  %11661 = call i32 @s2n_stuffer_free(ptr noundef nonnull %216) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %216) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %215) #13
  %11662 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %214) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %214) #13
  %11663 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %213) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %213) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %212) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %212) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %219) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %219, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %219) #13
  %11664 = load i32, ptr @test_count, align 4, !tbaa !5
  %11665 = add nsw i32 %11664, 1
  store i32 %11665, ptr @test_count, align 4, !tbaa !5
  %11666 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %219, ptr noundef nonnull @.str.110, ptr noundef null) #13
  %11667 = icmp eq i32 %11666, 0
  br i1 %11667, label %11690, label %11668

11668:                                            ; preds = %11659
  %11669 = load i32, ptr %1329, align 4, !tbaa !5
  %11670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11671 = call i32 @s2n_print_stacktrace(ptr noundef %11670) #13
  %11672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11673 = trunc nuw i8 %11672 to i1
  br i1 %11673, label %11674, label %11678

11674:                                            ; preds = %11668
  %11675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11676 = call i32 @fileno(ptr noundef %11675) #13
  %11677 = call i32 @isatty(i32 noundef %11676) #13
  %.not2116 = icmp eq i32 %11677, 0
  br i1 %.not2116, label %11678, label %11679

11678:                                            ; preds = %11674, %11668
  br label %11679

11679:                                            ; preds = %11674, %11678
  %.str.5.sink6236 = phi ptr [ @.str.5, %11678 ], [ @.str.2, %11674 ]
  store i32 %11669, ptr %1329, align 4, !tbaa !5
  %11680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11681 = load i32, ptr @test_count, align 4, !tbaa !5
  %11682 = load i32, ptr %1275, align 4, !tbaa !5
  %11683 = call ptr @s2n_strerror(i32 noundef %11682, ptr noundef nonnull @.str.4) #13
  %11684 = load i32, ptr %1275, align 4, !tbaa !5
  %11685 = call ptr @s2n_strerror_debug(i32 noundef %11684, ptr noundef nonnull @.str.4) #13
  %11686 = load i32, ptr %1329, align 4, !tbaa !5
  %11687 = call ptr @strerror(i32 noundef %11686) #13
  %11688 = load i32, ptr %1329, align 4, !tbaa !5
  %11689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11680, ptr noundef nonnull %.str.5.sink6236, i32 noundef %11681, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 1686, ptr noundef %11683, ptr noundef %11685, ptr noundef %11687, i32 noundef %11688) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11690:                                            ; preds = %11659
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %220) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %220, i8 0, i64 56, i1 false)
  %11691 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %220, ptr noundef nonnull %219, i8 noundef zeroext 1) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %221) #13
  %11692 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %11692, ptr %221, align 8, !tbaa !9
  %11693 = load i32, ptr @test_count, align 4, !tbaa !5
  %11694 = add nsw i32 %11693, 1
  store i32 %11694, ptr @test_count, align 4, !tbaa !5
  %11695 = icmp eq ptr %11692, null
  br i1 %11695, label %11696, label %11718

11696:                                            ; preds = %11690
  %11697 = load i32, ptr %1329, align 4, !tbaa !5
  %11698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11699 = call i32 @s2n_print_stacktrace(ptr noundef %11698) #13
  %11700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11701 = trunc nuw i8 %11700 to i1
  br i1 %11701, label %11702, label %11706

11702:                                            ; preds = %11696
  %11703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11704 = call i32 @fileno(ptr noundef %11703) #13
  %11705 = call i32 @isatty(i32 noundef %11704) #13
  %.not2300 = icmp eq i32 %11705, 0
  br i1 %.not2300, label %11706, label %11707

11706:                                            ; preds = %11702, %11696
  br label %11707

11707:                                            ; preds = %11702, %11706
  %.str.5.sink6245 = phi ptr [ @.str.5, %11706 ], [ @.str.2, %11702 ]
  store i32 %11697, ptr %1329, align 4, !tbaa !5
  %11708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11709 = load i32, ptr @test_count, align 4, !tbaa !5
  %11710 = load i32, ptr %1275, align 4, !tbaa !5
  %11711 = call ptr @s2n_strerror(i32 noundef %11710, ptr noundef nonnull @.str.4) #13
  %11712 = load i32, ptr %1275, align 4, !tbaa !5
  %11713 = call ptr @s2n_strerror_debug(i32 noundef %11712, ptr noundef nonnull @.str.4) #13
  %11714 = load i32, ptr %1329, align 4, !tbaa !5
  %11715 = call ptr @strerror(i32 noundef %11714) #13
  %11716 = load i32, ptr %1329, align 4, !tbaa !5
  %11717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11708, ptr noundef nonnull %.str.5.sink6245, i32 noundef %11709, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1692, ptr noundef %11711, ptr noundef %11713, ptr noundef %11715, i32 noundef %11716) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11718:                                            ; preds = %11690
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %222) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %222, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.verify_data.113, i64 16, i1 false)
  %11719 = add nsw i32 %11693, 2
  store i32 %11719, ptr @test_count, align 4, !tbaa !5
  %11720 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %11692, ptr noundef nonnull @verify_host_verify_alt, ptr noundef nonnull %222) #13
  %11721 = icmp eq i32 %11720, -1
  br i1 %11721, label %11722, label %11744

11722:                                            ; preds = %11718
  %11723 = load i32, ptr %1329, align 4, !tbaa !5
  %11724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11725 = call i32 @s2n_print_stacktrace(ptr noundef %11724) #13
  %11726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11727 = trunc nuw i8 %11726 to i1
  br i1 %11727, label %11728, label %11732

11728:                                            ; preds = %11722
  %11729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11730 = call i32 @fileno(ptr noundef %11729) #13
  %11731 = call i32 @isatty(i32 noundef %11730) #13
  %.not2299 = icmp eq i32 %11731, 0
  br i1 %.not2299, label %11732, label %11733

11732:                                            ; preds = %11728, %11722
  br label %11733

11733:                                            ; preds = %11728, %11732
  %.str.5.sink6254 = phi ptr [ @.str.5, %11732 ], [ @.str.2, %11728 ]
  store i32 %11723, ptr %1329, align 4, !tbaa !5
  %11734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11735 = load i32, ptr @test_count, align 4, !tbaa !5
  %11736 = load i32, ptr %1275, align 4, !tbaa !5
  %11737 = call ptr @s2n_strerror(i32 noundef %11736, ptr noundef nonnull @.str.4) #13
  %11738 = load i32, ptr %1275, align 4, !tbaa !5
  %11739 = call ptr @s2n_strerror_debug(i32 noundef %11738, ptr noundef nonnull @.str.4) #13
  %11740 = load i32, ptr %1329, align 4, !tbaa !5
  %11741 = call ptr @strerror(i32 noundef %11740) #13
  %11742 = load i32, ptr %1329, align 4, !tbaa !5
  %11743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11734, ptr noundef nonnull %.str.5.sink6254, i32 noundef %11735, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 1696, ptr noundef %11737, ptr noundef %11739, ptr noundef %11741, i32 noundef %11742) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11744:                                            ; preds = %11718
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %223) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %223, i8 0, i64 40, i1 false)
  %11745 = load i32, ptr @test_count, align 4, !tbaa !5
  %11746 = add nsw i32 %11745, 1
  store i32 %11746, ptr @test_count, align 4, !tbaa !5
  %11747 = load ptr, ptr %221, align 8, !tbaa !9
  %11748 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %11747, ptr noundef nonnull @.str.110, ptr noundef nonnull %223) #13
  %11749 = call zeroext i1 @s2n_result_is_ok(i32 %11748)
  br i1 %11749, label %11772, label %11750

11750:                                            ; preds = %11744
  %11751 = load i32, ptr %1329, align 4, !tbaa !5
  %11752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11753 = call i32 @s2n_print_stacktrace(ptr noundef %11752) #13
  %11754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11755 = trunc nuw i8 %11754 to i1
  br i1 %11755, label %11756, label %11760

11756:                                            ; preds = %11750
  %11757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11758 = call i32 @fileno(ptr noundef %11757) #13
  %11759 = call i32 @isatty(i32 noundef %11758) #13
  %.not2117 = icmp eq i32 %11759, 0
  br i1 %.not2117, label %11760, label %11761

11760:                                            ; preds = %11756, %11750
  br label %11761

11761:                                            ; preds = %11756, %11760
  %.str.5.sink6263 = phi ptr [ @.str.5, %11760 ], [ @.str.2, %11756 ]
  store i32 %11751, ptr %1329, align 4, !tbaa !5
  %11762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11763 = load i32, ptr @test_count, align 4, !tbaa !5
  %11764 = load i32, ptr %1275, align 4, !tbaa !5
  %11765 = call ptr @s2n_strerror(i32 noundef %11764, ptr noundef nonnull @.str.4) #13
  %11766 = load i32, ptr %1275, align 4, !tbaa !5
  %11767 = call ptr @s2n_strerror_debug(i32 noundef %11766, ptr noundef nonnull @.str.4) #13
  %11768 = load i32, ptr %1329, align 4, !tbaa !5
  %11769 = call ptr @strerror(i32 noundef %11768) #13
  %11770 = load i32, ptr %1329, align 4, !tbaa !5
  %11771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11762, ptr noundef nonnull %.str.5.sink6263, i32 noundef %11763, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 1702, ptr noundef %11765, ptr noundef %11767, ptr noundef %11769, i32 noundef %11770) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11772:                                            ; preds = %11744
  %11773 = getelementptr inbounds i8, ptr %223, i64 28
  %11774 = load i32, ptr %11773, align 4, !tbaa !15
  %11775 = getelementptr inbounds i8, ptr %223, i64 24
  %11776 = load i32, ptr %11775, align 8, !tbaa !18
  %11777 = sub i32 %11774, %11776
  %11778 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %223, i32 noundef %11777) #13
  %11779 = load i32, ptr @test_count, align 4, !tbaa !5
  %11780 = add nsw i32 %11779, 1
  store i32 %11780, ptr @test_count, align 4, !tbaa !5
  %11781 = icmp eq ptr %11778, null
  br i1 %11781, label %11782, label %11804

11782:                                            ; preds = %11772
  %11783 = load i32, ptr %1329, align 4, !tbaa !5
  %11784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11785 = call i32 @s2n_print_stacktrace(ptr noundef %11784) #13
  %11786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11787 = trunc nuw i8 %11786 to i1
  br i1 %11787, label %11788, label %11792

11788:                                            ; preds = %11782
  %11789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11790 = call i32 @fileno(ptr noundef %11789) #13
  %11791 = call i32 @isatty(i32 noundef %11790) #13
  %.not2298 = icmp eq i32 %11791, 0
  br i1 %.not2298, label %11792, label %11793

11792:                                            ; preds = %11788, %11782
  br label %11793

11793:                                            ; preds = %11788, %11792
  %.str.5.sink6272 = phi ptr [ @.str.5, %11792 ], [ @.str.2, %11788 ]
  store i32 %11783, ptr %1329, align 4, !tbaa !5
  %11794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11795 = load i32, ptr @test_count, align 4, !tbaa !5
  %11796 = load i32, ptr %1275, align 4, !tbaa !5
  %11797 = call ptr @s2n_strerror(i32 noundef %11796, ptr noundef nonnull @.str.4) #13
  %11798 = load i32, ptr %1275, align 4, !tbaa !5
  %11799 = call ptr @s2n_strerror_debug(i32 noundef %11798, ptr noundef nonnull @.str.4) #13
  %11800 = load i32, ptr %1329, align 4, !tbaa !5
  %11801 = call ptr @strerror(i32 noundef %11800) #13
  %11802 = load i32, ptr %1329, align 4, !tbaa !5
  %11803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11794, ptr noundef nonnull %.str.5.sink6272, i32 noundef %11795, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1705, ptr noundef %11797, ptr noundef %11799, ptr noundef %11801, i32 noundef %11802) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11804:                                            ; preds = %11772
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %224) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %224, i8 0, i64 48, i1 false)
  %11805 = add nsw i32 %11779, 2
  store i32 %11805, ptr @test_count, align 4, !tbaa !5
  %11806 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %224) #13
  %11807 = icmp eq i32 %11806, -1
  br i1 %11807, label %11808, label %11830

11808:                                            ; preds = %11804
  %11809 = load i32, ptr %1329, align 4, !tbaa !5
  %11810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11811 = call i32 @s2n_print_stacktrace(ptr noundef %11810) #13
  %11812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11813 = trunc nuw i8 %11812 to i1
  br i1 %11813, label %11814, label %11818

11814:                                            ; preds = %11808
  %11815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11816 = call i32 @fileno(ptr noundef %11815) #13
  %11817 = call i32 @isatty(i32 noundef %11816) #13
  %.not2297 = icmp eq i32 %11817, 0
  br i1 %.not2297, label %11818, label %11819

11818:                                            ; preds = %11814, %11808
  br label %11819

11819:                                            ; preds = %11814, %11818
  %.str.5.sink6281 = phi ptr [ @.str.5, %11818 ], [ @.str.2, %11814 ]
  store i32 %11809, ptr %1329, align 4, !tbaa !5
  %11820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11821 = load i32, ptr @test_count, align 4, !tbaa !5
  %11822 = load i32, ptr %1275, align 4, !tbaa !5
  %11823 = call ptr @s2n_strerror(i32 noundef %11822, ptr noundef nonnull @.str.4) #13
  %11824 = load i32, ptr %1275, align 4, !tbaa !5
  %11825 = call ptr @s2n_strerror_debug(i32 noundef %11824, ptr noundef nonnull @.str.4) #13
  %11826 = load i32, ptr %1329, align 4, !tbaa !5
  %11827 = call ptr @strerror(i32 noundef %11826) #13
  %11828 = load i32, ptr %1329, align 4, !tbaa !5
  %11829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11820, ptr noundef nonnull %.str.5.sink6281, i32 noundef %11821, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1708, ptr noundef %11823, ptr noundef %11825, ptr noundef %11827, i32 noundef %11828) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11830:                                            ; preds = %11804
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %225) #13
  store i32 -1, ptr %225, align 4, !tbaa !5
  %11831 = load i32, ptr @test_count, align 4, !tbaa !5
  %11832 = add nsw i32 %11831, 1
  store i32 %11832, ptr @test_count, align 4, !tbaa !5
  %11833 = load ptr, ptr %221, align 8, !tbaa !9
  %11834 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %220, ptr noundef %11833, ptr noundef nonnull %11778, i32 noundef %11777, ptr noundef nonnull %225, ptr noundef nonnull %224) #13
  %11835 = call zeroext i1 @s2n_result_is_ok(i32 %11834)
  br i1 %11835, label %11858, label %11836

11836:                                            ; preds = %11830
  %11837 = load i32, ptr %1329, align 4, !tbaa !5
  %11838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11839 = call i32 @s2n_print_stacktrace(ptr noundef %11838) #13
  %11840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11841 = trunc nuw i8 %11840 to i1
  br i1 %11841, label %11842, label %11846

11842:                                            ; preds = %11836
  %11843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11844 = call i32 @fileno(ptr noundef %11843) #13
  %11845 = call i32 @isatty(i32 noundef %11844) #13
  %.not2118 = icmp eq i32 %11845, 0
  br i1 %.not2118, label %11846, label %11847

11846:                                            ; preds = %11842, %11836
  br label %11847

11847:                                            ; preds = %11842, %11846
  %.str.5.sink6290 = phi ptr [ @.str.5, %11846 ], [ @.str.2, %11842 ]
  store i32 %11837, ptr %1329, align 4, !tbaa !5
  %11848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11849 = load i32, ptr @test_count, align 4, !tbaa !5
  %11850 = load i32, ptr %1275, align 4, !tbaa !5
  %11851 = call ptr @s2n_strerror(i32 noundef %11850, ptr noundef nonnull @.str.4) #13
  %11852 = load i32, ptr %1275, align 4, !tbaa !5
  %11853 = call ptr @s2n_strerror_debug(i32 noundef %11852, ptr noundef nonnull @.str.4) #13
  %11854 = load i32, ptr %1329, align 4, !tbaa !5
  %11855 = call ptr @strerror(i32 noundef %11854) #13
  %11856 = load i32, ptr %1329, align 4, !tbaa !5
  %11857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11848, ptr noundef nonnull %.str.5.sink6290, i32 noundef %11849, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1710, ptr noundef %11851, ptr noundef %11853, ptr noundef %11855, i32 noundef %11856) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11858:                                            ; preds = %11830
  %11859 = load i32, ptr @test_count, align 4, !tbaa !5
  %11860 = add nsw i32 %11859, 1
  store i32 %11860, ptr @test_count, align 4, !tbaa !5
  %11861 = load i32, ptr %225, align 4, !tbaa !5
  %11862 = icmp eq i32 %11861, 0
  br i1 %11862, label %11885, label %11863

11863:                                            ; preds = %11858
  %11864 = load i32, ptr %1329, align 4, !tbaa !5
  %11865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11866 = call i32 @s2n_print_stacktrace(ptr noundef %11865) #13
  %11867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11868 = trunc nuw i8 %11867 to i1
  br i1 %11868, label %11869, label %11873

11869:                                            ; preds = %11863
  %11870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11871 = call i32 @fileno(ptr noundef %11870) #13
  %11872 = call i32 @isatty(i32 noundef %11871) #13
  %.not2119 = icmp eq i32 %11872, 0
  br i1 %.not2119, label %11873, label %11874

11873:                                            ; preds = %11869, %11863
  br label %11874

11874:                                            ; preds = %11869, %11873
  %.str.5.sink6299 = phi ptr [ @.str.5, %11873 ], [ @.str.2, %11869 ]
  store i32 %11864, ptr %1329, align 4, !tbaa !5
  %11875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11876 = load i32, ptr @test_count, align 4, !tbaa !5
  %11877 = load i32, ptr %1275, align 4, !tbaa !5
  %11878 = call ptr @s2n_strerror(i32 noundef %11877, ptr noundef nonnull @.str.4) #13
  %11879 = load i32, ptr %1275, align 4, !tbaa !5
  %11880 = call ptr @s2n_strerror_debug(i32 noundef %11879, ptr noundef nonnull @.str.4) #13
  %11881 = load i32, ptr %1329, align 4, !tbaa !5
  %11882 = call ptr @strerror(i32 noundef %11881) #13
  %11883 = load i32, ptr %1329, align 4, !tbaa !5
  %11884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11875, ptr noundef nonnull %.str.5.sink6299, i32 noundef %11876, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 1711, ptr noundef %11878, ptr noundef %11880, ptr noundef %11882, i32 noundef %11883) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11885:                                            ; preds = %11858
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %225) #13
  %11886 = call i32 @s2n_pkey_free(ptr noundef nonnull %224) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %224) #13
  %11887 = call i32 @s2n_stuffer_free(ptr noundef nonnull %223) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %223) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %222) #13
  %11888 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %221) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %221) #13
  %11889 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %220) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %220) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %219) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %219) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %226) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %226) #13
  %11890 = load i32, ptr @test_count, align 4, !tbaa !5
  %11891 = add nsw i32 %11890, 1
  store i32 %11891, ptr @test_count, align 4, !tbaa !5
  %11892 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %226, ptr noundef nonnull @.str.88, ptr noundef null) #13
  %11893 = icmp eq i32 %11892, 0
  br i1 %11893, label %11916, label %11894

11894:                                            ; preds = %11885
  %11895 = load i32, ptr %1329, align 4, !tbaa !5
  %11896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11897 = call i32 @s2n_print_stacktrace(ptr noundef %11896) #13
  %11898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11899 = trunc nuw i8 %11898 to i1
  br i1 %11899, label %11900, label %11904

11900:                                            ; preds = %11894
  %11901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11902 = call i32 @fileno(ptr noundef %11901) #13
  %11903 = call i32 @isatty(i32 noundef %11902) #13
  %.not2120 = icmp eq i32 %11903, 0
  br i1 %.not2120, label %11904, label %11905

11904:                                            ; preds = %11900, %11894
  br label %11905

11905:                                            ; preds = %11900, %11904
  %.str.5.sink6308 = phi ptr [ @.str.5, %11904 ], [ @.str.2, %11900 ]
  store i32 %11895, ptr %1329, align 4, !tbaa !5
  %11906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11907 = load i32, ptr @test_count, align 4, !tbaa !5
  %11908 = load i32, ptr %1275, align 4, !tbaa !5
  %11909 = call ptr @s2n_strerror(i32 noundef %11908, ptr noundef nonnull @.str.4) #13
  %11910 = load i32, ptr %1275, align 4, !tbaa !5
  %11911 = call ptr @s2n_strerror_debug(i32 noundef %11910, ptr noundef nonnull @.str.4) #13
  %11912 = load i32, ptr %1329, align 4, !tbaa !5
  %11913 = call ptr @strerror(i32 noundef %11912) #13
  %11914 = load i32, ptr %1329, align 4, !tbaa !5
  %11915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11906, ptr noundef nonnull %.str.5.sink6308, i32 noundef %11907, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 1718, ptr noundef %11909, ptr noundef %11911, ptr noundef %11913, i32 noundef %11914) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11916:                                            ; preds = %11885
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %227) #13
  %11917 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %227, ptr noundef nonnull %226, i8 noundef zeroext 1) #13
  %11918 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %11919 = load i32, ptr @test_count, align 4, !tbaa !5
  %11920 = add nsw i32 %11919, 1
  store i32 %11920, ptr @test_count, align 4, !tbaa !5
  %11921 = icmp eq ptr %11918, null
  br i1 %11921, label %11922, label %11944

11922:                                            ; preds = %11916
  %11923 = load i32, ptr %1329, align 4, !tbaa !5
  %11924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11925 = call i32 @s2n_print_stacktrace(ptr noundef %11924) #13
  %11926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11927 = trunc nuw i8 %11926 to i1
  br i1 %11927, label %11928, label %11932

11928:                                            ; preds = %11922
  %11929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11930 = call i32 @fileno(ptr noundef %11929) #13
  %11931 = call i32 @isatty(i32 noundef %11930) #13
  %.not2296 = icmp eq i32 %11931, 0
  br i1 %.not2296, label %11932, label %11933

11932:                                            ; preds = %11928, %11922
  br label %11933

11933:                                            ; preds = %11928, %11932
  %.str.5.sink6317 = phi ptr [ @.str.5, %11932 ], [ @.str.2, %11928 ]
  store i32 %11923, ptr %1329, align 4, !tbaa !5
  %11934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11935 = load i32, ptr @test_count, align 4, !tbaa !5
  %11936 = load i32, ptr %1275, align 4, !tbaa !5
  %11937 = call ptr @s2n_strerror(i32 noundef %11936, ptr noundef nonnull @.str.4) #13
  %11938 = load i32, ptr %1275, align 4, !tbaa !5
  %11939 = call ptr @s2n_strerror_debug(i32 noundef %11938, ptr noundef nonnull @.str.4) #13
  %11940 = load i32, ptr %1329, align 4, !tbaa !5
  %11941 = call ptr @strerror(i32 noundef %11940) #13
  %11942 = load i32, ptr %1329, align 4, !tbaa !5
  %11943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11934, ptr noundef nonnull %.str.5.sink6317, i32 noundef %11935, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1724, ptr noundef %11937, ptr noundef %11939, ptr noundef %11941, i32 noundef %11942) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11944:                                            ; preds = %11916
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %228) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %228, i8 0, i64 40, i1 false)
  %11945 = add nsw i32 %11919, 2
  store i32 %11945, ptr @test_count, align 4, !tbaa !5
  %11946 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %11918, ptr noundef nonnull @.str.88, ptr noundef nonnull %228) #13
  %11947 = call zeroext i1 @s2n_result_is_ok(i32 %11946)
  br i1 %11947, label %11970, label %11948

11948:                                            ; preds = %11944
  %11949 = load i32, ptr %1329, align 4, !tbaa !5
  %11950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11951 = call i32 @s2n_print_stacktrace(ptr noundef %11950) #13
  %11952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11953 = trunc nuw i8 %11952 to i1
  br i1 %11953, label %11954, label %11958

11954:                                            ; preds = %11948
  %11955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11956 = call i32 @fileno(ptr noundef %11955) #13
  %11957 = call i32 @isatty(i32 noundef %11956) #13
  %.not2121 = icmp eq i32 %11957, 0
  br i1 %.not2121, label %11958, label %11959

11958:                                            ; preds = %11954, %11948
  br label %11959

11959:                                            ; preds = %11954, %11958
  %.str.5.sink6326 = phi ptr [ @.str.5, %11958 ], [ @.str.2, %11954 ]
  store i32 %11949, ptr %1329, align 4, !tbaa !5
  %11960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11961 = load i32, ptr @test_count, align 4, !tbaa !5
  %11962 = load i32, ptr %1275, align 4, !tbaa !5
  %11963 = call ptr @s2n_strerror(i32 noundef %11962, ptr noundef nonnull @.str.4) #13
  %11964 = load i32, ptr %1275, align 4, !tbaa !5
  %11965 = call ptr @s2n_strerror_debug(i32 noundef %11964, ptr noundef nonnull @.str.4) #13
  %11966 = load i32, ptr %1329, align 4, !tbaa !5
  %11967 = call ptr @strerror(i32 noundef %11966) #13
  %11968 = load i32, ptr %1329, align 4, !tbaa !5
  %11969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11960, ptr noundef nonnull %.str.5.sink6326, i32 noundef %11961, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 1728, ptr noundef %11963, ptr noundef %11965, ptr noundef %11967, i32 noundef %11968) #15
  call void @exit(i32 noundef 1) #16
  unreachable

11970:                                            ; preds = %11944
  %11971 = getelementptr inbounds i8, ptr %228, i64 28
  %11972 = load i32, ptr %11971, align 4, !tbaa !15
  %11973 = getelementptr inbounds i8, ptr %228, i64 24
  %11974 = load i32, ptr %11973, align 8, !tbaa !18
  %11975 = sub i32 %11972, %11974
  %11976 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %228, i32 noundef %11975) #13
  %11977 = load i32, ptr @test_count, align 4, !tbaa !5
  %11978 = add nsw i32 %11977, 1
  store i32 %11978, ptr @test_count, align 4, !tbaa !5
  %11979 = icmp eq ptr %11976, null
  br i1 %11979, label %11980, label %12002

11980:                                            ; preds = %11970
  %11981 = load i32, ptr %1329, align 4, !tbaa !5
  %11982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11983 = call i32 @s2n_print_stacktrace(ptr noundef %11982) #13
  %11984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11985 = trunc nuw i8 %11984 to i1
  br i1 %11985, label %11986, label %11990

11986:                                            ; preds = %11980
  %11987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11988 = call i32 @fileno(ptr noundef %11987) #13
  %11989 = call i32 @isatty(i32 noundef %11988) #13
  %.not2295 = icmp eq i32 %11989, 0
  br i1 %.not2295, label %11990, label %11991

11990:                                            ; preds = %11986, %11980
  br label %11991

11991:                                            ; preds = %11986, %11990
  %.str.5.sink6335 = phi ptr [ @.str.5, %11990 ], [ @.str.2, %11986 ]
  store i32 %11981, ptr %1329, align 4, !tbaa !5
  %11992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11993 = load i32, ptr @test_count, align 4, !tbaa !5
  %11994 = load i32, ptr %1275, align 4, !tbaa !5
  %11995 = call ptr @s2n_strerror(i32 noundef %11994, ptr noundef nonnull @.str.4) #13
  %11996 = load i32, ptr %1275, align 4, !tbaa !5
  %11997 = call ptr @s2n_strerror_debug(i32 noundef %11996, ptr noundef nonnull @.str.4) #13
  %11998 = load i32, ptr %1329, align 4, !tbaa !5
  %11999 = call ptr @strerror(i32 noundef %11998) #13
  %12000 = load i32, ptr %1329, align 4, !tbaa !5
  %12001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11992, ptr noundef nonnull %.str.5.sink6335, i32 noundef %11993, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1731, ptr noundef %11995, ptr noundef %11997, ptr noundef %11999, i32 noundef %12000) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12002:                                            ; preds = %11970
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %229) #13
  %12003 = add nsw i32 %11977, 2
  store i32 %12003, ptr @test_count, align 4, !tbaa !5
  %12004 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %229) #13
  %12005 = icmp eq i32 %12004, -1
  br i1 %12005, label %12006, label %12028

12006:                                            ; preds = %12002
  %12007 = load i32, ptr %1329, align 4, !tbaa !5
  %12008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12009 = call i32 @s2n_print_stacktrace(ptr noundef %12008) #13
  %12010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12011 = trunc nuw i8 %12010 to i1
  br i1 %12011, label %12012, label %12016

12012:                                            ; preds = %12006
  %12013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12014 = call i32 @fileno(ptr noundef %12013) #13
  %12015 = call i32 @isatty(i32 noundef %12014) #13
  %.not2294 = icmp eq i32 %12015, 0
  br i1 %.not2294, label %12016, label %12017

12016:                                            ; preds = %12012, %12006
  br label %12017

12017:                                            ; preds = %12012, %12016
  %.str.5.sink6344 = phi ptr [ @.str.5, %12016 ], [ @.str.2, %12012 ]
  store i32 %12007, ptr %1329, align 4, !tbaa !5
  %12018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12019 = load i32, ptr @test_count, align 4, !tbaa !5
  %12020 = load i32, ptr %1275, align 4, !tbaa !5
  %12021 = call ptr @s2n_strerror(i32 noundef %12020, ptr noundef nonnull @.str.4) #13
  %12022 = load i32, ptr %1275, align 4, !tbaa !5
  %12023 = call ptr @s2n_strerror_debug(i32 noundef %12022, ptr noundef nonnull @.str.4) #13
  %12024 = load i32, ptr %1329, align 4, !tbaa !5
  %12025 = call ptr @strerror(i32 noundef %12024) #13
  %12026 = load i32, ptr %1329, align 4, !tbaa !5
  %12027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12018, ptr noundef nonnull %.str.5.sink6344, i32 noundef %12019, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1734, ptr noundef %12021, ptr noundef %12023, ptr noundef %12025, i32 noundef %12026) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12028:                                            ; preds = %12002
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %230) #13
  store i32 -1, ptr %230, align 4, !tbaa !5
  %12029 = load i32, ptr @test_count, align 4, !tbaa !5
  %12030 = add nsw i32 %12029, 1
  store i32 %12030, ptr @test_count, align 4, !tbaa !5
  %12031 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %227, ptr noundef nonnull %11918, ptr noundef nonnull %11976, i32 noundef %11975, ptr noundef nonnull %230, ptr noundef nonnull %229) #13
  %12032 = call zeroext i1 @s2n_result_is_error(i32 %12031)
  br i1 %12032, label %12055, label %12033

12033:                                            ; preds = %12028
  %12034 = load i32, ptr %1329, align 4, !tbaa !5
  %12035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12036 = call i32 @s2n_print_stacktrace(ptr noundef %12035) #13
  %12037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12038 = trunc nuw i8 %12037 to i1
  br i1 %12038, label %12039, label %12043

12039:                                            ; preds = %12033
  %12040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12041 = call i32 @fileno(ptr noundef %12040) #13
  %12042 = call i32 @isatty(i32 noundef %12041) #13
  %.not2122 = icmp eq i32 %12042, 0
  br i1 %.not2122, label %12043, label %12044

12043:                                            ; preds = %12039, %12033
  br label %12044

12044:                                            ; preds = %12039, %12043
  %.str.5.sink6353 = phi ptr [ @.str.5, %12043 ], [ @.str.2, %12039 ]
  store i32 %12034, ptr %1329, align 4, !tbaa !5
  %12045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12046 = load i32, ptr @test_count, align 4, !tbaa !5
  %12047 = load i32, ptr %1275, align 4, !tbaa !5
  %12048 = call ptr @s2n_strerror(i32 noundef %12047, ptr noundef nonnull @.str.4) #13
  %12049 = load i32, ptr %1275, align 4, !tbaa !5
  %12050 = call ptr @s2n_strerror_debug(i32 noundef %12049, ptr noundef nonnull @.str.4) #13
  %12051 = load i32, ptr %1329, align 4, !tbaa !5
  %12052 = call ptr @strerror(i32 noundef %12051) #13
  %12053 = load i32, ptr %1329, align 4, !tbaa !5
  %12054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12045, ptr noundef nonnull %.str.5.sink6353, i32 noundef %12046, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 1738, ptr noundef %12048, ptr noundef %12050, ptr noundef %12052, i32 noundef %12053) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12055:                                            ; preds = %12028
  %12056 = load i32, ptr @test_count, align 4, !tbaa !5
  %12057 = add nsw i32 %12056, 1
  store i32 %12057, ptr @test_count, align 4, !tbaa !5
  %12058 = load i32, ptr %1275, align 4, !tbaa !5
  %12059 = icmp eq i32 %12058, 335544366
  br i1 %12059, label %12082, label %12060

12060:                                            ; preds = %12055
  %12061 = load i32, ptr %1329, align 4, !tbaa !5
  %12062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12063 = call i32 @s2n_print_stacktrace(ptr noundef %12062) #13
  %12064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12065 = trunc nuw i8 %12064 to i1
  br i1 %12065, label %12066, label %12070

12066:                                            ; preds = %12060
  %12067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12068 = call i32 @fileno(ptr noundef %12067) #13
  %12069 = call i32 @isatty(i32 noundef %12068) #13
  %.not2123 = icmp eq i32 %12069, 0
  br i1 %.not2123, label %12070, label %12071

12070:                                            ; preds = %12066, %12060
  br label %12071

12071:                                            ; preds = %12066, %12070
  %.str.5.sink6362 = phi ptr [ @.str.5, %12070 ], [ @.str.2, %12066 ]
  store i32 %12061, ptr %1329, align 4, !tbaa !5
  %12072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12073 = load i32, ptr @test_count, align 4, !tbaa !5
  %12074 = load i32, ptr %1275, align 4, !tbaa !5
  %12075 = call ptr @s2n_strerror(i32 noundef %12074, ptr noundef nonnull @.str.4) #13
  %12076 = load i32, ptr %1275, align 4, !tbaa !5
  %12077 = call ptr @s2n_strerror_debug(i32 noundef %12076, ptr noundef nonnull @.str.4) #13
  %12078 = load i32, ptr %1329, align 4, !tbaa !5
  %12079 = call ptr @strerror(i32 noundef %12078) #13
  %12080 = load i32, ptr %1329, align 4, !tbaa !5
  %12081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12072, ptr noundef nonnull %.str.5.sink6362, i32 noundef %12073, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 1738, ptr noundef %12075, ptr noundef %12077, ptr noundef %12079, i32 noundef %12080) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12082:                                            ; preds = %12055
  %12083 = add nsw i32 %12056, 2
  store i32 %12083, ptr @test_count, align 4, !tbaa !5
  %12084 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %12085 = icmp eq ptr %12084, null
  br i1 %12085, label %12086, label %12108

12086:                                            ; preds = %12082
  %12087 = load i32, ptr %1329, align 4, !tbaa !5
  %12088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12089 = call i32 @s2n_print_stacktrace(ptr noundef %12088) #13
  %12090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12091 = trunc nuw i8 %12090 to i1
  br i1 %12091, label %12092, label %12096

12092:                                            ; preds = %12086
  %12093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12094 = call i32 @fileno(ptr noundef %12093) #13
  %12095 = call i32 @isatty(i32 noundef %12094) #13
  %.not2293 = icmp eq i32 %12095, 0
  br i1 %.not2293, label %12096, label %12097

12096:                                            ; preds = %12092, %12086
  br label %12097

12097:                                            ; preds = %12092, %12096
  %.str.5.sink6371 = phi ptr [ @.str.5, %12096 ], [ @.str.2, %12092 ]
  store i32 %12087, ptr %1329, align 4, !tbaa !5
  %12098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12099 = load i32, ptr @test_count, align 4, !tbaa !5
  %12100 = load i32, ptr %1275, align 4, !tbaa !5
  %12101 = call ptr @s2n_strerror(i32 noundef %12100, ptr noundef nonnull @.str.4) #13
  %12102 = load i32, ptr %1275, align 4, !tbaa !5
  %12103 = call ptr @s2n_strerror_debug(i32 noundef %12102, ptr noundef nonnull @.str.4) #13
  %12104 = load i32, ptr %1329, align 4, !tbaa !5
  %12105 = call ptr @strerror(i32 noundef %12104) #13
  %12106 = load i32, ptr %1329, align 4, !tbaa !5
  %12107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12098, ptr noundef nonnull %.str.5.sink6371, i32 noundef %12099, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1738, ptr noundef %12101, ptr noundef %12103, ptr noundef %12105, i32 noundef %12106) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12108:                                            ; preds = %12082
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %12109 = load i32, ptr @test_count, align 4, !tbaa !5
  %12110 = add nsw i32 %12109, 1
  store i32 %12110, ptr @test_count, align 4, !tbaa !5
  %12111 = load i32, ptr %230, align 4, !tbaa !5
  %12112 = icmp eq i32 %12111, -1
  br i1 %12112, label %12135, label %12113

12113:                                            ; preds = %12108
  %12114 = load i32, ptr %1329, align 4, !tbaa !5
  %12115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12116 = call i32 @s2n_print_stacktrace(ptr noundef %12115) #13
  %12117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12118 = trunc nuw i8 %12117 to i1
  br i1 %12118, label %12119, label %12123

12119:                                            ; preds = %12113
  %12120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12121 = call i32 @fileno(ptr noundef %12120) #13
  %12122 = call i32 @isatty(i32 noundef %12121) #13
  %.not2124 = icmp eq i32 %12122, 0
  br i1 %.not2124, label %12123, label %12124

12123:                                            ; preds = %12119, %12113
  br label %12124

12124:                                            ; preds = %12119, %12123
  %.str.5.sink6380 = phi ptr [ @.str.5, %12123 ], [ @.str.2, %12119 ]
  store i32 %12114, ptr %1329, align 4, !tbaa !5
  %12125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12126 = load i32, ptr @test_count, align 4, !tbaa !5
  %12127 = load i32, ptr %1275, align 4, !tbaa !5
  %12128 = call ptr @s2n_strerror(i32 noundef %12127, ptr noundef nonnull @.str.4) #13
  %12129 = load i32, ptr %1275, align 4, !tbaa !5
  %12130 = call ptr @s2n_strerror_debug(i32 noundef %12129, ptr noundef nonnull @.str.4) #13
  %12131 = load i32, ptr %1329, align 4, !tbaa !5
  %12132 = call ptr @strerror(i32 noundef %12131) #13
  %12133 = load i32, ptr %1329, align 4, !tbaa !5
  %12134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12125, ptr noundef nonnull %.str.5.sink6380, i32 noundef %12126, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 1740, ptr noundef %12128, ptr noundef %12130, ptr noundef %12132, i32 noundef %12133) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12135:                                            ; preds = %12108
  %12136 = call i32 @s2n_connection_free(ptr noundef nonnull %11918) #13
  %12137 = call i32 @s2n_pkey_free(ptr noundef nonnull %229) #13
  %12138 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %227) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %226) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %230) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %229) #13
  %12139 = call i32 @s2n_stuffer_free(ptr noundef nonnull %228) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %228) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %227) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %226) #13
  %12140 = call ptr @s2n_config_new() #13
  %12141 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %12140, ptr noundef nonnull @.str.112) #13
  %12142 = call i32 @s2n_config_free(ptr noundef %12140) #13
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %231) #13
  %12143 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %231) #13
  %12144 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %12145 = load i32, ptr @test_count, align 4, !tbaa !5
  %12146 = add nsw i32 %12145, 1
  store i32 %12146, ptr @test_count, align 4, !tbaa !5
  %12147 = icmp eq ptr %12144, null
  br i1 %12147, label %12148, label %12170

12148:                                            ; preds = %12135
  %12149 = load i32, ptr %1329, align 4, !tbaa !5
  %12150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12151 = call i32 @s2n_print_stacktrace(ptr noundef %12150) #13
  %12152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12153 = trunc nuw i8 %12152 to i1
  br i1 %12153, label %12154, label %12158

12154:                                            ; preds = %12148
  %12155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12156 = call i32 @fileno(ptr noundef %12155) #13
  %12157 = call i32 @isatty(i32 noundef %12156) #13
  %.not2292 = icmp eq i32 %12157, 0
  br i1 %.not2292, label %12158, label %12159

12158:                                            ; preds = %12154, %12148
  br label %12159

12159:                                            ; preds = %12154, %12158
  %.str.5.sink6389 = phi ptr [ @.str.5, %12158 ], [ @.str.2, %12154 ]
  store i32 %12149, ptr %1329, align 4, !tbaa !5
  %12160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12161 = load i32, ptr @test_count, align 4, !tbaa !5
  %12162 = load i32, ptr %1275, align 4, !tbaa !5
  %12163 = call ptr @s2n_strerror(i32 noundef %12162, ptr noundef nonnull @.str.4) #13
  %12164 = load i32, ptr %1275, align 4, !tbaa !5
  %12165 = call ptr @s2n_strerror_debug(i32 noundef %12164, ptr noundef nonnull @.str.4) #13
  %12166 = load i32, ptr %1329, align 4, !tbaa !5
  %12167 = call ptr @strerror(i32 noundef %12166) #13
  %12168 = load i32, ptr %1329, align 4, !tbaa !5
  %12169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12160, ptr noundef nonnull %.str.5.sink6389, i32 noundef %12161, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1761, ptr noundef %12163, ptr noundef %12165, ptr noundef %12167, i32 noundef %12168) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12170:                                            ; preds = %12135
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %232) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %232, i8 0, i64 40, i1 false)
  %12171 = add nsw i32 %12145, 2
  store i32 %12171, ptr @test_count, align 4, !tbaa !5
  %12172 = call i32 @read_file(ptr noundef nonnull %232, ptr noundef nonnull @.str.115, i32 noundef 12000)
  %12173 = icmp eq i32 %12172, -1
  br i1 %12173, label %12174, label %12196

12174:                                            ; preds = %12170
  %12175 = load i32, ptr %1329, align 4, !tbaa !5
  %12176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12177 = call i32 @s2n_print_stacktrace(ptr noundef %12176) #13
  %12178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12179 = trunc nuw i8 %12178 to i1
  br i1 %12179, label %12180, label %12184

12180:                                            ; preds = %12174
  %12181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12182 = call i32 @fileno(ptr noundef %12181) #13
  %12183 = call i32 @isatty(i32 noundef %12182) #13
  %.not2291 = icmp eq i32 %12183, 0
  br i1 %.not2291, label %12184, label %12185

12184:                                            ; preds = %12180, %12174
  br label %12185

12185:                                            ; preds = %12180, %12184
  %.str.5.sink6398 = phi ptr [ @.str.5, %12184 ], [ @.str.2, %12180 ]
  store i32 %12175, ptr %1329, align 4, !tbaa !5
  %12186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12187 = load i32, ptr @test_count, align 4, !tbaa !5
  %12188 = load i32, ptr %1275, align 4, !tbaa !5
  %12189 = call ptr @s2n_strerror(i32 noundef %12188, ptr noundef nonnull @.str.4) #13
  %12190 = load i32, ptr %1275, align 4, !tbaa !5
  %12191 = call ptr @s2n_strerror_debug(i32 noundef %12190, ptr noundef nonnull @.str.4) #13
  %12192 = load i32, ptr %1329, align 4, !tbaa !5
  %12193 = call ptr @strerror(i32 noundef %12192) #13
  %12194 = load i32, ptr %1329, align 4, !tbaa !5
  %12195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12186, ptr noundef nonnull %.str.5.sink6398, i32 noundef %12187, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 1764, ptr noundef %12189, ptr noundef %12191, ptr noundef %12193, i32 noundef %12194) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12196:                                            ; preds = %12170
  %12197 = getelementptr inbounds i8, ptr %232, i64 28
  %12198 = load i32, ptr %12197, align 4, !tbaa !15
  %12199 = getelementptr inbounds i8, ptr %232, i64 24
  %12200 = load i32, ptr %12199, align 8, !tbaa !18
  %12201 = sub i32 %12198, %12200
  %12202 = load i32, ptr @test_count, align 4, !tbaa !5
  %12203 = add nsw i32 %12202, 1
  store i32 %12203, ptr @test_count, align 4, !tbaa !5
  %.not2125 = icmp eq i32 %12198, %12200
  br i1 %.not2125, label %12204, label %12226

12204:                                            ; preds = %12196
  %12205 = load i32, ptr %1329, align 4, !tbaa !5
  %12206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12207 = call i32 @s2n_print_stacktrace(ptr noundef %12206) #13
  %12208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12209 = trunc nuw i8 %12208 to i1
  br i1 %12209, label %12210, label %12214

12210:                                            ; preds = %12204
  %12211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12212 = call i32 @fileno(ptr noundef %12211) #13
  %12213 = call i32 @isatty(i32 noundef %12212) #13
  %.not2126 = icmp eq i32 %12213, 0
  br i1 %.not2126, label %12214, label %12215

12214:                                            ; preds = %12210, %12204
  br label %12215

12215:                                            ; preds = %12210, %12214
  %.str.5.sink6407 = phi ptr [ @.str.5, %12214 ], [ @.str.2, %12210 ]
  store i32 %12205, ptr %1329, align 4, !tbaa !5
  %12216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12217 = load i32, ptr @test_count, align 4, !tbaa !5
  %12218 = load i32, ptr %1275, align 4, !tbaa !5
  %12219 = call ptr @s2n_strerror(i32 noundef %12218, ptr noundef nonnull @.str.4) #13
  %12220 = load i32, ptr %1275, align 4, !tbaa !5
  %12221 = call ptr @s2n_strerror_debug(i32 noundef %12220, ptr noundef nonnull @.str.4) #13
  %12222 = load i32, ptr %1329, align 4, !tbaa !5
  %12223 = call ptr @strerror(i32 noundef %12222) #13
  %12224 = load i32, ptr %1329, align 4, !tbaa !5
  %12225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12216, ptr noundef nonnull %.str.5.sink6407, i32 noundef %12217, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 1766, ptr noundef %12219, ptr noundef %12221, ptr noundef %12223, i32 noundef %12224) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12226:                                            ; preds = %12196
  %12227 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %232, i32 noundef %12201) #13
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %233) #13
  %12228 = load i32, ptr @test_count, align 4, !tbaa !5
  %12229 = add nsw i32 %12228, 1
  store i32 %12229, ptr @test_count, align 4, !tbaa !5
  %12230 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %233) #13
  %12231 = icmp eq i32 %12230, -1
  br i1 %12231, label %12232, label %12254

12232:                                            ; preds = %12226
  %12233 = load i32, ptr %1329, align 4, !tbaa !5
  %12234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12235 = call i32 @s2n_print_stacktrace(ptr noundef %12234) #13
  %12236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12237 = trunc nuw i8 %12236 to i1
  br i1 %12237, label %12238, label %12242

12238:                                            ; preds = %12232
  %12239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12240 = call i32 @fileno(ptr noundef %12239) #13
  %12241 = call i32 @isatty(i32 noundef %12240) #13
  %.not2290 = icmp eq i32 %12241, 0
  br i1 %.not2290, label %12242, label %12243

12242:                                            ; preds = %12238, %12232
  br label %12243

12243:                                            ; preds = %12238, %12242
  %.str.5.sink6416 = phi ptr [ @.str.5, %12242 ], [ @.str.2, %12238 ]
  store i32 %12233, ptr %1329, align 4, !tbaa !5
  %12244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12245 = load i32, ptr @test_count, align 4, !tbaa !5
  %12246 = load i32, ptr %1275, align 4, !tbaa !5
  %12247 = call ptr @s2n_strerror(i32 noundef %12246, ptr noundef nonnull @.str.4) #13
  %12248 = load i32, ptr %1275, align 4, !tbaa !5
  %12249 = call ptr @s2n_strerror_debug(i32 noundef %12248, ptr noundef nonnull @.str.4) #13
  %12250 = load i32, ptr %1329, align 4, !tbaa !5
  %12251 = call ptr @strerror(i32 noundef %12250) #13
  %12252 = load i32, ptr %1329, align 4, !tbaa !5
  %12253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12244, ptr noundef nonnull %.str.5.sink6416, i32 noundef %12245, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1770, ptr noundef %12247, ptr noundef %12249, ptr noundef %12251, i32 noundef %12252) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12254:                                            ; preds = %12226
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %234) #13
  store i32 -1, ptr %234, align 4, !tbaa !5
  %12255 = load i32, ptr @test_count, align 4, !tbaa !5
  %12256 = add nsw i32 %12255, 1
  store i32 %12256, ptr @test_count, align 4, !tbaa !5
  %12257 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %231, ptr noundef nonnull %12144, ptr noundef %12227, i32 noundef %12201, ptr noundef nonnull %234, ptr noundef nonnull %233) #13
  %12258 = call zeroext i1 @s2n_result_is_ok(i32 %12257)
  br i1 %12258, label %12281, label %12259

12259:                                            ; preds = %12254
  %12260 = load i32, ptr %1329, align 4, !tbaa !5
  %12261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12262 = call i32 @s2n_print_stacktrace(ptr noundef %12261) #13
  %12263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12264 = trunc nuw i8 %12263 to i1
  br i1 %12264, label %12265, label %12269

12265:                                            ; preds = %12259
  %12266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12267 = call i32 @fileno(ptr noundef %12266) #13
  %12268 = call i32 @isatty(i32 noundef %12267) #13
  %.not2127 = icmp eq i32 %12268, 0
  br i1 %.not2127, label %12269, label %12270

12269:                                            ; preds = %12265, %12259
  br label %12270

12270:                                            ; preds = %12265, %12269
  %.str.5.sink6425 = phi ptr [ @.str.5, %12269 ], [ @.str.2, %12265 ]
  store i32 %12260, ptr %1329, align 4, !tbaa !5
  %12271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12272 = load i32, ptr @test_count, align 4, !tbaa !5
  %12273 = load i32, ptr %1275, align 4, !tbaa !5
  %12274 = call ptr @s2n_strerror(i32 noundef %12273, ptr noundef nonnull @.str.4) #13
  %12275 = load i32, ptr %1275, align 4, !tbaa !5
  %12276 = call ptr @s2n_strerror_debug(i32 noundef %12275, ptr noundef nonnull @.str.4) #13
  %12277 = load i32, ptr %1329, align 4, !tbaa !5
  %12278 = call ptr @strerror(i32 noundef %12277) #13
  %12279 = load i32, ptr %1329, align 4, !tbaa !5
  %12280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12271, ptr noundef nonnull %.str.5.sink6425, i32 noundef %12272, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1772, ptr noundef %12274, ptr noundef %12276, ptr noundef %12278, i32 noundef %12279) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12281:                                            ; preds = %12254
  %12282 = call i32 @s2n_stuffer_free(ptr noundef nonnull %232) #13
  %12283 = load i32, ptr @test_count, align 4, !tbaa !5
  %12284 = add nsw i32 %12283, 1
  store i32 %12284, ptr @test_count, align 4, !tbaa !5
  %12285 = load i32, ptr %234, align 4, !tbaa !5
  %12286 = icmp eq i32 %12285, 0
  br i1 %12286, label %12309, label %12287

12287:                                            ; preds = %12281
  %12288 = load i32, ptr %1329, align 4, !tbaa !5
  %12289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12290 = call i32 @s2n_print_stacktrace(ptr noundef %12289) #13
  %12291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12292 = trunc nuw i8 %12291 to i1
  br i1 %12292, label %12293, label %12297

12293:                                            ; preds = %12287
  %12294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12295 = call i32 @fileno(ptr noundef %12294) #13
  %12296 = call i32 @isatty(i32 noundef %12295) #13
  %.not2128 = icmp eq i32 %12296, 0
  br i1 %.not2128, label %12297, label %12298

12297:                                            ; preds = %12293, %12287
  br label %12298

12298:                                            ; preds = %12293, %12297
  %.str.5.sink6434 = phi ptr [ @.str.5, %12297 ], [ @.str.2, %12293 ]
  store i32 %12288, ptr %1329, align 4, !tbaa !5
  %12299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12300 = load i32, ptr @test_count, align 4, !tbaa !5
  %12301 = load i32, ptr %1275, align 4, !tbaa !5
  %12302 = call ptr @s2n_strerror(i32 noundef %12301, ptr noundef nonnull @.str.4) #13
  %12303 = load i32, ptr %1275, align 4, !tbaa !5
  %12304 = call ptr @s2n_strerror_debug(i32 noundef %12303, ptr noundef nonnull @.str.4) #13
  %12305 = load i32, ptr %1329, align 4, !tbaa !5
  %12306 = call ptr @strerror(i32 noundef %12305) #13
  %12307 = load i32, ptr %1329, align 4, !tbaa !5
  %12308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12299, ptr noundef nonnull %.str.5.sink6434, i32 noundef %12300, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 1774, ptr noundef %12302, ptr noundef %12304, ptr noundef %12306, i32 noundef %12307) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12309:                                            ; preds = %12281
  %12310 = call i32 @s2n_connection_free(ptr noundef nonnull %12144) #13
  %12311 = call i32 @s2n_pkey_free(ptr noundef nonnull %233) #13
  %12312 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %231) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %234) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %233) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %232) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %231) #13
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %235) #13
  %12313 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %235) #13
  %12314 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %12315 = load i32, ptr @test_count, align 4, !tbaa !5
  %12316 = add nsw i32 %12315, 1
  store i32 %12316, ptr @test_count, align 4, !tbaa !5
  %12317 = icmp eq ptr %12314, null
  br i1 %12317, label %12318, label %12340

12318:                                            ; preds = %12309
  %12319 = load i32, ptr %1329, align 4, !tbaa !5
  %12320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12321 = call i32 @s2n_print_stacktrace(ptr noundef %12320) #13
  %12322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12323 = trunc nuw i8 %12322 to i1
  br i1 %12323, label %12324, label %12328

12324:                                            ; preds = %12318
  %12325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12326 = call i32 @fileno(ptr noundef %12325) #13
  %12327 = call i32 @isatty(i32 noundef %12326) #13
  %.not2289 = icmp eq i32 %12327, 0
  br i1 %.not2289, label %12328, label %12329

12328:                                            ; preds = %12324, %12318
  br label %12329

12329:                                            ; preds = %12324, %12328
  %.str.5.sink6443 = phi ptr [ @.str.5, %12328 ], [ @.str.2, %12324 ]
  store i32 %12319, ptr %1329, align 4, !tbaa !5
  %12330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12331 = load i32, ptr @test_count, align 4, !tbaa !5
  %12332 = load i32, ptr %1275, align 4, !tbaa !5
  %12333 = call ptr @s2n_strerror(i32 noundef %12332, ptr noundef nonnull @.str.4) #13
  %12334 = load i32, ptr %1275, align 4, !tbaa !5
  %12335 = call ptr @s2n_strerror_debug(i32 noundef %12334, ptr noundef nonnull @.str.4) #13
  %12336 = load i32, ptr %1329, align 4, !tbaa !5
  %12337 = call ptr @strerror(i32 noundef %12336) #13
  %12338 = load i32, ptr %1329, align 4, !tbaa !5
  %12339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12330, ptr noundef nonnull %.str.5.sink6443, i32 noundef %12331, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1785, ptr noundef %12333, ptr noundef %12335, ptr noundef %12337, i32 noundef %12338) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12340:                                            ; preds = %12309
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %236) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %236, i8 0, i64 40, i1 false)
  %12341 = add nsw i32 %12315, 2
  store i32 %12341, ptr @test_count, align 4, !tbaa !5
  %12342 = call i32 @read_file(ptr noundef nonnull %236, ptr noundef nonnull @.str.118, i32 noundef 12000)
  %12343 = icmp eq i32 %12342, -1
  br i1 %12343, label %12344, label %12366

12344:                                            ; preds = %12340
  %12345 = load i32, ptr %1329, align 4, !tbaa !5
  %12346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12347 = call i32 @s2n_print_stacktrace(ptr noundef %12346) #13
  %12348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12349 = trunc nuw i8 %12348 to i1
  br i1 %12349, label %12350, label %12354

12350:                                            ; preds = %12344
  %12351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12352 = call i32 @fileno(ptr noundef %12351) #13
  %12353 = call i32 @isatty(i32 noundef %12352) #13
  %.not2288 = icmp eq i32 %12353, 0
  br i1 %.not2288, label %12354, label %12355

12354:                                            ; preds = %12350, %12344
  br label %12355

12355:                                            ; preds = %12350, %12354
  %.str.5.sink6452 = phi ptr [ @.str.5, %12354 ], [ @.str.2, %12350 ]
  store i32 %12345, ptr %1329, align 4, !tbaa !5
  %12356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12357 = load i32, ptr @test_count, align 4, !tbaa !5
  %12358 = load i32, ptr %1275, align 4, !tbaa !5
  %12359 = call ptr @s2n_strerror(i32 noundef %12358, ptr noundef nonnull @.str.4) #13
  %12360 = load i32, ptr %1275, align 4, !tbaa !5
  %12361 = call ptr @s2n_strerror_debug(i32 noundef %12360, ptr noundef nonnull @.str.4) #13
  %12362 = load i32, ptr %1329, align 4, !tbaa !5
  %12363 = call ptr @strerror(i32 noundef %12362) #13
  %12364 = load i32, ptr %1329, align 4, !tbaa !5
  %12365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12356, ptr noundef nonnull %.str.5.sink6452, i32 noundef %12357, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.1, i32 noundef 1788, ptr noundef %12359, ptr noundef %12361, ptr noundef %12363, i32 noundef %12364) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12366:                                            ; preds = %12340
  %12367 = getelementptr inbounds i8, ptr %236, i64 28
  %12368 = load i32, ptr %12367, align 4, !tbaa !15
  %12369 = getelementptr inbounds i8, ptr %236, i64 24
  %12370 = load i32, ptr %12369, align 8, !tbaa !18
  %12371 = sub i32 %12368, %12370
  %12372 = load i32, ptr @test_count, align 4, !tbaa !5
  %12373 = add nsw i32 %12372, 1
  store i32 %12373, ptr @test_count, align 4, !tbaa !5
  %.not2129 = icmp eq i32 %12368, %12370
  br i1 %.not2129, label %12374, label %12396

12374:                                            ; preds = %12366
  %12375 = load i32, ptr %1329, align 4, !tbaa !5
  %12376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12377 = call i32 @s2n_print_stacktrace(ptr noundef %12376) #13
  %12378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12379 = trunc nuw i8 %12378 to i1
  br i1 %12379, label %12380, label %12384

12380:                                            ; preds = %12374
  %12381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12382 = call i32 @fileno(ptr noundef %12381) #13
  %12383 = call i32 @isatty(i32 noundef %12382) #13
  %.not2130 = icmp eq i32 %12383, 0
  br i1 %.not2130, label %12384, label %12385

12384:                                            ; preds = %12380, %12374
  br label %12385

12385:                                            ; preds = %12380, %12384
  %.str.5.sink6461 = phi ptr [ @.str.5, %12384 ], [ @.str.2, %12380 ]
  store i32 %12375, ptr %1329, align 4, !tbaa !5
  %12386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12387 = load i32, ptr @test_count, align 4, !tbaa !5
  %12388 = load i32, ptr %1275, align 4, !tbaa !5
  %12389 = call ptr @s2n_strerror(i32 noundef %12388, ptr noundef nonnull @.str.4) #13
  %12390 = load i32, ptr %1275, align 4, !tbaa !5
  %12391 = call ptr @s2n_strerror_debug(i32 noundef %12390, ptr noundef nonnull @.str.4) #13
  %12392 = load i32, ptr %1329, align 4, !tbaa !5
  %12393 = call ptr @strerror(i32 noundef %12392) #13
  %12394 = load i32, ptr %1329, align 4, !tbaa !5
  %12395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12386, ptr noundef nonnull %.str.5.sink6461, i32 noundef %12387, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 1790, ptr noundef %12389, ptr noundef %12391, ptr noundef %12393, i32 noundef %12394) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12396:                                            ; preds = %12366
  %12397 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %236, i32 noundef %12371) #13
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %237) #13
  %12398 = load i32, ptr @test_count, align 4, !tbaa !5
  %12399 = add nsw i32 %12398, 1
  store i32 %12399, ptr @test_count, align 4, !tbaa !5
  %12400 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %237) #13
  %12401 = icmp eq i32 %12400, -1
  br i1 %12401, label %12402, label %12424

12402:                                            ; preds = %12396
  %12403 = load i32, ptr %1329, align 4, !tbaa !5
  %12404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12405 = call i32 @s2n_print_stacktrace(ptr noundef %12404) #13
  %12406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12407 = trunc nuw i8 %12406 to i1
  br i1 %12407, label %12408, label %12412

12408:                                            ; preds = %12402
  %12409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12410 = call i32 @fileno(ptr noundef %12409) #13
  %12411 = call i32 @isatty(i32 noundef %12410) #13
  %.not2287 = icmp eq i32 %12411, 0
  br i1 %.not2287, label %12412, label %12413

12412:                                            ; preds = %12408, %12402
  br label %12413

12413:                                            ; preds = %12408, %12412
  %.str.5.sink6470 = phi ptr [ @.str.5, %12412 ], [ @.str.2, %12408 ]
  store i32 %12403, ptr %1329, align 4, !tbaa !5
  %12414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12415 = load i32, ptr @test_count, align 4, !tbaa !5
  %12416 = load i32, ptr %1275, align 4, !tbaa !5
  %12417 = call ptr @s2n_strerror(i32 noundef %12416, ptr noundef nonnull @.str.4) #13
  %12418 = load i32, ptr %1275, align 4, !tbaa !5
  %12419 = call ptr @s2n_strerror_debug(i32 noundef %12418, ptr noundef nonnull @.str.4) #13
  %12420 = load i32, ptr %1329, align 4, !tbaa !5
  %12421 = call ptr @strerror(i32 noundef %12420) #13
  %12422 = load i32, ptr %1329, align 4, !tbaa !5
  %12423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12414, ptr noundef nonnull %.str.5.sink6470, i32 noundef %12415, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1794, ptr noundef %12417, ptr noundef %12419, ptr noundef %12421, i32 noundef %12422) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12424:                                            ; preds = %12396
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %238) #13
  store i32 -1, ptr %238, align 4, !tbaa !5
  %12425 = load i32, ptr @test_count, align 4, !tbaa !5
  %12426 = add nsw i32 %12425, 1
  store i32 %12426, ptr @test_count, align 4, !tbaa !5
  %12427 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %235, ptr noundef nonnull %12314, ptr noundef %12397, i32 noundef %12371, ptr noundef nonnull %238, ptr noundef nonnull %237) #13
  %12428 = call zeroext i1 @s2n_result_is_error(i32 %12427)
  br i1 %12428, label %12451, label %12429

12429:                                            ; preds = %12424
  %12430 = load i32, ptr %1329, align 4, !tbaa !5
  %12431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12432 = call i32 @s2n_print_stacktrace(ptr noundef %12431) #13
  %12433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12434 = trunc nuw i8 %12433 to i1
  br i1 %12434, label %12435, label %12439

12435:                                            ; preds = %12429
  %12436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12437 = call i32 @fileno(ptr noundef %12436) #13
  %12438 = call i32 @isatty(i32 noundef %12437) #13
  %.not2131 = icmp eq i32 %12438, 0
  br i1 %.not2131, label %12439, label %12440

12439:                                            ; preds = %12435, %12429
  br label %12440

12440:                                            ; preds = %12435, %12439
  %.str.5.sink6479 = phi ptr [ @.str.5, %12439 ], [ @.str.2, %12435 ]
  store i32 %12430, ptr %1329, align 4, !tbaa !5
  %12441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12442 = load i32, ptr @test_count, align 4, !tbaa !5
  %12443 = load i32, ptr %1275, align 4, !tbaa !5
  %12444 = call ptr @s2n_strerror(i32 noundef %12443, ptr noundef nonnull @.str.4) #13
  %12445 = load i32, ptr %1275, align 4, !tbaa !5
  %12446 = call ptr @s2n_strerror_debug(i32 noundef %12445, ptr noundef nonnull @.str.4) #13
  %12447 = load i32, ptr %1329, align 4, !tbaa !5
  %12448 = call ptr @strerror(i32 noundef %12447) #13
  %12449 = load i32, ptr %1329, align 4, !tbaa !5
  %12450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12441, ptr noundef nonnull %.str.5.sink6479, i32 noundef %12442, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 1800, ptr noundef %12444, ptr noundef %12446, ptr noundef %12448, i32 noundef %12449) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12451:                                            ; preds = %12424
  %12452 = load i32, ptr @test_count, align 4, !tbaa !5
  %12453 = add nsw i32 %12452, 1
  store i32 %12453, ptr @test_count, align 4, !tbaa !5
  %12454 = load i32, ptr %1275, align 4, !tbaa !5
  %12455 = icmp eq i32 %12454, 335544344
  br i1 %12455, label %12478, label %12456

12456:                                            ; preds = %12451
  %12457 = load i32, ptr %1329, align 4, !tbaa !5
  %12458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12459 = call i32 @s2n_print_stacktrace(ptr noundef %12458) #13
  %12460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12461 = trunc nuw i8 %12460 to i1
  br i1 %12461, label %12462, label %12466

12462:                                            ; preds = %12456
  %12463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12464 = call i32 @fileno(ptr noundef %12463) #13
  %12465 = call i32 @isatty(i32 noundef %12464) #13
  %.not2132 = icmp eq i32 %12465, 0
  br i1 %.not2132, label %12466, label %12467

12466:                                            ; preds = %12462, %12456
  br label %12467

12467:                                            ; preds = %12462, %12466
  %.str.5.sink6488 = phi ptr [ @.str.5, %12466 ], [ @.str.2, %12462 ]
  store i32 %12457, ptr %1329, align 4, !tbaa !5
  %12468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12469 = load i32, ptr @test_count, align 4, !tbaa !5
  %12470 = load i32, ptr %1275, align 4, !tbaa !5
  %12471 = call ptr @s2n_strerror(i32 noundef %12470, ptr noundef nonnull @.str.4) #13
  %12472 = load i32, ptr %1275, align 4, !tbaa !5
  %12473 = call ptr @s2n_strerror_debug(i32 noundef %12472, ptr noundef nonnull @.str.4) #13
  %12474 = load i32, ptr %1329, align 4, !tbaa !5
  %12475 = call ptr @strerror(i32 noundef %12474) #13
  %12476 = load i32, ptr %1329, align 4, !tbaa !5
  %12477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12468, ptr noundef nonnull %.str.5.sink6488, i32 noundef %12469, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 1800, ptr noundef %12471, ptr noundef %12473, ptr noundef %12475, i32 noundef %12476) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12478:                                            ; preds = %12451
  %12479 = add nsw i32 %12452, 2
  store i32 %12479, ptr @test_count, align 4, !tbaa !5
  %12480 = call ptr @s2n_strerror_debug(i32 noundef 335544344, ptr noundef nonnull @.str.4) #13
  %12481 = icmp eq ptr %12480, null
  br i1 %12481, label %12482, label %12504

12482:                                            ; preds = %12478
  %12483 = load i32, ptr %1329, align 4, !tbaa !5
  %12484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12485 = call i32 @s2n_print_stacktrace(ptr noundef %12484) #13
  %12486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12487 = trunc nuw i8 %12486 to i1
  br i1 %12487, label %12488, label %12492

12488:                                            ; preds = %12482
  %12489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12490 = call i32 @fileno(ptr noundef %12489) #13
  %12491 = call i32 @isatty(i32 noundef %12490) #13
  %.not2286 = icmp eq i32 %12491, 0
  br i1 %.not2286, label %12492, label %12493

12492:                                            ; preds = %12488, %12482
  br label %12493

12493:                                            ; preds = %12488, %12492
  %.str.5.sink6497 = phi ptr [ @.str.5, %12492 ], [ @.str.2, %12488 ]
  store i32 %12483, ptr %1329, align 4, !tbaa !5
  %12494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12495 = load i32, ptr @test_count, align 4, !tbaa !5
  %12496 = load i32, ptr %1275, align 4, !tbaa !5
  %12497 = call ptr @s2n_strerror(i32 noundef %12496, ptr noundef nonnull @.str.4) #13
  %12498 = load i32, ptr %1275, align 4, !tbaa !5
  %12499 = call ptr @s2n_strerror_debug(i32 noundef %12498, ptr noundef nonnull @.str.4) #13
  %12500 = load i32, ptr %1329, align 4, !tbaa !5
  %12501 = call ptr @strerror(i32 noundef %12500) #13
  %12502 = load i32, ptr %1329, align 4, !tbaa !5
  %12503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12494, ptr noundef nonnull %.str.5.sink6497, i32 noundef %12495, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1800, ptr noundef %12497, ptr noundef %12499, ptr noundef %12501, i32 noundef %12502) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12504:                                            ; preds = %12478
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %12505 = call i32 @s2n_stuffer_free(ptr noundef nonnull %236) #13
  %12506 = call i32 @s2n_connection_free(ptr noundef nonnull %12314) #13
  %12507 = call i32 @s2n_pkey_free(ptr noundef nonnull %237) #13
  %12508 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %235) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %238) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %237) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %236) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %235) #13
  %12509 = call zeroext i1 @s2n_libcrypto_is_awslc() #13
  br i1 %12509, label %12510, label %12871

12510:                                            ; preds = %12504
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %239) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %239, i8 0, i64 56, i1 false)
  %12511 = load i32, ptr @test_count, align 4, !tbaa !5
  %12512 = add nsw i32 %12511, 1
  store i32 %12512, ptr @test_count, align 4, !tbaa !5
  %12513 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %239) #13
  %12514 = icmp eq i32 %12513, -1
  br i1 %12514, label %12515, label %12537

12515:                                            ; preds = %12510
  %12516 = load i32, ptr %1329, align 4, !tbaa !5
  %12517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12518 = call i32 @s2n_print_stacktrace(ptr noundef %12517) #13
  %12519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12520 = trunc nuw i8 %12519 to i1
  br i1 %12520, label %12521, label %12525

12521:                                            ; preds = %12515
  %12522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12523 = call i32 @fileno(ptr noundef %12522) #13
  %12524 = call i32 @isatty(i32 noundef %12523) #13
  %.not2285 = icmp eq i32 %12524, 0
  br i1 %.not2285, label %12525, label %12526

12525:                                            ; preds = %12521, %12515
  br label %12526

12526:                                            ; preds = %12521, %12525
  %.str.5.sink6506 = phi ptr [ @.str.5, %12525 ], [ @.str.2, %12521 ]
  store i32 %12516, ptr %1329, align 4, !tbaa !5
  %12527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12528 = load i32, ptr @test_count, align 4, !tbaa !5
  %12529 = load i32, ptr %1275, align 4, !tbaa !5
  %12530 = call ptr @s2n_strerror(i32 noundef %12529, ptr noundef nonnull @.str.4) #13
  %12531 = load i32, ptr %1275, align 4, !tbaa !5
  %12532 = call ptr @s2n_strerror_debug(i32 noundef %12531, ptr noundef nonnull @.str.4) #13
  %12533 = load i32, ptr %1329, align 4, !tbaa !5
  %12534 = call ptr @strerror(i32 noundef %12533) #13
  %12535 = load i32, ptr %1329, align 4, !tbaa !5
  %12536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12527, ptr noundef nonnull %.str.5.sink6506, i32 noundef %12528, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.1, i32 noundef 1811, ptr noundef %12530, ptr noundef %12532, ptr noundef %12534, i32 noundef %12535) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12537:                                            ; preds = %12510
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %240) #13
  %12538 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %12538, ptr %240, align 8, !tbaa !9
  %12539 = load i32, ptr @test_count, align 4, !tbaa !5
  %12540 = add nsw i32 %12539, 1
  store i32 %12540, ptr @test_count, align 4, !tbaa !5
  %12541 = icmp eq ptr %12538, null
  br i1 %12541, label %12542, label %12564

12542:                                            ; preds = %12537
  %12543 = load i32, ptr %1329, align 4, !tbaa !5
  %12544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12545 = call i32 @s2n_print_stacktrace(ptr noundef %12544) #13
  %12546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12547 = trunc nuw i8 %12546 to i1
  br i1 %12547, label %12548, label %12552

12548:                                            ; preds = %12542
  %12549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12550 = call i32 @fileno(ptr noundef %12549) #13
  %12551 = call i32 @isatty(i32 noundef %12550) #13
  %.not2284 = icmp eq i32 %12551, 0
  br i1 %.not2284, label %12552, label %12553

12552:                                            ; preds = %12548, %12542
  br label %12553

12553:                                            ; preds = %12548, %12552
  %.str.5.sink6515 = phi ptr [ @.str.5, %12552 ], [ @.str.2, %12548 ]
  store i32 %12543, ptr %1329, align 4, !tbaa !5
  %12554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12555 = load i32, ptr @test_count, align 4, !tbaa !5
  %12556 = load i32, ptr %1275, align 4, !tbaa !5
  %12557 = call ptr @s2n_strerror(i32 noundef %12556, ptr noundef nonnull @.str.4) #13
  %12558 = load i32, ptr %1275, align 4, !tbaa !5
  %12559 = call ptr @s2n_strerror_debug(i32 noundef %12558, ptr noundef nonnull @.str.4) #13
  %12560 = load i32, ptr %1329, align 4, !tbaa !5
  %12561 = call ptr @strerror(i32 noundef %12560) #13
  %12562 = load i32, ptr %1329, align 4, !tbaa !5
  %12563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12554, ptr noundef nonnull %.str.5.sink6515, i32 noundef %12555, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 1815, ptr noundef %12557, ptr noundef %12559, ptr noundef %12561, i32 noundef %12562) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12564:                                            ; preds = %12537
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %241) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %241, i8 0, i64 12000, i1 false)
  %12565 = add nsw i32 %12539, 2
  store i32 %12565, ptr @test_count, align 4, !tbaa !5
  %12566 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.123, ptr noundef nonnull %241, i64 noundef 12000) #13
  %12567 = icmp eq i32 %12566, -1
  br i1 %12567, label %12568, label %12590

12568:                                            ; preds = %12564
  %12569 = load i32, ptr %1329, align 4, !tbaa !5
  %12570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12571 = call i32 @s2n_print_stacktrace(ptr noundef %12570) #13
  %12572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12573 = trunc nuw i8 %12572 to i1
  br i1 %12573, label %12574, label %12578

12574:                                            ; preds = %12568
  %12575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12576 = call i32 @fileno(ptr noundef %12575) #13
  %12577 = call i32 @isatty(i32 noundef %12576) #13
  %.not2283 = icmp eq i32 %12577, 0
  br i1 %.not2283, label %12578, label %12579

12578:                                            ; preds = %12574, %12568
  br label %12579

12579:                                            ; preds = %12574, %12578
  %.str.5.sink6524 = phi ptr [ @.str.5, %12578 ], [ @.str.2, %12574 ]
  store i32 %12569, ptr %1329, align 4, !tbaa !5
  %12580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12581 = load i32, ptr @test_count, align 4, !tbaa !5
  %12582 = load i32, ptr %1275, align 4, !tbaa !5
  %12583 = call ptr @s2n_strerror(i32 noundef %12582, ptr noundef nonnull @.str.4) #13
  %12584 = load i32, ptr %1275, align 4, !tbaa !5
  %12585 = call ptr @s2n_strerror_debug(i32 noundef %12584, ptr noundef nonnull @.str.4) #13
  %12586 = load i32, ptr %1329, align 4, !tbaa !5
  %12587 = call ptr @strerror(i32 noundef %12586) #13
  %12588 = load i32, ptr %1329, align 4, !tbaa !5
  %12589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12580, ptr noundef nonnull %.str.5.sink6524, i32 noundef %12581, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 1818, ptr noundef %12583, ptr noundef %12585, ptr noundef %12587, i32 noundef %12588) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12590:                                            ; preds = %12564
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %242) #13
  %12591 = call ptr @s2n_cert_chain_and_key_new() #13
  store ptr %12591, ptr %242, align 8, !tbaa !9
  %12592 = load i32, ptr @test_count, align 4, !tbaa !5
  %12593 = add nsw i32 %12592, 1
  store i32 %12593, ptr @test_count, align 4, !tbaa !5
  %12594 = call i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef %12591, ptr noundef nonnull %241) #13
  %12595 = icmp eq i32 %12594, -1
  br i1 %12595, label %12596, label %12618

12596:                                            ; preds = %12590
  %12597 = load i32, ptr %1329, align 4, !tbaa !5
  %12598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12599 = call i32 @s2n_print_stacktrace(ptr noundef %12598) #13
  %12600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12601 = trunc nuw i8 %12600 to i1
  br i1 %12601, label %12602, label %12606

12602:                                            ; preds = %12596
  %12603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12604 = call i32 @fileno(ptr noundef %12603) #13
  %12605 = call i32 @isatty(i32 noundef %12604) #13
  %.not2282 = icmp eq i32 %12605, 0
  br i1 %.not2282, label %12606, label %12607

12606:                                            ; preds = %12602, %12596
  br label %12607

12607:                                            ; preds = %12602, %12606
  %.str.5.sink6533 = phi ptr [ @.str.5, %12606 ], [ @.str.2, %12602 ]
  store i32 %12597, ptr %1329, align 4, !tbaa !5
  %12608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12609 = load i32, ptr @test_count, align 4, !tbaa !5
  %12610 = load i32, ptr %1275, align 4, !tbaa !5
  %12611 = call ptr @s2n_strerror(i32 noundef %12610, ptr noundef nonnull @.str.4) #13
  %12612 = load i32, ptr %1275, align 4, !tbaa !5
  %12613 = call ptr @s2n_strerror_debug(i32 noundef %12612, ptr noundef nonnull @.str.4) #13
  %12614 = load i32, ptr %1329, align 4, !tbaa !5
  %12615 = call ptr @strerror(i32 noundef %12614) #13
  %12616 = load i32, ptr %1329, align 4, !tbaa !5
  %12617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12608, ptr noundef nonnull %.str.5.sink6533, i32 noundef %12609, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.1, i32 noundef 1822, ptr noundef %12611, ptr noundef %12613, ptr noundef %12615, i32 noundef %12616) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12618:                                            ; preds = %12590
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %243) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %243, i8 0, i64 40, i1 false)
  %12619 = load i32, ptr @test_count, align 4, !tbaa !5
  %12620 = add nsw i32 %12619, 1
  store i32 %12620, ptr @test_count, align 4, !tbaa !5
  %12621 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %243, i32 noundef 0) #13
  %12622 = icmp eq i32 %12621, -1
  br i1 %12622, label %12623, label %12645

12623:                                            ; preds = %12618
  %12624 = load i32, ptr %1329, align 4, !tbaa !5
  %12625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12626 = call i32 @s2n_print_stacktrace(ptr noundef %12625) #13
  %12627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12628 = trunc nuw i8 %12627 to i1
  br i1 %12628, label %12629, label %12633

12629:                                            ; preds = %12623
  %12630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12631 = call i32 @fileno(ptr noundef %12630) #13
  %12632 = call i32 @isatty(i32 noundef %12631) #13
  %.not2281 = icmp eq i32 %12632, 0
  br i1 %.not2281, label %12633, label %12634

12633:                                            ; preds = %12629, %12623
  br label %12634

12634:                                            ; preds = %12629, %12633
  %.str.5.sink6542 = phi ptr [ @.str.5, %12633 ], [ @.str.2, %12629 ]
  store i32 %12624, ptr %1329, align 4, !tbaa !5
  %12635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12636 = load i32, ptr @test_count, align 4, !tbaa !5
  %12637 = load i32, ptr %1275, align 4, !tbaa !5
  %12638 = call ptr @s2n_strerror(i32 noundef %12637, ptr noundef nonnull @.str.4) #13
  %12639 = load i32, ptr %1275, align 4, !tbaa !5
  %12640 = call ptr @s2n_strerror_debug(i32 noundef %12639, ptr noundef nonnull @.str.4) #13
  %12641 = load i32, ptr %1329, align 4, !tbaa !5
  %12642 = call ptr @strerror(i32 noundef %12641) #13
  %12643 = load i32, ptr %1329, align 4, !tbaa !5
  %12644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12635, ptr noundef nonnull %.str.5.sink6542, i32 noundef %12636, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.1, i32 noundef 1825, ptr noundef %12638, ptr noundef %12640, ptr noundef %12642, i32 noundef %12643) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12645:                                            ; preds = %12618
  %12646 = load i32, ptr @test_count, align 4, !tbaa !5
  %12647 = add nsw i32 %12646, 1
  store i32 %12647, ptr @test_count, align 4, !tbaa !5
  %12648 = load ptr, ptr %240, align 8, !tbaa !9
  %12649 = load ptr, ptr %242, align 8, !tbaa !9
  %12650 = call i32 @s2n_send_cert_chain(ptr noundef %12648, ptr noundef nonnull %243, ptr noundef %12649) #13
  %12651 = icmp eq i32 %12650, -1
  br i1 %12651, label %12652, label %12674

12652:                                            ; preds = %12645
  %12653 = load i32, ptr %1329, align 4, !tbaa !5
  %12654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12655 = call i32 @s2n_print_stacktrace(ptr noundef %12654) #13
  %12656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12657 = trunc nuw i8 %12656 to i1
  br i1 %12657, label %12658, label %12662

12658:                                            ; preds = %12652
  %12659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12660 = call i32 @fileno(ptr noundef %12659) #13
  %12661 = call i32 @isatty(i32 noundef %12660) #13
  %.not2280 = icmp eq i32 %12661, 0
  br i1 %.not2280, label %12662, label %12663

12662:                                            ; preds = %12658, %12652
  br label %12663

12663:                                            ; preds = %12658, %12662
  %.str.5.sink6551 = phi ptr [ @.str.5, %12662 ], [ @.str.2, %12658 ]
  store i32 %12653, ptr %1329, align 4, !tbaa !5
  %12664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12665 = load i32, ptr @test_count, align 4, !tbaa !5
  %12666 = load i32, ptr %1275, align 4, !tbaa !5
  %12667 = call ptr @s2n_strerror(i32 noundef %12666, ptr noundef nonnull @.str.4) #13
  %12668 = load i32, ptr %1275, align 4, !tbaa !5
  %12669 = call ptr @s2n_strerror_debug(i32 noundef %12668, ptr noundef nonnull @.str.4) #13
  %12670 = load i32, ptr %1329, align 4, !tbaa !5
  %12671 = call ptr @strerror(i32 noundef %12670) #13
  %12672 = load i32, ptr %1329, align 4, !tbaa !5
  %12673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12664, ptr noundef nonnull %.str.5.sink6551, i32 noundef %12665, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.1, i32 noundef 1826, ptr noundef %12667, ptr noundef %12669, ptr noundef %12671, i32 noundef %12672) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12674:                                            ; preds = %12645
  %12675 = load i32, ptr @test_count, align 4, !tbaa !5
  %12676 = add nsw i32 %12675, 1
  store i32 %12676, ptr @test_count, align 4, !tbaa !5
  %12677 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %243, i32 noundef 3) #13
  %12678 = icmp eq i32 %12677, -1
  br i1 %12678, label %12679, label %12701

12679:                                            ; preds = %12674
  %12680 = load i32, ptr %1329, align 4, !tbaa !5
  %12681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12682 = call i32 @s2n_print_stacktrace(ptr noundef %12681) #13
  %12683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12684 = trunc nuw i8 %12683 to i1
  br i1 %12684, label %12685, label %12689

12685:                                            ; preds = %12679
  %12686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12687 = call i32 @fileno(ptr noundef %12686) #13
  %12688 = call i32 @isatty(i32 noundef %12687) #13
  %.not2279 = icmp eq i32 %12688, 0
  br i1 %.not2279, label %12689, label %12690

12689:                                            ; preds = %12685, %12679
  br label %12690

12690:                                            ; preds = %12685, %12689
  %.str.5.sink6560 = phi ptr [ @.str.5, %12689 ], [ @.str.2, %12685 ]
  store i32 %12680, ptr %1329, align 4, !tbaa !5
  %12691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12692 = load i32, ptr @test_count, align 4, !tbaa !5
  %12693 = load i32, ptr %1275, align 4, !tbaa !5
  %12694 = call ptr @s2n_strerror(i32 noundef %12693, ptr noundef nonnull @.str.4) #13
  %12695 = load i32, ptr %1275, align 4, !tbaa !5
  %12696 = call ptr @s2n_strerror_debug(i32 noundef %12695, ptr noundef nonnull @.str.4) #13
  %12697 = load i32, ptr %1329, align 4, !tbaa !5
  %12698 = call ptr @strerror(i32 noundef %12697) #13
  %12699 = load i32, ptr %1329, align 4, !tbaa !5
  %12700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12691, ptr noundef nonnull %.str.5.sink6560, i32 noundef %12692, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.1, i32 noundef 1827, ptr noundef %12694, ptr noundef %12696, ptr noundef %12698, i32 noundef %12699) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12701:                                            ; preds = %12674
  %12702 = getelementptr inbounds i8, ptr %243, i64 28
  %12703 = load i32, ptr %12702, align 4, !tbaa !15
  %12704 = getelementptr inbounds i8, ptr %243, i64 24
  %12705 = load i32, ptr %12704, align 8, !tbaa !18
  %12706 = sub i32 %12703, %12705
  %12707 = load i32, ptr @test_count, align 4, !tbaa !5
  %12708 = add nsw i32 %12707, 1
  store i32 %12708, ptr @test_count, align 4, !tbaa !5
  %.not2133 = icmp eq i32 %12703, %12705
  br i1 %.not2133, label %12709, label %12731

12709:                                            ; preds = %12701
  %12710 = load i32, ptr %1329, align 4, !tbaa !5
  %12711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12712 = call i32 @s2n_print_stacktrace(ptr noundef %12711) #13
  %12713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12714 = trunc nuw i8 %12713 to i1
  br i1 %12714, label %12715, label %12719

12715:                                            ; preds = %12709
  %12716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12717 = call i32 @fileno(ptr noundef %12716) #13
  %12718 = call i32 @isatty(i32 noundef %12717) #13
  %.not2134 = icmp eq i32 %12718, 0
  br i1 %.not2134, label %12719, label %12720

12719:                                            ; preds = %12715, %12709
  br label %12720

12720:                                            ; preds = %12715, %12719
  %.str.5.sink6569 = phi ptr [ @.str.5, %12719 ], [ @.str.2, %12715 ]
  store i32 %12710, ptr %1329, align 4, !tbaa !5
  %12721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12722 = load i32, ptr @test_count, align 4, !tbaa !5
  %12723 = load i32, ptr %1275, align 4, !tbaa !5
  %12724 = call ptr @s2n_strerror(i32 noundef %12723, ptr noundef nonnull @.str.4) #13
  %12725 = load i32, ptr %1275, align 4, !tbaa !5
  %12726 = call ptr @s2n_strerror_debug(i32 noundef %12725, ptr noundef nonnull @.str.4) #13
  %12727 = load i32, ptr %1329, align 4, !tbaa !5
  %12728 = call ptr @strerror(i32 noundef %12727) #13
  %12729 = load i32, ptr %1329, align 4, !tbaa !5
  %12730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12721, ptr noundef nonnull %.str.5.sink6569, i32 noundef %12722, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 1830, ptr noundef %12724, ptr noundef %12726, ptr noundef %12728, i32 noundef %12729) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12731:                                            ; preds = %12701
  %12732 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %243, i32 noundef %12706) #13
  %12733 = load i32, ptr @test_count, align 4, !tbaa !5
  %12734 = add nsw i32 %12733, 1
  store i32 %12734, ptr @test_count, align 4, !tbaa !5
  %12735 = icmp eq ptr %12732, null
  br i1 %12735, label %12736, label %12758

12736:                                            ; preds = %12731
  %12737 = load i32, ptr %1329, align 4, !tbaa !5
  %12738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12739 = call i32 @s2n_print_stacktrace(ptr noundef %12738) #13
  %12740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12741 = trunc nuw i8 %12740 to i1
  br i1 %12741, label %12742, label %12746

12742:                                            ; preds = %12736
  %12743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12744 = call i32 @fileno(ptr noundef %12743) #13
  %12745 = call i32 @isatty(i32 noundef %12744) #13
  %.not2278 = icmp eq i32 %12745, 0
  br i1 %.not2278, label %12746, label %12747

12746:                                            ; preds = %12742, %12736
  br label %12747

12747:                                            ; preds = %12742, %12746
  %.str.5.sink6578 = phi ptr [ @.str.5, %12746 ], [ @.str.2, %12742 ]
  store i32 %12737, ptr %1329, align 4, !tbaa !5
  %12748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12749 = load i32, ptr @test_count, align 4, !tbaa !5
  %12750 = load i32, ptr %1275, align 4, !tbaa !5
  %12751 = call ptr @s2n_strerror(i32 noundef %12750, ptr noundef nonnull @.str.4) #13
  %12752 = load i32, ptr %1275, align 4, !tbaa !5
  %12753 = call ptr @s2n_strerror_debug(i32 noundef %12752, ptr noundef nonnull @.str.4) #13
  %12754 = load i32, ptr %1329, align 4, !tbaa !5
  %12755 = call ptr @strerror(i32 noundef %12754) #13
  %12756 = load i32, ptr %1329, align 4, !tbaa !5
  %12757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12748, ptr noundef nonnull %.str.5.sink6578, i32 noundef %12749, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1832, ptr noundef %12751, ptr noundef %12753, ptr noundef %12755, i32 noundef %12756) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12758:                                            ; preds = %12731
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %244) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %244, i8 0, i64 48, i1 false)
  %12759 = add nsw i32 %12733, 2
  store i32 %12759, ptr @test_count, align 4, !tbaa !5
  %12760 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %244) #13
  %12761 = icmp eq i32 %12760, -1
  br i1 %12761, label %12762, label %12784

12762:                                            ; preds = %12758
  %12763 = load i32, ptr %1329, align 4, !tbaa !5
  %12764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12765 = call i32 @s2n_print_stacktrace(ptr noundef %12764) #13
  %12766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12767 = trunc nuw i8 %12766 to i1
  br i1 %12767, label %12768, label %12772

12768:                                            ; preds = %12762
  %12769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12770 = call i32 @fileno(ptr noundef %12769) #13
  %12771 = call i32 @isatty(i32 noundef %12770) #13
  %.not2277 = icmp eq i32 %12771, 0
  br i1 %.not2277, label %12772, label %12773

12772:                                            ; preds = %12768, %12762
  br label %12773

12773:                                            ; preds = %12768, %12772
  %.str.5.sink6587 = phi ptr [ @.str.5, %12772 ], [ @.str.2, %12768 ]
  store i32 %12763, ptr %1329, align 4, !tbaa !5
  %12774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12775 = load i32, ptr @test_count, align 4, !tbaa !5
  %12776 = load i32, ptr %1275, align 4, !tbaa !5
  %12777 = call ptr @s2n_strerror(i32 noundef %12776, ptr noundef nonnull @.str.4) #13
  %12778 = load i32, ptr %1275, align 4, !tbaa !5
  %12779 = call ptr @s2n_strerror_debug(i32 noundef %12778, ptr noundef nonnull @.str.4) #13
  %12780 = load i32, ptr %1329, align 4, !tbaa !5
  %12781 = call ptr @strerror(i32 noundef %12780) #13
  %12782 = load i32, ptr %1329, align 4, !tbaa !5
  %12783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12774, ptr noundef nonnull %.str.5.sink6587, i32 noundef %12775, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1835, ptr noundef %12777, ptr noundef %12779, ptr noundef %12781, i32 noundef %12782) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12784:                                            ; preds = %12758
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %245) #13
  store i32 -1, ptr %245, align 4, !tbaa !5
  %12785 = load i32, ptr @test_count, align 4, !tbaa !5
  %12786 = add nsw i32 %12785, 1
  store i32 %12786, ptr @test_count, align 4, !tbaa !5
  %12787 = load ptr, ptr %240, align 8, !tbaa !9
  %12788 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %239, ptr noundef %12787, ptr noundef nonnull %12732, i32 noundef %12706, ptr noundef nonnull %245, ptr noundef nonnull %244) #13
  %12789 = call zeroext i1 @s2n_result_is_error(i32 %12788)
  br i1 %12789, label %12812, label %12790

12790:                                            ; preds = %12784
  %12791 = load i32, ptr %1329, align 4, !tbaa !5
  %12792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12793 = call i32 @s2n_print_stacktrace(ptr noundef %12792) #13
  %12794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12795 = trunc nuw i8 %12794 to i1
  br i1 %12795, label %12796, label %12800

12796:                                            ; preds = %12790
  %12797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12798 = call i32 @fileno(ptr noundef %12797) #13
  %12799 = call i32 @isatty(i32 noundef %12798) #13
  %.not2135 = icmp eq i32 %12799, 0
  br i1 %.not2135, label %12800, label %12801

12800:                                            ; preds = %12796, %12790
  br label %12801

12801:                                            ; preds = %12796, %12800
  %.str.5.sink6596 = phi ptr [ @.str.5, %12800 ], [ @.str.2, %12796 ]
  store i32 %12791, ptr %1329, align 4, !tbaa !5
  %12802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12803 = load i32, ptr @test_count, align 4, !tbaa !5
  %12804 = load i32, ptr %1275, align 4, !tbaa !5
  %12805 = call ptr @s2n_strerror(i32 noundef %12804, ptr noundef nonnull @.str.4) #13
  %12806 = load i32, ptr %1275, align 4, !tbaa !5
  %12807 = call ptr @s2n_strerror_debug(i32 noundef %12806, ptr noundef nonnull @.str.4) #13
  %12808 = load i32, ptr %1329, align 4, !tbaa !5
  %12809 = call ptr @strerror(i32 noundef %12808) #13
  %12810 = load i32, ptr %1329, align 4, !tbaa !5
  %12811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12802, ptr noundef nonnull %.str.5.sink6596, i32 noundef %12803, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 1841, ptr noundef %12805, ptr noundef %12807, ptr noundef %12809, i32 noundef %12810) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12812:                                            ; preds = %12784
  %12813 = load i32, ptr @test_count, align 4, !tbaa !5
  %12814 = add nsw i32 %12813, 1
  store i32 %12814, ptr @test_count, align 4, !tbaa !5
  %12815 = load i32, ptr %1275, align 4, !tbaa !5
  %12816 = icmp eq i32 %12815, 335544344
  br i1 %12816, label %12839, label %12817

12817:                                            ; preds = %12812
  %12818 = load i32, ptr %1329, align 4, !tbaa !5
  %12819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12820 = call i32 @s2n_print_stacktrace(ptr noundef %12819) #13
  %12821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12822 = trunc nuw i8 %12821 to i1
  br i1 %12822, label %12823, label %12827

12823:                                            ; preds = %12817
  %12824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12825 = call i32 @fileno(ptr noundef %12824) #13
  %12826 = call i32 @isatty(i32 noundef %12825) #13
  %.not2136 = icmp eq i32 %12826, 0
  br i1 %.not2136, label %12827, label %12828

12827:                                            ; preds = %12823, %12817
  br label %12828

12828:                                            ; preds = %12823, %12827
  %.str.5.sink6605 = phi ptr [ @.str.5, %12827 ], [ @.str.2, %12823 ]
  store i32 %12818, ptr %1329, align 4, !tbaa !5
  %12829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12830 = load i32, ptr @test_count, align 4, !tbaa !5
  %12831 = load i32, ptr %1275, align 4, !tbaa !5
  %12832 = call ptr @s2n_strerror(i32 noundef %12831, ptr noundef nonnull @.str.4) #13
  %12833 = load i32, ptr %1275, align 4, !tbaa !5
  %12834 = call ptr @s2n_strerror_debug(i32 noundef %12833, ptr noundef nonnull @.str.4) #13
  %12835 = load i32, ptr %1329, align 4, !tbaa !5
  %12836 = call ptr @strerror(i32 noundef %12835) #13
  %12837 = load i32, ptr %1329, align 4, !tbaa !5
  %12838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12829, ptr noundef nonnull %.str.5.sink6605, i32 noundef %12830, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 1841, ptr noundef %12832, ptr noundef %12834, ptr noundef %12836, i32 noundef %12837) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12839:                                            ; preds = %12812
  %12840 = add nsw i32 %12813, 2
  store i32 %12840, ptr @test_count, align 4, !tbaa !5
  %12841 = call ptr @s2n_strerror_debug(i32 noundef 335544344, ptr noundef nonnull @.str.4) #13
  %12842 = icmp eq ptr %12841, null
  br i1 %12842, label %12843, label %12865

12843:                                            ; preds = %12839
  %12844 = load i32, ptr %1329, align 4, !tbaa !5
  %12845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12846 = call i32 @s2n_print_stacktrace(ptr noundef %12845) #13
  %12847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12848 = trunc nuw i8 %12847 to i1
  br i1 %12848, label %12849, label %12853

12849:                                            ; preds = %12843
  %12850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12851 = call i32 @fileno(ptr noundef %12850) #13
  %12852 = call i32 @isatty(i32 noundef %12851) #13
  %.not2276 = icmp eq i32 %12852, 0
  br i1 %.not2276, label %12853, label %12854

12853:                                            ; preds = %12849, %12843
  br label %12854

12854:                                            ; preds = %12849, %12853
  %.str.5.sink6614 = phi ptr [ @.str.5, %12853 ], [ @.str.2, %12849 ]
  store i32 %12844, ptr %1329, align 4, !tbaa !5
  %12855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12856 = load i32, ptr @test_count, align 4, !tbaa !5
  %12857 = load i32, ptr %1275, align 4, !tbaa !5
  %12858 = call ptr @s2n_strerror(i32 noundef %12857, ptr noundef nonnull @.str.4) #13
  %12859 = load i32, ptr %1275, align 4, !tbaa !5
  %12860 = call ptr @s2n_strerror_debug(i32 noundef %12859, ptr noundef nonnull @.str.4) #13
  %12861 = load i32, ptr %1329, align 4, !tbaa !5
  %12862 = call ptr @strerror(i32 noundef %12861) #13
  %12863 = load i32, ptr %1329, align 4, !tbaa !5
  %12864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12855, ptr noundef nonnull %.str.5.sink6614, i32 noundef %12856, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1841, ptr noundef %12858, ptr noundef %12860, ptr noundef %12862, i32 noundef %12863) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12865:                                            ; preds = %12839
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %245) #13
  %12866 = call i32 @s2n_pkey_free(ptr noundef nonnull %244) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %244) #13
  %12867 = call i32 @s2n_stuffer_free(ptr noundef nonnull %243) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %243) #13
  %12868 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %242) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %242) #13
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %241) #13
  %12869 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %240) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %240) #13
  %12870 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %239) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %239) #13
  br label %12871

12871:                                            ; preds = %12865, %12504
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %246) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %246, i8 0, i64 56, i1 false)
  %12872 = load i32, ptr @test_count, align 4, !tbaa !5
  %12873 = add nsw i32 %12872, 1
  store i32 %12873, ptr @test_count, align 4, !tbaa !5
  %12874 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %246) #13
  %12875 = icmp eq i32 %12874, -1
  br i1 %12875, label %12876, label %12898

12876:                                            ; preds = %12871
  %12877 = load i32, ptr %1329, align 4, !tbaa !5
  %12878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12879 = call i32 @s2n_print_stacktrace(ptr noundef %12878) #13
  %12880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12881 = trunc nuw i8 %12880 to i1
  br i1 %12881, label %12882, label %12886

12882:                                            ; preds = %12876
  %12883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12884 = call i32 @fileno(ptr noundef %12883) #13
  %12885 = call i32 @isatty(i32 noundef %12884) #13
  %.not2275 = icmp eq i32 %12885, 0
  br i1 %.not2275, label %12886, label %12887

12886:                                            ; preds = %12882, %12876
  br label %12887

12887:                                            ; preds = %12882, %12886
  %.str.5.sink6623 = phi ptr [ @.str.5, %12886 ], [ @.str.2, %12882 ]
  store i32 %12877, ptr %1329, align 4, !tbaa !5
  %12888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12889 = load i32, ptr @test_count, align 4, !tbaa !5
  %12890 = load i32, ptr %1275, align 4, !tbaa !5
  %12891 = call ptr @s2n_strerror(i32 noundef %12890, ptr noundef nonnull @.str.4) #13
  %12892 = load i32, ptr %1275, align 4, !tbaa !5
  %12893 = call ptr @s2n_strerror_debug(i32 noundef %12892, ptr noundef nonnull @.str.4) #13
  %12894 = load i32, ptr %1329, align 4, !tbaa !5
  %12895 = call ptr @strerror(i32 noundef %12894) #13
  %12896 = load i32, ptr %1329, align 4, !tbaa !5
  %12897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12888, ptr noundef nonnull %.str.5.sink6623, i32 noundef %12889, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.1, i32 noundef 1847, ptr noundef %12891, ptr noundef %12893, ptr noundef %12895, i32 noundef %12896) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12898:                                            ; preds = %12871
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %247) #13
  %12899 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %12899, ptr %247, align 8, !tbaa !9
  %12900 = load i32, ptr @test_count, align 4, !tbaa !5
  %12901 = add nsw i32 %12900, 1
  store i32 %12901, ptr @test_count, align 4, !tbaa !5
  %12902 = icmp eq ptr %12899, null
  br i1 %12902, label %12903, label %12925

12903:                                            ; preds = %12898
  %12904 = load i32, ptr %1329, align 4, !tbaa !5
  %12905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12906 = call i32 @s2n_print_stacktrace(ptr noundef %12905) #13
  %12907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12908 = trunc nuw i8 %12907 to i1
  br i1 %12908, label %12909, label %12913

12909:                                            ; preds = %12903
  %12910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12911 = call i32 @fileno(ptr noundef %12910) #13
  %12912 = call i32 @isatty(i32 noundef %12911) #13
  %.not2274 = icmp eq i32 %12912, 0
  br i1 %.not2274, label %12913, label %12914

12913:                                            ; preds = %12909, %12903
  br label %12914

12914:                                            ; preds = %12909, %12913
  %.str.5.sink6632 = phi ptr [ @.str.5, %12913 ], [ @.str.2, %12909 ]
  store i32 %12904, ptr %1329, align 4, !tbaa !5
  %12915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12916 = load i32, ptr @test_count, align 4, !tbaa !5
  %12917 = load i32, ptr %1275, align 4, !tbaa !5
  %12918 = call ptr @s2n_strerror(i32 noundef %12917, ptr noundef nonnull @.str.4) #13
  %12919 = load i32, ptr %1275, align 4, !tbaa !5
  %12920 = call ptr @s2n_strerror_debug(i32 noundef %12919, ptr noundef nonnull @.str.4) #13
  %12921 = load i32, ptr %1329, align 4, !tbaa !5
  %12922 = call ptr @strerror(i32 noundef %12921) #13
  %12923 = load i32, ptr %1329, align 4, !tbaa !5
  %12924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12915, ptr noundef nonnull %.str.5.sink6632, i32 noundef %12916, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1850, ptr noundef %12918, ptr noundef %12920, ptr noundef %12922, i32 noundef %12923) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12925:                                            ; preds = %12898
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %248) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %248, i8 0, i64 40, i1 false)
  %12926 = add nsw i32 %12900, 2
  store i32 %12926, ptr @test_count, align 4, !tbaa !5
  %12927 = call i32 @read_file(ptr noundef nonnull %248, ptr noundef nonnull @.str.115, i32 noundef 12000)
  %12928 = icmp eq i32 %12927, -1
  br i1 %12928, label %12929, label %12951

12929:                                            ; preds = %12925
  %12930 = load i32, ptr %1329, align 4, !tbaa !5
  %12931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12932 = call i32 @s2n_print_stacktrace(ptr noundef %12931) #13
  %12933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12934 = trunc nuw i8 %12933 to i1
  br i1 %12934, label %12935, label %12939

12935:                                            ; preds = %12929
  %12936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12937 = call i32 @fileno(ptr noundef %12936) #13
  %12938 = call i32 @isatty(i32 noundef %12937) #13
  %.not2273 = icmp eq i32 %12938, 0
  br i1 %.not2273, label %12939, label %12940

12939:                                            ; preds = %12935, %12929
  br label %12940

12940:                                            ; preds = %12935, %12939
  %.str.5.sink6641 = phi ptr [ @.str.5, %12939 ], [ @.str.2, %12935 ]
  store i32 %12930, ptr %1329, align 4, !tbaa !5
  %12941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12942 = load i32, ptr @test_count, align 4, !tbaa !5
  %12943 = load i32, ptr %1275, align 4, !tbaa !5
  %12944 = call ptr @s2n_strerror(i32 noundef %12943, ptr noundef nonnull @.str.4) #13
  %12945 = load i32, ptr %1275, align 4, !tbaa !5
  %12946 = call ptr @s2n_strerror_debug(i32 noundef %12945, ptr noundef nonnull @.str.4) #13
  %12947 = load i32, ptr %1329, align 4, !tbaa !5
  %12948 = call ptr @strerror(i32 noundef %12947) #13
  %12949 = load i32, ptr %1329, align 4, !tbaa !5
  %12950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12941, ptr noundef nonnull %.str.5.sink6641, i32 noundef %12942, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 1853, ptr noundef %12944, ptr noundef %12946, ptr noundef %12948, i32 noundef %12949) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12951:                                            ; preds = %12925
  %12952 = getelementptr inbounds i8, ptr %248, i64 28
  %12953 = load i32, ptr %12952, align 4, !tbaa !15
  %12954 = getelementptr inbounds i8, ptr %248, i64 24
  %12955 = load i32, ptr %12954, align 8, !tbaa !18
  %12956 = sub i32 %12953, %12955
  %12957 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %248, i32 noundef %12956) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %249) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %249, i8 0, i64 40, i1 false)
  %12958 = load i32, ptr @test_count, align 4, !tbaa !5
  %12959 = add nsw i32 %12958, 1
  store i32 %12959, ptr @test_count, align 4, !tbaa !5
  %12960 = call i32 @read_file(ptr noundef nonnull %249, ptr noundef nonnull @.str.118, i32 noundef 12000)
  %12961 = icmp eq i32 %12960, -1
  br i1 %12961, label %12962, label %12984

12962:                                            ; preds = %12951
  %12963 = load i32, ptr %1329, align 4, !tbaa !5
  %12964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12965 = call i32 @s2n_print_stacktrace(ptr noundef %12964) #13
  %12966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12967 = trunc nuw i8 %12966 to i1
  br i1 %12967, label %12968, label %12972

12968:                                            ; preds = %12962
  %12969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12970 = call i32 @fileno(ptr noundef %12969) #13
  %12971 = call i32 @isatty(i32 noundef %12970) #13
  %.not2272 = icmp eq i32 %12971, 0
  br i1 %.not2272, label %12972, label %12973

12972:                                            ; preds = %12968, %12962
  br label %12973

12973:                                            ; preds = %12968, %12972
  %.str.5.sink6650 = phi ptr [ @.str.5, %12972 ], [ @.str.2, %12968 ]
  store i32 %12963, ptr %1329, align 4, !tbaa !5
  %12974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12975 = load i32, ptr @test_count, align 4, !tbaa !5
  %12976 = load i32, ptr %1275, align 4, !tbaa !5
  %12977 = call ptr @s2n_strerror(i32 noundef %12976, ptr noundef nonnull @.str.4) #13
  %12978 = load i32, ptr %1275, align 4, !tbaa !5
  %12979 = call ptr @s2n_strerror_debug(i32 noundef %12978, ptr noundef nonnull @.str.4) #13
  %12980 = load i32, ptr %1329, align 4, !tbaa !5
  %12981 = call ptr @strerror(i32 noundef %12980) #13
  %12982 = load i32, ptr %1329, align 4, !tbaa !5
  %12983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12974, ptr noundef nonnull %.str.5.sink6650, i32 noundef %12975, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.1, i32 noundef 1859, ptr noundef %12977, ptr noundef %12979, ptr noundef %12981, i32 noundef %12982) #15
  call void @exit(i32 noundef 1) #16
  unreachable

12984:                                            ; preds = %12951
  %12985 = getelementptr inbounds i8, ptr %249, i64 28
  %12986 = load i32, ptr %12985, align 4, !tbaa !15
  %12987 = getelementptr inbounds i8, ptr %249, i64 24
  %12988 = load i32, ptr %12987, align 8, !tbaa !18
  %12989 = sub i32 %12986, %12988
  %12990 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %249, i32 noundef %12989) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %250) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %250, i8 0, i64 40, i1 false)
  %12991 = load i32, ptr @test_count, align 4, !tbaa !5
  %12992 = add nsw i32 %12991, 1
  store i32 %12992, ptr @test_count, align 4, !tbaa !5
  %12993 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %250, i32 noundef 24000) #13
  %12994 = icmp eq i32 %12993, -1
  br i1 %12994, label %12995, label %13017

12995:                                            ; preds = %12984
  %12996 = load i32, ptr %1329, align 4, !tbaa !5
  %12997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12998 = call i32 @s2n_print_stacktrace(ptr noundef %12997) #13
  %12999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13000 = trunc nuw i8 %12999 to i1
  br i1 %13000, label %13001, label %13005

13001:                                            ; preds = %12995
  %13002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13003 = call i32 @fileno(ptr noundef %13002) #13
  %13004 = call i32 @isatty(i32 noundef %13003) #13
  %.not2271 = icmp eq i32 %13004, 0
  br i1 %.not2271, label %13005, label %13006

13005:                                            ; preds = %13001, %12995
  br label %13006

13006:                                            ; preds = %13001, %13005
  %.str.5.sink6659 = phi ptr [ @.str.5, %13005 ], [ @.str.2, %13001 ]
  store i32 %12996, ptr %1329, align 4, !tbaa !5
  %13007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13008 = load i32, ptr @test_count, align 4, !tbaa !5
  %13009 = load i32, ptr %1275, align 4, !tbaa !5
  %13010 = call ptr @s2n_strerror(i32 noundef %13009, ptr noundef nonnull @.str.4) #13
  %13011 = load i32, ptr %1275, align 4, !tbaa !5
  %13012 = call ptr @s2n_strerror_debug(i32 noundef %13011, ptr noundef nonnull @.str.4) #13
  %13013 = load i32, ptr %1329, align 4, !tbaa !5
  %13014 = call ptr @strerror(i32 noundef %13013) #13
  %13015 = load i32, ptr %1329, align 4, !tbaa !5
  %13016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13007, ptr noundef nonnull %.str.5.sink6659, i32 noundef %13008, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.1, i32 noundef 1865, ptr noundef %13010, ptr noundef %13012, ptr noundef %13014, i32 noundef %13015) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13017:                                            ; preds = %12984
  %13018 = load i32, ptr @test_count, align 4, !tbaa !5
  %13019 = add nsw i32 %13018, 1
  store i32 %13019, ptr @test_count, align 4, !tbaa !5
  %13020 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %250, ptr noundef %12957, i32 noundef %12956) #13
  %13021 = icmp eq i32 %13020, -1
  br i1 %13021, label %13022, label %13044

13022:                                            ; preds = %13017
  %13023 = load i32, ptr %1329, align 4, !tbaa !5
  %13024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13025 = call i32 @s2n_print_stacktrace(ptr noundef %13024) #13
  %13026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13027 = trunc nuw i8 %13026 to i1
  br i1 %13027, label %13028, label %13032

13028:                                            ; preds = %13022
  %13029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13030 = call i32 @fileno(ptr noundef %13029) #13
  %13031 = call i32 @isatty(i32 noundef %13030) #13
  %.not2270 = icmp eq i32 %13031, 0
  br i1 %.not2270, label %13032, label %13033

13032:                                            ; preds = %13028, %13022
  br label %13033

13033:                                            ; preds = %13028, %13032
  %.str.5.sink6668 = phi ptr [ @.str.5, %13032 ], [ @.str.2, %13028 ]
  store i32 %13023, ptr %1329, align 4, !tbaa !5
  %13034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13035 = load i32, ptr @test_count, align 4, !tbaa !5
  %13036 = load i32, ptr %1275, align 4, !tbaa !5
  %13037 = call ptr @s2n_strerror(i32 noundef %13036, ptr noundef nonnull @.str.4) #13
  %13038 = load i32, ptr %1275, align 4, !tbaa !5
  %13039 = call ptr @s2n_strerror_debug(i32 noundef %13038, ptr noundef nonnull @.str.4) #13
  %13040 = load i32, ptr %1329, align 4, !tbaa !5
  %13041 = call ptr @strerror(i32 noundef %13040) #13
  %13042 = load i32, ptr %1329, align 4, !tbaa !5
  %13043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13034, ptr noundef nonnull %.str.5.sink6668, i32 noundef %13035, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.1, i32 noundef 1867, ptr noundef %13037, ptr noundef %13039, ptr noundef %13041, i32 noundef %13042) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13044:                                            ; preds = %13017
  %13045 = load i32, ptr @test_count, align 4, !tbaa !5
  %13046 = add nsw i32 %13045, 1
  store i32 %13046, ptr @test_count, align 4, !tbaa !5
  %13047 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %250, ptr noundef %12990, i32 noundef %12989) #13
  %13048 = icmp eq i32 %13047, -1
  br i1 %13048, label %13049, label %13071

13049:                                            ; preds = %13044
  %13050 = load i32, ptr %1329, align 4, !tbaa !5
  %13051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13052 = call i32 @s2n_print_stacktrace(ptr noundef %13051) #13
  %13053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13054 = trunc nuw i8 %13053 to i1
  br i1 %13054, label %13055, label %13059

13055:                                            ; preds = %13049
  %13056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13057 = call i32 @fileno(ptr noundef %13056) #13
  %13058 = call i32 @isatty(i32 noundef %13057) #13
  %.not2269 = icmp eq i32 %13058, 0
  br i1 %.not2269, label %13059, label %13060

13059:                                            ; preds = %13055, %13049
  br label %13060

13060:                                            ; preds = %13055, %13059
  %.str.5.sink6677 = phi ptr [ @.str.5, %13059 ], [ @.str.2, %13055 ]
  store i32 %13050, ptr %1329, align 4, !tbaa !5
  %13061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13062 = load i32, ptr @test_count, align 4, !tbaa !5
  %13063 = load i32, ptr %1275, align 4, !tbaa !5
  %13064 = call ptr @s2n_strerror(i32 noundef %13063, ptr noundef nonnull @.str.4) #13
  %13065 = load i32, ptr %1275, align 4, !tbaa !5
  %13066 = call ptr @s2n_strerror_debug(i32 noundef %13065, ptr noundef nonnull @.str.4) #13
  %13067 = load i32, ptr %1329, align 4, !tbaa !5
  %13068 = call ptr @strerror(i32 noundef %13067) #13
  %13069 = load i32, ptr %1329, align 4, !tbaa !5
  %13070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13061, ptr noundef nonnull %.str.5.sink6677, i32 noundef %13062, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 1869, ptr noundef %13064, ptr noundef %13066, ptr noundef %13068, i32 noundef %13069) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13071:                                            ; preds = %13044
  %13072 = getelementptr inbounds i8, ptr %250, i64 28
  %13073 = load i32, ptr %13072, align 4, !tbaa !15
  %13074 = getelementptr inbounds i8, ptr %250, i64 24
  %13075 = load i32, ptr %13074, align 8, !tbaa !18
  %13076 = sub i32 %13073, %13075
  %13077 = load i32, ptr @test_count, align 4, !tbaa !5
  %13078 = add nsw i32 %13077, 1
  store i32 %13078, ptr @test_count, align 4, !tbaa !5
  %.not2137 = icmp eq i32 %13073, %13075
  br i1 %.not2137, label %13079, label %13101

13079:                                            ; preds = %13071
  %13080 = load i32, ptr %1329, align 4, !tbaa !5
  %13081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13082 = call i32 @s2n_print_stacktrace(ptr noundef %13081) #13
  %13083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13084 = trunc nuw i8 %13083 to i1
  br i1 %13084, label %13085, label %13089

13085:                                            ; preds = %13079
  %13086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13087 = call i32 @fileno(ptr noundef %13086) #13
  %13088 = call i32 @isatty(i32 noundef %13087) #13
  %.not2138 = icmp eq i32 %13088, 0
  br i1 %.not2138, label %13089, label %13090

13089:                                            ; preds = %13085, %13079
  br label %13090

13090:                                            ; preds = %13085, %13089
  %.str.5.sink6686 = phi ptr [ @.str.5, %13089 ], [ @.str.2, %13085 ]
  store i32 %13080, ptr %1329, align 4, !tbaa !5
  %13091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13092 = load i32, ptr @test_count, align 4, !tbaa !5
  %13093 = load i32, ptr %1275, align 4, !tbaa !5
  %13094 = call ptr @s2n_strerror(i32 noundef %13093, ptr noundef nonnull @.str.4) #13
  %13095 = load i32, ptr %1275, align 4, !tbaa !5
  %13096 = call ptr @s2n_strerror_debug(i32 noundef %13095, ptr noundef nonnull @.str.4) #13
  %13097 = load i32, ptr %1329, align 4, !tbaa !5
  %13098 = call ptr @strerror(i32 noundef %13097) #13
  %13099 = load i32, ptr %1329, align 4, !tbaa !5
  %13100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13091, ptr noundef nonnull %.str.5.sink6686, i32 noundef %13092, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 1872, ptr noundef %13094, ptr noundef %13096, ptr noundef %13098, i32 noundef %13099) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13101:                                            ; preds = %13071
  %13102 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %250, i32 noundef %13076) #13
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %251) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %251, i8 0, i64 48, i1 false)
  %13103 = load i32, ptr @test_count, align 4, !tbaa !5
  %13104 = add nsw i32 %13103, 1
  store i32 %13104, ptr @test_count, align 4, !tbaa !5
  %13105 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %251) #13
  %13106 = icmp eq i32 %13105, -1
  br i1 %13106, label %13107, label %13129

13107:                                            ; preds = %13101
  %13108 = load i32, ptr %1329, align 4, !tbaa !5
  %13109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13110 = call i32 @s2n_print_stacktrace(ptr noundef %13109) #13
  %13111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13112 = trunc nuw i8 %13111 to i1
  br i1 %13112, label %13113, label %13117

13113:                                            ; preds = %13107
  %13114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13115 = call i32 @fileno(ptr noundef %13114) #13
  %13116 = call i32 @isatty(i32 noundef %13115) #13
  %.not2268 = icmp eq i32 %13116, 0
  br i1 %.not2268, label %13117, label %13118

13117:                                            ; preds = %13113, %13107
  br label %13118

13118:                                            ; preds = %13113, %13117
  %.str.5.sink6695 = phi ptr [ @.str.5, %13117 ], [ @.str.2, %13113 ]
  store i32 %13108, ptr %1329, align 4, !tbaa !5
  %13119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13120 = load i32, ptr @test_count, align 4, !tbaa !5
  %13121 = load i32, ptr %1275, align 4, !tbaa !5
  %13122 = call ptr @s2n_strerror(i32 noundef %13121, ptr noundef nonnull @.str.4) #13
  %13123 = load i32, ptr %1275, align 4, !tbaa !5
  %13124 = call ptr @s2n_strerror_debug(i32 noundef %13123, ptr noundef nonnull @.str.4) #13
  %13125 = load i32, ptr %1329, align 4, !tbaa !5
  %13126 = call ptr @strerror(i32 noundef %13125) #13
  %13127 = load i32, ptr %1329, align 4, !tbaa !5
  %13128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13119, ptr noundef nonnull %.str.5.sink6695, i32 noundef %13120, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 1876, ptr noundef %13122, ptr noundef %13124, ptr noundef %13126, i32 noundef %13127) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13129:                                            ; preds = %13101
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %252) #13
  store i32 -1, ptr %252, align 4, !tbaa !5
  %13130 = load i32, ptr @test_count, align 4, !tbaa !5
  %13131 = add nsw i32 %13130, 1
  store i32 %13131, ptr @test_count, align 4, !tbaa !5
  %13132 = load ptr, ptr %247, align 8, !tbaa !9
  %13133 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %246, ptr noundef %13132, ptr noundef %13102, i32 noundef %13076, ptr noundef nonnull %252, ptr noundef nonnull %251) #13
  %13134 = call zeroext i1 @s2n_result_is_ok(i32 %13133)
  br i1 %13134, label %13157, label %13135

13135:                                            ; preds = %13129
  %13136 = load i32, ptr %1329, align 4, !tbaa !5
  %13137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13138 = call i32 @s2n_print_stacktrace(ptr noundef %13137) #13
  %13139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13140 = trunc nuw i8 %13139 to i1
  br i1 %13140, label %13141, label %13145

13141:                                            ; preds = %13135
  %13142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13143 = call i32 @fileno(ptr noundef %13142) #13
  %13144 = call i32 @isatty(i32 noundef %13143) #13
  %.not2139 = icmp eq i32 %13144, 0
  br i1 %.not2139, label %13145, label %13146

13145:                                            ; preds = %13141, %13135
  br label %13146

13146:                                            ; preds = %13141, %13145
  %.str.5.sink6704 = phi ptr [ @.str.5, %13145 ], [ @.str.2, %13141 ]
  store i32 %13136, ptr %1329, align 4, !tbaa !5
  %13147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13148 = load i32, ptr @test_count, align 4, !tbaa !5
  %13149 = load i32, ptr %1275, align 4, !tbaa !5
  %13150 = call ptr @s2n_strerror(i32 noundef %13149, ptr noundef nonnull @.str.4) #13
  %13151 = load i32, ptr %1275, align 4, !tbaa !5
  %13152 = call ptr @s2n_strerror_debug(i32 noundef %13151, ptr noundef nonnull @.str.4) #13
  %13153 = load i32, ptr %1329, align 4, !tbaa !5
  %13154 = call ptr @strerror(i32 noundef %13153) #13
  %13155 = load i32, ptr %1329, align 4, !tbaa !5
  %13156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13147, ptr noundef nonnull %.str.5.sink6704, i32 noundef %13148, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 1880, ptr noundef %13150, ptr noundef %13152, ptr noundef %13154, i32 noundef %13155) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13157:                                            ; preds = %13129
  %13158 = load i32, ptr @test_count, align 4, !tbaa !5
  %13159 = add nsw i32 %13158, 1
  store i32 %13159, ptr @test_count, align 4, !tbaa !5
  %13160 = getelementptr inbounds i8, ptr %246, i64 24
  %13161 = load ptr, ptr %13160, align 8, !tbaa !58
  %13162 = call ptr @ossl_check_const_X509_sk_type(ptr noundef %13161)
  %13163 = call i32 @OPENSSL_sk_num(ptr noundef %13162) #13
  %13164 = icmp eq i32 %13163, 2
  br i1 %13164, label %13187, label %13165

13165:                                            ; preds = %13157
  %13166 = load i32, ptr %1329, align 4, !tbaa !5
  %13167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13168 = call i32 @s2n_print_stacktrace(ptr noundef %13167) #13
  %13169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13170 = trunc nuw i8 %13169 to i1
  br i1 %13170, label %13171, label %13175

13171:                                            ; preds = %13165
  %13172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13173 = call i32 @fileno(ptr noundef %13172) #13
  %13174 = call i32 @isatty(i32 noundef %13173) #13
  %.not2140 = icmp eq i32 %13174, 0
  br i1 %.not2140, label %13175, label %13176

13175:                                            ; preds = %13171, %13165
  br label %13176

13176:                                            ; preds = %13171, %13175
  %.str.5.sink6713 = phi ptr [ @.str.5, %13175 ], [ @.str.2, %13171 ]
  store i32 %13166, ptr %1329, align 4, !tbaa !5
  %13177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13178 = load i32, ptr @test_count, align 4, !tbaa !5
  %13179 = load i32, ptr %1275, align 4, !tbaa !5
  %13180 = call ptr @s2n_strerror(i32 noundef %13179, ptr noundef nonnull @.str.4) #13
  %13181 = load i32, ptr %1275, align 4, !tbaa !5
  %13182 = call ptr @s2n_strerror_debug(i32 noundef %13181, ptr noundef nonnull @.str.4) #13
  %13183 = load i32, ptr %1329, align 4, !tbaa !5
  %13184 = call ptr @strerror(i32 noundef %13183) #13
  %13185 = load i32, ptr %1329, align 4, !tbaa !5
  %13186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13177, ptr noundef nonnull %.str.5.sink6713, i32 noundef %13178, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 1882, ptr noundef %13180, ptr noundef %13182, ptr noundef %13184, i32 noundef %13185) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13187:                                            ; preds = %13157
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %252) #13
  %13188 = call i32 @s2n_pkey_free(ptr noundef nonnull %251) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %251) #13
  %13189 = call i32 @s2n_stuffer_free(ptr noundef nonnull %250) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %250) #13
  %13190 = call i32 @s2n_stuffer_free(ptr noundef nonnull %249) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %249) #13
  %13191 = call i32 @s2n_stuffer_free(ptr noundef nonnull %248) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %248) #13
  %13192 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %247) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %247) #13
  %13193 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %246) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %246) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %253) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %253) #13
  %13194 = load i32, ptr @test_count, align 4, !tbaa !5
  %13195 = add nsw i32 %13194, 1
  store i32 %13195, ptr @test_count, align 4, !tbaa !5
  %13196 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %253, ptr noundef nonnull @.str.138, ptr noundef null) #13
  %13197 = icmp eq i32 %13196, 0
  br i1 %13197, label %13220, label %13198

13198:                                            ; preds = %13187
  %13199 = load i32, ptr %1329, align 4, !tbaa !5
  %13200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13201 = call i32 @s2n_print_stacktrace(ptr noundef %13200) #13
  %13202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13203 = trunc nuw i8 %13202 to i1
  br i1 %13203, label %13204, label %13208

13204:                                            ; preds = %13198
  %13205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13206 = call i32 @fileno(ptr noundef %13205) #13
  %13207 = call i32 @isatty(i32 noundef %13206) #13
  %.not2141 = icmp eq i32 %13207, 0
  br i1 %.not2141, label %13208, label %13209

13208:                                            ; preds = %13204, %13198
  br label %13209

13209:                                            ; preds = %13204, %13208
  %.str.5.sink6722 = phi ptr [ @.str.5, %13208 ], [ @.str.2, %13204 ]
  store i32 %13199, ptr %1329, align 4, !tbaa !5
  %13210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13211 = load i32, ptr @test_count, align 4, !tbaa !5
  %13212 = load i32, ptr %1275, align 4, !tbaa !5
  %13213 = call ptr @s2n_strerror(i32 noundef %13212, ptr noundef nonnull @.str.4) #13
  %13214 = load i32, ptr %1275, align 4, !tbaa !5
  %13215 = call ptr @s2n_strerror_debug(i32 noundef %13214, ptr noundef nonnull @.str.4) #13
  %13216 = load i32, ptr %1329, align 4, !tbaa !5
  %13217 = call ptr @strerror(i32 noundef %13216) #13
  %13218 = load i32, ptr %1329, align 4, !tbaa !5
  %13219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13210, ptr noundef nonnull %.str.5.sink6722, i32 noundef %13211, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 1889, ptr noundef %13213, ptr noundef %13215, ptr noundef %13217, i32 noundef %13218) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13220:                                            ; preds = %13187
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %254) #13
  %13221 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %254, ptr noundef nonnull %253, i8 noundef zeroext 1) #13
  %13222 = call ptr @s2n_config_new() #13
  %13223 = load i32, ptr @test_count, align 4, !tbaa !5
  %13224 = add nsw i32 %13223, 1
  store i32 %13224, ptr @test_count, align 4, !tbaa !5
  %13225 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %13222, ptr noundef nonnull @.str.140) #13
  %13226 = icmp eq i32 %13225, -1
  br i1 %13226, label %13227, label %13249

13227:                                            ; preds = %13220
  %13228 = load i32, ptr %1329, align 4, !tbaa !5
  %13229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13230 = call i32 @s2n_print_stacktrace(ptr noundef %13229) #13
  %13231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13232 = trunc nuw i8 %13231 to i1
  br i1 %13232, label %13233, label %13237

13233:                                            ; preds = %13227
  %13234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13235 = call i32 @fileno(ptr noundef %13234) #13
  %13236 = call i32 @isatty(i32 noundef %13235) #13
  %.not2267 = icmp eq i32 %13236, 0
  br i1 %.not2267, label %13237, label %13238

13237:                                            ; preds = %13233, %13227
  br label %13238

13238:                                            ; preds = %13233, %13237
  %.str.5.sink6731 = phi ptr [ @.str.5, %13237 ], [ @.str.2, %13233 ]
  store i32 %13228, ptr %1329, align 4, !tbaa !5
  %13239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13240 = load i32, ptr @test_count, align 4, !tbaa !5
  %13241 = load i32, ptr %1275, align 4, !tbaa !5
  %13242 = call ptr @s2n_strerror(i32 noundef %13241, ptr noundef nonnull @.str.4) #13
  %13243 = load i32, ptr %1275, align 4, !tbaa !5
  %13244 = call ptr @s2n_strerror_debug(i32 noundef %13243, ptr noundef nonnull @.str.4) #13
  %13245 = load i32, ptr %1329, align 4, !tbaa !5
  %13246 = call ptr @strerror(i32 noundef %13245) #13
  %13247 = load i32, ptr %1329, align 4, !tbaa !5
  %13248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13239, ptr noundef nonnull %.str.5.sink6731, i32 noundef %13240, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1895, ptr noundef %13242, ptr noundef %13244, ptr noundef %13246, i32 noundef %13247) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13249:                                            ; preds = %13220
  %13250 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %13251 = load i32, ptr @test_count, align 4, !tbaa !5
  %13252 = add nsw i32 %13251, 1
  store i32 %13252, ptr @test_count, align 4, !tbaa !5
  %13253 = call i32 @s2n_connection_set_config(ptr noundef %13250, ptr noundef %13222) #13
  %13254 = icmp eq i32 %13253, -1
  br i1 %13254, label %13255, label %13277

13255:                                            ; preds = %13249
  %13256 = load i32, ptr %1329, align 4, !tbaa !5
  %13257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13258 = call i32 @s2n_print_stacktrace(ptr noundef %13257) #13
  %13259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13260 = trunc nuw i8 %13259 to i1
  br i1 %13260, label %13261, label %13265

13261:                                            ; preds = %13255
  %13262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13263 = call i32 @fileno(ptr noundef %13262) #13
  %13264 = call i32 @isatty(i32 noundef %13263) #13
  %.not2266 = icmp eq i32 %13264, 0
  br i1 %.not2266, label %13265, label %13266

13265:                                            ; preds = %13261, %13255
  br label %13266

13266:                                            ; preds = %13261, %13265
  %.str.5.sink6740 = phi ptr [ @.str.5, %13265 ], [ @.str.2, %13261 ]
  store i32 %13256, ptr %1329, align 4, !tbaa !5
  %13267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13268 = load i32, ptr @test_count, align 4, !tbaa !5
  %13269 = load i32, ptr %1275, align 4, !tbaa !5
  %13270 = call ptr @s2n_strerror(i32 noundef %13269, ptr noundef nonnull @.str.4) #13
  %13271 = load i32, ptr %1275, align 4, !tbaa !5
  %13272 = call ptr @s2n_strerror_debug(i32 noundef %13271, ptr noundef nonnull @.str.4) #13
  %13273 = load i32, ptr %1329, align 4, !tbaa !5
  %13274 = call ptr @strerror(i32 noundef %13273) #13
  %13275 = load i32, ptr %1329, align 4, !tbaa !5
  %13276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13267, ptr noundef nonnull %.str.5.sink6740, i32 noundef %13268, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 1898, ptr noundef %13270, ptr noundef %13272, ptr noundef %13274, i32 noundef %13275) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13277:                                            ; preds = %13249
  %13278 = load i32, ptr @test_count, align 4, !tbaa !5
  %13279 = add nsw i32 %13278, 1
  store i32 %13279, ptr @test_count, align 4, !tbaa !5
  %13280 = icmp eq ptr %13250, null
  br i1 %13280, label %13281, label %13303

13281:                                            ; preds = %13277
  %13282 = load i32, ptr %1329, align 4, !tbaa !5
  %13283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13284 = call i32 @s2n_print_stacktrace(ptr noundef %13283) #13
  %13285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13286 = trunc nuw i8 %13285 to i1
  br i1 %13286, label %13287, label %13291

13287:                                            ; preds = %13281
  %13288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13289 = call i32 @fileno(ptr noundef %13288) #13
  %13290 = call i32 @isatty(i32 noundef %13289) #13
  %.not2265 = icmp eq i32 %13290, 0
  br i1 %.not2265, label %13291, label %13292

13291:                                            ; preds = %13287, %13281
  br label %13292

13292:                                            ; preds = %13287, %13291
  %.str.5.sink6749 = phi ptr [ @.str.5, %13291 ], [ @.str.2, %13287 ]
  store i32 %13282, ptr %1329, align 4, !tbaa !5
  %13293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13294 = load i32, ptr @test_count, align 4, !tbaa !5
  %13295 = load i32, ptr %1275, align 4, !tbaa !5
  %13296 = call ptr @s2n_strerror(i32 noundef %13295, ptr noundef nonnull @.str.4) #13
  %13297 = load i32, ptr %1275, align 4, !tbaa !5
  %13298 = call ptr @s2n_strerror_debug(i32 noundef %13297, ptr noundef nonnull @.str.4) #13
  %13299 = load i32, ptr %1329, align 4, !tbaa !5
  %13300 = call ptr @strerror(i32 noundef %13299) #13
  %13301 = load i32, ptr %1329, align 4, !tbaa !5
  %13302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13293, ptr noundef nonnull %.str.5.sink6749, i32 noundef %13294, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1900, ptr noundef %13296, ptr noundef %13298, ptr noundef %13300, i32 noundef %13301) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13303:                                            ; preds = %13277
  %13304 = getelementptr inbounds i8, ptr %13250, i64 220
  store i8 34, ptr %13304, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %255) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %255, i8 0, i64 16, i1 false)
  %13305 = add nsw i32 %13278, 2
  store i32 %13305, ptr @test_count, align 4, !tbaa !5
  %13306 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %13250, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %255) #13
  %13307 = icmp eq i32 %13306, -1
  br i1 %13307, label %13308, label %13330

13308:                                            ; preds = %13303
  %13309 = load i32, ptr %1329, align 4, !tbaa !5
  %13310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13311 = call i32 @s2n_print_stacktrace(ptr noundef %13310) #13
  %13312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13313 = trunc nuw i8 %13312 to i1
  br i1 %13313, label %13314, label %13318

13314:                                            ; preds = %13308
  %13315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13316 = call i32 @fileno(ptr noundef %13315) #13
  %13317 = call i32 @isatty(i32 noundef %13316) #13
  %.not2264 = icmp eq i32 %13317, 0
  br i1 %.not2264, label %13318, label %13319

13318:                                            ; preds = %13314, %13308
  br label %13319

13319:                                            ; preds = %13314, %13318
  %.str.5.sink6758 = phi ptr [ @.str.5, %13318 ], [ @.str.2, %13314 ]
  store i32 %13309, ptr %1329, align 4, !tbaa !5
  %13320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13321 = load i32, ptr @test_count, align 4, !tbaa !5
  %13322 = load i32, ptr %1275, align 4, !tbaa !5
  %13323 = call ptr @s2n_strerror(i32 noundef %13322, ptr noundef nonnull @.str.4) #13
  %13324 = load i32, ptr %1275, align 4, !tbaa !5
  %13325 = call ptr @s2n_strerror_debug(i32 noundef %13324, ptr noundef nonnull @.str.4) #13
  %13326 = load i32, ptr %1329, align 4, !tbaa !5
  %13327 = call ptr @strerror(i32 noundef %13326) #13
  %13328 = load i32, ptr %1329, align 4, !tbaa !5
  %13329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13320, ptr noundef nonnull %.str.5.sink6758, i32 noundef %13321, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1904, ptr noundef %13323, ptr noundef %13325, ptr noundef %13327, i32 noundef %13328) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13330:                                            ; preds = %13303
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %256) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %256, i8 0, i64 40, i1 false)
  %13331 = load i32, ptr @test_count, align 4, !tbaa !5
  %13332 = add nsw i32 %13331, 1
  store i32 %13332, ptr @test_count, align 4, !tbaa !5
  %13333 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %13250, ptr noundef nonnull @.str.138, ptr noundef nonnull %256) #13
  %13334 = call zeroext i1 @s2n_result_is_ok(i32 %13333)
  br i1 %13334, label %13357, label %13335

13335:                                            ; preds = %13330
  %13336 = load i32, ptr %1329, align 4, !tbaa !5
  %13337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13338 = call i32 @s2n_print_stacktrace(ptr noundef %13337) #13
  %13339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13340 = trunc nuw i8 %13339 to i1
  br i1 %13340, label %13341, label %13345

13341:                                            ; preds = %13335
  %13342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13343 = call i32 @fileno(ptr noundef %13342) #13
  %13344 = call i32 @isatty(i32 noundef %13343) #13
  %.not2142 = icmp eq i32 %13344, 0
  br i1 %.not2142, label %13345, label %13346

13345:                                            ; preds = %13341, %13335
  br label %13346

13346:                                            ; preds = %13341, %13345
  %.str.5.sink6767 = phi ptr [ @.str.5, %13345 ], [ @.str.2, %13341 ]
  store i32 %13336, ptr %1329, align 4, !tbaa !5
  %13347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13348 = load i32, ptr @test_count, align 4, !tbaa !5
  %13349 = load i32, ptr %1275, align 4, !tbaa !5
  %13350 = call ptr @s2n_strerror(i32 noundef %13349, ptr noundef nonnull @.str.4) #13
  %13351 = load i32, ptr %1275, align 4, !tbaa !5
  %13352 = call ptr @s2n_strerror_debug(i32 noundef %13351, ptr noundef nonnull @.str.4) #13
  %13353 = load i32, ptr %1329, align 4, !tbaa !5
  %13354 = call ptr @strerror(i32 noundef %13353) #13
  %13355 = load i32, ptr %1329, align 4, !tbaa !5
  %13356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13347, ptr noundef nonnull %.str.5.sink6767, i32 noundef %13348, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 1907, ptr noundef %13350, ptr noundef %13352, ptr noundef %13354, i32 noundef %13355) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13357:                                            ; preds = %13330
  %13358 = getelementptr inbounds i8, ptr %256, i64 28
  %13359 = load i32, ptr %13358, align 4, !tbaa !15
  %13360 = getelementptr inbounds i8, ptr %256, i64 24
  %13361 = load i32, ptr %13360, align 8, !tbaa !18
  %13362 = sub i32 %13359, %13361
  %13363 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %256, i32 noundef %13362) #13
  %13364 = load i32, ptr @test_count, align 4, !tbaa !5
  %13365 = add nsw i32 %13364, 1
  store i32 %13365, ptr @test_count, align 4, !tbaa !5
  %13366 = icmp eq ptr %13363, null
  br i1 %13366, label %13367, label %13389

13367:                                            ; preds = %13357
  %13368 = load i32, ptr %1329, align 4, !tbaa !5
  %13369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13370 = call i32 @s2n_print_stacktrace(ptr noundef %13369) #13
  %13371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13372 = trunc nuw i8 %13371 to i1
  br i1 %13372, label %13373, label %13377

13373:                                            ; preds = %13367
  %13374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13375 = call i32 @fileno(ptr noundef %13374) #13
  %13376 = call i32 @isatty(i32 noundef %13375) #13
  %.not2263 = icmp eq i32 %13376, 0
  br i1 %.not2263, label %13377, label %13378

13377:                                            ; preds = %13373, %13367
  br label %13378

13378:                                            ; preds = %13373, %13377
  %.str.5.sink6776 = phi ptr [ @.str.5, %13377 ], [ @.str.2, %13373 ]
  store i32 %13368, ptr %1329, align 4, !tbaa !5
  %13379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13380 = load i32, ptr @test_count, align 4, !tbaa !5
  %13381 = load i32, ptr %1275, align 4, !tbaa !5
  %13382 = call ptr @s2n_strerror(i32 noundef %13381, ptr noundef nonnull @.str.4) #13
  %13383 = load i32, ptr %1275, align 4, !tbaa !5
  %13384 = call ptr @s2n_strerror_debug(i32 noundef %13383, ptr noundef nonnull @.str.4) #13
  %13385 = load i32, ptr %1329, align 4, !tbaa !5
  %13386 = call ptr @strerror(i32 noundef %13385) #13
  %13387 = load i32, ptr %1329, align 4, !tbaa !5
  %13388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13379, ptr noundef nonnull %.str.5.sink6776, i32 noundef %13380, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1910, ptr noundef %13382, ptr noundef %13384, ptr noundef %13386, i32 noundef %13387) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13389:                                            ; preds = %13357
  %13390 = add nsw i32 %13364, 2
  store i32 %13390, ptr @test_count, align 4, !tbaa !5
  %13391 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %13250, ptr noundef nonnull @.str.23) #13
  %13392 = icmp eq i32 %13391, -1
  br i1 %13392, label %13393, label %13415

13393:                                            ; preds = %13389
  %13394 = load i32, ptr %1329, align 4, !tbaa !5
  %13395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13396 = call i32 @s2n_print_stacktrace(ptr noundef %13395) #13
  %13397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13398 = trunc nuw i8 %13397 to i1
  br i1 %13398, label %13399, label %13403

13399:                                            ; preds = %13393
  %13400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13401 = call i32 @fileno(ptr noundef %13400) #13
  %13402 = call i32 @isatty(i32 noundef %13401) #13
  %.not2262 = icmp eq i32 %13402, 0
  br i1 %.not2262, label %13403, label %13404

13403:                                            ; preds = %13399, %13393
  br label %13404

13404:                                            ; preds = %13399, %13403
  %.str.5.sink6785 = phi ptr [ @.str.5, %13403 ], [ @.str.2, %13399 ]
  store i32 %13394, ptr %1329, align 4, !tbaa !5
  %13405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13406 = load i32, ptr @test_count, align 4, !tbaa !5
  %13407 = load i32, ptr %1275, align 4, !tbaa !5
  %13408 = call ptr @s2n_strerror(i32 noundef %13407, ptr noundef nonnull @.str.4) #13
  %13409 = load i32, ptr %1275, align 4, !tbaa !5
  %13410 = call ptr @s2n_strerror_debug(i32 noundef %13409, ptr noundef nonnull @.str.4) #13
  %13411 = load i32, ptr %1329, align 4, !tbaa !5
  %13412 = call ptr @strerror(i32 noundef %13411) #13
  %13413 = load i32, ptr %1329, align 4, !tbaa !5
  %13414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13405, ptr noundef nonnull %.str.5.sink6785, i32 noundef %13406, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 1913, ptr noundef %13408, ptr noundef %13410, ptr noundef %13412, i32 noundef %13413) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13415:                                            ; preds = %13389
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %257) #13
  %13416 = load i32, ptr @test_count, align 4, !tbaa !5
  %13417 = add nsw i32 %13416, 1
  store i32 %13417, ptr @test_count, align 4, !tbaa !5
  %13418 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %257) #13
  %13419 = icmp eq i32 %13418, -1
  br i1 %13419, label %13420, label %13442

13420:                                            ; preds = %13415
  %13421 = load i32, ptr %1329, align 4, !tbaa !5
  %13422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13423 = call i32 @s2n_print_stacktrace(ptr noundef %13422) #13
  %13424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13425 = trunc nuw i8 %13424 to i1
  br i1 %13425, label %13426, label %13430

13426:                                            ; preds = %13420
  %13427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13428 = call i32 @fileno(ptr noundef %13427) #13
  %13429 = call i32 @isatty(i32 noundef %13428) #13
  %.not2261 = icmp eq i32 %13429, 0
  br i1 %.not2261, label %13430, label %13431

13430:                                            ; preds = %13426, %13420
  br label %13431

13431:                                            ; preds = %13426, %13430
  %.str.5.sink6794 = phi ptr [ @.str.5, %13430 ], [ @.str.2, %13426 ]
  store i32 %13421, ptr %1329, align 4, !tbaa !5
  %13432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13433 = load i32, ptr @test_count, align 4, !tbaa !5
  %13434 = load i32, ptr %1275, align 4, !tbaa !5
  %13435 = call ptr @s2n_strerror(i32 noundef %13434, ptr noundef nonnull @.str.4) #13
  %13436 = load i32, ptr %1275, align 4, !tbaa !5
  %13437 = call ptr @s2n_strerror_debug(i32 noundef %13436, ptr noundef nonnull @.str.4) #13
  %13438 = load i32, ptr %1329, align 4, !tbaa !5
  %13439 = call ptr @strerror(i32 noundef %13438) #13
  %13440 = load i32, ptr %1329, align 4, !tbaa !5
  %13441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13432, ptr noundef nonnull %.str.5.sink6794, i32 noundef %13433, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1916, ptr noundef %13435, ptr noundef %13437, ptr noundef %13439, i32 noundef %13440) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13442:                                            ; preds = %13415
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %258) #13
  store i32 -1, ptr %258, align 4, !tbaa !5
  %13443 = getelementptr inbounds i8, ptr %254, i64 16
  store i8 1, ptr %13443, align 8, !tbaa !60
  %13444 = load i32, ptr @test_count, align 4, !tbaa !5
  %13445 = add nsw i32 %13444, 1
  store i32 %13445, ptr @test_count, align 4, !tbaa !5
  %13446 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %254, ptr noundef nonnull %13250, ptr noundef nonnull %13363, i32 noundef %13362, ptr noundef nonnull %258, ptr noundef nonnull %257) #13
  %13447 = call zeroext i1 @s2n_result_is_ok(i32 %13446)
  br i1 %13447, label %13470, label %13448

13448:                                            ; preds = %13442
  %13449 = load i32, ptr %1329, align 4, !tbaa !5
  %13450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13451 = call i32 @s2n_print_stacktrace(ptr noundef %13450) #13
  %13452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13453 = trunc nuw i8 %13452 to i1
  br i1 %13453, label %13454, label %13458

13454:                                            ; preds = %13448
  %13455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13456 = call i32 @fileno(ptr noundef %13455) #13
  %13457 = call i32 @isatty(i32 noundef %13456) #13
  %.not2143 = icmp eq i32 %13457, 0
  br i1 %.not2143, label %13458, label %13459

13458:                                            ; preds = %13454, %13448
  br label %13459

13459:                                            ; preds = %13454, %13458
  %.str.5.sink6803 = phi ptr [ @.str.5, %13458 ], [ @.str.2, %13454 ]
  store i32 %13449, ptr %1329, align 4, !tbaa !5
  %13460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13461 = load i32, ptr @test_count, align 4, !tbaa !5
  %13462 = load i32, ptr %1275, align 4, !tbaa !5
  %13463 = call ptr @s2n_strerror(i32 noundef %13462, ptr noundef nonnull @.str.4) #13
  %13464 = load i32, ptr %1275, align 4, !tbaa !5
  %13465 = call ptr @s2n_strerror_debug(i32 noundef %13464, ptr noundef nonnull @.str.4) #13
  %13466 = load i32, ptr %1329, align 4, !tbaa !5
  %13467 = call ptr @strerror(i32 noundef %13466) #13
  %13468 = load i32, ptr %1329, align 4, !tbaa !5
  %13469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13460, ptr noundef nonnull %.str.5.sink6803, i32 noundef %13461, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 1919, ptr noundef %13463, ptr noundef %13465, ptr noundef %13467, i32 noundef %13468) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13470:                                            ; preds = %13442
  %13471 = call i32 @s2n_connection_free(ptr noundef nonnull %13250) #13
  %13472 = call i32 @s2n_pkey_free(ptr noundef nonnull %257) #13
  %13473 = call i32 @s2n_config_free(ptr noundef %13222) #13
  %13474 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %254) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %253) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %258) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %257) #13
  %13475 = call i32 @s2n_stuffer_free(ptr noundef nonnull %256) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %256) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %255) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %254) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %253) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %259) #13
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %259) #13
  %13476 = load i32, ptr @test_count, align 4, !tbaa !5
  %13477 = add nsw i32 %13476, 1
  store i32 %13477, ptr @test_count, align 4, !tbaa !5
  %13478 = call i32 @s2n_x509_trust_store_from_ca_file(ptr noundef nonnull %259, ptr noundef nonnull @.str.138, ptr noundef null) #13
  %13479 = icmp eq i32 %13478, 0
  br i1 %13479, label %13502, label %13480

13480:                                            ; preds = %13470
  %13481 = load i32, ptr %1329, align 4, !tbaa !5
  %13482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13483 = call i32 @s2n_print_stacktrace(ptr noundef %13482) #13
  %13484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13485 = trunc nuw i8 %13484 to i1
  br i1 %13485, label %13486, label %13490

13486:                                            ; preds = %13480
  %13487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13488 = call i32 @fileno(ptr noundef %13487) #13
  %13489 = call i32 @isatty(i32 noundef %13488) #13
  %.not2144 = icmp eq i32 %13489, 0
  br i1 %.not2144, label %13490, label %13491

13490:                                            ; preds = %13486, %13480
  br label %13491

13491:                                            ; preds = %13486, %13490
  %.str.5.sink6812 = phi ptr [ @.str.5, %13490 ], [ @.str.2, %13486 ]
  store i32 %13481, ptr %1329, align 4, !tbaa !5
  %13492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13493 = load i32, ptr @test_count, align 4, !tbaa !5
  %13494 = load i32, ptr %1275, align 4, !tbaa !5
  %13495 = call ptr @s2n_strerror(i32 noundef %13494, ptr noundef nonnull @.str.4) #13
  %13496 = load i32, ptr %1275, align 4, !tbaa !5
  %13497 = call ptr @s2n_strerror_debug(i32 noundef %13496, ptr noundef nonnull @.str.4) #13
  %13498 = load i32, ptr %1329, align 4, !tbaa !5
  %13499 = call ptr @strerror(i32 noundef %13498) #13
  %13500 = load i32, ptr %1329, align 4, !tbaa !5
  %13501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13492, ptr noundef nonnull %.str.5.sink6812, i32 noundef %13493, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 1933, ptr noundef %13495, ptr noundef %13497, ptr noundef %13499, i32 noundef %13500) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13502:                                            ; preds = %13470
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %260) #13
  %13503 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %260, ptr noundef nonnull %259, i8 noundef zeroext 1) #13
  %13504 = call ptr @s2n_config_new() #13
  %13505 = load i32, ptr @test_count, align 4, !tbaa !5
  %13506 = add nsw i32 %13505, 1
  store i32 %13506, ptr @test_count, align 4, !tbaa !5
  %13507 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %13504, ptr noundef nonnull @.str.140) #13
  %13508 = icmp eq i32 %13507, -1
  br i1 %13508, label %13509, label %13531

13509:                                            ; preds = %13502
  %13510 = load i32, ptr %1329, align 4, !tbaa !5
  %13511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13512 = call i32 @s2n_print_stacktrace(ptr noundef %13511) #13
  %13513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13514 = trunc nuw i8 %13513 to i1
  br i1 %13514, label %13515, label %13519

13515:                                            ; preds = %13509
  %13516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13517 = call i32 @fileno(ptr noundef %13516) #13
  %13518 = call i32 @isatty(i32 noundef %13517) #13
  %.not2260 = icmp eq i32 %13518, 0
  br i1 %.not2260, label %13519, label %13520

13519:                                            ; preds = %13515, %13509
  br label %13520

13520:                                            ; preds = %13515, %13519
  %.str.5.sink6821 = phi ptr [ @.str.5, %13519 ], [ @.str.2, %13515 ]
  store i32 %13510, ptr %1329, align 4, !tbaa !5
  %13521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13522 = load i32, ptr @test_count, align 4, !tbaa !5
  %13523 = load i32, ptr %1275, align 4, !tbaa !5
  %13524 = call ptr @s2n_strerror(i32 noundef %13523, ptr noundef nonnull @.str.4) #13
  %13525 = load i32, ptr %1275, align 4, !tbaa !5
  %13526 = call ptr @s2n_strerror_debug(i32 noundef %13525, ptr noundef nonnull @.str.4) #13
  %13527 = load i32, ptr %1329, align 4, !tbaa !5
  %13528 = call ptr @strerror(i32 noundef %13527) #13
  %13529 = load i32, ptr %1329, align 4, !tbaa !5
  %13530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13521, ptr noundef nonnull %.str.5.sink6821, i32 noundef %13522, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1939, ptr noundef %13524, ptr noundef %13526, ptr noundef %13528, i32 noundef %13529) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13531:                                            ; preds = %13502
  %13532 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %13533 = load i32, ptr @test_count, align 4, !tbaa !5
  %13534 = add nsw i32 %13533, 1
  store i32 %13534, ptr @test_count, align 4, !tbaa !5
  %13535 = call i32 @s2n_connection_set_config(ptr noundef %13532, ptr noundef %13504) #13
  %13536 = icmp eq i32 %13535, -1
  br i1 %13536, label %13537, label %13559

13537:                                            ; preds = %13531
  %13538 = load i32, ptr %1329, align 4, !tbaa !5
  %13539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13540 = call i32 @s2n_print_stacktrace(ptr noundef %13539) #13
  %13541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13542 = trunc nuw i8 %13541 to i1
  br i1 %13542, label %13543, label %13547

13543:                                            ; preds = %13537
  %13544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13545 = call i32 @fileno(ptr noundef %13544) #13
  %13546 = call i32 @isatty(i32 noundef %13545) #13
  %.not2259 = icmp eq i32 %13546, 0
  br i1 %.not2259, label %13547, label %13548

13547:                                            ; preds = %13543, %13537
  br label %13548

13548:                                            ; preds = %13543, %13547
  %.str.5.sink6830 = phi ptr [ @.str.5, %13547 ], [ @.str.2, %13543 ]
  store i32 %13538, ptr %1329, align 4, !tbaa !5
  %13549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13550 = load i32, ptr @test_count, align 4, !tbaa !5
  %13551 = load i32, ptr %1275, align 4, !tbaa !5
  %13552 = call ptr @s2n_strerror(i32 noundef %13551, ptr noundef nonnull @.str.4) #13
  %13553 = load i32, ptr %1275, align 4, !tbaa !5
  %13554 = call ptr @s2n_strerror_debug(i32 noundef %13553, ptr noundef nonnull @.str.4) #13
  %13555 = load i32, ptr %1329, align 4, !tbaa !5
  %13556 = call ptr @strerror(i32 noundef %13555) #13
  %13557 = load i32, ptr %1329, align 4, !tbaa !5
  %13558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13549, ptr noundef nonnull %.str.5.sink6830, i32 noundef %13550, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 1942, ptr noundef %13552, ptr noundef %13554, ptr noundef %13556, i32 noundef %13557) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13559:                                            ; preds = %13531
  %13560 = load i32, ptr @test_count, align 4, !tbaa !5
  %13561 = add nsw i32 %13560, 1
  store i32 %13561, ptr @test_count, align 4, !tbaa !5
  %13562 = icmp eq ptr %13532, null
  br i1 %13562, label %13563, label %13585

13563:                                            ; preds = %13559
  %13564 = load i32, ptr %1329, align 4, !tbaa !5
  %13565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13566 = call i32 @s2n_print_stacktrace(ptr noundef %13565) #13
  %13567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13568 = trunc nuw i8 %13567 to i1
  br i1 %13568, label %13569, label %13573

13569:                                            ; preds = %13563
  %13570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13571 = call i32 @fileno(ptr noundef %13570) #13
  %13572 = call i32 @isatty(i32 noundef %13571) #13
  %.not2258 = icmp eq i32 %13572, 0
  br i1 %.not2258, label %13573, label %13574

13573:                                            ; preds = %13569, %13563
  br label %13574

13574:                                            ; preds = %13569, %13573
  %.str.5.sink6839 = phi ptr [ @.str.5, %13573 ], [ @.str.2, %13569 ]
  store i32 %13564, ptr %1329, align 4, !tbaa !5
  %13575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13576 = load i32, ptr @test_count, align 4, !tbaa !5
  %13577 = load i32, ptr %1275, align 4, !tbaa !5
  %13578 = call ptr @s2n_strerror(i32 noundef %13577, ptr noundef nonnull @.str.4) #13
  %13579 = load i32, ptr %1275, align 4, !tbaa !5
  %13580 = call ptr @s2n_strerror_debug(i32 noundef %13579, ptr noundef nonnull @.str.4) #13
  %13581 = load i32, ptr %1329, align 4, !tbaa !5
  %13582 = call ptr @strerror(i32 noundef %13581) #13
  %13583 = load i32, ptr %1329, align 4, !tbaa !5
  %13584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13575, ptr noundef nonnull %.str.5.sink6839, i32 noundef %13576, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1944, ptr noundef %13578, ptr noundef %13580, ptr noundef %13582, i32 noundef %13583) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13585:                                            ; preds = %13559
  %13586 = getelementptr inbounds i8, ptr %13532, i64 220
  store i8 34, ptr %13586, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %261) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %261, i8 0, i64 16, i1 false)
  %13587 = add nsw i32 %13560, 2
  store i32 %13587, ptr @test_count, align 4, !tbaa !5
  %13588 = call i32 @s2n_connection_set_verify_host_callback(ptr noundef nonnull %13532, ptr noundef nonnull @verify_host_accept_everything, ptr noundef nonnull %261) #13
  %13589 = icmp eq i32 %13588, -1
  br i1 %13589, label %13590, label %13612

13590:                                            ; preds = %13585
  %13591 = load i32, ptr %1329, align 4, !tbaa !5
  %13592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13593 = call i32 @s2n_print_stacktrace(ptr noundef %13592) #13
  %13594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13595 = trunc nuw i8 %13594 to i1
  br i1 %13595, label %13596, label %13600

13596:                                            ; preds = %13590
  %13597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13598 = call i32 @fileno(ptr noundef %13597) #13
  %13599 = call i32 @isatty(i32 noundef %13598) #13
  %.not2257 = icmp eq i32 %13599, 0
  br i1 %.not2257, label %13600, label %13601

13600:                                            ; preds = %13596, %13590
  br label %13601

13601:                                            ; preds = %13596, %13600
  %.str.5.sink6848 = phi ptr [ @.str.5, %13600 ], [ @.str.2, %13596 ]
  store i32 %13591, ptr %1329, align 4, !tbaa !5
  %13602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13603 = load i32, ptr @test_count, align 4, !tbaa !5
  %13604 = load i32, ptr %1275, align 4, !tbaa !5
  %13605 = call ptr @s2n_strerror(i32 noundef %13604, ptr noundef nonnull @.str.4) #13
  %13606 = load i32, ptr %1275, align 4, !tbaa !5
  %13607 = call ptr @s2n_strerror_debug(i32 noundef %13606, ptr noundef nonnull @.str.4) #13
  %13608 = load i32, ptr %1329, align 4, !tbaa !5
  %13609 = call ptr @strerror(i32 noundef %13608) #13
  %13610 = load i32, ptr %1329, align 4, !tbaa !5
  %13611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13602, ptr noundef nonnull %.str.5.sink6848, i32 noundef %13603, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 1948, ptr noundef %13605, ptr noundef %13607, ptr noundef %13609, i32 noundef %13610) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13612:                                            ; preds = %13585
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %262) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %262, i8 0, i64 40, i1 false)
  %13613 = load i32, ptr @test_count, align 4, !tbaa !5
  %13614 = add nsw i32 %13613, 1
  store i32 %13614, ptr @test_count, align 4, !tbaa !5
  %13615 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef nonnull %13532, ptr noundef nonnull @.str.138, ptr noundef nonnull %262) #13
  %13616 = call zeroext i1 @s2n_result_is_ok(i32 %13615)
  br i1 %13616, label %13639, label %13617

13617:                                            ; preds = %13612
  %13618 = load i32, ptr %1329, align 4, !tbaa !5
  %13619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13620 = call i32 @s2n_print_stacktrace(ptr noundef %13619) #13
  %13621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13622 = trunc nuw i8 %13621 to i1
  br i1 %13622, label %13623, label %13627

13623:                                            ; preds = %13617
  %13624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13625 = call i32 @fileno(ptr noundef %13624) #13
  %13626 = call i32 @isatty(i32 noundef %13625) #13
  %.not2145 = icmp eq i32 %13626, 0
  br i1 %.not2145, label %13627, label %13628

13627:                                            ; preds = %13623, %13617
  br label %13628

13628:                                            ; preds = %13623, %13627
  %.str.5.sink6857 = phi ptr [ @.str.5, %13627 ], [ @.str.2, %13623 ]
  store i32 %13618, ptr %1329, align 4, !tbaa !5
  %13629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13630 = load i32, ptr @test_count, align 4, !tbaa !5
  %13631 = load i32, ptr %1275, align 4, !tbaa !5
  %13632 = call ptr @s2n_strerror(i32 noundef %13631, ptr noundef nonnull @.str.4) #13
  %13633 = load i32, ptr %1275, align 4, !tbaa !5
  %13634 = call ptr @s2n_strerror_debug(i32 noundef %13633, ptr noundef nonnull @.str.4) #13
  %13635 = load i32, ptr %1329, align 4, !tbaa !5
  %13636 = call ptr @strerror(i32 noundef %13635) #13
  %13637 = load i32, ptr %1329, align 4, !tbaa !5
  %13638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13629, ptr noundef nonnull %.str.5.sink6857, i32 noundef %13630, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 1951, ptr noundef %13632, ptr noundef %13634, ptr noundef %13636, i32 noundef %13637) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13639:                                            ; preds = %13612
  %13640 = getelementptr inbounds i8, ptr %262, i64 28
  %13641 = load i32, ptr %13640, align 4, !tbaa !15
  %13642 = getelementptr inbounds i8, ptr %262, i64 24
  %13643 = load i32, ptr %13642, align 8, !tbaa !18
  %13644 = sub i32 %13641, %13643
  %13645 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %262, i32 noundef %13644) #13
  %13646 = load i32, ptr @test_count, align 4, !tbaa !5
  %13647 = add nsw i32 %13646, 1
  store i32 %13647, ptr @test_count, align 4, !tbaa !5
  %13648 = icmp eq ptr %13645, null
  br i1 %13648, label %13649, label %13671

13649:                                            ; preds = %13639
  %13650 = load i32, ptr %1329, align 4, !tbaa !5
  %13651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13652 = call i32 @s2n_print_stacktrace(ptr noundef %13651) #13
  %13653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13654 = trunc nuw i8 %13653 to i1
  br i1 %13654, label %13655, label %13659

13655:                                            ; preds = %13649
  %13656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13657 = call i32 @fileno(ptr noundef %13656) #13
  %13658 = call i32 @isatty(i32 noundef %13657) #13
  %.not2256 = icmp eq i32 %13658, 0
  br i1 %.not2256, label %13659, label %13660

13659:                                            ; preds = %13655, %13649
  br label %13660

13660:                                            ; preds = %13655, %13659
  %.str.5.sink6866 = phi ptr [ @.str.5, %13659 ], [ @.str.2, %13655 ]
  store i32 %13650, ptr %1329, align 4, !tbaa !5
  %13661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13662 = load i32, ptr @test_count, align 4, !tbaa !5
  %13663 = load i32, ptr %1275, align 4, !tbaa !5
  %13664 = call ptr @s2n_strerror(i32 noundef %13663, ptr noundef nonnull @.str.4) #13
  %13665 = load i32, ptr %1275, align 4, !tbaa !5
  %13666 = call ptr @s2n_strerror_debug(i32 noundef %13665, ptr noundef nonnull @.str.4) #13
  %13667 = load i32, ptr %1329, align 4, !tbaa !5
  %13668 = call ptr @strerror(i32 noundef %13667) #13
  %13669 = load i32, ptr %1329, align 4, !tbaa !5
  %13670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13661, ptr noundef nonnull %.str.5.sink6866, i32 noundef %13662, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 1954, ptr noundef %13664, ptr noundef %13666, ptr noundef %13668, i32 noundef %13669) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13671:                                            ; preds = %13639
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %263) #13
  %13672 = add nsw i32 %13646, 2
  store i32 %13672, ptr @test_count, align 4, !tbaa !5
  %13673 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %263) #13
  %13674 = icmp eq i32 %13673, -1
  br i1 %13674, label %13675, label %13697

13675:                                            ; preds = %13671
  %13676 = load i32, ptr %1329, align 4, !tbaa !5
  %13677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13678 = call i32 @s2n_print_stacktrace(ptr noundef %13677) #13
  %13679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13680 = trunc nuw i8 %13679 to i1
  br i1 %13680, label %13681, label %13685

13681:                                            ; preds = %13675
  %13682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13683 = call i32 @fileno(ptr noundef %13682) #13
  %13684 = call i32 @isatty(i32 noundef %13683) #13
  %.not2255 = icmp eq i32 %13684, 0
  br i1 %.not2255, label %13685, label %13686

13685:                                            ; preds = %13681, %13675
  br label %13686

13686:                                            ; preds = %13681, %13685
  %.str.5.sink6875 = phi ptr [ @.str.5, %13685 ], [ @.str.2, %13681 ]
  store i32 %13676, ptr %1329, align 4, !tbaa !5
  %13687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13688 = load i32, ptr @test_count, align 4, !tbaa !5
  %13689 = load i32, ptr %1275, align 4, !tbaa !5
  %13690 = call ptr @s2n_strerror(i32 noundef %13689, ptr noundef nonnull @.str.4) #13
  %13691 = load i32, ptr %1275, align 4, !tbaa !5
  %13692 = call ptr @s2n_strerror_debug(i32 noundef %13691, ptr noundef nonnull @.str.4) #13
  %13693 = load i32, ptr %1329, align 4, !tbaa !5
  %13694 = call ptr @strerror(i32 noundef %13693) #13
  %13695 = load i32, ptr %1329, align 4, !tbaa !5
  %13696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13687, ptr noundef nonnull %.str.5.sink6875, i32 noundef %13688, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 1957, ptr noundef %13690, ptr noundef %13692, ptr noundef %13694, i32 noundef %13695) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13697:                                            ; preds = %13671
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %264) #13
  store i32 -1, ptr %264, align 4, !tbaa !5
  %13698 = load i32, ptr @test_count, align 4, !tbaa !5
  %13699 = add nsw i32 %13698, 1
  store i32 %13699, ptr @test_count, align 4, !tbaa !5
  %13700 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %260, ptr noundef nonnull %13532, ptr noundef nonnull %13645, i32 noundef %13644, ptr noundef nonnull %264, ptr noundef nonnull %263) #13
  %13701 = call zeroext i1 @s2n_result_is_error(i32 %13700)
  br i1 %13701, label %13724, label %13702

13702:                                            ; preds = %13697
  %13703 = load i32, ptr %1329, align 4, !tbaa !5
  %13704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13705 = call i32 @s2n_print_stacktrace(ptr noundef %13704) #13
  %13706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13707 = trunc nuw i8 %13706 to i1
  br i1 %13707, label %13708, label %13712

13708:                                            ; preds = %13702
  %13709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13710 = call i32 @fileno(ptr noundef %13709) #13
  %13711 = call i32 @isatty(i32 noundef %13710) #13
  %.not2146 = icmp eq i32 %13711, 0
  br i1 %.not2146, label %13712, label %13713

13712:                                            ; preds = %13708, %13702
  br label %13713

13713:                                            ; preds = %13708, %13712
  %.str.5.sink6884 = phi ptr [ @.str.5, %13712 ], [ @.str.2, %13708 ]
  store i32 %13703, ptr %1329, align 4, !tbaa !5
  %13714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13715 = load i32, ptr @test_count, align 4, !tbaa !5
  %13716 = load i32, ptr %1275, align 4, !tbaa !5
  %13717 = call ptr @s2n_strerror(i32 noundef %13716, ptr noundef nonnull @.str.4) #13
  %13718 = load i32, ptr %1275, align 4, !tbaa !5
  %13719 = call ptr @s2n_strerror_debug(i32 noundef %13718, ptr noundef nonnull @.str.4) #13
  %13720 = load i32, ptr %1329, align 4, !tbaa !5
  %13721 = call ptr @strerror(i32 noundef %13720) #13
  %13722 = load i32, ptr %1329, align 4, !tbaa !5
  %13723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13714, ptr noundef nonnull %.str.5.sink6884, i32 noundef %13715, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 1961, ptr noundef %13717, ptr noundef %13719, ptr noundef %13721, i32 noundef %13722) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13724:                                            ; preds = %13697
  %13725 = load i32, ptr @test_count, align 4, !tbaa !5
  %13726 = add nsw i32 %13725, 1
  store i32 %13726, ptr @test_count, align 4, !tbaa !5
  %13727 = load i32, ptr %1275, align 4, !tbaa !5
  %13728 = icmp eq i32 %13727, 335544366
  br i1 %13728, label %13751, label %13729

13729:                                            ; preds = %13724
  %13730 = load i32, ptr %1329, align 4, !tbaa !5
  %13731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13732 = call i32 @s2n_print_stacktrace(ptr noundef %13731) #13
  %13733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13734 = trunc nuw i8 %13733 to i1
  br i1 %13734, label %13735, label %13739

13735:                                            ; preds = %13729
  %13736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13737 = call i32 @fileno(ptr noundef %13736) #13
  %13738 = call i32 @isatty(i32 noundef %13737) #13
  %.not2147 = icmp eq i32 %13738, 0
  br i1 %.not2147, label %13739, label %13740

13739:                                            ; preds = %13735, %13729
  br label %13740

13740:                                            ; preds = %13735, %13739
  %.str.5.sink6893 = phi ptr [ @.str.5, %13739 ], [ @.str.2, %13735 ]
  store i32 %13730, ptr %1329, align 4, !tbaa !5
  %13741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13742 = load i32, ptr @test_count, align 4, !tbaa !5
  %13743 = load i32, ptr %1275, align 4, !tbaa !5
  %13744 = call ptr @s2n_strerror(i32 noundef %13743, ptr noundef nonnull @.str.4) #13
  %13745 = load i32, ptr %1275, align 4, !tbaa !5
  %13746 = call ptr @s2n_strerror_debug(i32 noundef %13745, ptr noundef nonnull @.str.4) #13
  %13747 = load i32, ptr %1329, align 4, !tbaa !5
  %13748 = call ptr @strerror(i32 noundef %13747) #13
  %13749 = load i32, ptr %1329, align 4, !tbaa !5
  %13750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13741, ptr noundef nonnull %.str.5.sink6893, i32 noundef %13742, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 1961, ptr noundef %13744, ptr noundef %13746, ptr noundef %13748, i32 noundef %13749) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13751:                                            ; preds = %13724
  %13752 = add nsw i32 %13725, 2
  store i32 %13752, ptr @test_count, align 4, !tbaa !5
  %13753 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %13754 = icmp eq ptr %13753, null
  br i1 %13754, label %13755, label %13777

13755:                                            ; preds = %13751
  %13756 = load i32, ptr %1329, align 4, !tbaa !5
  %13757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13758 = call i32 @s2n_print_stacktrace(ptr noundef %13757) #13
  %13759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13760 = trunc nuw i8 %13759 to i1
  br i1 %13760, label %13761, label %13765

13761:                                            ; preds = %13755
  %13762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13763 = call i32 @fileno(ptr noundef %13762) #13
  %13764 = call i32 @isatty(i32 noundef %13763) #13
  %.not2254 = icmp eq i32 %13764, 0
  br i1 %.not2254, label %13765, label %13766

13765:                                            ; preds = %13761, %13755
  br label %13766

13766:                                            ; preds = %13761, %13765
  %.str.5.sink6902 = phi ptr [ @.str.5, %13765 ], [ @.str.2, %13761 ]
  store i32 %13756, ptr %1329, align 4, !tbaa !5
  %13767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13768 = load i32, ptr @test_count, align 4, !tbaa !5
  %13769 = load i32, ptr %1275, align 4, !tbaa !5
  %13770 = call ptr @s2n_strerror(i32 noundef %13769, ptr noundef nonnull @.str.4) #13
  %13771 = load i32, ptr %1275, align 4, !tbaa !5
  %13772 = call ptr @s2n_strerror_debug(i32 noundef %13771, ptr noundef nonnull @.str.4) #13
  %13773 = load i32, ptr %1329, align 4, !tbaa !5
  %13774 = call ptr @strerror(i32 noundef %13773) #13
  %13775 = load i32, ptr %1329, align 4, !tbaa !5
  %13776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13767, ptr noundef nonnull %.str.5.sink6902, i32 noundef %13768, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1961, ptr noundef %13770, ptr noundef %13772, ptr noundef %13774, i32 noundef %13775) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13777:                                            ; preds = %13751
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %13778 = call i32 @s2n_connection_free(ptr noundef nonnull %13532) #13
  %13779 = call i32 @s2n_pkey_free(ptr noundef nonnull %263) #13
  %13780 = call i32 @s2n_config_free(ptr noundef %13504) #13
  %13781 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %260) #13
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %259) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %264) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %263) #13
  %13782 = call i32 @s2n_stuffer_free(ptr noundef nonnull %262) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %262) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %261) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %260) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %259) #13
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %265) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %265, i8 0, i64 56, i1 false)
  %13783 = load i32, ptr @test_count, align 4, !tbaa !5
  %13784 = add nsw i32 %13783, 1
  store i32 %13784, ptr @test_count, align 4, !tbaa !5
  %13785 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %265) #13
  %13786 = icmp eq i32 %13785, -1
  br i1 %13786, label %13787, label %13809

13787:                                            ; preds = %13777
  %13788 = load i32, ptr %1329, align 4, !tbaa !5
  %13789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13790 = call i32 @s2n_print_stacktrace(ptr noundef %13789) #13
  %13791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13792 = trunc nuw i8 %13791 to i1
  br i1 %13792, label %13793, label %13797

13793:                                            ; preds = %13787
  %13794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13795 = call i32 @fileno(ptr noundef %13794) #13
  %13796 = call i32 @isatty(i32 noundef %13795) #13
  %.not2253 = icmp eq i32 %13796, 0
  br i1 %.not2253, label %13797, label %13798

13797:                                            ; preds = %13793, %13787
  br label %13798

13798:                                            ; preds = %13793, %13797
  %.str.5.sink6911 = phi ptr [ @.str.5, %13797 ], [ @.str.2, %13793 ]
  store i32 %13788, ptr %1329, align 4, !tbaa !5
  %13799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13800 = load i32, ptr @test_count, align 4, !tbaa !5
  %13801 = load i32, ptr %1275, align 4, !tbaa !5
  %13802 = call ptr @s2n_strerror(i32 noundef %13801, ptr noundef nonnull @.str.4) #13
  %13803 = load i32, ptr %1275, align 4, !tbaa !5
  %13804 = call ptr @s2n_strerror_debug(i32 noundef %13803, ptr noundef nonnull @.str.4) #13
  %13805 = load i32, ptr %1329, align 4, !tbaa !5
  %13806 = call ptr @strerror(i32 noundef %13805) #13
  %13807 = load i32, ptr %1329, align 4, !tbaa !5
  %13808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13799, ptr noundef nonnull %.str.5.sink6911, i32 noundef %13800, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.1, i32 noundef 1974, ptr noundef %13802, ptr noundef %13804, ptr noundef %13806, i32 noundef %13807) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13809:                                            ; preds = %13777
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %266) #13
  %13810 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %13810, ptr %266, align 8, !tbaa !9
  %13811 = load i32, ptr @test_count, align 4, !tbaa !5
  %13812 = add nsw i32 %13811, 1
  store i32 %13812, ptr @test_count, align 4, !tbaa !5
  %13813 = icmp eq ptr %13810, null
  br i1 %13813, label %13814, label %13836

13814:                                            ; preds = %13809
  %13815 = load i32, ptr %1329, align 4, !tbaa !5
  %13816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13817 = call i32 @s2n_print_stacktrace(ptr noundef %13816) #13
  %13818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13819 = trunc nuw i8 %13818 to i1
  br i1 %13819, label %13820, label %13824

13820:                                            ; preds = %13814
  %13821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13822 = call i32 @fileno(ptr noundef %13821) #13
  %13823 = call i32 @isatty(i32 noundef %13822) #13
  %.not2252 = icmp eq i32 %13823, 0
  br i1 %.not2252, label %13824, label %13825

13824:                                            ; preds = %13820, %13814
  br label %13825

13825:                                            ; preds = %13820, %13824
  %.str.5.sink6920 = phi ptr [ @.str.5, %13824 ], [ @.str.2, %13820 ]
  store i32 %13815, ptr %1329, align 4, !tbaa !5
  %13826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13827 = load i32, ptr @test_count, align 4, !tbaa !5
  %13828 = load i32, ptr %1275, align 4, !tbaa !5
  %13829 = call ptr @s2n_strerror(i32 noundef %13828, ptr noundef nonnull @.str.4) #13
  %13830 = load i32, ptr %1275, align 4, !tbaa !5
  %13831 = call ptr @s2n_strerror_debug(i32 noundef %13830, ptr noundef nonnull @.str.4) #13
  %13832 = load i32, ptr %1329, align 4, !tbaa !5
  %13833 = call ptr @strerror(i32 noundef %13832) #13
  %13834 = load i32, ptr %1329, align 4, !tbaa !5
  %13835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13826, ptr noundef nonnull %.str.5.sink6920, i32 noundef %13827, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 1977, ptr noundef %13829, ptr noundef %13831, ptr noundef %13833, i32 noundef %13834) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13836:                                            ; preds = %13809
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %267) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %267, i8 0, i64 48, i1 false)
  %13837 = add nsw i32 %13811, 2
  store i32 %13837, ptr @test_count, align 4, !tbaa !5
  %13838 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %267) #13
  %13839 = icmp eq i32 %13838, -1
  br i1 %13839, label %13840, label %13862

13840:                                            ; preds = %13836
  %13841 = load i32, ptr %1329, align 4, !tbaa !5
  %13842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13843 = call i32 @s2n_print_stacktrace(ptr noundef %13842) #13
  %13844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13845 = trunc nuw i8 %13844 to i1
  br i1 %13845, label %13846, label %13850

13846:                                            ; preds = %13840
  %13847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13848 = call i32 @fileno(ptr noundef %13847) #13
  %13849 = call i32 @isatty(i32 noundef %13848) #13
  %.not2251 = icmp eq i32 %13849, 0
  br i1 %.not2251, label %13850, label %13851

13850:                                            ; preds = %13846, %13840
  br label %13851

13851:                                            ; preds = %13846, %13850
  %.str.5.sink6929 = phi ptr [ @.str.5, %13850 ], [ @.str.2, %13846 ]
  store i32 %13841, ptr %1329, align 4, !tbaa !5
  %13852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13853 = load i32, ptr @test_count, align 4, !tbaa !5
  %13854 = load i32, ptr %1275, align 4, !tbaa !5
  %13855 = call ptr @s2n_strerror(i32 noundef %13854, ptr noundef nonnull @.str.4) #13
  %13856 = load i32, ptr %1275, align 4, !tbaa !5
  %13857 = call ptr @s2n_strerror_debug(i32 noundef %13856, ptr noundef nonnull @.str.4) #13
  %13858 = load i32, ptr %1329, align 4, !tbaa !5
  %13859 = call ptr @strerror(i32 noundef %13858) #13
  %13860 = load i32, ptr %1329, align 4, !tbaa !5
  %13861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13852, ptr noundef nonnull %.str.5.sink6929, i32 noundef %13853, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 1980, ptr noundef %13855, ptr noundef %13857, ptr noundef %13859, i32 noundef %13860) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13862:                                            ; preds = %13836
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %268) #13
  store i32 -1, ptr %268, align 4, !tbaa !5
  %13863 = load i32, ptr @test_count, align 4, !tbaa !5
  %13864 = add nsw i32 %13863, 1
  store i32 %13864, ptr @test_count, align 4, !tbaa !5
  %13865 = load ptr, ptr %266, align 8, !tbaa !9
  %13866 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %265, ptr noundef %13865, ptr noundef null, i32 noundef 0, ptr noundef nonnull %268, ptr noundef nonnull %267) #13
  %13867 = call zeroext i1 @s2n_result_is_error(i32 %13866)
  br i1 %13867, label %13890, label %13868

13868:                                            ; preds = %13862
  %13869 = load i32, ptr %1329, align 4, !tbaa !5
  %13870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13871 = call i32 @s2n_print_stacktrace(ptr noundef %13870) #13
  %13872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13873 = trunc nuw i8 %13872 to i1
  br i1 %13873, label %13874, label %13878

13874:                                            ; preds = %13868
  %13875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13876 = call i32 @fileno(ptr noundef %13875) #13
  %13877 = call i32 @isatty(i32 noundef %13876) #13
  %.not2148 = icmp eq i32 %13877, 0
  br i1 %.not2148, label %13878, label %13879

13878:                                            ; preds = %13874, %13868
  br label %13879

13879:                                            ; preds = %13874, %13878
  %.str.5.sink6938 = phi ptr [ @.str.5, %13878 ], [ @.str.2, %13874 ]
  store i32 %13869, ptr %1329, align 4, !tbaa !5
  %13880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13881 = load i32, ptr @test_count, align 4, !tbaa !5
  %13882 = load i32, ptr %1275, align 4, !tbaa !5
  %13883 = call ptr @s2n_strerror(i32 noundef %13882, ptr noundef nonnull @.str.4) #13
  %13884 = load i32, ptr %1275, align 4, !tbaa !5
  %13885 = call ptr @s2n_strerror_debug(i32 noundef %13884, ptr noundef nonnull @.str.4) #13
  %13886 = load i32, ptr %1329, align 4, !tbaa !5
  %13887 = call ptr @strerror(i32 noundef %13886) #13
  %13888 = load i32, ptr %1329, align 4, !tbaa !5
  %13889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13880, ptr noundef nonnull %.str.5.sink6938, i32 noundef %13881, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 1985, ptr noundef %13883, ptr noundef %13885, ptr noundef %13887, i32 noundef %13888) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13890:                                            ; preds = %13862
  %13891 = load i32, ptr @test_count, align 4, !tbaa !5
  %13892 = add nsw i32 %13891, 1
  store i32 %13892, ptr @test_count, align 4, !tbaa !5
  %13893 = load i32, ptr %1275, align 4, !tbaa !5
  %13894 = icmp eq i32 %13893, 469762114
  br i1 %13894, label %13917, label %13895

13895:                                            ; preds = %13890
  %13896 = load i32, ptr %1329, align 4, !tbaa !5
  %13897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13898 = call i32 @s2n_print_stacktrace(ptr noundef %13897) #13
  %13899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13900 = trunc nuw i8 %13899 to i1
  br i1 %13900, label %13901, label %13905

13901:                                            ; preds = %13895
  %13902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13903 = call i32 @fileno(ptr noundef %13902) #13
  %13904 = call i32 @isatty(i32 noundef %13903) #13
  %.not2149 = icmp eq i32 %13904, 0
  br i1 %.not2149, label %13905, label %13906

13905:                                            ; preds = %13901, %13895
  br label %13906

13906:                                            ; preds = %13901, %13905
  %.str.5.sink6947 = phi ptr [ @.str.5, %13905 ], [ @.str.2, %13901 ]
  store i32 %13896, ptr %1329, align 4, !tbaa !5
  %13907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13908 = load i32, ptr @test_count, align 4, !tbaa !5
  %13909 = load i32, ptr %1275, align 4, !tbaa !5
  %13910 = call ptr @s2n_strerror(i32 noundef %13909, ptr noundef nonnull @.str.4) #13
  %13911 = load i32, ptr %1275, align 4, !tbaa !5
  %13912 = call ptr @s2n_strerror_debug(i32 noundef %13911, ptr noundef nonnull @.str.4) #13
  %13913 = load i32, ptr %1329, align 4, !tbaa !5
  %13914 = call ptr @strerror(i32 noundef %13913) #13
  %13915 = load i32, ptr %1329, align 4, !tbaa !5
  %13916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13907, ptr noundef nonnull %.str.5.sink6947, i32 noundef %13908, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.1, i32 noundef 1985, ptr noundef %13910, ptr noundef %13912, ptr noundef %13914, i32 noundef %13915) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13917:                                            ; preds = %13890
  %13918 = add nsw i32 %13891, 2
  store i32 %13918, ptr @test_count, align 4, !tbaa !5
  %13919 = call ptr @s2n_strerror_debug(i32 noundef 469762114, ptr noundef nonnull @.str.4) #13
  %13920 = icmp eq ptr %13919, null
  br i1 %13920, label %13921, label %13943

13921:                                            ; preds = %13917
  %13922 = load i32, ptr %1329, align 4, !tbaa !5
  %13923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13924 = call i32 @s2n_print_stacktrace(ptr noundef %13923) #13
  %13925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13926 = trunc nuw i8 %13925 to i1
  br i1 %13926, label %13927, label %13931

13927:                                            ; preds = %13921
  %13928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13929 = call i32 @fileno(ptr noundef %13928) #13
  %13930 = call i32 @isatty(i32 noundef %13929) #13
  %.not2250 = icmp eq i32 %13930, 0
  br i1 %.not2250, label %13931, label %13932

13931:                                            ; preds = %13927, %13921
  br label %13932

13932:                                            ; preds = %13927, %13931
  %.str.5.sink6956 = phi ptr [ @.str.5, %13931 ], [ @.str.2, %13927 ]
  store i32 %13922, ptr %1329, align 4, !tbaa !5
  %13933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13934 = load i32, ptr @test_count, align 4, !tbaa !5
  %13935 = load i32, ptr %1275, align 4, !tbaa !5
  %13936 = call ptr @s2n_strerror(i32 noundef %13935, ptr noundef nonnull @.str.4) #13
  %13937 = load i32, ptr %1275, align 4, !tbaa !5
  %13938 = call ptr @s2n_strerror_debug(i32 noundef %13937, ptr noundef nonnull @.str.4) #13
  %13939 = load i32, ptr %1329, align 4, !tbaa !5
  %13940 = call ptr @strerror(i32 noundef %13939) #13
  %13941 = load i32, ptr %1329, align 4, !tbaa !5
  %13942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13933, ptr noundef nonnull %.str.5.sink6956, i32 noundef %13934, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 1985, ptr noundef %13936, ptr noundef %13938, ptr noundef %13940, i32 noundef %13941) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13943:                                            ; preds = %13917
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %268) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %267) #13
  %13944 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %266) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %266) #13
  %13945 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %265) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %265) #13
  %13946 = call ptr @s2n_config_new() #13
  %13947 = load i32, ptr @test_count, align 4, !tbaa !5
  %13948 = add nsw i32 %13947, 1
  store i32 %13948, ptr @test_count, align 4, !tbaa !5
  %13949 = call i32 @s2n_config_wipe_trust_store(ptr noundef %13946) #13
  %13950 = icmp eq i32 %13949, -1
  br i1 %13950, label %13951, label %13973

13951:                                            ; preds = %13943
  %13952 = load i32, ptr %1329, align 4, !tbaa !5
  %13953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13954 = call i32 @s2n_print_stacktrace(ptr noundef %13953) #13
  %13955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13956 = trunc nuw i8 %13955 to i1
  br i1 %13956, label %13957, label %13961

13957:                                            ; preds = %13951
  %13958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13959 = call i32 @fileno(ptr noundef %13958) #13
  %13960 = call i32 @isatty(i32 noundef %13959) #13
  %.not2249 = icmp eq i32 %13960, 0
  br i1 %.not2249, label %13961, label %13962

13961:                                            ; preds = %13957, %13951
  br label %13962

13962:                                            ; preds = %13957, %13961
  %.str.5.sink6965 = phi ptr [ @.str.5, %13961 ], [ @.str.2, %13957 ]
  store i32 %13952, ptr %1329, align 4, !tbaa !5
  %13963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13964 = load i32, ptr @test_count, align 4, !tbaa !5
  %13965 = load i32, ptr %1275, align 4, !tbaa !5
  %13966 = call ptr @s2n_strerror(i32 noundef %13965, ptr noundef nonnull @.str.4) #13
  %13967 = load i32, ptr %1275, align 4, !tbaa !5
  %13968 = call ptr @s2n_strerror_debug(i32 noundef %13967, ptr noundef nonnull @.str.4) #13
  %13969 = load i32, ptr %1329, align 4, !tbaa !5
  %13970 = call ptr @strerror(i32 noundef %13969) #13
  %13971 = load i32, ptr %1329, align 4, !tbaa !5
  %13972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13963, ptr noundef nonnull %.str.5.sink6965, i32 noundef %13964, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 1993, ptr noundef %13966, ptr noundef %13968, ptr noundef %13970, i32 noundef %13971) #15
  call void @exit(i32 noundef 1) #16
  unreachable

13973:                                            ; preds = %13943
  %13974 = load i32, ptr @test_count, align 4, !tbaa !5
  %13975 = add nsw i32 %13974, 1
  store i32 %13975, ptr @test_count, align 4, !tbaa !5
  %13976 = getelementptr inbounds i8, ptr %13946, i64 304
  %13977 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %13976) #13
  %.not2150 = icmp eq i8 %13977, 0
  br i1 %.not2150, label %14000, label %13978

13978:                                            ; preds = %13973
  %13979 = load i32, ptr %1329, align 4, !tbaa !5
  %13980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13981 = call i32 @s2n_print_stacktrace(ptr noundef %13980) #13
  %13982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13983 = trunc nuw i8 %13982 to i1
  br i1 %13983, label %13984, label %13988

13984:                                            ; preds = %13978
  %13985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13986 = call i32 @fileno(ptr noundef %13985) #13
  %13987 = call i32 @isatty(i32 noundef %13986) #13
  %.not2248 = icmp eq i32 %13987, 0
  br i1 %.not2248, label %13988, label %13989

13988:                                            ; preds = %13984, %13978
  br label %13989

13989:                                            ; preds = %13984, %13988
  %.str.5.sink6974 = phi ptr [ @.str.5, %13988 ], [ @.str.2, %13984 ]
  store i32 %13979, ptr %1329, align 4, !tbaa !5
  %13990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13991 = load i32, ptr @test_count, align 4, !tbaa !5
  %13992 = load i32, ptr %1275, align 4, !tbaa !5
  %13993 = call ptr @s2n_strerror(i32 noundef %13992, ptr noundef nonnull @.str.4) #13
  %13994 = load i32, ptr %1275, align 4, !tbaa !5
  %13995 = call ptr @s2n_strerror_debug(i32 noundef %13994, ptr noundef nonnull @.str.4) #13
  %13996 = load i32, ptr %1329, align 4, !tbaa !5
  %13997 = call ptr @strerror(i32 noundef %13996) #13
  %13998 = load i32, ptr %1329, align 4, !tbaa !5
  %13999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13990, ptr noundef nonnull %.str.5.sink6974, i32 noundef %13991, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1994, ptr noundef %13993, ptr noundef %13995, ptr noundef %13997, i32 noundef %13998) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14000:                                            ; preds = %13973
  %14001 = call i32 @s2n_config_free(ptr noundef %13946) #13
  %14002 = call ptr @s2n_config_new() #13
  %14003 = load i32, ptr @test_count, align 4, !tbaa !5
  %14004 = add nsw i32 %14003, 1
  store i32 %14004, ptr @test_count, align 4, !tbaa !5
  %14005 = call i32 @s2n_config_wipe_trust_store(ptr noundef %14002) #13
  %14006 = icmp eq i32 %14005, -1
  br i1 %14006, label %14007, label %14029

14007:                                            ; preds = %14000
  %14008 = load i32, ptr %1329, align 4, !tbaa !5
  %14009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14010 = call i32 @s2n_print_stacktrace(ptr noundef %14009) #13
  %14011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14012 = trunc nuw i8 %14011 to i1
  br i1 %14012, label %14013, label %14017

14013:                                            ; preds = %14007
  %14014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14015 = call i32 @fileno(ptr noundef %14014) #13
  %14016 = call i32 @isatty(i32 noundef %14015) #13
  %.not2247 = icmp eq i32 %14016, 0
  br i1 %.not2247, label %14017, label %14018

14017:                                            ; preds = %14013, %14007
  br label %14018

14018:                                            ; preds = %14013, %14017
  %.str.5.sink6983 = phi ptr [ @.str.5, %14017 ], [ @.str.2, %14013 ]
  store i32 %14008, ptr %1329, align 4, !tbaa !5
  %14019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14020 = load i32, ptr @test_count, align 4, !tbaa !5
  %14021 = load i32, ptr %1275, align 4, !tbaa !5
  %14022 = call ptr @s2n_strerror(i32 noundef %14021, ptr noundef nonnull @.str.4) #13
  %14023 = load i32, ptr %1275, align 4, !tbaa !5
  %14024 = call ptr @s2n_strerror_debug(i32 noundef %14023, ptr noundef nonnull @.str.4) #13
  %14025 = load i32, ptr %1329, align 4, !tbaa !5
  %14026 = call ptr @strerror(i32 noundef %14025) #13
  %14027 = load i32, ptr %1329, align 4, !tbaa !5
  %14028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14019, ptr noundef nonnull %.str.5.sink6983, i32 noundef %14020, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 2001, ptr noundef %14022, ptr noundef %14024, ptr noundef %14026, i32 noundef %14027) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14029:                                            ; preds = %14000
  %14030 = load i32, ptr @test_count, align 4, !tbaa !5
  %14031 = add nsw i32 %14030, 1
  store i32 %14031, ptr @test_count, align 4, !tbaa !5
  %14032 = call i32 @s2n_config_wipe_trust_store(ptr noundef %14002) #13
  %14033 = icmp eq i32 %14032, -1
  br i1 %14033, label %14034, label %14056

14034:                                            ; preds = %14029
  %14035 = load i32, ptr %1329, align 4, !tbaa !5
  %14036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14037 = call i32 @s2n_print_stacktrace(ptr noundef %14036) #13
  %14038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14039 = trunc nuw i8 %14038 to i1
  br i1 %14039, label %14040, label %14044

14040:                                            ; preds = %14034
  %14041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14042 = call i32 @fileno(ptr noundef %14041) #13
  %14043 = call i32 @isatty(i32 noundef %14042) #13
  %.not2246 = icmp eq i32 %14043, 0
  br i1 %.not2246, label %14044, label %14045

14044:                                            ; preds = %14040, %14034
  br label %14045

14045:                                            ; preds = %14040, %14044
  %.str.5.sink6992 = phi ptr [ @.str.5, %14044 ], [ @.str.2, %14040 ]
  store i32 %14035, ptr %1329, align 4, !tbaa !5
  %14046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14047 = load i32, ptr @test_count, align 4, !tbaa !5
  %14048 = load i32, ptr %1275, align 4, !tbaa !5
  %14049 = call ptr @s2n_strerror(i32 noundef %14048, ptr noundef nonnull @.str.4) #13
  %14050 = load i32, ptr %1275, align 4, !tbaa !5
  %14051 = call ptr @s2n_strerror_debug(i32 noundef %14050, ptr noundef nonnull @.str.4) #13
  %14052 = load i32, ptr %1329, align 4, !tbaa !5
  %14053 = call ptr @strerror(i32 noundef %14052) #13
  %14054 = load i32, ptr %1329, align 4, !tbaa !5
  %14055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14046, ptr noundef nonnull %.str.5.sink6992, i32 noundef %14047, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 2002, ptr noundef %14049, ptr noundef %14051, ptr noundef %14053, i32 noundef %14054) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14056:                                            ; preds = %14029
  %14057 = load i32, ptr @test_count, align 4, !tbaa !5
  %14058 = add nsw i32 %14057, 1
  store i32 %14058, ptr @test_count, align 4, !tbaa !5
  %14059 = getelementptr inbounds i8, ptr %14002, i64 304
  %14060 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14059) #13
  %.not2151 = icmp eq i8 %14060, 0
  br i1 %.not2151, label %14083, label %14061

14061:                                            ; preds = %14056
  %14062 = load i32, ptr %1329, align 4, !tbaa !5
  %14063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14064 = call i32 @s2n_print_stacktrace(ptr noundef %14063) #13
  %14065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14066 = trunc nuw i8 %14065 to i1
  br i1 %14066, label %14067, label %14071

14067:                                            ; preds = %14061
  %14068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14069 = call i32 @fileno(ptr noundef %14068) #13
  %14070 = call i32 @isatty(i32 noundef %14069) #13
  %.not2245 = icmp eq i32 %14070, 0
  br i1 %.not2245, label %14071, label %14072

14071:                                            ; preds = %14067, %14061
  br label %14072

14072:                                            ; preds = %14067, %14071
  %.str.5.sink7001 = phi ptr [ @.str.5, %14071 ], [ @.str.2, %14067 ]
  store i32 %14062, ptr %1329, align 4, !tbaa !5
  %14073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14074 = load i32, ptr @test_count, align 4, !tbaa !5
  %14075 = load i32, ptr %1275, align 4, !tbaa !5
  %14076 = call ptr @s2n_strerror(i32 noundef %14075, ptr noundef nonnull @.str.4) #13
  %14077 = load i32, ptr %1275, align 4, !tbaa !5
  %14078 = call ptr @s2n_strerror_debug(i32 noundef %14077, ptr noundef nonnull @.str.4) #13
  %14079 = load i32, ptr %1329, align 4, !tbaa !5
  %14080 = call ptr @strerror(i32 noundef %14079) #13
  %14081 = load i32, ptr %1329, align 4, !tbaa !5
  %14082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14073, ptr noundef nonnull %.str.5.sink7001, i32 noundef %14074, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 2003, ptr noundef %14076, ptr noundef %14078, ptr noundef %14080, i32 noundef %14081) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14083:                                            ; preds = %14056
  %14084 = call i32 @s2n_config_free(ptr noundef %14002) #13
  %14085 = call ptr @s2n_config_new() #13
  %14086 = load i32, ptr @test_count, align 4, !tbaa !5
  %14087 = add nsw i32 %14086, 1
  store i32 %14087, ptr @test_count, align 4, !tbaa !5
  %14088 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %14085, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %14089 = icmp eq i32 %14088, -1
  br i1 %14089, label %14090, label %14112

14090:                                            ; preds = %14083
  %14091 = load i32, ptr %1329, align 4, !tbaa !5
  %14092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14093 = call i32 @s2n_print_stacktrace(ptr noundef %14092) #13
  %14094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14095 = trunc nuw i8 %14094 to i1
  br i1 %14095, label %14096, label %14100

14096:                                            ; preds = %14090
  %14097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14098 = call i32 @fileno(ptr noundef %14097) #13
  %14099 = call i32 @isatty(i32 noundef %14098) #13
  %.not2244 = icmp eq i32 %14099, 0
  br i1 %.not2244, label %14100, label %14101

14100:                                            ; preds = %14096, %14090
  br label %14101

14101:                                            ; preds = %14096, %14100
  %.str.5.sink7010 = phi ptr [ @.str.5, %14100 ], [ @.str.2, %14096 ]
  store i32 %14091, ptr %1329, align 4, !tbaa !5
  %14102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14103 = load i32, ptr @test_count, align 4, !tbaa !5
  %14104 = load i32, ptr %1275, align 4, !tbaa !5
  %14105 = call ptr @s2n_strerror(i32 noundef %14104, ptr noundef nonnull @.str.4) #13
  %14106 = load i32, ptr %1275, align 4, !tbaa !5
  %14107 = call ptr @s2n_strerror_debug(i32 noundef %14106, ptr noundef nonnull @.str.4) #13
  %14108 = load i32, ptr %1329, align 4, !tbaa !5
  %14109 = call ptr @strerror(i32 noundef %14108) #13
  %14110 = load i32, ptr %1329, align 4, !tbaa !5
  %14111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14102, ptr noundef nonnull %.str.5.sink7010, i32 noundef %14103, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 2010, ptr noundef %14105, ptr noundef %14107, ptr noundef %14109, i32 noundef %14110) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14112:                                            ; preds = %14083
  %14113 = load i32, ptr @test_count, align 4, !tbaa !5
  %14114 = add nsw i32 %14113, 1
  store i32 %14114, ptr @test_count, align 4, !tbaa !5
  %14115 = getelementptr inbounds i8, ptr %14085, i64 304
  %14116 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14115) #13
  %.not2152 = icmp eq i8 %14116, 0
  br i1 %.not2152, label %14117, label %14139

14117:                                            ; preds = %14112
  %14118 = load i32, ptr %1329, align 4, !tbaa !5
  %14119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14120 = call i32 @s2n_print_stacktrace(ptr noundef %14119) #13
  %14121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14122 = trunc nuw i8 %14121 to i1
  br i1 %14122, label %14123, label %14127

14123:                                            ; preds = %14117
  %14124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14125 = call i32 @fileno(ptr noundef %14124) #13
  %14126 = call i32 @isatty(i32 noundef %14125) #13
  %.not2153 = icmp eq i32 %14126, 0
  br i1 %.not2153, label %14127, label %14128

14127:                                            ; preds = %14123, %14117
  br label %14128

14128:                                            ; preds = %14123, %14127
  %.str.5.sink7019 = phi ptr [ @.str.5, %14127 ], [ @.str.2, %14123 ]
  store i32 %14118, ptr %1329, align 4, !tbaa !5
  %14129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14130 = load i32, ptr @test_count, align 4, !tbaa !5
  %14131 = load i32, ptr %1275, align 4, !tbaa !5
  %14132 = call ptr @s2n_strerror(i32 noundef %14131, ptr noundef nonnull @.str.4) #13
  %14133 = load i32, ptr %1275, align 4, !tbaa !5
  %14134 = call ptr @s2n_strerror_debug(i32 noundef %14133, ptr noundef nonnull @.str.4) #13
  %14135 = load i32, ptr %1329, align 4, !tbaa !5
  %14136 = call ptr @strerror(i32 noundef %14135) #13
  %14137 = load i32, ptr %1329, align 4, !tbaa !5
  %14138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14129, ptr noundef nonnull %.str.5.sink7019, i32 noundef %14130, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 2011, ptr noundef %14132, ptr noundef %14134, ptr noundef %14136, i32 noundef %14137) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14139:                                            ; preds = %14112
  %14140 = load i32, ptr @test_count, align 4, !tbaa !5
  %14141 = add nsw i32 %14140, 1
  store i32 %14141, ptr @test_count, align 4, !tbaa !5
  %14142 = call i32 @s2n_config_wipe_trust_store(ptr noundef %14085) #13
  %14143 = icmp eq i32 %14142, -1
  br i1 %14143, label %14144, label %14166

14144:                                            ; preds = %14139
  %14145 = load i32, ptr %1329, align 4, !tbaa !5
  %14146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14147 = call i32 @s2n_print_stacktrace(ptr noundef %14146) #13
  %14148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14149 = trunc nuw i8 %14148 to i1
  br i1 %14149, label %14150, label %14154

14150:                                            ; preds = %14144
  %14151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14152 = call i32 @fileno(ptr noundef %14151) #13
  %14153 = call i32 @isatty(i32 noundef %14152) #13
  %.not2243 = icmp eq i32 %14153, 0
  br i1 %.not2243, label %14154, label %14155

14154:                                            ; preds = %14150, %14144
  br label %14155

14155:                                            ; preds = %14150, %14154
  %.str.5.sink7028 = phi ptr [ @.str.5, %14154 ], [ @.str.2, %14150 ]
  store i32 %14145, ptr %1329, align 4, !tbaa !5
  %14156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14157 = load i32, ptr @test_count, align 4, !tbaa !5
  %14158 = load i32, ptr %1275, align 4, !tbaa !5
  %14159 = call ptr @s2n_strerror(i32 noundef %14158, ptr noundef nonnull @.str.4) #13
  %14160 = load i32, ptr %1275, align 4, !tbaa !5
  %14161 = call ptr @s2n_strerror_debug(i32 noundef %14160, ptr noundef nonnull @.str.4) #13
  %14162 = load i32, ptr %1329, align 4, !tbaa !5
  %14163 = call ptr @strerror(i32 noundef %14162) #13
  %14164 = load i32, ptr %1329, align 4, !tbaa !5
  %14165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14156, ptr noundef nonnull %.str.5.sink7028, i32 noundef %14157, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 2013, ptr noundef %14159, ptr noundef %14161, ptr noundef %14163, i32 noundef %14164) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14166:                                            ; preds = %14139
  %14167 = load i32, ptr @test_count, align 4, !tbaa !5
  %14168 = add nsw i32 %14167, 1
  store i32 %14168, ptr @test_count, align 4, !tbaa !5
  %14169 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14115) #13
  %.not2154 = icmp eq i8 %14169, 0
  br i1 %.not2154, label %14192, label %14170

14170:                                            ; preds = %14166
  %14171 = load i32, ptr %1329, align 4, !tbaa !5
  %14172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14173 = call i32 @s2n_print_stacktrace(ptr noundef %14172) #13
  %14174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14175 = trunc nuw i8 %14174 to i1
  br i1 %14175, label %14176, label %14180

14176:                                            ; preds = %14170
  %14177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14178 = call i32 @fileno(ptr noundef %14177) #13
  %14179 = call i32 @isatty(i32 noundef %14178) #13
  %.not2242 = icmp eq i32 %14179, 0
  br i1 %.not2242, label %14180, label %14181

14180:                                            ; preds = %14176, %14170
  br label %14181

14181:                                            ; preds = %14176, %14180
  %.str.5.sink7037 = phi ptr [ @.str.5, %14180 ], [ @.str.2, %14176 ]
  store i32 %14171, ptr %1329, align 4, !tbaa !5
  %14182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14183 = load i32, ptr @test_count, align 4, !tbaa !5
  %14184 = load i32, ptr %1275, align 4, !tbaa !5
  %14185 = call ptr @s2n_strerror(i32 noundef %14184, ptr noundef nonnull @.str.4) #13
  %14186 = load i32, ptr %1275, align 4, !tbaa !5
  %14187 = call ptr @s2n_strerror_debug(i32 noundef %14186, ptr noundef nonnull @.str.4) #13
  %14188 = load i32, ptr %1329, align 4, !tbaa !5
  %14189 = call ptr @strerror(i32 noundef %14188) #13
  %14190 = load i32, ptr %1329, align 4, !tbaa !5
  %14191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14182, ptr noundef nonnull %.str.5.sink7037, i32 noundef %14183, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 2014, ptr noundef %14185, ptr noundef %14187, ptr noundef %14189, i32 noundef %14190) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14192:                                            ; preds = %14166
  %14193 = call i32 @s2n_config_free(ptr noundef %14085) #13
  %14194 = call ptr @s2n_config_new() #13
  %14195 = load i32, ptr @test_count, align 4, !tbaa !5
  %14196 = add nsw i32 %14195, 1
  store i32 %14196, ptr @test_count, align 4, !tbaa !5
  %14197 = call i32 @s2n_config_wipe_trust_store(ptr noundef %14194) #13
  %14198 = icmp eq i32 %14197, -1
  br i1 %14198, label %14199, label %14221

14199:                                            ; preds = %14192
  %14200 = load i32, ptr %1329, align 4, !tbaa !5
  %14201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14202 = call i32 @s2n_print_stacktrace(ptr noundef %14201) #13
  %14203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14204 = trunc nuw i8 %14203 to i1
  br i1 %14204, label %14205, label %14209

14205:                                            ; preds = %14199
  %14206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14207 = call i32 @fileno(ptr noundef %14206) #13
  %14208 = call i32 @isatty(i32 noundef %14207) #13
  %.not2241 = icmp eq i32 %14208, 0
  br i1 %.not2241, label %14209, label %14210

14209:                                            ; preds = %14205, %14199
  br label %14210

14210:                                            ; preds = %14205, %14209
  %.str.5.sink7046 = phi ptr [ @.str.5, %14209 ], [ @.str.2, %14205 ]
  store i32 %14200, ptr %1329, align 4, !tbaa !5
  %14211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14212 = load i32, ptr @test_count, align 4, !tbaa !5
  %14213 = load i32, ptr %1275, align 4, !tbaa !5
  %14214 = call ptr @s2n_strerror(i32 noundef %14213, ptr noundef nonnull @.str.4) #13
  %14215 = load i32, ptr %1275, align 4, !tbaa !5
  %14216 = call ptr @s2n_strerror_debug(i32 noundef %14215, ptr noundef nonnull @.str.4) #13
  %14217 = load i32, ptr %1329, align 4, !tbaa !5
  %14218 = call ptr @strerror(i32 noundef %14217) #13
  %14219 = load i32, ptr %1329, align 4, !tbaa !5
  %14220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14211, ptr noundef nonnull %.str.5.sink7046, i32 noundef %14212, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 2021, ptr noundef %14214, ptr noundef %14216, ptr noundef %14218, i32 noundef %14219) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14221:                                            ; preds = %14192
  %14222 = load i32, ptr @test_count, align 4, !tbaa !5
  %14223 = add nsw i32 %14222, 1
  store i32 %14223, ptr @test_count, align 4, !tbaa !5
  %14224 = getelementptr inbounds i8, ptr %14194, i64 304
  %14225 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14224) #13
  %.not2155 = icmp eq i8 %14225, 0
  br i1 %.not2155, label %14248, label %14226

14226:                                            ; preds = %14221
  %14227 = load i32, ptr %1329, align 4, !tbaa !5
  %14228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14229 = call i32 @s2n_print_stacktrace(ptr noundef %14228) #13
  %14230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14231 = trunc nuw i8 %14230 to i1
  br i1 %14231, label %14232, label %14236

14232:                                            ; preds = %14226
  %14233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14234 = call i32 @fileno(ptr noundef %14233) #13
  %14235 = call i32 @isatty(i32 noundef %14234) #13
  %.not2240 = icmp eq i32 %14235, 0
  br i1 %.not2240, label %14236, label %14237

14236:                                            ; preds = %14232, %14226
  br label %14237

14237:                                            ; preds = %14232, %14236
  %.str.5.sink7055 = phi ptr [ @.str.5, %14236 ], [ @.str.2, %14232 ]
  store i32 %14227, ptr %1329, align 4, !tbaa !5
  %14238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14239 = load i32, ptr @test_count, align 4, !tbaa !5
  %14240 = load i32, ptr %1275, align 4, !tbaa !5
  %14241 = call ptr @s2n_strerror(i32 noundef %14240, ptr noundef nonnull @.str.4) #13
  %14242 = load i32, ptr %1275, align 4, !tbaa !5
  %14243 = call ptr @s2n_strerror_debug(i32 noundef %14242, ptr noundef nonnull @.str.4) #13
  %14244 = load i32, ptr %1329, align 4, !tbaa !5
  %14245 = call ptr @strerror(i32 noundef %14244) #13
  %14246 = load i32, ptr %1329, align 4, !tbaa !5
  %14247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14238, ptr noundef nonnull %.str.5.sink7055, i32 noundef %14239, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 2022, ptr noundef %14241, ptr noundef %14243, ptr noundef %14245, i32 noundef %14246) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14248:                                            ; preds = %14221
  %14249 = load i32, ptr @test_count, align 4, !tbaa !5
  %14250 = add nsw i32 %14249, 1
  store i32 %14250, ptr @test_count, align 4, !tbaa !5
  %14251 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %14194, ptr noundef nonnull @.str.11, ptr noundef null) #13
  %14252 = icmp eq i32 %14251, -1
  br i1 %14252, label %14253, label %14275

14253:                                            ; preds = %14248
  %14254 = load i32, ptr %1329, align 4, !tbaa !5
  %14255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14256 = call i32 @s2n_print_stacktrace(ptr noundef %14255) #13
  %14257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14258 = trunc nuw i8 %14257 to i1
  br i1 %14258, label %14259, label %14263

14259:                                            ; preds = %14253
  %14260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14261 = call i32 @fileno(ptr noundef %14260) #13
  %14262 = call i32 @isatty(i32 noundef %14261) #13
  %.not2239 = icmp eq i32 %14262, 0
  br i1 %.not2239, label %14263, label %14264

14263:                                            ; preds = %14259, %14253
  br label %14264

14264:                                            ; preds = %14259, %14263
  %.str.5.sink7064 = phi ptr [ @.str.5, %14263 ], [ @.str.2, %14259 ]
  store i32 %14254, ptr %1329, align 4, !tbaa !5
  %14265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14266 = load i32, ptr @test_count, align 4, !tbaa !5
  %14267 = load i32, ptr %1275, align 4, !tbaa !5
  %14268 = call ptr @s2n_strerror(i32 noundef %14267, ptr noundef nonnull @.str.4) #13
  %14269 = load i32, ptr %1275, align 4, !tbaa !5
  %14270 = call ptr @s2n_strerror_debug(i32 noundef %14269, ptr noundef nonnull @.str.4) #13
  %14271 = load i32, ptr %1329, align 4, !tbaa !5
  %14272 = call ptr @strerror(i32 noundef %14271) #13
  %14273 = load i32, ptr %1329, align 4, !tbaa !5
  %14274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14265, ptr noundef nonnull %.str.5.sink7064, i32 noundef %14266, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 2024, ptr noundef %14268, ptr noundef %14270, ptr noundef %14272, i32 noundef %14273) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14275:                                            ; preds = %14248
  %14276 = load i32, ptr @test_count, align 4, !tbaa !5
  %14277 = add nsw i32 %14276, 1
  store i32 %14277, ptr @test_count, align 4, !tbaa !5
  %14278 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14224) #13
  %.not2156 = icmp eq i8 %14278, 0
  br i1 %.not2156, label %14279, label %14301

14279:                                            ; preds = %14275
  %14280 = load i32, ptr %1329, align 4, !tbaa !5
  %14281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14282 = call i32 @s2n_print_stacktrace(ptr noundef %14281) #13
  %14283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14284 = trunc nuw i8 %14283 to i1
  br i1 %14284, label %14285, label %14289

14285:                                            ; preds = %14279
  %14286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14287 = call i32 @fileno(ptr noundef %14286) #13
  %14288 = call i32 @isatty(i32 noundef %14287) #13
  %.not2157 = icmp eq i32 %14288, 0
  br i1 %.not2157, label %14289, label %14290

14289:                                            ; preds = %14285, %14279
  br label %14290

14290:                                            ; preds = %14285, %14289
  %.str.5.sink7073 = phi ptr [ @.str.5, %14289 ], [ @.str.2, %14285 ]
  store i32 %14280, ptr %1329, align 4, !tbaa !5
  %14291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14292 = load i32, ptr @test_count, align 4, !tbaa !5
  %14293 = load i32, ptr %1275, align 4, !tbaa !5
  %14294 = call ptr @s2n_strerror(i32 noundef %14293, ptr noundef nonnull @.str.4) #13
  %14295 = load i32, ptr %1275, align 4, !tbaa !5
  %14296 = call ptr @s2n_strerror_debug(i32 noundef %14295, ptr noundef nonnull @.str.4) #13
  %14297 = load i32, ptr %1329, align 4, !tbaa !5
  %14298 = call ptr @strerror(i32 noundef %14297) #13
  %14299 = load i32, ptr %1329, align 4, !tbaa !5
  %14300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14291, ptr noundef nonnull %.str.5.sink7073, i32 noundef %14292, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 2025, ptr noundef %14294, ptr noundef %14296, ptr noundef %14298, i32 noundef %14299) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14301:                                            ; preds = %14275
  %14302 = call i32 @s2n_config_free(ptr noundef %14194) #13
  %14303 = call ptr @s2n_config_new() #13
  %14304 = load i32, ptr @test_count, align 4, !tbaa !5
  %14305 = add nsw i32 %14304, 1
  store i32 %14305, ptr @test_count, align 4, !tbaa !5
  %14306 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %14307 = icmp eq ptr %14306, null
  br i1 %14307, label %14308, label %14330

14308:                                            ; preds = %14301
  %14309 = load i32, ptr %1329, align 4, !tbaa !5
  %14310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14311 = call i32 @s2n_print_stacktrace(ptr noundef %14310) #13
  %14312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14313 = trunc nuw i8 %14312 to i1
  br i1 %14313, label %14314, label %14318

14314:                                            ; preds = %14308
  %14315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14316 = call i32 @fileno(ptr noundef %14315) #13
  %14317 = call i32 @isatty(i32 noundef %14316) #13
  %.not2238 = icmp eq i32 %14317, 0
  br i1 %.not2238, label %14318, label %14319

14318:                                            ; preds = %14314, %14308
  br label %14319

14319:                                            ; preds = %14314, %14318
  %.str.5.sink7082 = phi ptr [ @.str.5, %14318 ], [ @.str.2, %14314 ]
  store i32 %14309, ptr %1329, align 4, !tbaa !5
  %14320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14321 = load i32, ptr @test_count, align 4, !tbaa !5
  %14322 = load i32, ptr %1275, align 4, !tbaa !5
  %14323 = call ptr @s2n_strerror(i32 noundef %14322, ptr noundef nonnull @.str.4) #13
  %14324 = load i32, ptr %1275, align 4, !tbaa !5
  %14325 = call ptr @s2n_strerror_debug(i32 noundef %14324, ptr noundef nonnull @.str.4) #13
  %14326 = load i32, ptr %1329, align 4, !tbaa !5
  %14327 = call ptr @strerror(i32 noundef %14326) #13
  %14328 = load i32, ptr %1329, align 4, !tbaa !5
  %14329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14320, ptr noundef nonnull %.str.5.sink7082, i32 noundef %14321, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2033, ptr noundef %14323, ptr noundef %14325, ptr noundef %14327, i32 noundef %14328) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14330:                                            ; preds = %14301
  %14331 = add nsw i32 %14304, 2
  store i32 %14331, ptr @test_count, align 4, !tbaa !5
  %14332 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.11, ptr noundef nonnull %14306, i64 noundef 12000) #13
  %14333 = icmp eq i32 %14332, -1
  br i1 %14333, label %14334, label %14356

14334:                                            ; preds = %14330
  %14335 = load i32, ptr %1329, align 4, !tbaa !5
  %14336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14337 = call i32 @s2n_print_stacktrace(ptr noundef %14336) #13
  %14338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14339 = trunc nuw i8 %14338 to i1
  br i1 %14339, label %14340, label %14344

14340:                                            ; preds = %14334
  %14341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14342 = call i32 @fileno(ptr noundef %14341) #13
  %14343 = call i32 @isatty(i32 noundef %14342) #13
  %.not2237 = icmp eq i32 %14343, 0
  br i1 %.not2237, label %14344, label %14345

14344:                                            ; preds = %14340, %14334
  br label %14345

14345:                                            ; preds = %14340, %14344
  %.str.5.sink7091 = phi ptr [ @.str.5, %14344 ], [ @.str.2, %14340 ]
  store i32 %14335, ptr %1329, align 4, !tbaa !5
  %14346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14347 = load i32, ptr @test_count, align 4, !tbaa !5
  %14348 = load i32, ptr %1275, align 4, !tbaa !5
  %14349 = call ptr @s2n_strerror(i32 noundef %14348, ptr noundef nonnull @.str.4) #13
  %14350 = load i32, ptr %1275, align 4, !tbaa !5
  %14351 = call ptr @s2n_strerror_debug(i32 noundef %14350, ptr noundef nonnull @.str.4) #13
  %14352 = load i32, ptr %1329, align 4, !tbaa !5
  %14353 = call ptr @strerror(i32 noundef %14352) #13
  %14354 = load i32, ptr %1329, align 4, !tbaa !5
  %14355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14346, ptr noundef nonnull %.str.5.sink7091, i32 noundef %14347, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 2034, ptr noundef %14349, ptr noundef %14351, ptr noundef %14353, i32 noundef %14354) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14356:                                            ; preds = %14330
  %14357 = load i32, ptr @test_count, align 4, !tbaa !5
  %14358 = add nsw i32 %14357, 1
  store i32 %14358, ptr @test_count, align 4, !tbaa !5
  %14359 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %14303, ptr noundef nonnull %14306) #13
  %14360 = icmp eq i32 %14359, -1
  br i1 %14360, label %14361, label %14383

14361:                                            ; preds = %14356
  %14362 = load i32, ptr %1329, align 4, !tbaa !5
  %14363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14364 = call i32 @s2n_print_stacktrace(ptr noundef %14363) #13
  %14365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14366 = trunc nuw i8 %14365 to i1
  br i1 %14366, label %14367, label %14371

14367:                                            ; preds = %14361
  %14368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14369 = call i32 @fileno(ptr noundef %14368) #13
  %14370 = call i32 @isatty(i32 noundef %14369) #13
  %.not2236 = icmp eq i32 %14370, 0
  br i1 %.not2236, label %14371, label %14372

14371:                                            ; preds = %14367, %14361
  br label %14372

14372:                                            ; preds = %14367, %14371
  %.str.5.sink7100 = phi ptr [ @.str.5, %14371 ], [ @.str.2, %14367 ]
  store i32 %14362, ptr %1329, align 4, !tbaa !5
  %14373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14374 = load i32, ptr @test_count, align 4, !tbaa !5
  %14375 = load i32, ptr %1275, align 4, !tbaa !5
  %14376 = call ptr @s2n_strerror(i32 noundef %14375, ptr noundef nonnull @.str.4) #13
  %14377 = load i32, ptr %1275, align 4, !tbaa !5
  %14378 = call ptr @s2n_strerror_debug(i32 noundef %14377, ptr noundef nonnull @.str.4) #13
  %14379 = load i32, ptr %1329, align 4, !tbaa !5
  %14380 = call ptr @strerror(i32 noundef %14379) #13
  %14381 = load i32, ptr %1329, align 4, !tbaa !5
  %14382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14373, ptr noundef nonnull %.str.5.sink7100, i32 noundef %14374, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 2035, ptr noundef %14376, ptr noundef %14378, ptr noundef %14380, i32 noundef %14381) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14383:                                            ; preds = %14356
  %14384 = load i32, ptr @test_count, align 4, !tbaa !5
  %14385 = add nsw i32 %14384, 1
  store i32 %14385, ptr @test_count, align 4, !tbaa !5
  %14386 = getelementptr inbounds i8, ptr %14303, i64 304
  %14387 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14386) #13
  %.not2158 = icmp eq i8 %14387, 0
  br i1 %.not2158, label %14388, label %14410

14388:                                            ; preds = %14383
  %14389 = load i32, ptr %1329, align 4, !tbaa !5
  %14390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14391 = call i32 @s2n_print_stacktrace(ptr noundef %14390) #13
  %14392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14393 = trunc nuw i8 %14392 to i1
  br i1 %14393, label %14394, label %14398

14394:                                            ; preds = %14388
  %14395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14396 = call i32 @fileno(ptr noundef %14395) #13
  %14397 = call i32 @isatty(i32 noundef %14396) #13
  %.not2159 = icmp eq i32 %14397, 0
  br i1 %.not2159, label %14398, label %14399

14398:                                            ; preds = %14394, %14388
  br label %14399

14399:                                            ; preds = %14394, %14398
  %.str.5.sink7109 = phi ptr [ @.str.5, %14398 ], [ @.str.2, %14394 ]
  store i32 %14389, ptr %1329, align 4, !tbaa !5
  %14400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14401 = load i32, ptr @test_count, align 4, !tbaa !5
  %14402 = load i32, ptr %1275, align 4, !tbaa !5
  %14403 = call ptr @s2n_strerror(i32 noundef %14402, ptr noundef nonnull @.str.4) #13
  %14404 = load i32, ptr %1275, align 4, !tbaa !5
  %14405 = call ptr @s2n_strerror_debug(i32 noundef %14404, ptr noundef nonnull @.str.4) #13
  %14406 = load i32, ptr %1329, align 4, !tbaa !5
  %14407 = call ptr @strerror(i32 noundef %14406) #13
  %14408 = load i32, ptr %1329, align 4, !tbaa !5
  %14409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14400, ptr noundef nonnull %.str.5.sink7109, i32 noundef %14401, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 2036, ptr noundef %14403, ptr noundef %14405, ptr noundef %14407, i32 noundef %14408) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14410:                                            ; preds = %14383
  %14411 = load i32, ptr @test_count, align 4, !tbaa !5
  %14412 = add nsw i32 %14411, 1
  store i32 %14412, ptr @test_count, align 4, !tbaa !5
  %14413 = call i32 @s2n_config_wipe_trust_store(ptr noundef %14303) #13
  %14414 = icmp eq i32 %14413, -1
  br i1 %14414, label %14415, label %14437

14415:                                            ; preds = %14410
  %14416 = load i32, ptr %1329, align 4, !tbaa !5
  %14417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14418 = call i32 @s2n_print_stacktrace(ptr noundef %14417) #13
  %14419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14420 = trunc nuw i8 %14419 to i1
  br i1 %14420, label %14421, label %14425

14421:                                            ; preds = %14415
  %14422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14423 = call i32 @fileno(ptr noundef %14422) #13
  %14424 = call i32 @isatty(i32 noundef %14423) #13
  %.not2235 = icmp eq i32 %14424, 0
  br i1 %.not2235, label %14425, label %14426

14425:                                            ; preds = %14421, %14415
  br label %14426

14426:                                            ; preds = %14421, %14425
  %.str.5.sink7118 = phi ptr [ @.str.5, %14425 ], [ @.str.2, %14421 ]
  store i32 %14416, ptr %1329, align 4, !tbaa !5
  %14427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14428 = load i32, ptr @test_count, align 4, !tbaa !5
  %14429 = load i32, ptr %1275, align 4, !tbaa !5
  %14430 = call ptr @s2n_strerror(i32 noundef %14429, ptr noundef nonnull @.str.4) #13
  %14431 = load i32, ptr %1275, align 4, !tbaa !5
  %14432 = call ptr @s2n_strerror_debug(i32 noundef %14431, ptr noundef nonnull @.str.4) #13
  %14433 = load i32, ptr %1329, align 4, !tbaa !5
  %14434 = call ptr @strerror(i32 noundef %14433) #13
  %14435 = load i32, ptr %1329, align 4, !tbaa !5
  %14436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14427, ptr noundef nonnull %.str.5.sink7118, i32 noundef %14428, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 2038, ptr noundef %14430, ptr noundef %14432, ptr noundef %14434, i32 noundef %14435) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14437:                                            ; preds = %14410
  %14438 = load i32, ptr @test_count, align 4, !tbaa !5
  %14439 = add nsw i32 %14438, 1
  store i32 %14439, ptr @test_count, align 4, !tbaa !5
  %14440 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14386) #13
  %.not2160 = icmp eq i8 %14440, 0
  br i1 %.not2160, label %14463, label %14441

14441:                                            ; preds = %14437
  %14442 = load i32, ptr %1329, align 4, !tbaa !5
  %14443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14444 = call i32 @s2n_print_stacktrace(ptr noundef %14443) #13
  %14445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14446 = trunc nuw i8 %14445 to i1
  br i1 %14446, label %14447, label %14451

14447:                                            ; preds = %14441
  %14448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14449 = call i32 @fileno(ptr noundef %14448) #13
  %14450 = call i32 @isatty(i32 noundef %14449) #13
  %.not2234 = icmp eq i32 %14450, 0
  br i1 %.not2234, label %14451, label %14452

14451:                                            ; preds = %14447, %14441
  br label %14452

14452:                                            ; preds = %14447, %14451
  %.str.5.sink7127 = phi ptr [ @.str.5, %14451 ], [ @.str.2, %14447 ]
  store i32 %14442, ptr %1329, align 4, !tbaa !5
  %14453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14454 = load i32, ptr @test_count, align 4, !tbaa !5
  %14455 = load i32, ptr %1275, align 4, !tbaa !5
  %14456 = call ptr @s2n_strerror(i32 noundef %14455, ptr noundef nonnull @.str.4) #13
  %14457 = load i32, ptr %1275, align 4, !tbaa !5
  %14458 = call ptr @s2n_strerror_debug(i32 noundef %14457, ptr noundef nonnull @.str.4) #13
  %14459 = load i32, ptr %1329, align 4, !tbaa !5
  %14460 = call ptr @strerror(i32 noundef %14459) #13
  %14461 = load i32, ptr %1329, align 4, !tbaa !5
  %14462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14453, ptr noundef nonnull %.str.5.sink7127, i32 noundef %14454, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 2039, ptr noundef %14456, ptr noundef %14458, ptr noundef %14460, i32 noundef %14461) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14463:                                            ; preds = %14437
  call void @free(ptr noundef nonnull %14306) #13
  %14464 = call i32 @s2n_config_free(ptr noundef %14303) #13
  %14465 = call ptr @s2n_config_new() #13
  %14466 = load i32, ptr @test_count, align 4, !tbaa !5
  %14467 = add nsw i32 %14466, 1
  store i32 %14467, ptr @test_count, align 4, !tbaa !5
  %14468 = call i32 @s2n_config_wipe_trust_store(ptr noundef %14465) #13
  %14469 = icmp eq i32 %14468, -1
  br i1 %14469, label %14470, label %14492

14470:                                            ; preds = %14463
  %14471 = load i32, ptr %1329, align 4, !tbaa !5
  %14472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14473 = call i32 @s2n_print_stacktrace(ptr noundef %14472) #13
  %14474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14475 = trunc nuw i8 %14474 to i1
  br i1 %14475, label %14476, label %14480

14476:                                            ; preds = %14470
  %14477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14478 = call i32 @fileno(ptr noundef %14477) #13
  %14479 = call i32 @isatty(i32 noundef %14478) #13
  %.not2233 = icmp eq i32 %14479, 0
  br i1 %.not2233, label %14480, label %14481

14480:                                            ; preds = %14476, %14470
  br label %14481

14481:                                            ; preds = %14476, %14480
  %.str.5.sink7136 = phi ptr [ @.str.5, %14480 ], [ @.str.2, %14476 ]
  store i32 %14471, ptr %1329, align 4, !tbaa !5
  %14482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14483 = load i32, ptr @test_count, align 4, !tbaa !5
  %14484 = load i32, ptr %1275, align 4, !tbaa !5
  %14485 = call ptr @s2n_strerror(i32 noundef %14484, ptr noundef nonnull @.str.4) #13
  %14486 = load i32, ptr %1275, align 4, !tbaa !5
  %14487 = call ptr @s2n_strerror_debug(i32 noundef %14486, ptr noundef nonnull @.str.4) #13
  %14488 = load i32, ptr %1329, align 4, !tbaa !5
  %14489 = call ptr @strerror(i32 noundef %14488) #13
  %14490 = load i32, ptr %1329, align 4, !tbaa !5
  %14491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14482, ptr noundef nonnull %.str.5.sink7136, i32 noundef %14483, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 2047, ptr noundef %14485, ptr noundef %14487, ptr noundef %14489, i32 noundef %14490) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14492:                                            ; preds = %14463
  %14493 = load i32, ptr @test_count, align 4, !tbaa !5
  %14494 = add nsw i32 %14493, 1
  store i32 %14494, ptr @test_count, align 4, !tbaa !5
  %14495 = getelementptr inbounds i8, ptr %14465, i64 304
  %14496 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14495) #13
  %.not2161 = icmp eq i8 %14496, 0
  br i1 %.not2161, label %14519, label %14497

14497:                                            ; preds = %14492
  %14498 = load i32, ptr %1329, align 4, !tbaa !5
  %14499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14500 = call i32 @s2n_print_stacktrace(ptr noundef %14499) #13
  %14501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14502 = trunc nuw i8 %14501 to i1
  br i1 %14502, label %14503, label %14507

14503:                                            ; preds = %14497
  %14504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14505 = call i32 @fileno(ptr noundef %14504) #13
  %14506 = call i32 @isatty(i32 noundef %14505) #13
  %.not2232 = icmp eq i32 %14506, 0
  br i1 %.not2232, label %14507, label %14508

14507:                                            ; preds = %14503, %14497
  br label %14508

14508:                                            ; preds = %14503, %14507
  %.str.5.sink7145 = phi ptr [ @.str.5, %14507 ], [ @.str.2, %14503 ]
  store i32 %14498, ptr %1329, align 4, !tbaa !5
  %14509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14510 = load i32, ptr @test_count, align 4, !tbaa !5
  %14511 = load i32, ptr %1275, align 4, !tbaa !5
  %14512 = call ptr @s2n_strerror(i32 noundef %14511, ptr noundef nonnull @.str.4) #13
  %14513 = load i32, ptr %1275, align 4, !tbaa !5
  %14514 = call ptr @s2n_strerror_debug(i32 noundef %14513, ptr noundef nonnull @.str.4) #13
  %14515 = load i32, ptr %1329, align 4, !tbaa !5
  %14516 = call ptr @strerror(i32 noundef %14515) #13
  %14517 = load i32, ptr %1329, align 4, !tbaa !5
  %14518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14509, ptr noundef nonnull %.str.5.sink7145, i32 noundef %14510, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 2048, ptr noundef %14512, ptr noundef %14514, ptr noundef %14516, i32 noundef %14517) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14519:                                            ; preds = %14492
  %14520 = load i32, ptr @test_count, align 4, !tbaa !5
  %14521 = add nsw i32 %14520, 1
  store i32 %14521, ptr @test_count, align 4, !tbaa !5
  %14522 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %14523 = icmp eq ptr %14522, null
  br i1 %14523, label %14524, label %14546

14524:                                            ; preds = %14519
  %14525 = load i32, ptr %1329, align 4, !tbaa !5
  %14526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14527 = call i32 @s2n_print_stacktrace(ptr noundef %14526) #13
  %14528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14529 = trunc nuw i8 %14528 to i1
  br i1 %14529, label %14530, label %14534

14530:                                            ; preds = %14524
  %14531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14532 = call i32 @fileno(ptr noundef %14531) #13
  %14533 = call i32 @isatty(i32 noundef %14532) #13
  %.not2231 = icmp eq i32 %14533, 0
  br i1 %.not2231, label %14534, label %14535

14534:                                            ; preds = %14530, %14524
  br label %14535

14535:                                            ; preds = %14530, %14534
  %.str.5.sink7154 = phi ptr [ @.str.5, %14534 ], [ @.str.2, %14530 ]
  store i32 %14525, ptr %1329, align 4, !tbaa !5
  %14536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14537 = load i32, ptr @test_count, align 4, !tbaa !5
  %14538 = load i32, ptr %1275, align 4, !tbaa !5
  %14539 = call ptr @s2n_strerror(i32 noundef %14538, ptr noundef nonnull @.str.4) #13
  %14540 = load i32, ptr %1275, align 4, !tbaa !5
  %14541 = call ptr @s2n_strerror_debug(i32 noundef %14540, ptr noundef nonnull @.str.4) #13
  %14542 = load i32, ptr %1329, align 4, !tbaa !5
  %14543 = call ptr @strerror(i32 noundef %14542) #13
  %14544 = load i32, ptr %1329, align 4, !tbaa !5
  %14545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14536, ptr noundef nonnull %.str.5.sink7154, i32 noundef %14537, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2051, ptr noundef %14539, ptr noundef %14541, ptr noundef %14543, i32 noundef %14544) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14546:                                            ; preds = %14519
  %14547 = add nsw i32 %14520, 2
  store i32 %14547, ptr @test_count, align 4, !tbaa !5
  %14548 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.11, ptr noundef nonnull %14522, i64 noundef 12000) #13
  %14549 = icmp eq i32 %14548, -1
  br i1 %14549, label %14550, label %14572

14550:                                            ; preds = %14546
  %14551 = load i32, ptr %1329, align 4, !tbaa !5
  %14552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14553 = call i32 @s2n_print_stacktrace(ptr noundef %14552) #13
  %14554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14555 = trunc nuw i8 %14554 to i1
  br i1 %14555, label %14556, label %14560

14556:                                            ; preds = %14550
  %14557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14558 = call i32 @fileno(ptr noundef %14557) #13
  %14559 = call i32 @isatty(i32 noundef %14558) #13
  %.not2230 = icmp eq i32 %14559, 0
  br i1 %.not2230, label %14560, label %14561

14560:                                            ; preds = %14556, %14550
  br label %14561

14561:                                            ; preds = %14556, %14560
  %.str.5.sink7163 = phi ptr [ @.str.5, %14560 ], [ @.str.2, %14556 ]
  store i32 %14551, ptr %1329, align 4, !tbaa !5
  %14562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14563 = load i32, ptr @test_count, align 4, !tbaa !5
  %14564 = load i32, ptr %1275, align 4, !tbaa !5
  %14565 = call ptr @s2n_strerror(i32 noundef %14564, ptr noundef nonnull @.str.4) #13
  %14566 = load i32, ptr %1275, align 4, !tbaa !5
  %14567 = call ptr @s2n_strerror_debug(i32 noundef %14566, ptr noundef nonnull @.str.4) #13
  %14568 = load i32, ptr %1329, align 4, !tbaa !5
  %14569 = call ptr @strerror(i32 noundef %14568) #13
  %14570 = load i32, ptr %1329, align 4, !tbaa !5
  %14571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14562, ptr noundef nonnull %.str.5.sink7163, i32 noundef %14563, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 2052, ptr noundef %14565, ptr noundef %14567, ptr noundef %14569, i32 noundef %14570) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14572:                                            ; preds = %14546
  %14573 = load i32, ptr @test_count, align 4, !tbaa !5
  %14574 = add nsw i32 %14573, 1
  store i32 %14574, ptr @test_count, align 4, !tbaa !5
  %14575 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %14465, ptr noundef nonnull %14522) #13
  %14576 = icmp eq i32 %14575, -1
  br i1 %14576, label %14577, label %14599

14577:                                            ; preds = %14572
  %14578 = load i32, ptr %1329, align 4, !tbaa !5
  %14579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14580 = call i32 @s2n_print_stacktrace(ptr noundef %14579) #13
  %14581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14582 = trunc nuw i8 %14581 to i1
  br i1 %14582, label %14583, label %14587

14583:                                            ; preds = %14577
  %14584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14585 = call i32 @fileno(ptr noundef %14584) #13
  %14586 = call i32 @isatty(i32 noundef %14585) #13
  %.not2229 = icmp eq i32 %14586, 0
  br i1 %.not2229, label %14587, label %14588

14587:                                            ; preds = %14583, %14577
  br label %14588

14588:                                            ; preds = %14583, %14587
  %.str.5.sink7172 = phi ptr [ @.str.5, %14587 ], [ @.str.2, %14583 ]
  store i32 %14578, ptr %1329, align 4, !tbaa !5
  %14589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14590 = load i32, ptr @test_count, align 4, !tbaa !5
  %14591 = load i32, ptr %1275, align 4, !tbaa !5
  %14592 = call ptr @s2n_strerror(i32 noundef %14591, ptr noundef nonnull @.str.4) #13
  %14593 = load i32, ptr %1275, align 4, !tbaa !5
  %14594 = call ptr @s2n_strerror_debug(i32 noundef %14593, ptr noundef nonnull @.str.4) #13
  %14595 = load i32, ptr %1329, align 4, !tbaa !5
  %14596 = call ptr @strerror(i32 noundef %14595) #13
  %14597 = load i32, ptr %1329, align 4, !tbaa !5
  %14598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14589, ptr noundef nonnull %.str.5.sink7172, i32 noundef %14590, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 2053, ptr noundef %14592, ptr noundef %14594, ptr noundef %14596, i32 noundef %14597) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14599:                                            ; preds = %14572
  %14600 = load i32, ptr @test_count, align 4, !tbaa !5
  %14601 = add nsw i32 %14600, 1
  store i32 %14601, ptr @test_count, align 4, !tbaa !5
  %14602 = call zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef nonnull %14495) #13
  %.not2162 = icmp eq i8 %14602, 0
  br i1 %.not2162, label %14603, label %14625

14603:                                            ; preds = %14599
  %14604 = load i32, ptr %1329, align 4, !tbaa !5
  %14605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14606 = call i32 @s2n_print_stacktrace(ptr noundef %14605) #13
  %14607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14608 = trunc nuw i8 %14607 to i1
  br i1 %14608, label %14609, label %14613

14609:                                            ; preds = %14603
  %14610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14611 = call i32 @fileno(ptr noundef %14610) #13
  %14612 = call i32 @isatty(i32 noundef %14611) #13
  %.not2163 = icmp eq i32 %14612, 0
  br i1 %.not2163, label %14613, label %14614

14613:                                            ; preds = %14609, %14603
  br label %14614

14614:                                            ; preds = %14609, %14613
  %.str.5.sink7181 = phi ptr [ @.str.5, %14613 ], [ @.str.2, %14609 ]
  store i32 %14604, ptr %1329, align 4, !tbaa !5
  %14615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14616 = load i32, ptr @test_count, align 4, !tbaa !5
  %14617 = load i32, ptr %1275, align 4, !tbaa !5
  %14618 = call ptr @s2n_strerror(i32 noundef %14617, ptr noundef nonnull @.str.4) #13
  %14619 = load i32, ptr %1275, align 4, !tbaa !5
  %14620 = call ptr @s2n_strerror_debug(i32 noundef %14619, ptr noundef nonnull @.str.4) #13
  %14621 = load i32, ptr %1329, align 4, !tbaa !5
  %14622 = call ptr @strerror(i32 noundef %14621) #13
  %14623 = load i32, ptr %1329, align 4, !tbaa !5
  %14624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14615, ptr noundef nonnull %.str.5.sink7181, i32 noundef %14616, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 2054, ptr noundef %14618, ptr noundef %14620, ptr noundef %14622, i32 noundef %14623) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14625:                                            ; preds = %14599
  call void @free(ptr noundef nonnull %14522) #13
  %14626 = call i32 @s2n_config_free(ptr noundef %14465) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %269) #13
  store ptr null, ptr %269, align 8, !tbaa !9
  %14627 = load i32, ptr @test_count, align 4, !tbaa !5
  %14628 = add nsw i32 %14627, 1
  store i32 %14628, ptr @test_count, align 4, !tbaa !5
  %14629 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %269, ptr noundef nonnull @.str.151, ptr noundef nonnull @.str.152) #13
  %14630 = icmp eq i32 %14629, -1
  br i1 %14630, label %14631, label %14653

14631:                                            ; preds = %14625
  %14632 = load i32, ptr %1329, align 4, !tbaa !5
  %14633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14634 = call i32 @s2n_print_stacktrace(ptr noundef %14633) #13
  %14635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14636 = trunc nuw i8 %14635 to i1
  br i1 %14636, label %14637, label %14641

14637:                                            ; preds = %14631
  %14638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14639 = call i32 @fileno(ptr noundef %14638) #13
  %14640 = call i32 @isatty(i32 noundef %14639) #13
  %.not2228 = icmp eq i32 %14640, 0
  br i1 %.not2228, label %14641, label %14642

14641:                                            ; preds = %14637, %14631
  br label %14642

14642:                                            ; preds = %14637, %14641
  %.str.5.sink7190 = phi ptr [ @.str.5, %14641 ], [ @.str.2, %14637 ]
  store i32 %14632, ptr %1329, align 4, !tbaa !5
  %14643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14644 = load i32, ptr @test_count, align 4, !tbaa !5
  %14645 = load i32, ptr %1275, align 4, !tbaa !5
  %14646 = call ptr @s2n_strerror(i32 noundef %14645, ptr noundef nonnull @.str.4) #13
  %14647 = load i32, ptr %1275, align 4, !tbaa !5
  %14648 = call ptr @s2n_strerror_debug(i32 noundef %14647, ptr noundef nonnull @.str.4) #13
  %14649 = load i32, ptr %1329, align 4, !tbaa !5
  %14650 = call ptr @strerror(i32 noundef %14649) #13
  %14651 = load i32, ptr %1329, align 4, !tbaa !5
  %14652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14643, ptr noundef nonnull %.str.5.sink7190, i32 noundef %14644, ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.1, i32 noundef 2073, ptr noundef %14646, ptr noundef %14648, ptr noundef %14650, i32 noundef %14651) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14653:                                            ; preds = %14625
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %270) #13
  store ptr null, ptr %270, align 8, !tbaa !9
  %14654 = load i32, ptr @test_count, align 4, !tbaa !5
  %14655 = add nsw i32 %14654, 1
  store i32 %14655, ptr @test_count, align 4, !tbaa !5
  %14656 = load ptr, ptr %269, align 8, !tbaa !9
  %14657 = call i32 @s2n_cert_chain_get_cert(ptr noundef %14656, ptr noundef nonnull %270, i32 noundef 0) #13
  %14658 = icmp eq i32 %14657, -1
  br i1 %14658, label %14659, label %14681

14659:                                            ; preds = %14653
  %14660 = load i32, ptr %1329, align 4, !tbaa !5
  %14661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14662 = call i32 @s2n_print_stacktrace(ptr noundef %14661) #13
  %14663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14664 = trunc nuw i8 %14663 to i1
  br i1 %14664, label %14665, label %14669

14665:                                            ; preds = %14659
  %14666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14667 = call i32 @fileno(ptr noundef %14666) #13
  %14668 = call i32 @isatty(i32 noundef %14667) #13
  %.not2227 = icmp eq i32 %14668, 0
  br i1 %.not2227, label %14669, label %14670

14669:                                            ; preds = %14665, %14659
  br label %14670

14670:                                            ; preds = %14665, %14669
  %.str.5.sink7199 = phi ptr [ @.str.5, %14669 ], [ @.str.2, %14665 ]
  store i32 %14660, ptr %1329, align 4, !tbaa !5
  %14671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14672 = load i32, ptr @test_count, align 4, !tbaa !5
  %14673 = load i32, ptr %1275, align 4, !tbaa !5
  %14674 = call ptr @s2n_strerror(i32 noundef %14673, ptr noundef nonnull @.str.4) #13
  %14675 = load i32, ptr %1275, align 4, !tbaa !5
  %14676 = call ptr @s2n_strerror_debug(i32 noundef %14675, ptr noundef nonnull @.str.4) #13
  %14677 = load i32, ptr %1329, align 4, !tbaa !5
  %14678 = call ptr @strerror(i32 noundef %14677) #13
  %14679 = load i32, ptr %1329, align 4, !tbaa !5
  %14680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14671, ptr noundef nonnull %.str.5.sink7199, i32 noundef %14672, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.1, i32 noundef 2075, ptr noundef %14674, ptr noundef %14676, ptr noundef %14678, i32 noundef %14679) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14681:                                            ; preds = %14653
  %14682 = load i32, ptr @test_count, align 4, !tbaa !5
  %14683 = add nsw i32 %14682, 1
  store i32 %14683, ptr @test_count, align 4, !tbaa !5
  %14684 = load ptr, ptr %270, align 8, !tbaa !9
  %14685 = icmp eq ptr %14684, null
  br i1 %14685, label %14686, label %14708

14686:                                            ; preds = %14681
  %14687 = load i32, ptr %1329, align 4, !tbaa !5
  %14688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14689 = call i32 @s2n_print_stacktrace(ptr noundef %14688) #13
  %14690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14691 = trunc nuw i8 %14690 to i1
  br i1 %14691, label %14692, label %14696

14692:                                            ; preds = %14686
  %14693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14694 = call i32 @fileno(ptr noundef %14693) #13
  %14695 = call i32 @isatty(i32 noundef %14694) #13
  %.not2226 = icmp eq i32 %14695, 0
  br i1 %.not2226, label %14696, label %14697

14696:                                            ; preds = %14692, %14686
  br label %14697

14697:                                            ; preds = %14692, %14696
  %.str.5.sink7208 = phi ptr [ @.str.5, %14696 ], [ @.str.2, %14692 ]
  store i32 %14687, ptr %1329, align 4, !tbaa !5
  %14698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14699 = load i32, ptr @test_count, align 4, !tbaa !5
  %14700 = load i32, ptr %1275, align 4, !tbaa !5
  %14701 = call ptr @s2n_strerror(i32 noundef %14700, ptr noundef nonnull @.str.4) #13
  %14702 = load i32, ptr %1275, align 4, !tbaa !5
  %14703 = call ptr @s2n_strerror_debug(i32 noundef %14702, ptr noundef nonnull @.str.4) #13
  %14704 = load i32, ptr %1329, align 4, !tbaa !5
  %14705 = call ptr @strerror(i32 noundef %14704) #13
  %14706 = load i32, ptr %1329, align 4, !tbaa !5
  %14707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14698, ptr noundef nonnull %.str.5.sink7208, i32 noundef %14699, ptr noundef nonnull @.str.155, ptr noundef nonnull @.str.1, i32 noundef 2076, ptr noundef %14701, ptr noundef %14703, ptr noundef %14705, i32 noundef %14706) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14708:                                            ; preds = %14681
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %271) #13
  store ptr null, ptr %271, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %272) #13
  store i32 0, ptr %272, align 4, !tbaa !5
  %14709 = add nsw i32 %14682, 2
  store i32 %14709, ptr @test_count, align 4, !tbaa !5
  %14710 = call i32 @s2n_cert_get_der(ptr noundef nonnull %14684, ptr noundef nonnull %271, ptr noundef nonnull %272) #13
  %14711 = icmp eq i32 %14710, -1
  br i1 %14711, label %14712, label %14734

14712:                                            ; preds = %14708
  %14713 = load i32, ptr %1329, align 4, !tbaa !5
  %14714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14715 = call i32 @s2n_print_stacktrace(ptr noundef %14714) #13
  %14716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14717 = trunc nuw i8 %14716 to i1
  br i1 %14717, label %14718, label %14722

14718:                                            ; preds = %14712
  %14719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14720 = call i32 @fileno(ptr noundef %14719) #13
  %14721 = call i32 @isatty(i32 noundef %14720) #13
  %.not2225 = icmp eq i32 %14721, 0
  br i1 %.not2225, label %14722, label %14723

14722:                                            ; preds = %14718, %14712
  br label %14723

14723:                                            ; preds = %14718, %14722
  %.str.5.sink7217 = phi ptr [ @.str.5, %14722 ], [ @.str.2, %14718 ]
  store i32 %14713, ptr %1329, align 4, !tbaa !5
  %14724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14725 = load i32, ptr @test_count, align 4, !tbaa !5
  %14726 = load i32, ptr %1275, align 4, !tbaa !5
  %14727 = call ptr @s2n_strerror(i32 noundef %14726, ptr noundef nonnull @.str.4) #13
  %14728 = load i32, ptr %1275, align 4, !tbaa !5
  %14729 = call ptr @s2n_strerror_debug(i32 noundef %14728, ptr noundef nonnull @.str.4) #13
  %14730 = load i32, ptr %1329, align 4, !tbaa !5
  %14731 = call ptr @strerror(i32 noundef %14730) #13
  %14732 = load i32, ptr %1329, align 4, !tbaa !5
  %14733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14724, ptr noundef nonnull %.str.5.sink7217, i32 noundef %14725, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.1, i32 noundef 2081, ptr noundef %14727, ptr noundef %14729, ptr noundef %14731, i32 noundef %14732) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14734:                                            ; preds = %14708
  %14735 = load i32, ptr @test_count, align 4, !tbaa !5
  %14736 = add nsw i32 %14735, 1
  store i32 %14736, ptr @test_count, align 4, !tbaa !5
  %14737 = load ptr, ptr %271, align 8, !tbaa !9
  %14738 = icmp eq ptr %14737, null
  br i1 %14738, label %14739, label %14761

14739:                                            ; preds = %14734
  %14740 = load i32, ptr %1329, align 4, !tbaa !5
  %14741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14742 = call i32 @s2n_print_stacktrace(ptr noundef %14741) #13
  %14743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14744 = trunc nuw i8 %14743 to i1
  br i1 %14744, label %14745, label %14749

14745:                                            ; preds = %14739
  %14746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14747 = call i32 @fileno(ptr noundef %14746) #13
  %14748 = call i32 @isatty(i32 noundef %14747) #13
  %.not2224 = icmp eq i32 %14748, 0
  br i1 %.not2224, label %14749, label %14750

14749:                                            ; preds = %14745, %14739
  br label %14750

14750:                                            ; preds = %14745, %14749
  %.str.5.sink7226 = phi ptr [ @.str.5, %14749 ], [ @.str.2, %14745 ]
  store i32 %14740, ptr %1329, align 4, !tbaa !5
  %14751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14752 = load i32, ptr @test_count, align 4, !tbaa !5
  %14753 = load i32, ptr %1275, align 4, !tbaa !5
  %14754 = call ptr @s2n_strerror(i32 noundef %14753, ptr noundef nonnull @.str.4) #13
  %14755 = load i32, ptr %1275, align 4, !tbaa !5
  %14756 = call ptr @s2n_strerror_debug(i32 noundef %14755, ptr noundef nonnull @.str.4) #13
  %14757 = load i32, ptr %1329, align 4, !tbaa !5
  %14758 = call ptr @strerror(i32 noundef %14757) #13
  %14759 = load i32, ptr %1329, align 4, !tbaa !5
  %14760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14751, ptr noundef nonnull %.str.5.sink7226, i32 noundef %14752, ptr noundef nonnull @.str.157, ptr noundef nonnull @.str.1, i32 noundef 2082, ptr noundef %14754, ptr noundef %14756, ptr noundef %14758, i32 noundef %14759) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14761:                                            ; preds = %14734
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %273) #13
  %14762 = load i32, ptr %272, align 4, !tbaa !5
  %14763 = zext i32 %14762 to i64
  %14764 = call ptr @d2i_X509(ptr noundef null, ptr noundef nonnull %271, i64 noundef %14763) #13
  store ptr %14764, ptr %273, align 8, !tbaa !9
  %14765 = load i32, ptr @test_count, align 4, !tbaa !5
  %14766 = add nsw i32 %14765, 1
  store i32 %14766, ptr @test_count, align 4, !tbaa !5
  %14767 = icmp eq ptr %14764, null
  br i1 %14767, label %14768, label %14790

14768:                                            ; preds = %14761
  %14769 = load i32, ptr %1329, align 4, !tbaa !5
  %14770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14771 = call i32 @s2n_print_stacktrace(ptr noundef %14770) #13
  %14772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14773 = trunc nuw i8 %14772 to i1
  br i1 %14773, label %14774, label %14778

14774:                                            ; preds = %14768
  %14775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14776 = call i32 @fileno(ptr noundef %14775) #13
  %14777 = call i32 @isatty(i32 noundef %14776) #13
  %.not2223 = icmp eq i32 %14777, 0
  br i1 %.not2223, label %14778, label %14779

14778:                                            ; preds = %14774, %14768
  br label %14779

14779:                                            ; preds = %14774, %14778
  %.str.5.sink7235 = phi ptr [ @.str.5, %14778 ], [ @.str.2, %14774 ]
  store i32 %14769, ptr %1329, align 4, !tbaa !5
  %14780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14781 = load i32, ptr @test_count, align 4, !tbaa !5
  %14782 = load i32, ptr %1275, align 4, !tbaa !5
  %14783 = call ptr @s2n_strerror(i32 noundef %14782, ptr noundef nonnull @.str.4) #13
  %14784 = load i32, ptr %1275, align 4, !tbaa !5
  %14785 = call ptr @s2n_strerror_debug(i32 noundef %14784, ptr noundef nonnull @.str.4) #13
  %14786 = load i32, ptr %1329, align 4, !tbaa !5
  %14787 = call ptr @strerror(i32 noundef %14786) #13
  %14788 = load i32, ptr %1329, align 4, !tbaa !5
  %14789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14780, ptr noundef nonnull %.str.5.sink7235, i32 noundef %14781, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.1, i32 noundef 2086, ptr noundef %14783, ptr noundef %14785, ptr noundef %14787, i32 noundef %14788) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14790:                                            ; preds = %14761
  %14791 = call i32 @X509_get_extension_flags(ptr noundef nonnull %14764) #13
  %14792 = load i32, ptr @test_count, align 4, !tbaa !5
  %14793 = add nsw i32 %14792, 1
  store i32 %14793, ptr @test_count, align 4, !tbaa !5
  %14794 = and i32 %14791, 8192
  %14795 = icmp eq i32 %14794, 0
  br i1 %14795, label %14818, label %14796

14796:                                            ; preds = %14790
  %14797 = load i32, ptr %1329, align 4, !tbaa !5
  %14798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14799 = call i32 @s2n_print_stacktrace(ptr noundef %14798) #13
  %14800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14801 = trunc nuw i8 %14800 to i1
  br i1 %14801, label %14802, label %14806

14802:                                            ; preds = %14796
  %14803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14804 = call i32 @fileno(ptr noundef %14803) #13
  %14805 = call i32 @isatty(i32 noundef %14804) #13
  %.not2164 = icmp eq i32 %14805, 0
  br i1 %.not2164, label %14806, label %14807

14806:                                            ; preds = %14802, %14796
  br label %14807

14807:                                            ; preds = %14802, %14806
  %.str.5.sink7244 = phi ptr [ @.str.5, %14806 ], [ @.str.2, %14802 ]
  store i32 %14797, ptr %1329, align 4, !tbaa !5
  %14808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14809 = load i32, ptr @test_count, align 4, !tbaa !5
  %14810 = load i32, ptr %1275, align 4, !tbaa !5
  %14811 = call ptr @s2n_strerror(i32 noundef %14810, ptr noundef nonnull @.str.4) #13
  %14812 = load i32, ptr %1275, align 4, !tbaa !5
  %14813 = call ptr @s2n_strerror_debug(i32 noundef %14812, ptr noundef nonnull @.str.4) #13
  %14814 = load i32, ptr %1329, align 4, !tbaa !5
  %14815 = call ptr @strerror(i32 noundef %14814) #13
  %14816 = load i32, ptr %1329, align 4, !tbaa !5
  %14817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14808, ptr noundef nonnull %.str.5.sink7244, i32 noundef %14809, ptr noundef nonnull @.str.159, ptr noundef nonnull @.str.1, i32 noundef 2090, ptr noundef %14811, ptr noundef %14813, ptr noundef %14815, i32 noundef %14816) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14818:                                            ; preds = %14790
  call void @X509_free_pointer(ptr noundef nonnull %273)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %273) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %272) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %271) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %270) #13
  %14819 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %269) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %269) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %274) #13
  %14820 = call ptr @s2n_config_new() #13
  store ptr %14820, ptr %274, align 8, !tbaa !9
  %14821 = load i32, ptr @test_count, align 4, !tbaa !5
  %14822 = add nsw i32 %14821, 1
  store i32 %14822, ptr @test_count, align 4, !tbaa !5
  %14823 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %14820, ptr noundef nonnull @.str.151, ptr noundef null) #13
  %14824 = icmp eq i32 %14823, -1
  br i1 %14824, label %14825, label %14847

14825:                                            ; preds = %14818
  %14826 = load i32, ptr %1329, align 4, !tbaa !5
  %14827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14828 = call i32 @s2n_print_stacktrace(ptr noundef %14827) #13
  %14829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14830 = trunc nuw i8 %14829 to i1
  br i1 %14830, label %14831, label %14835

14831:                                            ; preds = %14825
  %14832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14833 = call i32 @fileno(ptr noundef %14832) #13
  %14834 = call i32 @isatty(i32 noundef %14833) #13
  %.not2222 = icmp eq i32 %14834, 0
  br i1 %.not2222, label %14835, label %14836

14835:                                            ; preds = %14831, %14825
  br label %14836

14836:                                            ; preds = %14831, %14835
  %.str.5.sink7253 = phi ptr [ @.str.5, %14835 ], [ @.str.2, %14831 ]
  store i32 %14826, ptr %1329, align 4, !tbaa !5
  %14837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14838 = load i32, ptr @test_count, align 4, !tbaa !5
  %14839 = load i32, ptr %1275, align 4, !tbaa !5
  %14840 = call ptr @s2n_strerror(i32 noundef %14839, ptr noundef nonnull @.str.4) #13
  %14841 = load i32, ptr %1275, align 4, !tbaa !5
  %14842 = call ptr @s2n_strerror_debug(i32 noundef %14841, ptr noundef nonnull @.str.4) #13
  %14843 = load i32, ptr %1329, align 4, !tbaa !5
  %14844 = call ptr @strerror(i32 noundef %14843) #13
  %14845 = load i32, ptr %1329, align 4, !tbaa !5
  %14846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14837, ptr noundef nonnull %.str.5.sink7253, i32 noundef %14838, ptr noundef nonnull @.str.160, ptr noundef nonnull @.str.1, i32 noundef 2097, ptr noundef %14840, ptr noundef %14842, ptr noundef %14844, i32 noundef %14845) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14847:                                            ; preds = %14818
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %275) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %275, i8 0, i64 56, i1 false)
  %14848 = load i32, ptr @test_count, align 4, !tbaa !5
  %14849 = add nsw i32 %14848, 1
  store i32 %14849, ptr @test_count, align 4, !tbaa !5
  %14850 = load ptr, ptr %274, align 8, !tbaa !9
  %14851 = getelementptr inbounds i8, ptr %14850, i64 304
  %14852 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %275, ptr noundef nonnull %14851, i8 noundef zeroext 0) #13
  %14853 = icmp eq i32 %14852, -1
  br i1 %14853, label %14854, label %14876

14854:                                            ; preds = %14847
  %14855 = load i32, ptr %1329, align 4, !tbaa !5
  %14856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14857 = call i32 @s2n_print_stacktrace(ptr noundef %14856) #13
  %14858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14859 = trunc nuw i8 %14858 to i1
  br i1 %14859, label %14860, label %14864

14860:                                            ; preds = %14854
  %14861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14862 = call i32 @fileno(ptr noundef %14861) #13
  %14863 = call i32 @isatty(i32 noundef %14862) #13
  %.not2221 = icmp eq i32 %14863, 0
  br i1 %.not2221, label %14864, label %14865

14864:                                            ; preds = %14860, %14854
  br label %14865

14865:                                            ; preds = %14860, %14864
  %.str.5.sink7262 = phi ptr [ @.str.5, %14864 ], [ @.str.2, %14860 ]
  store i32 %14855, ptr %1329, align 4, !tbaa !5
  %14866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14867 = load i32, ptr @test_count, align 4, !tbaa !5
  %14868 = load i32, ptr %1275, align 4, !tbaa !5
  %14869 = call ptr @s2n_strerror(i32 noundef %14868, ptr noundef nonnull @.str.4) #13
  %14870 = load i32, ptr %1275, align 4, !tbaa !5
  %14871 = call ptr @s2n_strerror_debug(i32 noundef %14870, ptr noundef nonnull @.str.4) #13
  %14872 = load i32, ptr %1329, align 4, !tbaa !5
  %14873 = call ptr @strerror(i32 noundef %14872) #13
  %14874 = load i32, ptr %1329, align 4, !tbaa !5
  %14875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14866, ptr noundef nonnull %.str.5.sink7262, i32 noundef %14867, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 2100, ptr noundef %14869, ptr noundef %14871, ptr noundef %14873, i32 noundef %14874) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14876:                                            ; preds = %14847
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %276) #13
  %14877 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %14877, ptr %276, align 8, !tbaa !9
  %14878 = load i32, ptr @test_count, align 4, !tbaa !5
  %14879 = add nsw i32 %14878, 1
  store i32 %14879, ptr @test_count, align 4, !tbaa !5
  %14880 = icmp eq ptr %14877, null
  br i1 %14880, label %14881, label %14903

14881:                                            ; preds = %14876
  %14882 = load i32, ptr %1329, align 4, !tbaa !5
  %14883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14884 = call i32 @s2n_print_stacktrace(ptr noundef %14883) #13
  %14885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14886 = trunc nuw i8 %14885 to i1
  br i1 %14886, label %14887, label %14891

14887:                                            ; preds = %14881
  %14888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14889 = call i32 @fileno(ptr noundef %14888) #13
  %14890 = call i32 @isatty(i32 noundef %14889) #13
  %.not2220 = icmp eq i32 %14890, 0
  br i1 %.not2220, label %14891, label %14892

14891:                                            ; preds = %14887, %14881
  br label %14892

14892:                                            ; preds = %14887, %14891
  %.str.5.sink7271 = phi ptr [ @.str.5, %14891 ], [ @.str.2, %14887 ]
  store i32 %14882, ptr %1329, align 4, !tbaa !5
  %14893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14894 = load i32, ptr @test_count, align 4, !tbaa !5
  %14895 = load i32, ptr %1275, align 4, !tbaa !5
  %14896 = call ptr @s2n_strerror(i32 noundef %14895, ptr noundef nonnull @.str.4) #13
  %14897 = load i32, ptr %1275, align 4, !tbaa !5
  %14898 = call ptr @s2n_strerror_debug(i32 noundef %14897, ptr noundef nonnull @.str.4) #13
  %14899 = load i32, ptr %1329, align 4, !tbaa !5
  %14900 = call ptr @strerror(i32 noundef %14899) #13
  %14901 = load i32, ptr %1329, align 4, !tbaa !5
  %14902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14893, ptr noundef nonnull %.str.5.sink7271, i32 noundef %14894, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 2103, ptr noundef %14896, ptr noundef %14898, ptr noundef %14900, i32 noundef %14901) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14903:                                            ; preds = %14876
  %14904 = add nsw i32 %14878, 2
  store i32 %14904, ptr @test_count, align 4, !tbaa !5
  %14905 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %14877, ptr noundef nonnull @.str.23) #13
  %14906 = icmp eq i32 %14905, -1
  br i1 %14906, label %14907, label %14929

14907:                                            ; preds = %14903
  %14908 = load i32, ptr %1329, align 4, !tbaa !5
  %14909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14910 = call i32 @s2n_print_stacktrace(ptr noundef %14909) #13
  %14911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14912 = trunc nuw i8 %14911 to i1
  br i1 %14912, label %14913, label %14917

14913:                                            ; preds = %14907
  %14914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14915 = call i32 @fileno(ptr noundef %14914) #13
  %14916 = call i32 @isatty(i32 noundef %14915) #13
  %.not2219 = icmp eq i32 %14916, 0
  br i1 %.not2219, label %14917, label %14918

14917:                                            ; preds = %14913, %14907
  br label %14918

14918:                                            ; preds = %14913, %14917
  %.str.5.sink7280 = phi ptr [ @.str.5, %14917 ], [ @.str.2, %14913 ]
  store i32 %14908, ptr %1329, align 4, !tbaa !5
  %14919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14920 = load i32, ptr @test_count, align 4, !tbaa !5
  %14921 = load i32, ptr %1275, align 4, !tbaa !5
  %14922 = call ptr @s2n_strerror(i32 noundef %14921, ptr noundef nonnull @.str.4) #13
  %14923 = load i32, ptr %1275, align 4, !tbaa !5
  %14924 = call ptr @s2n_strerror_debug(i32 noundef %14923, ptr noundef nonnull @.str.4) #13
  %14925 = load i32, ptr %1329, align 4, !tbaa !5
  %14926 = call ptr @strerror(i32 noundef %14925) #13
  %14927 = load i32, ptr %1329, align 4, !tbaa !5
  %14928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14919, ptr noundef nonnull %.str.5.sink7280, i32 noundef %14920, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 2104, ptr noundef %14922, ptr noundef %14924, ptr noundef %14926, i32 noundef %14927) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14929:                                            ; preds = %14903
  %14930 = load i32, ptr @test_count, align 4, !tbaa !5
  %14931 = add nsw i32 %14930, 1
  store i32 %14931, ptr @test_count, align 4, !tbaa !5
  %14932 = load ptr, ptr %276, align 8, !tbaa !9
  %14933 = call i32 @s2n_set_server_name(ptr noundef %14932, ptr noundef nonnull @.str.162) #13
  %14934 = icmp eq i32 %14933, -1
  br i1 %14934, label %14935, label %14957

14935:                                            ; preds = %14929
  %14936 = load i32, ptr %1329, align 4, !tbaa !5
  %14937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14938 = call i32 @s2n_print_stacktrace(ptr noundef %14937) #13
  %14939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14940 = trunc nuw i8 %14939 to i1
  br i1 %14940, label %14941, label %14945

14941:                                            ; preds = %14935
  %14942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14943 = call i32 @fileno(ptr noundef %14942) #13
  %14944 = call i32 @isatty(i32 noundef %14943) #13
  %.not2218 = icmp eq i32 %14944, 0
  br i1 %.not2218, label %14945, label %14946

14945:                                            ; preds = %14941, %14935
  br label %14946

14946:                                            ; preds = %14941, %14945
  %.str.5.sink7289 = phi ptr [ @.str.5, %14945 ], [ @.str.2, %14941 ]
  store i32 %14936, ptr %1329, align 4, !tbaa !5
  %14947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14948 = load i32, ptr @test_count, align 4, !tbaa !5
  %14949 = load i32, ptr %1275, align 4, !tbaa !5
  %14950 = call ptr @s2n_strerror(i32 noundef %14949, ptr noundef nonnull @.str.4) #13
  %14951 = load i32, ptr %1275, align 4, !tbaa !5
  %14952 = call ptr @s2n_strerror_debug(i32 noundef %14951, ptr noundef nonnull @.str.4) #13
  %14953 = load i32, ptr %1329, align 4, !tbaa !5
  %14954 = call ptr @strerror(i32 noundef %14953) #13
  %14955 = load i32, ptr %1329, align 4, !tbaa !5
  %14956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14947, ptr noundef nonnull %.str.5.sink7289, i32 noundef %14948, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 2105, ptr noundef %14950, ptr noundef %14952, ptr noundef %14954, i32 noundef %14955) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14957:                                            ; preds = %14929
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %277) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %277, i8 0, i64 40, i1 false)
  %14958 = load i32, ptr @test_count, align 4, !tbaa !5
  %14959 = add nsw i32 %14958, 1
  store i32 %14959, ptr @test_count, align 4, !tbaa !5
  %14960 = load ptr, ptr %276, align 8, !tbaa !9
  %14961 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %14960, ptr noundef nonnull @.str.151, ptr noundef nonnull %277) #13
  %14962 = call zeroext i1 @s2n_result_is_ok(i32 %14961)
  br i1 %14962, label %14985, label %14963

14963:                                            ; preds = %14957
  %14964 = load i32, ptr %1329, align 4, !tbaa !5
  %14965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14966 = call i32 @s2n_print_stacktrace(ptr noundef %14965) #13
  %14967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14968 = trunc nuw i8 %14967 to i1
  br i1 %14968, label %14969, label %14973

14969:                                            ; preds = %14963
  %14970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14971 = call i32 @fileno(ptr noundef %14970) #13
  %14972 = call i32 @isatty(i32 noundef %14971) #13
  %.not2165 = icmp eq i32 %14972, 0
  br i1 %.not2165, label %14973, label %14974

14973:                                            ; preds = %14969, %14963
  br label %14974

14974:                                            ; preds = %14969, %14973
  %.str.5.sink7298 = phi ptr [ @.str.5, %14973 ], [ @.str.2, %14969 ]
  store i32 %14964, ptr %1329, align 4, !tbaa !5
  %14975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14976 = load i32, ptr @test_count, align 4, !tbaa !5
  %14977 = load i32, ptr %1275, align 4, !tbaa !5
  %14978 = call ptr @s2n_strerror(i32 noundef %14977, ptr noundef nonnull @.str.4) #13
  %14979 = load i32, ptr %1275, align 4, !tbaa !5
  %14980 = call ptr @s2n_strerror_debug(i32 noundef %14979, ptr noundef nonnull @.str.4) #13
  %14981 = load i32, ptr %1329, align 4, !tbaa !5
  %14982 = call ptr @strerror(i32 noundef %14981) #13
  %14983 = load i32, ptr %1329, align 4, !tbaa !5
  %14984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14975, ptr noundef nonnull %.str.5.sink7298, i32 noundef %14976, ptr noundef nonnull @.str.164, ptr noundef nonnull @.str.1, i32 noundef 2108, ptr noundef %14978, ptr noundef %14980, ptr noundef %14982, i32 noundef %14983) #15
  call void @exit(i32 noundef 1) #16
  unreachable

14985:                                            ; preds = %14957
  %14986 = getelementptr inbounds i8, ptr %277, i64 28
  %14987 = load i32, ptr %14986, align 4, !tbaa !15
  %14988 = getelementptr inbounds i8, ptr %277, i64 24
  %14989 = load i32, ptr %14988, align 8, !tbaa !18
  %14990 = sub i32 %14987, %14989
  %14991 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %277, i32 noundef %14990) #13
  %14992 = load i32, ptr @test_count, align 4, !tbaa !5
  %14993 = add nsw i32 %14992, 1
  store i32 %14993, ptr @test_count, align 4, !tbaa !5
  %14994 = icmp eq ptr %14991, null
  br i1 %14994, label %14995, label %15017

14995:                                            ; preds = %14985
  %14996 = load i32, ptr %1329, align 4, !tbaa !5
  %14997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14998 = call i32 @s2n_print_stacktrace(ptr noundef %14997) #13
  %14999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15000 = trunc nuw i8 %14999 to i1
  br i1 %15000, label %15001, label %15005

15001:                                            ; preds = %14995
  %15002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15003 = call i32 @fileno(ptr noundef %15002) #13
  %15004 = call i32 @isatty(i32 noundef %15003) #13
  %.not2217 = icmp eq i32 %15004, 0
  br i1 %.not2217, label %15005, label %15006

15005:                                            ; preds = %15001, %14995
  br label %15006

15006:                                            ; preds = %15001, %15005
  %.str.5.sink7307 = phi ptr [ @.str.5, %15005 ], [ @.str.2, %15001 ]
  store i32 %14996, ptr %1329, align 4, !tbaa !5
  %15007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15008 = load i32, ptr @test_count, align 4, !tbaa !5
  %15009 = load i32, ptr %1275, align 4, !tbaa !5
  %15010 = call ptr @s2n_strerror(i32 noundef %15009, ptr noundef nonnull @.str.4) #13
  %15011 = load i32, ptr %1275, align 4, !tbaa !5
  %15012 = call ptr @s2n_strerror_debug(i32 noundef %15011, ptr noundef nonnull @.str.4) #13
  %15013 = load i32, ptr %1329, align 4, !tbaa !5
  %15014 = call ptr @strerror(i32 noundef %15013) #13
  %15015 = load i32, ptr %1329, align 4, !tbaa !5
  %15016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15007, ptr noundef nonnull %.str.5.sink7307, i32 noundef %15008, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 2111, ptr noundef %15010, ptr noundef %15012, ptr noundef %15014, i32 noundef %15015) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15017:                                            ; preds = %14985
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %278) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %278, i8 0, i64 48, i1 false)
  %15018 = add nsw i32 %14992, 2
  store i32 %15018, ptr @test_count, align 4, !tbaa !5
  %15019 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %278) #13
  %15020 = icmp eq i32 %15019, -1
  br i1 %15020, label %15021, label %15043

15021:                                            ; preds = %15017
  %15022 = load i32, ptr %1329, align 4, !tbaa !5
  %15023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15024 = call i32 @s2n_print_stacktrace(ptr noundef %15023) #13
  %15025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15026 = trunc nuw i8 %15025 to i1
  br i1 %15026, label %15027, label %15031

15027:                                            ; preds = %15021
  %15028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15029 = call i32 @fileno(ptr noundef %15028) #13
  %15030 = call i32 @isatty(i32 noundef %15029) #13
  %.not2216 = icmp eq i32 %15030, 0
  br i1 %.not2216, label %15031, label %15032

15031:                                            ; preds = %15027, %15021
  br label %15032

15032:                                            ; preds = %15027, %15031
  %.str.5.sink7316 = phi ptr [ @.str.5, %15031 ], [ @.str.2, %15027 ]
  store i32 %15022, ptr %1329, align 4, !tbaa !5
  %15033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15034 = load i32, ptr @test_count, align 4, !tbaa !5
  %15035 = load i32, ptr %1275, align 4, !tbaa !5
  %15036 = call ptr @s2n_strerror(i32 noundef %15035, ptr noundef nonnull @.str.4) #13
  %15037 = load i32, ptr %1275, align 4, !tbaa !5
  %15038 = call ptr @s2n_strerror_debug(i32 noundef %15037, ptr noundef nonnull @.str.4) #13
  %15039 = load i32, ptr %1329, align 4, !tbaa !5
  %15040 = call ptr @strerror(i32 noundef %15039) #13
  %15041 = load i32, ptr %1329, align 4, !tbaa !5
  %15042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15033, ptr noundef nonnull %.str.5.sink7316, i32 noundef %15034, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 2114, ptr noundef %15036, ptr noundef %15038, ptr noundef %15040, i32 noundef %15041) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15043:                                            ; preds = %15017
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %279) #13
  store i32 -1, ptr %279, align 4, !tbaa !5
  %15044 = load i32, ptr @test_count, align 4, !tbaa !5
  %15045 = add nsw i32 %15044, 1
  store i32 %15045, ptr @test_count, align 4, !tbaa !5
  %15046 = load ptr, ptr %276, align 8, !tbaa !9
  %15047 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %275, ptr noundef %15046, ptr noundef nonnull %14991, i32 noundef %14990, ptr noundef nonnull %279, ptr noundef nonnull %278) #13
  %15048 = call zeroext i1 @s2n_result_is_ok(i32 %15047)
  br i1 %15048, label %15071, label %15049

15049:                                            ; preds = %15043
  %15050 = load i32, ptr %1329, align 4, !tbaa !5
  %15051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15052 = call i32 @s2n_print_stacktrace(ptr noundef %15051) #13
  %15053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15054 = trunc nuw i8 %15053 to i1
  br i1 %15054, label %15055, label %15059

15055:                                            ; preds = %15049
  %15056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15057 = call i32 @fileno(ptr noundef %15056) #13
  %15058 = call i32 @isatty(i32 noundef %15057) #13
  %.not2166 = icmp eq i32 %15058, 0
  br i1 %.not2166, label %15059, label %15060

15059:                                            ; preds = %15055, %15049
  br label %15060

15060:                                            ; preds = %15055, %15059
  %.str.5.sink7325 = phi ptr [ @.str.5, %15059 ], [ @.str.2, %15055 ]
  store i32 %15050, ptr %1329, align 4, !tbaa !5
  %15061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15062 = load i32, ptr @test_count, align 4, !tbaa !5
  %15063 = load i32, ptr %1275, align 4, !tbaa !5
  %15064 = call ptr @s2n_strerror(i32 noundef %15063, ptr noundef nonnull @.str.4) #13
  %15065 = load i32, ptr %1275, align 4, !tbaa !5
  %15066 = call ptr @s2n_strerror_debug(i32 noundef %15065, ptr noundef nonnull @.str.4) #13
  %15067 = load i32, ptr %1329, align 4, !tbaa !5
  %15068 = call ptr @strerror(i32 noundef %15067) #13
  %15069 = load i32, ptr %1329, align 4, !tbaa !5
  %15070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15061, ptr noundef nonnull %.str.5.sink7325, i32 noundef %15062, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 2117, ptr noundef %15064, ptr noundef %15066, ptr noundef %15068, i32 noundef %15069) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15071:                                            ; preds = %15043
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %279) #13
  %15072 = call i32 @s2n_pkey_free(ptr noundef nonnull %278) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %278) #13
  %15073 = call i32 @s2n_stuffer_free(ptr noundef nonnull %277) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %277) #13
  %15074 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %276) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %276) #13
  %15075 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %275) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %275) #13
  %15076 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %274) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %274) #13
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %280) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %280, i8 0, i64 12000, i1 false)
  %15077 = load i32, ptr @test_count, align 4, !tbaa !5
  %15078 = add nsw i32 %15077, 1
  store i32 %15078, ptr @test_count, align 4, !tbaa !5
  %15079 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.151, ptr noundef nonnull %280, i64 noundef 12000) #13
  %15080 = icmp eq i32 %15079, -1
  br i1 %15080, label %15081, label %15103

15081:                                            ; preds = %15071
  %15082 = load i32, ptr %1329, align 4, !tbaa !5
  %15083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15084 = call i32 @s2n_print_stacktrace(ptr noundef %15083) #13
  %15085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15086 = trunc nuw i8 %15085 to i1
  br i1 %15086, label %15087, label %15091

15087:                                            ; preds = %15081
  %15088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15089 = call i32 @fileno(ptr noundef %15088) #13
  %15090 = call i32 @isatty(i32 noundef %15089) #13
  %.not2215 = icmp eq i32 %15090, 0
  br i1 %.not2215, label %15091, label %15092

15091:                                            ; preds = %15087, %15081
  br label %15092

15092:                                            ; preds = %15087, %15091
  %.str.5.sink7334 = phi ptr [ @.str.5, %15091 ], [ @.str.2, %15087 ]
  store i32 %15082, ptr %1329, align 4, !tbaa !5
  %15093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15094 = load i32, ptr @test_count, align 4, !tbaa !5
  %15095 = load i32, ptr %1275, align 4, !tbaa !5
  %15096 = call ptr @s2n_strerror(i32 noundef %15095, ptr noundef nonnull @.str.4) #13
  %15097 = load i32, ptr %1275, align 4, !tbaa !5
  %15098 = call ptr @s2n_strerror_debug(i32 noundef %15097, ptr noundef nonnull @.str.4) #13
  %15099 = load i32, ptr %1329, align 4, !tbaa !5
  %15100 = call ptr @strerror(i32 noundef %15099) #13
  %15101 = load i32, ptr %1329, align 4, !tbaa !5
  %15102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15093, ptr noundef nonnull %.str.5.sink7334, i32 noundef %15094, ptr noundef nonnull @.str.165, ptr noundef nonnull @.str.1, i32 noundef 2123, ptr noundef %15096, ptr noundef %15098, ptr noundef %15100, i32 noundef %15101) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15103:                                            ; preds = %15071
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %281) #13
  %15104 = call ptr @s2n_config_new() #13
  store ptr %15104, ptr %281, align 8, !tbaa !9
  %15105 = load i32, ptr @test_count, align 4, !tbaa !5
  %15106 = add nsw i32 %15105, 1
  store i32 %15106, ptr @test_count, align 4, !tbaa !5
  %15107 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %15104, ptr noundef nonnull %280) #13
  %15108 = icmp eq i32 %15107, -1
  br i1 %15108, label %15109, label %15131

15109:                                            ; preds = %15103
  %15110 = load i32, ptr %1329, align 4, !tbaa !5
  %15111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15112 = call i32 @s2n_print_stacktrace(ptr noundef %15111) #13
  %15113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15114 = trunc nuw i8 %15113 to i1
  br i1 %15114, label %15115, label %15119

15115:                                            ; preds = %15109
  %15116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15117 = call i32 @fileno(ptr noundef %15116) #13
  %15118 = call i32 @isatty(i32 noundef %15117) #13
  %.not2214 = icmp eq i32 %15118, 0
  br i1 %.not2214, label %15119, label %15120

15119:                                            ; preds = %15115, %15109
  br label %15120

15120:                                            ; preds = %15115, %15119
  %.str.5.sink7343 = phi ptr [ @.str.5, %15119 ], [ @.str.2, %15115 ]
  store i32 %15110, ptr %1329, align 4, !tbaa !5
  %15121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15122 = load i32, ptr @test_count, align 4, !tbaa !5
  %15123 = load i32, ptr %1275, align 4, !tbaa !5
  %15124 = call ptr @s2n_strerror(i32 noundef %15123, ptr noundef nonnull @.str.4) #13
  %15125 = load i32, ptr %1275, align 4, !tbaa !5
  %15126 = call ptr @s2n_strerror_debug(i32 noundef %15125, ptr noundef nonnull @.str.4) #13
  %15127 = load i32, ptr %1329, align 4, !tbaa !5
  %15128 = call ptr @strerror(i32 noundef %15127) #13
  %15129 = load i32, ptr %1329, align 4, !tbaa !5
  %15130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15121, ptr noundef nonnull %.str.5.sink7343, i32 noundef %15122, ptr noundef nonnull @.str.166, ptr noundef nonnull @.str.1, i32 noundef 2126, ptr noundef %15124, ptr noundef %15126, ptr noundef %15128, i32 noundef %15129) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15131:                                            ; preds = %15103
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %282) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %282, i8 0, i64 56, i1 false)
  %15132 = load i32, ptr @test_count, align 4, !tbaa !5
  %15133 = add nsw i32 %15132, 1
  store i32 %15133, ptr @test_count, align 4, !tbaa !5
  %15134 = load ptr, ptr %281, align 8, !tbaa !9
  %15135 = getelementptr inbounds i8, ptr %15134, i64 304
  %15136 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %282, ptr noundef nonnull %15135, i8 noundef zeroext 0) #13
  %15137 = icmp eq i32 %15136, -1
  br i1 %15137, label %15138, label %15160

15138:                                            ; preds = %15131
  %15139 = load i32, ptr %1329, align 4, !tbaa !5
  %15140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15141 = call i32 @s2n_print_stacktrace(ptr noundef %15140) #13
  %15142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15143 = trunc nuw i8 %15142 to i1
  br i1 %15143, label %15144, label %15148

15144:                                            ; preds = %15138
  %15145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15146 = call i32 @fileno(ptr noundef %15145) #13
  %15147 = call i32 @isatty(i32 noundef %15146) #13
  %.not2213 = icmp eq i32 %15147, 0
  br i1 %.not2213, label %15148, label %15149

15148:                                            ; preds = %15144, %15138
  br label %15149

15149:                                            ; preds = %15144, %15148
  %.str.5.sink7352 = phi ptr [ @.str.5, %15148 ], [ @.str.2, %15144 ]
  store i32 %15139, ptr %1329, align 4, !tbaa !5
  %15150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15151 = load i32, ptr @test_count, align 4, !tbaa !5
  %15152 = load i32, ptr %1275, align 4, !tbaa !5
  %15153 = call ptr @s2n_strerror(i32 noundef %15152, ptr noundef nonnull @.str.4) #13
  %15154 = load i32, ptr %1275, align 4, !tbaa !5
  %15155 = call ptr @s2n_strerror_debug(i32 noundef %15154, ptr noundef nonnull @.str.4) #13
  %15156 = load i32, ptr %1329, align 4, !tbaa !5
  %15157 = call ptr @strerror(i32 noundef %15156) #13
  %15158 = load i32, ptr %1329, align 4, !tbaa !5
  %15159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15150, ptr noundef nonnull %.str.5.sink7352, i32 noundef %15151, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 2129, ptr noundef %15153, ptr noundef %15155, ptr noundef %15157, i32 noundef %15158) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15160:                                            ; preds = %15131
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %283) #13
  %15161 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %15161, ptr %283, align 8, !tbaa !9
  %15162 = load i32, ptr @test_count, align 4, !tbaa !5
  %15163 = add nsw i32 %15162, 1
  store i32 %15163, ptr @test_count, align 4, !tbaa !5
  %15164 = icmp eq ptr %15161, null
  br i1 %15164, label %15165, label %15187

15165:                                            ; preds = %15160
  %15166 = load i32, ptr %1329, align 4, !tbaa !5
  %15167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15168 = call i32 @s2n_print_stacktrace(ptr noundef %15167) #13
  %15169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15170 = trunc nuw i8 %15169 to i1
  br i1 %15170, label %15171, label %15175

15171:                                            ; preds = %15165
  %15172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15173 = call i32 @fileno(ptr noundef %15172) #13
  %15174 = call i32 @isatty(i32 noundef %15173) #13
  %.not2212 = icmp eq i32 %15174, 0
  br i1 %.not2212, label %15175, label %15176

15175:                                            ; preds = %15171, %15165
  br label %15176

15176:                                            ; preds = %15171, %15175
  %.str.5.sink7361 = phi ptr [ @.str.5, %15175 ], [ @.str.2, %15171 ]
  store i32 %15166, ptr %1329, align 4, !tbaa !5
  %15177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15178 = load i32, ptr @test_count, align 4, !tbaa !5
  %15179 = load i32, ptr %1275, align 4, !tbaa !5
  %15180 = call ptr @s2n_strerror(i32 noundef %15179, ptr noundef nonnull @.str.4) #13
  %15181 = load i32, ptr %1275, align 4, !tbaa !5
  %15182 = call ptr @s2n_strerror_debug(i32 noundef %15181, ptr noundef nonnull @.str.4) #13
  %15183 = load i32, ptr %1329, align 4, !tbaa !5
  %15184 = call ptr @strerror(i32 noundef %15183) #13
  %15185 = load i32, ptr %1329, align 4, !tbaa !5
  %15186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15177, ptr noundef nonnull %.str.5.sink7361, i32 noundef %15178, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 2132, ptr noundef %15180, ptr noundef %15182, ptr noundef %15184, i32 noundef %15185) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15187:                                            ; preds = %15160
  %15188 = add nsw i32 %15162, 2
  store i32 %15188, ptr @test_count, align 4, !tbaa !5
  %15189 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %15161, ptr noundef nonnull @.str.23) #13
  %15190 = icmp eq i32 %15189, -1
  br i1 %15190, label %15191, label %15213

15191:                                            ; preds = %15187
  %15192 = load i32, ptr %1329, align 4, !tbaa !5
  %15193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15194 = call i32 @s2n_print_stacktrace(ptr noundef %15193) #13
  %15195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15196 = trunc nuw i8 %15195 to i1
  br i1 %15196, label %15197, label %15201

15197:                                            ; preds = %15191
  %15198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15199 = call i32 @fileno(ptr noundef %15198) #13
  %15200 = call i32 @isatty(i32 noundef %15199) #13
  %.not2211 = icmp eq i32 %15200, 0
  br i1 %.not2211, label %15201, label %15202

15201:                                            ; preds = %15197, %15191
  br label %15202

15202:                                            ; preds = %15197, %15201
  %.str.5.sink7370 = phi ptr [ @.str.5, %15201 ], [ @.str.2, %15197 ]
  store i32 %15192, ptr %1329, align 4, !tbaa !5
  %15203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15204 = load i32, ptr @test_count, align 4, !tbaa !5
  %15205 = load i32, ptr %1275, align 4, !tbaa !5
  %15206 = call ptr @s2n_strerror(i32 noundef %15205, ptr noundef nonnull @.str.4) #13
  %15207 = load i32, ptr %1275, align 4, !tbaa !5
  %15208 = call ptr @s2n_strerror_debug(i32 noundef %15207, ptr noundef nonnull @.str.4) #13
  %15209 = load i32, ptr %1329, align 4, !tbaa !5
  %15210 = call ptr @strerror(i32 noundef %15209) #13
  %15211 = load i32, ptr %1329, align 4, !tbaa !5
  %15212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15203, ptr noundef nonnull %.str.5.sink7370, i32 noundef %15204, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 2133, ptr noundef %15206, ptr noundef %15208, ptr noundef %15210, i32 noundef %15211) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15213:                                            ; preds = %15187
  %15214 = load i32, ptr @test_count, align 4, !tbaa !5
  %15215 = add nsw i32 %15214, 1
  store i32 %15215, ptr @test_count, align 4, !tbaa !5
  %15216 = load ptr, ptr %283, align 8, !tbaa !9
  %15217 = call i32 @s2n_set_server_name(ptr noundef %15216, ptr noundef nonnull @.str.162) #13
  %15218 = icmp eq i32 %15217, -1
  br i1 %15218, label %15219, label %15241

15219:                                            ; preds = %15213
  %15220 = load i32, ptr %1329, align 4, !tbaa !5
  %15221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15222 = call i32 @s2n_print_stacktrace(ptr noundef %15221) #13
  %15223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15224 = trunc nuw i8 %15223 to i1
  br i1 %15224, label %15225, label %15229

15225:                                            ; preds = %15219
  %15226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15227 = call i32 @fileno(ptr noundef %15226) #13
  %15228 = call i32 @isatty(i32 noundef %15227) #13
  %.not2210 = icmp eq i32 %15228, 0
  br i1 %.not2210, label %15229, label %15230

15229:                                            ; preds = %15225, %15219
  br label %15230

15230:                                            ; preds = %15225, %15229
  %.str.5.sink7379 = phi ptr [ @.str.5, %15229 ], [ @.str.2, %15225 ]
  store i32 %15220, ptr %1329, align 4, !tbaa !5
  %15231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15232 = load i32, ptr @test_count, align 4, !tbaa !5
  %15233 = load i32, ptr %1275, align 4, !tbaa !5
  %15234 = call ptr @s2n_strerror(i32 noundef %15233, ptr noundef nonnull @.str.4) #13
  %15235 = load i32, ptr %1275, align 4, !tbaa !5
  %15236 = call ptr @s2n_strerror_debug(i32 noundef %15235, ptr noundef nonnull @.str.4) #13
  %15237 = load i32, ptr %1329, align 4, !tbaa !5
  %15238 = call ptr @strerror(i32 noundef %15237) #13
  %15239 = load i32, ptr %1329, align 4, !tbaa !5
  %15240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15231, ptr noundef nonnull %.str.5.sink7379, i32 noundef %15232, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 2134, ptr noundef %15234, ptr noundef %15236, ptr noundef %15238, i32 noundef %15239) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15241:                                            ; preds = %15213
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %284) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %284, i8 0, i64 40, i1 false)
  %15242 = load i32, ptr @test_count, align 4, !tbaa !5
  %15243 = add nsw i32 %15242, 1
  store i32 %15243, ptr @test_count, align 4, !tbaa !5
  %15244 = load ptr, ptr %283, align 8, !tbaa !9
  %15245 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %15244, ptr noundef nonnull @.str.151, ptr noundef nonnull %284) #13
  %15246 = call zeroext i1 @s2n_result_is_ok(i32 %15245)
  br i1 %15246, label %15269, label %15247

15247:                                            ; preds = %15241
  %15248 = load i32, ptr %1329, align 4, !tbaa !5
  %15249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15250 = call i32 @s2n_print_stacktrace(ptr noundef %15249) #13
  %15251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15252 = trunc nuw i8 %15251 to i1
  br i1 %15252, label %15253, label %15257

15253:                                            ; preds = %15247
  %15254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15255 = call i32 @fileno(ptr noundef %15254) #13
  %15256 = call i32 @isatty(i32 noundef %15255) #13
  %.not2167 = icmp eq i32 %15256, 0
  br i1 %.not2167, label %15257, label %15258

15257:                                            ; preds = %15253, %15247
  br label %15258

15258:                                            ; preds = %15253, %15257
  %.str.5.sink7388 = phi ptr [ @.str.5, %15257 ], [ @.str.2, %15253 ]
  store i32 %15248, ptr %1329, align 4, !tbaa !5
  %15259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15260 = load i32, ptr @test_count, align 4, !tbaa !5
  %15261 = load i32, ptr %1275, align 4, !tbaa !5
  %15262 = call ptr @s2n_strerror(i32 noundef %15261, ptr noundef nonnull @.str.4) #13
  %15263 = load i32, ptr %1275, align 4, !tbaa !5
  %15264 = call ptr @s2n_strerror_debug(i32 noundef %15263, ptr noundef nonnull @.str.4) #13
  %15265 = load i32, ptr %1329, align 4, !tbaa !5
  %15266 = call ptr @strerror(i32 noundef %15265) #13
  %15267 = load i32, ptr %1329, align 4, !tbaa !5
  %15268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15259, ptr noundef nonnull %.str.5.sink7388, i32 noundef %15260, ptr noundef nonnull @.str.164, ptr noundef nonnull @.str.1, i32 noundef 2137, ptr noundef %15262, ptr noundef %15264, ptr noundef %15266, i32 noundef %15267) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15269:                                            ; preds = %15241
  %15270 = getelementptr inbounds i8, ptr %284, i64 28
  %15271 = load i32, ptr %15270, align 4, !tbaa !15
  %15272 = getelementptr inbounds i8, ptr %284, i64 24
  %15273 = load i32, ptr %15272, align 8, !tbaa !18
  %15274 = sub i32 %15271, %15273
  %15275 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %284, i32 noundef %15274) #13
  %15276 = load i32, ptr @test_count, align 4, !tbaa !5
  %15277 = add nsw i32 %15276, 1
  store i32 %15277, ptr @test_count, align 4, !tbaa !5
  %15278 = icmp eq ptr %15275, null
  br i1 %15278, label %15279, label %15301

15279:                                            ; preds = %15269
  %15280 = load i32, ptr %1329, align 4, !tbaa !5
  %15281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15282 = call i32 @s2n_print_stacktrace(ptr noundef %15281) #13
  %15283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15284 = trunc nuw i8 %15283 to i1
  br i1 %15284, label %15285, label %15289

15285:                                            ; preds = %15279
  %15286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15287 = call i32 @fileno(ptr noundef %15286) #13
  %15288 = call i32 @isatty(i32 noundef %15287) #13
  %.not2209 = icmp eq i32 %15288, 0
  br i1 %.not2209, label %15289, label %15290

15289:                                            ; preds = %15285, %15279
  br label %15290

15290:                                            ; preds = %15285, %15289
  %.str.5.sink7397 = phi ptr [ @.str.5, %15289 ], [ @.str.2, %15285 ]
  store i32 %15280, ptr %1329, align 4, !tbaa !5
  %15291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15292 = load i32, ptr @test_count, align 4, !tbaa !5
  %15293 = load i32, ptr %1275, align 4, !tbaa !5
  %15294 = call ptr @s2n_strerror(i32 noundef %15293, ptr noundef nonnull @.str.4) #13
  %15295 = load i32, ptr %1275, align 4, !tbaa !5
  %15296 = call ptr @s2n_strerror_debug(i32 noundef %15295, ptr noundef nonnull @.str.4) #13
  %15297 = load i32, ptr %1329, align 4, !tbaa !5
  %15298 = call ptr @strerror(i32 noundef %15297) #13
  %15299 = load i32, ptr %1329, align 4, !tbaa !5
  %15300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15291, ptr noundef nonnull %.str.5.sink7397, i32 noundef %15292, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 2140, ptr noundef %15294, ptr noundef %15296, ptr noundef %15298, i32 noundef %15299) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15301:                                            ; preds = %15269
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %285) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %285, i8 0, i64 48, i1 false)
  %15302 = add nsw i32 %15276, 2
  store i32 %15302, ptr @test_count, align 4, !tbaa !5
  %15303 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %285) #13
  %15304 = icmp eq i32 %15303, -1
  br i1 %15304, label %15305, label %15327

15305:                                            ; preds = %15301
  %15306 = load i32, ptr %1329, align 4, !tbaa !5
  %15307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15308 = call i32 @s2n_print_stacktrace(ptr noundef %15307) #13
  %15309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15310 = trunc nuw i8 %15309 to i1
  br i1 %15310, label %15311, label %15315

15311:                                            ; preds = %15305
  %15312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15313 = call i32 @fileno(ptr noundef %15312) #13
  %15314 = call i32 @isatty(i32 noundef %15313) #13
  %.not2208 = icmp eq i32 %15314, 0
  br i1 %.not2208, label %15315, label %15316

15315:                                            ; preds = %15311, %15305
  br label %15316

15316:                                            ; preds = %15311, %15315
  %.str.5.sink7406 = phi ptr [ @.str.5, %15315 ], [ @.str.2, %15311 ]
  store i32 %15306, ptr %1329, align 4, !tbaa !5
  %15317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15318 = load i32, ptr @test_count, align 4, !tbaa !5
  %15319 = load i32, ptr %1275, align 4, !tbaa !5
  %15320 = call ptr @s2n_strerror(i32 noundef %15319, ptr noundef nonnull @.str.4) #13
  %15321 = load i32, ptr %1275, align 4, !tbaa !5
  %15322 = call ptr @s2n_strerror_debug(i32 noundef %15321, ptr noundef nonnull @.str.4) #13
  %15323 = load i32, ptr %1329, align 4, !tbaa !5
  %15324 = call ptr @strerror(i32 noundef %15323) #13
  %15325 = load i32, ptr %1329, align 4, !tbaa !5
  %15326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15317, ptr noundef nonnull %.str.5.sink7406, i32 noundef %15318, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 2143, ptr noundef %15320, ptr noundef %15322, ptr noundef %15324, i32 noundef %15325) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15327:                                            ; preds = %15301
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %286) #13
  store i32 -1, ptr %286, align 4, !tbaa !5
  %15328 = load i32, ptr @test_count, align 4, !tbaa !5
  %15329 = add nsw i32 %15328, 1
  store i32 %15329, ptr @test_count, align 4, !tbaa !5
  %15330 = load ptr, ptr %283, align 8, !tbaa !9
  %15331 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %282, ptr noundef %15330, ptr noundef nonnull %15275, i32 noundef %15274, ptr noundef nonnull %286, ptr noundef nonnull %285) #13
  %15332 = call zeroext i1 @s2n_result_is_ok(i32 %15331)
  br i1 %15332, label %15355, label %15333

15333:                                            ; preds = %15327
  %15334 = load i32, ptr %1329, align 4, !tbaa !5
  %15335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15336 = call i32 @s2n_print_stacktrace(ptr noundef %15335) #13
  %15337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15338 = trunc nuw i8 %15337 to i1
  br i1 %15338, label %15339, label %15343

15339:                                            ; preds = %15333
  %15340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15341 = call i32 @fileno(ptr noundef %15340) #13
  %15342 = call i32 @isatty(i32 noundef %15341) #13
  %.not2168 = icmp eq i32 %15342, 0
  br i1 %.not2168, label %15343, label %15344

15343:                                            ; preds = %15339, %15333
  br label %15344

15344:                                            ; preds = %15339, %15343
  %.str.5.sink7415 = phi ptr [ @.str.5, %15343 ], [ @.str.2, %15339 ]
  store i32 %15334, ptr %1329, align 4, !tbaa !5
  %15345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15346 = load i32, ptr @test_count, align 4, !tbaa !5
  %15347 = load i32, ptr %1275, align 4, !tbaa !5
  %15348 = call ptr @s2n_strerror(i32 noundef %15347, ptr noundef nonnull @.str.4) #13
  %15349 = load i32, ptr %1275, align 4, !tbaa !5
  %15350 = call ptr @s2n_strerror_debug(i32 noundef %15349, ptr noundef nonnull @.str.4) #13
  %15351 = load i32, ptr %1329, align 4, !tbaa !5
  %15352 = call ptr @strerror(i32 noundef %15351) #13
  %15353 = load i32, ptr %1329, align 4, !tbaa !5
  %15354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15345, ptr noundef nonnull %.str.5.sink7415, i32 noundef %15346, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 2146, ptr noundef %15348, ptr noundef %15350, ptr noundef %15352, i32 noundef %15353) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15355:                                            ; preds = %15327
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %286) #13
  %15356 = call i32 @s2n_pkey_free(ptr noundef nonnull %285) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %285) #13
  %15357 = call i32 @s2n_stuffer_free(ptr noundef nonnull %284) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %284) #13
  %15358 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %283) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %283) #13
  %15359 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %282) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %282) #13
  %15360 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %281) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %281) #13
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %280) #13
  %15361 = call zeroext i1 @s2n_libcrypto_is_libressl() #13
  br i1 %15361, label %15646, label %15362

15362:                                            ; preds = %15355
  %15363 = load i32, ptr @test_count, align 4, !tbaa !5
  %15364 = add nsw i32 %15363, 1
  store i32 %15364, ptr @test_count, align 4, !tbaa !5
  %15365 = call i32 @setenv(ptr noundef nonnull @.str.167, ptr noundef nonnull @.str.151, i32 noundef 1) #13
  %15366 = icmp eq i32 %15365, -1
  br i1 %15366, label %15367, label %15389

15367:                                            ; preds = %15362
  %15368 = load i32, ptr %1329, align 4, !tbaa !5
  %15369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15370 = call i32 @s2n_print_stacktrace(ptr noundef %15369) #13
  %15371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15372 = trunc nuw i8 %15371 to i1
  br i1 %15372, label %15373, label %15377

15373:                                            ; preds = %15367
  %15374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15375 = call i32 @fileno(ptr noundef %15374) #13
  %15376 = call i32 @isatty(i32 noundef %15375) #13
  %.not2178 = icmp eq i32 %15376, 0
  br i1 %.not2178, label %15377, label %15378

15377:                                            ; preds = %15373, %15367
  br label %15378

15378:                                            ; preds = %15373, %15377
  %.str.5.sink7424 = phi ptr [ @.str.5, %15377 ], [ @.str.2, %15373 ]
  store i32 %15368, ptr %1329, align 4, !tbaa !5
  %15379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15380 = load i32, ptr @test_count, align 4, !tbaa !5
  %15381 = load i32, ptr %1275, align 4, !tbaa !5
  %15382 = call ptr @s2n_strerror(i32 noundef %15381, ptr noundef nonnull @.str.4) #13
  %15383 = load i32, ptr %1275, align 4, !tbaa !5
  %15384 = call ptr @s2n_strerror_debug(i32 noundef %15383, ptr noundef nonnull @.str.4) #13
  %15385 = load i32, ptr %1329, align 4, !tbaa !5
  %15386 = call ptr @strerror(i32 noundef %15385) #13
  %15387 = load i32, ptr %1329, align 4, !tbaa !5
  %15388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15379, ptr noundef nonnull %.str.5.sink7424, i32 noundef %15380, ptr noundef nonnull @.str.168, ptr noundef nonnull @.str.1, i32 noundef 2156, ptr noundef %15382, ptr noundef %15384, ptr noundef %15386, i32 noundef %15387) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15389:                                            ; preds = %15362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %287) #13
  %15390 = call ptr @s2n_config_new() #13
  store ptr %15390, ptr %287, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %288) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %288, i8 0, i64 56, i1 false)
  %15391 = load i32, ptr @test_count, align 4, !tbaa !5
  %15392 = add nsw i32 %15391, 1
  store i32 %15392, ptr @test_count, align 4, !tbaa !5
  %15393 = getelementptr inbounds i8, ptr %15390, i64 304
  %15394 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %288, ptr noundef nonnull %15393, i8 noundef zeroext 0) #13
  %15395 = icmp eq i32 %15394, -1
  br i1 %15395, label %15396, label %15418

15396:                                            ; preds = %15389
  %15397 = load i32, ptr %1329, align 4, !tbaa !5
  %15398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15399 = call i32 @s2n_print_stacktrace(ptr noundef %15398) #13
  %15400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15401 = trunc nuw i8 %15400 to i1
  br i1 %15401, label %15402, label %15406

15402:                                            ; preds = %15396
  %15403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15404 = call i32 @fileno(ptr noundef %15403) #13
  %15405 = call i32 @isatty(i32 noundef %15404) #13
  %.not2177 = icmp eq i32 %15405, 0
  br i1 %.not2177, label %15406, label %15407

15406:                                            ; preds = %15402, %15396
  br label %15407

15407:                                            ; preds = %15402, %15406
  %.str.5.sink7433 = phi ptr [ @.str.5, %15406 ], [ @.str.2, %15402 ]
  store i32 %15397, ptr %1329, align 4, !tbaa !5
  %15408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15409 = load i32, ptr @test_count, align 4, !tbaa !5
  %15410 = load i32, ptr %1275, align 4, !tbaa !5
  %15411 = call ptr @s2n_strerror(i32 noundef %15410, ptr noundef nonnull @.str.4) #13
  %15412 = load i32, ptr %1275, align 4, !tbaa !5
  %15413 = call ptr @s2n_strerror_debug(i32 noundef %15412, ptr noundef nonnull @.str.4) #13
  %15414 = load i32, ptr %1329, align 4, !tbaa !5
  %15415 = call ptr @strerror(i32 noundef %15414) #13
  %15416 = load i32, ptr %1329, align 4, !tbaa !5
  %15417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15408, ptr noundef nonnull %.str.5.sink7433, i32 noundef %15409, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 2160, ptr noundef %15411, ptr noundef %15413, ptr noundef %15415, i32 noundef %15416) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15418:                                            ; preds = %15389
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %289) #13
  %15419 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %15419, ptr %289, align 8, !tbaa !9
  %15420 = load i32, ptr @test_count, align 4, !tbaa !5
  %15421 = add nsw i32 %15420, 1
  store i32 %15421, ptr @test_count, align 4, !tbaa !5
  %15422 = icmp eq ptr %15419, null
  br i1 %15422, label %15423, label %15445

15423:                                            ; preds = %15418
  %15424 = load i32, ptr %1329, align 4, !tbaa !5
  %15425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15426 = call i32 @s2n_print_stacktrace(ptr noundef %15425) #13
  %15427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15428 = trunc nuw i8 %15427 to i1
  br i1 %15428, label %15429, label %15433

15429:                                            ; preds = %15423
  %15430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15431 = call i32 @fileno(ptr noundef %15430) #13
  %15432 = call i32 @isatty(i32 noundef %15431) #13
  %.not2176 = icmp eq i32 %15432, 0
  br i1 %.not2176, label %15433, label %15434

15433:                                            ; preds = %15429, %15423
  br label %15434

15434:                                            ; preds = %15429, %15433
  %.str.5.sink7442 = phi ptr [ @.str.5, %15433 ], [ @.str.2, %15429 ]
  store i32 %15424, ptr %1329, align 4, !tbaa !5
  %15435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15436 = load i32, ptr @test_count, align 4, !tbaa !5
  %15437 = load i32, ptr %1275, align 4, !tbaa !5
  %15438 = call ptr @s2n_strerror(i32 noundef %15437, ptr noundef nonnull @.str.4) #13
  %15439 = load i32, ptr %1275, align 4, !tbaa !5
  %15440 = call ptr @s2n_strerror_debug(i32 noundef %15439, ptr noundef nonnull @.str.4) #13
  %15441 = load i32, ptr %1329, align 4, !tbaa !5
  %15442 = call ptr @strerror(i32 noundef %15441) #13
  %15443 = load i32, ptr %1329, align 4, !tbaa !5
  %15444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15435, ptr noundef nonnull %.str.5.sink7442, i32 noundef %15436, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 2163, ptr noundef %15438, ptr noundef %15440, ptr noundef %15442, i32 noundef %15443) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15445:                                            ; preds = %15418
  %15446 = add nsw i32 %15420, 2
  store i32 %15446, ptr @test_count, align 4, !tbaa !5
  %15447 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %15419, ptr noundef nonnull @.str.23) #13
  %15448 = icmp eq i32 %15447, -1
  br i1 %15448, label %15449, label %15471

15449:                                            ; preds = %15445
  %15450 = load i32, ptr %1329, align 4, !tbaa !5
  %15451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15452 = call i32 @s2n_print_stacktrace(ptr noundef %15451) #13
  %15453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15454 = trunc nuw i8 %15453 to i1
  br i1 %15454, label %15455, label %15459

15455:                                            ; preds = %15449
  %15456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15457 = call i32 @fileno(ptr noundef %15456) #13
  %15458 = call i32 @isatty(i32 noundef %15457) #13
  %.not2175 = icmp eq i32 %15458, 0
  br i1 %.not2175, label %15459, label %15460

15459:                                            ; preds = %15455, %15449
  br label %15460

15460:                                            ; preds = %15455, %15459
  %.str.5.sink7451 = phi ptr [ @.str.5, %15459 ], [ @.str.2, %15455 ]
  store i32 %15450, ptr %1329, align 4, !tbaa !5
  %15461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15462 = load i32, ptr @test_count, align 4, !tbaa !5
  %15463 = load i32, ptr %1275, align 4, !tbaa !5
  %15464 = call ptr @s2n_strerror(i32 noundef %15463, ptr noundef nonnull @.str.4) #13
  %15465 = load i32, ptr %1275, align 4, !tbaa !5
  %15466 = call ptr @s2n_strerror_debug(i32 noundef %15465, ptr noundef nonnull @.str.4) #13
  %15467 = load i32, ptr %1329, align 4, !tbaa !5
  %15468 = call ptr @strerror(i32 noundef %15467) #13
  %15469 = load i32, ptr %1329, align 4, !tbaa !5
  %15470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15461, ptr noundef nonnull %.str.5.sink7451, i32 noundef %15462, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 2164, ptr noundef %15464, ptr noundef %15466, ptr noundef %15468, i32 noundef %15469) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15471:                                            ; preds = %15445
  %15472 = load i32, ptr @test_count, align 4, !tbaa !5
  %15473 = add nsw i32 %15472, 1
  store i32 %15473, ptr @test_count, align 4, !tbaa !5
  %15474 = load ptr, ptr %289, align 8, !tbaa !9
  %15475 = call i32 @s2n_set_server_name(ptr noundef %15474, ptr noundef nonnull @.str.162) #13
  %15476 = icmp eq i32 %15475, -1
  br i1 %15476, label %15477, label %15499

15477:                                            ; preds = %15471
  %15478 = load i32, ptr %1329, align 4, !tbaa !5
  %15479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15480 = call i32 @s2n_print_stacktrace(ptr noundef %15479) #13
  %15481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15482 = trunc nuw i8 %15481 to i1
  br i1 %15482, label %15483, label %15487

15483:                                            ; preds = %15477
  %15484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15485 = call i32 @fileno(ptr noundef %15484) #13
  %15486 = call i32 @isatty(i32 noundef %15485) #13
  %.not2174 = icmp eq i32 %15486, 0
  br i1 %.not2174, label %15487, label %15488

15487:                                            ; preds = %15483, %15477
  br label %15488

15488:                                            ; preds = %15483, %15487
  %.str.5.sink7460 = phi ptr [ @.str.5, %15487 ], [ @.str.2, %15483 ]
  store i32 %15478, ptr %1329, align 4, !tbaa !5
  %15489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15490 = load i32, ptr @test_count, align 4, !tbaa !5
  %15491 = load i32, ptr %1275, align 4, !tbaa !5
  %15492 = call ptr @s2n_strerror(i32 noundef %15491, ptr noundef nonnull @.str.4) #13
  %15493 = load i32, ptr %1275, align 4, !tbaa !5
  %15494 = call ptr @s2n_strerror_debug(i32 noundef %15493, ptr noundef nonnull @.str.4) #13
  %15495 = load i32, ptr %1329, align 4, !tbaa !5
  %15496 = call ptr @strerror(i32 noundef %15495) #13
  %15497 = load i32, ptr %1329, align 4, !tbaa !5
  %15498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15489, ptr noundef nonnull %.str.5.sink7460, i32 noundef %15490, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 2165, ptr noundef %15492, ptr noundef %15494, ptr noundef %15496, i32 noundef %15497) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15499:                                            ; preds = %15471
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %290) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %290, i8 0, i64 40, i1 false)
  %15500 = load i32, ptr @test_count, align 4, !tbaa !5
  %15501 = add nsw i32 %15500, 1
  store i32 %15501, ptr @test_count, align 4, !tbaa !5
  %15502 = load ptr, ptr %289, align 8, !tbaa !9
  %15503 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %15502, ptr noundef nonnull @.str.151, ptr noundef nonnull %290) #13
  %15504 = call zeroext i1 @s2n_result_is_ok(i32 %15503)
  br i1 %15504, label %15527, label %15505

15505:                                            ; preds = %15499
  %15506 = load i32, ptr %1329, align 4, !tbaa !5
  %15507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15508 = call i32 @s2n_print_stacktrace(ptr noundef %15507) #13
  %15509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15510 = trunc nuw i8 %15509 to i1
  br i1 %15510, label %15511, label %15515

15511:                                            ; preds = %15505
  %15512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15513 = call i32 @fileno(ptr noundef %15512) #13
  %15514 = call i32 @isatty(i32 noundef %15513) #13
  %.not2169 = icmp eq i32 %15514, 0
  br i1 %.not2169, label %15515, label %15516

15515:                                            ; preds = %15511, %15505
  br label %15516

15516:                                            ; preds = %15511, %15515
  %.str.5.sink7469 = phi ptr [ @.str.5, %15515 ], [ @.str.2, %15511 ]
  store i32 %15506, ptr %1329, align 4, !tbaa !5
  %15517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15518 = load i32, ptr @test_count, align 4, !tbaa !5
  %15519 = load i32, ptr %1275, align 4, !tbaa !5
  %15520 = call ptr @s2n_strerror(i32 noundef %15519, ptr noundef nonnull @.str.4) #13
  %15521 = load i32, ptr %1275, align 4, !tbaa !5
  %15522 = call ptr @s2n_strerror_debug(i32 noundef %15521, ptr noundef nonnull @.str.4) #13
  %15523 = load i32, ptr %1329, align 4, !tbaa !5
  %15524 = call ptr @strerror(i32 noundef %15523) #13
  %15525 = load i32, ptr %1329, align 4, !tbaa !5
  %15526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15517, ptr noundef nonnull %.str.5.sink7469, i32 noundef %15518, ptr noundef nonnull @.str.164, ptr noundef nonnull @.str.1, i32 noundef 2168, ptr noundef %15520, ptr noundef %15522, ptr noundef %15524, i32 noundef %15525) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15527:                                            ; preds = %15499
  %15528 = getelementptr inbounds i8, ptr %290, i64 28
  %15529 = load i32, ptr %15528, align 4, !tbaa !15
  %15530 = getelementptr inbounds i8, ptr %290, i64 24
  %15531 = load i32, ptr %15530, align 8, !tbaa !18
  %15532 = sub i32 %15529, %15531
  %15533 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %290, i32 noundef %15532) #13
  %15534 = load i32, ptr @test_count, align 4, !tbaa !5
  %15535 = add nsw i32 %15534, 1
  store i32 %15535, ptr @test_count, align 4, !tbaa !5
  %15536 = icmp eq ptr %15533, null
  br i1 %15536, label %15537, label %15559

15537:                                            ; preds = %15527
  %15538 = load i32, ptr %1329, align 4, !tbaa !5
  %15539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15540 = call i32 @s2n_print_stacktrace(ptr noundef %15539) #13
  %15541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15542 = trunc nuw i8 %15541 to i1
  br i1 %15542, label %15543, label %15547

15543:                                            ; preds = %15537
  %15544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15545 = call i32 @fileno(ptr noundef %15544) #13
  %15546 = call i32 @isatty(i32 noundef %15545) #13
  %.not2173 = icmp eq i32 %15546, 0
  br i1 %.not2173, label %15547, label %15548

15547:                                            ; preds = %15543, %15537
  br label %15548

15548:                                            ; preds = %15543, %15547
  %.str.5.sink7478 = phi ptr [ @.str.5, %15547 ], [ @.str.2, %15543 ]
  store i32 %15538, ptr %1329, align 4, !tbaa !5
  %15549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15550 = load i32, ptr @test_count, align 4, !tbaa !5
  %15551 = load i32, ptr %1275, align 4, !tbaa !5
  %15552 = call ptr @s2n_strerror(i32 noundef %15551, ptr noundef nonnull @.str.4) #13
  %15553 = load i32, ptr %1275, align 4, !tbaa !5
  %15554 = call ptr @s2n_strerror_debug(i32 noundef %15553, ptr noundef nonnull @.str.4) #13
  %15555 = load i32, ptr %1329, align 4, !tbaa !5
  %15556 = call ptr @strerror(i32 noundef %15555) #13
  %15557 = load i32, ptr %1329, align 4, !tbaa !5
  %15558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15549, ptr noundef nonnull %.str.5.sink7478, i32 noundef %15550, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 2171, ptr noundef %15552, ptr noundef %15554, ptr noundef %15556, i32 noundef %15557) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15559:                                            ; preds = %15527
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %291) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %291, i8 0, i64 48, i1 false)
  %15560 = add nsw i32 %15534, 2
  store i32 %15560, ptr @test_count, align 4, !tbaa !5
  %15561 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %291) #13
  %15562 = icmp eq i32 %15561, -1
  br i1 %15562, label %15563, label %15585

15563:                                            ; preds = %15559
  %15564 = load i32, ptr %1329, align 4, !tbaa !5
  %15565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15566 = call i32 @s2n_print_stacktrace(ptr noundef %15565) #13
  %15567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15568 = trunc nuw i8 %15567 to i1
  br i1 %15568, label %15569, label %15573

15569:                                            ; preds = %15563
  %15570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15571 = call i32 @fileno(ptr noundef %15570) #13
  %15572 = call i32 @isatty(i32 noundef %15571) #13
  %.not2172 = icmp eq i32 %15572, 0
  br i1 %.not2172, label %15573, label %15574

15573:                                            ; preds = %15569, %15563
  br label %15574

15574:                                            ; preds = %15569, %15573
  %.str.5.sink7487 = phi ptr [ @.str.5, %15573 ], [ @.str.2, %15569 ]
  store i32 %15564, ptr %1329, align 4, !tbaa !5
  %15575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15576 = load i32, ptr @test_count, align 4, !tbaa !5
  %15577 = load i32, ptr %1275, align 4, !tbaa !5
  %15578 = call ptr @s2n_strerror(i32 noundef %15577, ptr noundef nonnull @.str.4) #13
  %15579 = load i32, ptr %1275, align 4, !tbaa !5
  %15580 = call ptr @s2n_strerror_debug(i32 noundef %15579, ptr noundef nonnull @.str.4) #13
  %15581 = load i32, ptr %1329, align 4, !tbaa !5
  %15582 = call ptr @strerror(i32 noundef %15581) #13
  %15583 = load i32, ptr %1329, align 4, !tbaa !5
  %15584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15575, ptr noundef nonnull %.str.5.sink7487, i32 noundef %15576, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 2174, ptr noundef %15578, ptr noundef %15580, ptr noundef %15582, i32 noundef %15583) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15585:                                            ; preds = %15559
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %292) #13
  store i32 -1, ptr %292, align 4, !tbaa !5
  %15586 = load i32, ptr @test_count, align 4, !tbaa !5
  %15587 = add nsw i32 %15586, 1
  store i32 %15587, ptr @test_count, align 4, !tbaa !5
  %15588 = load ptr, ptr %289, align 8, !tbaa !9
  %15589 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %288, ptr noundef %15588, ptr noundef nonnull %15533, i32 noundef %15532, ptr noundef nonnull %292, ptr noundef nonnull %291) #13
  %15590 = call zeroext i1 @s2n_result_is_ok(i32 %15589)
  br i1 %15590, label %15613, label %15591

15591:                                            ; preds = %15585
  %15592 = load i32, ptr %1329, align 4, !tbaa !5
  %15593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15594 = call i32 @s2n_print_stacktrace(ptr noundef %15593) #13
  %15595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15596 = trunc nuw i8 %15595 to i1
  br i1 %15596, label %15597, label %15601

15597:                                            ; preds = %15591
  %15598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15599 = call i32 @fileno(ptr noundef %15598) #13
  %15600 = call i32 @isatty(i32 noundef %15599) #13
  %.not2170 = icmp eq i32 %15600, 0
  br i1 %.not2170, label %15601, label %15602

15601:                                            ; preds = %15597, %15591
  br label %15602

15602:                                            ; preds = %15597, %15601
  %.str.5.sink7496 = phi ptr [ @.str.5, %15601 ], [ @.str.2, %15597 ]
  store i32 %15592, ptr %1329, align 4, !tbaa !5
  %15603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15604 = load i32, ptr @test_count, align 4, !tbaa !5
  %15605 = load i32, ptr %1275, align 4, !tbaa !5
  %15606 = call ptr @s2n_strerror(i32 noundef %15605, ptr noundef nonnull @.str.4) #13
  %15607 = load i32, ptr %1275, align 4, !tbaa !5
  %15608 = call ptr @s2n_strerror_debug(i32 noundef %15607, ptr noundef nonnull @.str.4) #13
  %15609 = load i32, ptr %1329, align 4, !tbaa !5
  %15610 = call ptr @strerror(i32 noundef %15609) #13
  %15611 = load i32, ptr %1329, align 4, !tbaa !5
  %15612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15603, ptr noundef nonnull %.str.5.sink7496, i32 noundef %15604, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 2177, ptr noundef %15606, ptr noundef %15608, ptr noundef %15610, i32 noundef %15611) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15613:                                            ; preds = %15585
  %15614 = load i32, ptr @test_count, align 4, !tbaa !5
  %15615 = add nsw i32 %15614, 1
  store i32 %15615, ptr @test_count, align 4, !tbaa !5
  %15616 = call i32 @unsetenv(ptr noundef nonnull @.str.167) #13
  %15617 = icmp eq i32 %15616, -1
  br i1 %15617, label %15618, label %15640

15618:                                            ; preds = %15613
  %15619 = load i32, ptr %1329, align 4, !tbaa !5
  %15620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15621 = call i32 @s2n_print_stacktrace(ptr noundef %15620) #13
  %15622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15623 = trunc nuw i8 %15622 to i1
  br i1 %15623, label %15624, label %15628

15624:                                            ; preds = %15618
  %15625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15626 = call i32 @fileno(ptr noundef %15625) #13
  %15627 = call i32 @isatty(i32 noundef %15626) #13
  %.not2171 = icmp eq i32 %15627, 0
  br i1 %.not2171, label %15628, label %15629

15628:                                            ; preds = %15624, %15618
  br label %15629

15629:                                            ; preds = %15624, %15628
  %.str.5.sink7505 = phi ptr [ @.str.5, %15628 ], [ @.str.2, %15624 ]
  store i32 %15619, ptr %1329, align 4, !tbaa !5
  %15630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15631 = load i32, ptr @test_count, align 4, !tbaa !5
  %15632 = load i32, ptr %1275, align 4, !tbaa !5
  %15633 = call ptr @s2n_strerror(i32 noundef %15632, ptr noundef nonnull @.str.4) #13
  %15634 = load i32, ptr %1275, align 4, !tbaa !5
  %15635 = call ptr @s2n_strerror_debug(i32 noundef %15634, ptr noundef nonnull @.str.4) #13
  %15636 = load i32, ptr %1329, align 4, !tbaa !5
  %15637 = call ptr @strerror(i32 noundef %15636) #13
  %15638 = load i32, ptr %1329, align 4, !tbaa !5
  %15639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15630, ptr noundef nonnull %.str.5.sink7505, i32 noundef %15631, ptr noundef nonnull @.str.169, ptr noundef nonnull @.str.1, i32 noundef 2179, ptr noundef %15633, ptr noundef %15635, ptr noundef %15637, i32 noundef %15638) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15640:                                            ; preds = %15613
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %292) #13
  %15641 = call i32 @s2n_pkey_free(ptr noundef nonnull %291) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %291) #13
  %15642 = call i32 @s2n_stuffer_free(ptr noundef nonnull %290) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %290) #13
  %15643 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %289) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %289) #13
  %15644 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %288) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %288) #13
  %15645 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %287) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %287) #13
  br label %15646

15646:                                            ; preds = %15640, %15355
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %293) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %293, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %294) #13
  store i32 0, ptr %294, align 4, !tbaa !5
  %15647 = load i32, ptr @test_count, align 4, !tbaa !5
  %15648 = add nsw i32 %15647, 1
  store i32 %15648, ptr @test_count, align 4, !tbaa !5
  %15649 = call i32 @s2n_read_test_pem_and_len(ptr noundef nonnull @.str.170, ptr noundef nonnull %293, ptr noundef nonnull %294, i64 noundef 12000) #13
  %15650 = icmp eq i32 %15649, -1
  br i1 %15650, label %15651, label %15673

15651:                                            ; preds = %15646
  %15652 = load i32, ptr %1329, align 4, !tbaa !5
  %15653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15654 = call i32 @s2n_print_stacktrace(ptr noundef %15653) #13
  %15655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15656 = trunc nuw i8 %15655 to i1
  br i1 %15656, label %15657, label %15661

15657:                                            ; preds = %15651
  %15658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15659 = call i32 @fileno(ptr noundef %15658) #13
  %15660 = call i32 @isatty(i32 noundef %15659) #13
  %.not2207 = icmp eq i32 %15660, 0
  br i1 %.not2207, label %15661, label %15662

15661:                                            ; preds = %15657, %15651
  br label %15662

15662:                                            ; preds = %15657, %15661
  %.str.5.sink7514 = phi ptr [ @.str.5, %15661 ], [ @.str.2, %15657 ]
  store i32 %15652, ptr %1329, align 4, !tbaa !5
  %15663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15664 = load i32, ptr @test_count, align 4, !tbaa !5
  %15665 = load i32, ptr %1275, align 4, !tbaa !5
  %15666 = call ptr @s2n_strerror(i32 noundef %15665, ptr noundef nonnull @.str.4) #13
  %15667 = load i32, ptr %1275, align 4, !tbaa !5
  %15668 = call ptr @s2n_strerror_debug(i32 noundef %15667, ptr noundef nonnull @.str.4) #13
  %15669 = load i32, ptr %1329, align 4, !tbaa !5
  %15670 = call ptr @strerror(i32 noundef %15669) #13
  %15671 = load i32, ptr %1329, align 4, !tbaa !5
  %15672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15663, ptr noundef nonnull %.str.5.sink7514, i32 noundef %15664, ptr noundef nonnull @.str.171, ptr noundef nonnull @.str.1, i32 noundef 2188, ptr noundef %15666, ptr noundef %15668, ptr noundef %15670, i32 noundef %15671) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15673:                                            ; preds = %15646
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %295) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %295, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %296) #13
  store i32 0, ptr %296, align 4, !tbaa !5
  %15674 = load i32, ptr @test_count, align 4, !tbaa !5
  %15675 = add nsw i32 %15674, 1
  store i32 %15675, ptr @test_count, align 4, !tbaa !5
  %15676 = call i32 @s2n_read_test_pem_and_len(ptr noundef nonnull @.str.172, ptr noundef nonnull %295, ptr noundef nonnull %296, i64 noundef 12000) #13
  %15677 = icmp eq i32 %15676, -1
  br i1 %15677, label %15678, label %15700

15678:                                            ; preds = %15673
  %15679 = load i32, ptr %1329, align 4, !tbaa !5
  %15680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15681 = call i32 @s2n_print_stacktrace(ptr noundef %15680) #13
  %15682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15683 = trunc nuw i8 %15682 to i1
  br i1 %15683, label %15684, label %15688

15684:                                            ; preds = %15678
  %15685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15686 = call i32 @fileno(ptr noundef %15685) #13
  %15687 = call i32 @isatty(i32 noundef %15686) #13
  %.not2206 = icmp eq i32 %15687, 0
  br i1 %.not2206, label %15688, label %15689

15688:                                            ; preds = %15684, %15678
  br label %15689

15689:                                            ; preds = %15684, %15688
  %.str.5.sink7523 = phi ptr [ @.str.5, %15688 ], [ @.str.2, %15684 ]
  store i32 %15679, ptr %1329, align 4, !tbaa !5
  %15690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15691 = load i32, ptr @test_count, align 4, !tbaa !5
  %15692 = load i32, ptr %1275, align 4, !tbaa !5
  %15693 = call ptr @s2n_strerror(i32 noundef %15692, ptr noundef nonnull @.str.4) #13
  %15694 = load i32, ptr %1275, align 4, !tbaa !5
  %15695 = call ptr @s2n_strerror_debug(i32 noundef %15694, ptr noundef nonnull @.str.4) #13
  %15696 = load i32, ptr %1329, align 4, !tbaa !5
  %15697 = call ptr @strerror(i32 noundef %15696) #13
  %15698 = load i32, ptr %1329, align 4, !tbaa !5
  %15699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15690, ptr noundef nonnull %.str.5.sink7523, i32 noundef %15691, ptr noundef nonnull @.str.173, ptr noundef nonnull @.str.1, i32 noundef 2193, ptr noundef %15693, ptr noundef %15695, ptr noundef %15697, i32 noundef %15698) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15700:                                            ; preds = %15673
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %297) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %297, ptr noundef nonnull align 8 dereferenceable(64) @security_policy_rfc9151, i64 64, i1 false), !tbaa.struct !61
  %15701 = getelementptr inbounds i8, ptr %297, i64 56
  store i8 0, ptr %15701, align 8, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %298) #13
  %15702 = call ptr @s2n_config_new_minimal() #13
  store ptr %15702, ptr %298, align 8, !tbaa !9
  %15703 = load i32, ptr @test_count, align 4, !tbaa !5
  %15704 = add nsw i32 %15703, 1
  store i32 %15704, ptr @test_count, align 4, !tbaa !5
  %15705 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %15702, ptr noundef nonnull %293) #13
  %15706 = icmp eq i32 %15705, -1
  br i1 %15706, label %15707, label %15729

15707:                                            ; preds = %15700
  %15708 = load i32, ptr %1329, align 4, !tbaa !5
  %15709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15710 = call i32 @s2n_print_stacktrace(ptr noundef %15709) #13
  %15711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15712 = trunc nuw i8 %15711 to i1
  br i1 %15712, label %15713, label %15717

15713:                                            ; preds = %15707
  %15714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15715 = call i32 @fileno(ptr noundef %15714) #13
  %15716 = call i32 @isatty(i32 noundef %15715) #13
  %.not2205 = icmp eq i32 %15716, 0
  br i1 %.not2205, label %15717, label %15718

15717:                                            ; preds = %15713, %15707
  br label %15718

15718:                                            ; preds = %15713, %15717
  %.str.5.sink7532 = phi ptr [ @.str.5, %15717 ], [ @.str.2, %15713 ]
  store i32 %15708, ptr %1329, align 4, !tbaa !5
  %15719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15720 = load i32, ptr @test_count, align 4, !tbaa !5
  %15721 = load i32, ptr %1275, align 4, !tbaa !5
  %15722 = call ptr @s2n_strerror(i32 noundef %15721, ptr noundef nonnull @.str.4) #13
  %15723 = load i32, ptr %1275, align 4, !tbaa !5
  %15724 = call ptr @s2n_strerror_debug(i32 noundef %15723, ptr noundef nonnull @.str.4) #13
  %15725 = load i32, ptr %1329, align 4, !tbaa !5
  %15726 = call ptr @strerror(i32 noundef %15725) #13
  %15727 = load i32, ptr %1329, align 4, !tbaa !5
  %15728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15719, ptr noundef nonnull %.str.5.sink7532, i32 noundef %15720, ptr noundef nonnull @.str.174, ptr noundef nonnull @.str.1, i32 noundef 2201, ptr noundef %15722, ptr noundef %15724, ptr noundef %15726, i32 noundef %15727) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15729:                                            ; preds = %15700
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %299) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %299, i8 0, i64 56, i1 false)
  %15730 = load i32, ptr @test_count, align 4, !tbaa !5
  %15731 = add nsw i32 %15730, 1
  store i32 %15731, ptr @test_count, align 4, !tbaa !5
  %15732 = load ptr, ptr %298, align 8, !tbaa !9
  %15733 = getelementptr inbounds i8, ptr %15732, i64 304
  %15734 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %299, ptr noundef nonnull %15733, i8 noundef zeroext 0) #13
  %15735 = icmp eq i32 %15734, -1
  br i1 %15735, label %15736, label %15758

15736:                                            ; preds = %15729
  %15737 = load i32, ptr %1329, align 4, !tbaa !5
  %15738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15739 = call i32 @s2n_print_stacktrace(ptr noundef %15738) #13
  %15740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15741 = trunc nuw i8 %15740 to i1
  br i1 %15741, label %15742, label %15746

15742:                                            ; preds = %15736
  %15743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15744 = call i32 @fileno(ptr noundef %15743) #13
  %15745 = call i32 @isatty(i32 noundef %15744) #13
  %.not2204 = icmp eq i32 %15745, 0
  br i1 %.not2204, label %15746, label %15747

15746:                                            ; preds = %15742, %15736
  br label %15747

15747:                                            ; preds = %15742, %15746
  %.str.5.sink7541 = phi ptr [ @.str.5, %15746 ], [ @.str.2, %15742 ]
  store i32 %15737, ptr %1329, align 4, !tbaa !5
  %15748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15749 = load i32, ptr @test_count, align 4, !tbaa !5
  %15750 = load i32, ptr %1275, align 4, !tbaa !5
  %15751 = call ptr @s2n_strerror(i32 noundef %15750, ptr noundef nonnull @.str.4) #13
  %15752 = load i32, ptr %1275, align 4, !tbaa !5
  %15753 = call ptr @s2n_strerror_debug(i32 noundef %15752, ptr noundef nonnull @.str.4) #13
  %15754 = load i32, ptr %1329, align 4, !tbaa !5
  %15755 = call ptr @strerror(i32 noundef %15754) #13
  %15756 = load i32, ptr %1329, align 4, !tbaa !5
  %15757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15748, ptr noundef nonnull %.str.5.sink7541, i32 noundef %15749, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 2204, ptr noundef %15751, ptr noundef %15753, ptr noundef %15755, i32 noundef %15756) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15758:                                            ; preds = %15729
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %300) #13
  %15759 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %15759, ptr %300, align 8, !tbaa !9
  %15760 = load i32, ptr @test_count, align 4, !tbaa !5
  %15761 = add nsw i32 %15760, 1
  store i32 %15761, ptr @test_count, align 4, !tbaa !5
  %15762 = icmp eq ptr %15759, null
  br i1 %15762, label %15763, label %15785

15763:                                            ; preds = %15758
  %15764 = load i32, ptr %1329, align 4, !tbaa !5
  %15765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15766 = call i32 @s2n_print_stacktrace(ptr noundef %15765) #13
  %15767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15768 = trunc nuw i8 %15767 to i1
  br i1 %15768, label %15769, label %15773

15769:                                            ; preds = %15763
  %15770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15771 = call i32 @fileno(ptr noundef %15770) #13
  %15772 = call i32 @isatty(i32 noundef %15771) #13
  %.not2203 = icmp eq i32 %15772, 0
  br i1 %.not2203, label %15773, label %15774

15773:                                            ; preds = %15769, %15763
  br label %15774

15774:                                            ; preds = %15769, %15773
  %.str.5.sink7550 = phi ptr [ @.str.5, %15773 ], [ @.str.2, %15769 ]
  store i32 %15764, ptr %1329, align 4, !tbaa !5
  %15775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15776 = load i32, ptr @test_count, align 4, !tbaa !5
  %15777 = load i32, ptr %1275, align 4, !tbaa !5
  %15778 = call ptr @s2n_strerror(i32 noundef %15777, ptr noundef nonnull @.str.4) #13
  %15779 = load i32, ptr %1275, align 4, !tbaa !5
  %15780 = call ptr @s2n_strerror_debug(i32 noundef %15779, ptr noundef nonnull @.str.4) #13
  %15781 = load i32, ptr %1329, align 4, !tbaa !5
  %15782 = call ptr @strerror(i32 noundef %15781) #13
  %15783 = load i32, ptr %1329, align 4, !tbaa !5
  %15784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15775, ptr noundef nonnull %.str.5.sink7550, i32 noundef %15776, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 2207, ptr noundef %15778, ptr noundef %15780, ptr noundef %15782, i32 noundef %15783) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15785:                                            ; preds = %15758
  %15786 = getelementptr inbounds i8, ptr %15759, i64 16
  store ptr %297, ptr %15786, align 8, !tbaa !64
  %15787 = add nsw i32 %15760, 2
  store i32 %15787, ptr @test_count, align 4, !tbaa !5
  %15788 = call i32 @s2n_set_server_name(ptr noundef nonnull %15759, ptr noundef nonnull @.str.66) #13
  %15789 = icmp eq i32 %15788, -1
  br i1 %15789, label %15790, label %15812

15790:                                            ; preds = %15785
  %15791 = load i32, ptr %1329, align 4, !tbaa !5
  %15792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15793 = call i32 @s2n_print_stacktrace(ptr noundef %15792) #13
  %15794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15795 = trunc nuw i8 %15794 to i1
  br i1 %15795, label %15796, label %15800

15796:                                            ; preds = %15790
  %15797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15798 = call i32 @fileno(ptr noundef %15797) #13
  %15799 = call i32 @isatty(i32 noundef %15798) #13
  %.not2202 = icmp eq i32 %15799, 0
  br i1 %.not2202, label %15800, label %15801

15800:                                            ; preds = %15796, %15790
  br label %15801

15801:                                            ; preds = %15796, %15800
  %.str.5.sink7559 = phi ptr [ @.str.5, %15800 ], [ @.str.2, %15796 ]
  store i32 %15791, ptr %1329, align 4, !tbaa !5
  %15802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15803 = load i32, ptr @test_count, align 4, !tbaa !5
  %15804 = load i32, ptr %1275, align 4, !tbaa !5
  %15805 = call ptr @s2n_strerror(i32 noundef %15804, ptr noundef nonnull @.str.4) #13
  %15806 = load i32, ptr %1275, align 4, !tbaa !5
  %15807 = call ptr @s2n_strerror_debug(i32 noundef %15806, ptr noundef nonnull @.str.4) #13
  %15808 = load i32, ptr %1329, align 4, !tbaa !5
  %15809 = call ptr @strerror(i32 noundef %15808) #13
  %15810 = load i32, ptr %1329, align 4, !tbaa !5
  %15811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15802, ptr noundef nonnull %.str.5.sink7559, i32 noundef %15803, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 2209, ptr noundef %15805, ptr noundef %15807, ptr noundef %15809, i32 noundef %15810) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15812:                                            ; preds = %15785
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %301) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %301, i8 0, i64 40, i1 false)
  %15813 = load i32, ptr @test_count, align 4, !tbaa !5
  %15814 = add nsw i32 %15813, 1
  store i32 %15814, ptr @test_count, align 4, !tbaa !5
  %15815 = load ptr, ptr %300, align 8, !tbaa !9
  %15816 = load i32, ptr %296, align 4, !tbaa !5
  %15817 = call i32 @s2n_test_cert_chain_data_from_pem_data(ptr noundef %15815, ptr noundef nonnull %295, i32 noundef %15816, ptr noundef nonnull %301) #13
  %15818 = call zeroext i1 @s2n_result_is_ok(i32 %15817)
  br i1 %15818, label %15841, label %15819

15819:                                            ; preds = %15812
  %15820 = load i32, ptr %1329, align 4, !tbaa !5
  %15821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15822 = call i32 @s2n_print_stacktrace(ptr noundef %15821) #13
  %15823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15824 = trunc nuw i8 %15823 to i1
  br i1 %15824, label %15825, label %15829

15825:                                            ; preds = %15819
  %15826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15827 = call i32 @fileno(ptr noundef %15826) #13
  %15828 = call i32 @isatty(i32 noundef %15827) #13
  %.not2179 = icmp eq i32 %15828, 0
  br i1 %.not2179, label %15829, label %15830

15829:                                            ; preds = %15825, %15819
  br label %15830

15830:                                            ; preds = %15825, %15829
  %.str.5.sink7568 = phi ptr [ @.str.5, %15829 ], [ @.str.2, %15825 ]
  store i32 %15820, ptr %1329, align 4, !tbaa !5
  %15831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15832 = load i32, ptr @test_count, align 4, !tbaa !5
  %15833 = load i32, ptr %1275, align 4, !tbaa !5
  %15834 = call ptr @s2n_strerror(i32 noundef %15833, ptr noundef nonnull @.str.4) #13
  %15835 = load i32, ptr %1275, align 4, !tbaa !5
  %15836 = call ptr @s2n_strerror_debug(i32 noundef %15835, ptr noundef nonnull @.str.4) #13
  %15837 = load i32, ptr %1329, align 4, !tbaa !5
  %15838 = call ptr @strerror(i32 noundef %15837) #13
  %15839 = load i32, ptr %1329, align 4, !tbaa !5
  %15840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15831, ptr noundef nonnull %.str.5.sink7568, i32 noundef %15832, ptr noundef nonnull @.str.176, ptr noundef nonnull @.str.1, i32 noundef 2213, ptr noundef %15834, ptr noundef %15836, ptr noundef %15838, i32 noundef %15839) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15841:                                            ; preds = %15812
  %15842 = getelementptr inbounds i8, ptr %301, i64 28
  %15843 = load i32, ptr %15842, align 4, !tbaa !15
  %15844 = getelementptr inbounds i8, ptr %301, i64 24
  %15845 = load i32, ptr %15844, align 8, !tbaa !18
  %15846 = sub i32 %15843, %15845
  %15847 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %301, i32 noundef %15846) #13
  %15848 = load i32, ptr @test_count, align 4, !tbaa !5
  %15849 = add nsw i32 %15848, 1
  store i32 %15849, ptr @test_count, align 4, !tbaa !5
  %15850 = icmp eq ptr %15847, null
  br i1 %15850, label %15851, label %15873

15851:                                            ; preds = %15841
  %15852 = load i32, ptr %1329, align 4, !tbaa !5
  %15853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15854 = call i32 @s2n_print_stacktrace(ptr noundef %15853) #13
  %15855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15856 = trunc nuw i8 %15855 to i1
  br i1 %15856, label %15857, label %15861

15857:                                            ; preds = %15851
  %15858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15859 = call i32 @fileno(ptr noundef %15858) #13
  %15860 = call i32 @isatty(i32 noundef %15859) #13
  %.not2201 = icmp eq i32 %15860, 0
  br i1 %.not2201, label %15861, label %15862

15861:                                            ; preds = %15857, %15851
  br label %15862

15862:                                            ; preds = %15857, %15861
  %.str.5.sink7577 = phi ptr [ @.str.5, %15861 ], [ @.str.2, %15857 ]
  store i32 %15852, ptr %1329, align 4, !tbaa !5
  %15863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15864 = load i32, ptr @test_count, align 4, !tbaa !5
  %15865 = load i32, ptr %1275, align 4, !tbaa !5
  %15866 = call ptr @s2n_strerror(i32 noundef %15865, ptr noundef nonnull @.str.4) #13
  %15867 = load i32, ptr %1275, align 4, !tbaa !5
  %15868 = call ptr @s2n_strerror_debug(i32 noundef %15867, ptr noundef nonnull @.str.4) #13
  %15869 = load i32, ptr %1329, align 4, !tbaa !5
  %15870 = call ptr @strerror(i32 noundef %15869) #13
  %15871 = load i32, ptr %1329, align 4, !tbaa !5
  %15872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15863, ptr noundef nonnull %.str.5.sink7577, i32 noundef %15864, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 2216, ptr noundef %15866, ptr noundef %15868, ptr noundef %15870, i32 noundef %15871) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15873:                                            ; preds = %15841
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %302) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %302, i8 0, i64 48, i1 false)
  %15874 = add nsw i32 %15848, 2
  store i32 %15874, ptr @test_count, align 4, !tbaa !5
  %15875 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %302) #13
  %15876 = icmp eq i32 %15875, -1
  br i1 %15876, label %15877, label %15899

15877:                                            ; preds = %15873
  %15878 = load i32, ptr %1329, align 4, !tbaa !5
  %15879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15880 = call i32 @s2n_print_stacktrace(ptr noundef %15879) #13
  %15881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15882 = trunc nuw i8 %15881 to i1
  br i1 %15882, label %15883, label %15887

15883:                                            ; preds = %15877
  %15884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15885 = call i32 @fileno(ptr noundef %15884) #13
  %15886 = call i32 @isatty(i32 noundef %15885) #13
  %.not2200 = icmp eq i32 %15886, 0
  br i1 %.not2200, label %15887, label %15888

15887:                                            ; preds = %15883, %15877
  br label %15888

15888:                                            ; preds = %15883, %15887
  %.str.5.sink7586 = phi ptr [ @.str.5, %15887 ], [ @.str.2, %15883 ]
  store i32 %15878, ptr %1329, align 4, !tbaa !5
  %15889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15890 = load i32, ptr @test_count, align 4, !tbaa !5
  %15891 = load i32, ptr %1275, align 4, !tbaa !5
  %15892 = call ptr @s2n_strerror(i32 noundef %15891, ptr noundef nonnull @.str.4) #13
  %15893 = load i32, ptr %1275, align 4, !tbaa !5
  %15894 = call ptr @s2n_strerror_debug(i32 noundef %15893, ptr noundef nonnull @.str.4) #13
  %15895 = load i32, ptr %1329, align 4, !tbaa !5
  %15896 = call ptr @strerror(i32 noundef %15895) #13
  %15897 = load i32, ptr %1329, align 4, !tbaa !5
  %15898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15889, ptr noundef nonnull %.str.5.sink7586, i32 noundef %15890, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 2219, ptr noundef %15892, ptr noundef %15894, ptr noundef %15896, i32 noundef %15897) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15899:                                            ; preds = %15873
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %303) #13
  store i32 -1, ptr %303, align 4, !tbaa !5
  %15900 = load i32, ptr @test_count, align 4, !tbaa !5
  %15901 = add nsw i32 %15900, 1
  store i32 %15901, ptr @test_count, align 4, !tbaa !5
  %15902 = load ptr, ptr %300, align 8, !tbaa !9
  %15903 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %299, ptr noundef %15902, ptr noundef nonnull %15847, i32 noundef %15846, ptr noundef nonnull %303, ptr noundef nonnull %302) #13
  %15904 = call zeroext i1 @s2n_result_is_error(i32 %15903)
  br i1 %15904, label %15927, label %15905

15905:                                            ; preds = %15899
  %15906 = load i32, ptr %1329, align 4, !tbaa !5
  %15907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15908 = call i32 @s2n_print_stacktrace(ptr noundef %15907) #13
  %15909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15910 = trunc nuw i8 %15909 to i1
  br i1 %15910, label %15911, label %15915

15911:                                            ; preds = %15905
  %15912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15913 = call i32 @fileno(ptr noundef %15912) #13
  %15914 = call i32 @isatty(i32 noundef %15913) #13
  %.not2180 = icmp eq i32 %15914, 0
  br i1 %.not2180, label %15915, label %15916

15915:                                            ; preds = %15911, %15905
  br label %15916

15916:                                            ; preds = %15911, %15915
  %.str.5.sink7595 = phi ptr [ @.str.5, %15915 ], [ @.str.2, %15911 ]
  store i32 %15906, ptr %1329, align 4, !tbaa !5
  %15917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15918 = load i32, ptr @test_count, align 4, !tbaa !5
  %15919 = load i32, ptr %1275, align 4, !tbaa !5
  %15920 = call ptr @s2n_strerror(i32 noundef %15919, ptr noundef nonnull @.str.4) #13
  %15921 = load i32, ptr %1275, align 4, !tbaa !5
  %15922 = call ptr @s2n_strerror_debug(i32 noundef %15921, ptr noundef nonnull @.str.4) #13
  %15923 = load i32, ptr %1329, align 4, !tbaa !5
  %15924 = call ptr @strerror(i32 noundef %15923) #13
  %15925 = load i32, ptr %1329, align 4, !tbaa !5
  %15926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15917, ptr noundef nonnull %.str.5.sink7595, i32 noundef %15918, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 2223, ptr noundef %15920, ptr noundef %15922, ptr noundef %15924, i32 noundef %15925) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15927:                                            ; preds = %15899
  %15928 = load i32, ptr @test_count, align 4, !tbaa !5
  %15929 = add nsw i32 %15928, 1
  store i32 %15929, ptr @test_count, align 4, !tbaa !5
  %15930 = load i32, ptr %1275, align 4, !tbaa !5
  %15931 = icmp eq i32 %15930, 335544366
  br i1 %15931, label %15954, label %15932

15932:                                            ; preds = %15927
  %15933 = load i32, ptr %1329, align 4, !tbaa !5
  %15934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15935 = call i32 @s2n_print_stacktrace(ptr noundef %15934) #13
  %15936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15937 = trunc nuw i8 %15936 to i1
  br i1 %15937, label %15938, label %15942

15938:                                            ; preds = %15932
  %15939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15940 = call i32 @fileno(ptr noundef %15939) #13
  %15941 = call i32 @isatty(i32 noundef %15940) #13
  %.not2181 = icmp eq i32 %15941, 0
  br i1 %.not2181, label %15942, label %15943

15942:                                            ; preds = %15938, %15932
  br label %15943

15943:                                            ; preds = %15938, %15942
  %.str.5.sink7604 = phi ptr [ @.str.5, %15942 ], [ @.str.2, %15938 ]
  store i32 %15933, ptr %1329, align 4, !tbaa !5
  %15944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15945 = load i32, ptr @test_count, align 4, !tbaa !5
  %15946 = load i32, ptr %1275, align 4, !tbaa !5
  %15947 = call ptr @s2n_strerror(i32 noundef %15946, ptr noundef nonnull @.str.4) #13
  %15948 = load i32, ptr %1275, align 4, !tbaa !5
  %15949 = call ptr @s2n_strerror_debug(i32 noundef %15948, ptr noundef nonnull @.str.4) #13
  %15950 = load i32, ptr %1329, align 4, !tbaa !5
  %15951 = call ptr @strerror(i32 noundef %15950) #13
  %15952 = load i32, ptr %1329, align 4, !tbaa !5
  %15953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15944, ptr noundef nonnull %.str.5.sink7604, i32 noundef %15945, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 2223, ptr noundef %15947, ptr noundef %15949, ptr noundef %15951, i32 noundef %15952) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15954:                                            ; preds = %15927
  %15955 = add nsw i32 %15928, 2
  store i32 %15955, ptr @test_count, align 4, !tbaa !5
  %15956 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #13
  %15957 = icmp eq ptr %15956, null
  br i1 %15957, label %15958, label %15980

15958:                                            ; preds = %15954
  %15959 = load i32, ptr %1329, align 4, !tbaa !5
  %15960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15961 = call i32 @s2n_print_stacktrace(ptr noundef %15960) #13
  %15962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15963 = trunc nuw i8 %15962 to i1
  br i1 %15963, label %15964, label %15968

15964:                                            ; preds = %15958
  %15965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15966 = call i32 @fileno(ptr noundef %15965) #13
  %15967 = call i32 @isatty(i32 noundef %15966) #13
  %.not2199 = icmp eq i32 %15967, 0
  br i1 %.not2199, label %15968, label %15969

15968:                                            ; preds = %15964, %15958
  br label %15969

15969:                                            ; preds = %15964, %15968
  %.str.5.sink7613 = phi ptr [ @.str.5, %15968 ], [ @.str.2, %15964 ]
  store i32 %15959, ptr %1329, align 4, !tbaa !5
  %15970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15971 = load i32, ptr @test_count, align 4, !tbaa !5
  %15972 = load i32, ptr %1275, align 4, !tbaa !5
  %15973 = call ptr @s2n_strerror(i32 noundef %15972, ptr noundef nonnull @.str.4) #13
  %15974 = load i32, ptr %1275, align 4, !tbaa !5
  %15975 = call ptr @s2n_strerror_debug(i32 noundef %15974, ptr noundef nonnull @.str.4) #13
  %15976 = load i32, ptr %1329, align 4, !tbaa !5
  %15977 = call ptr @strerror(i32 noundef %15976) #13
  %15978 = load i32, ptr %1329, align 4, !tbaa !5
  %15979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15970, ptr noundef nonnull %.str.5.sink7613, i32 noundef %15971, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 2223, ptr noundef %15973, ptr noundef %15975, ptr noundef %15977, i32 noundef %15978) #15
  call void @exit(i32 noundef 1) #16
  unreachable

15980:                                            ; preds = %15954
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %15981 = load i32, ptr @test_count, align 4, !tbaa !5
  %15982 = add nsw i32 %15981, 1
  store i32 %15982, ptr @test_count, align 4, !tbaa !5
  %15983 = getelementptr inbounds i8, ptr %299, i64 32
  %15984 = load i32, ptr %15983, align 8, !tbaa !65
  %15985 = icmp eq i32 %15984, 1
  br i1 %15985, label %16008, label %15986

15986:                                            ; preds = %15980
  %15987 = load i32, ptr %1329, align 4, !tbaa !5
  %15988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15989 = call i32 @s2n_print_stacktrace(ptr noundef %15988) #13
  %15990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15991 = trunc nuw i8 %15990 to i1
  br i1 %15991, label %15992, label %15996

15992:                                            ; preds = %15986
  %15993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15994 = call i32 @fileno(ptr noundef %15993) #13
  %15995 = call i32 @isatty(i32 noundef %15994) #13
  %.not2182 = icmp eq i32 %15995, 0
  br i1 %.not2182, label %15996, label %15997

15996:                                            ; preds = %15992, %15986
  br label %15997

15997:                                            ; preds = %15992, %15996
  %.str.5.sink7622 = phi ptr [ @.str.5, %15996 ], [ @.str.2, %15992 ]
  store i32 %15987, ptr %1329, align 4, !tbaa !5
  %15998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15999 = load i32, ptr @test_count, align 4, !tbaa !5
  %16000 = load i32, ptr %1275, align 4, !tbaa !5
  %16001 = call ptr @s2n_strerror(i32 noundef %16000, ptr noundef nonnull @.str.4) #13
  %16002 = load i32, ptr %1275, align 4, !tbaa !5
  %16003 = call ptr @s2n_strerror_debug(i32 noundef %16002, ptr noundef nonnull @.str.4) #13
  %16004 = load i32, ptr %1329, align 4, !tbaa !5
  %16005 = call ptr @strerror(i32 noundef %16004) #13
  %16006 = load i32, ptr %1329, align 4, !tbaa !5
  %16007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15998, ptr noundef nonnull %.str.5.sink7622, i32 noundef %15999, ptr noundef nonnull @.str.177, ptr noundef nonnull @.str.1, i32 noundef 2225, ptr noundef %16001, ptr noundef %16003, ptr noundef %16005, i32 noundef %16006) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16008:                                            ; preds = %15980
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %303) #13
  %16009 = call i32 @s2n_pkey_free(ptr noundef nonnull %302) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %302) #13
  %16010 = call i32 @s2n_stuffer_free(ptr noundef nonnull %301) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %301) #13
  %16011 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %300) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #13
  %16012 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %299) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %299) #13
  %16013 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %298) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %298) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %304) #13
  %16014 = call ptr @s2n_config_new_minimal() #13
  store ptr %16014, ptr %304, align 8, !tbaa !9
  %16015 = load i32, ptr @test_count, align 4, !tbaa !5
  %16016 = add nsw i32 %16015, 1
  store i32 %16016, ptr @test_count, align 4, !tbaa !5
  %16017 = call i32 @s2n_config_add_pem_to_trust_store(ptr noundef %16014, ptr noundef nonnull %293) #13
  %16018 = icmp eq i32 %16017, -1
  br i1 %16018, label %16019, label %16041

16019:                                            ; preds = %16008
  %16020 = load i32, ptr %1329, align 4, !tbaa !5
  %16021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16022 = call i32 @s2n_print_stacktrace(ptr noundef %16021) #13
  %16023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16024 = trunc nuw i8 %16023 to i1
  br i1 %16024, label %16025, label %16029

16025:                                            ; preds = %16019
  %16026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16027 = call i32 @fileno(ptr noundef %16026) #13
  %16028 = call i32 @isatty(i32 noundef %16027) #13
  %.not2198 = icmp eq i32 %16028, 0
  br i1 %.not2198, label %16029, label %16030

16029:                                            ; preds = %16025, %16019
  br label %16030

16030:                                            ; preds = %16025, %16029
  %.str.5.sink7631 = phi ptr [ @.str.5, %16029 ], [ @.str.2, %16025 ]
  store i32 %16020, ptr %1329, align 4, !tbaa !5
  %16031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16032 = load i32, ptr @test_count, align 4, !tbaa !5
  %16033 = load i32, ptr %1275, align 4, !tbaa !5
  %16034 = call ptr @s2n_strerror(i32 noundef %16033, ptr noundef nonnull @.str.4) #13
  %16035 = load i32, ptr %1275, align 4, !tbaa !5
  %16036 = call ptr @s2n_strerror_debug(i32 noundef %16035, ptr noundef nonnull @.str.4) #13
  %16037 = load i32, ptr %1329, align 4, !tbaa !5
  %16038 = call ptr @strerror(i32 noundef %16037) #13
  %16039 = load i32, ptr %1329, align 4, !tbaa !5
  %16040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16031, ptr noundef nonnull %.str.5.sink7631, i32 noundef %16032, ptr noundef nonnull @.str.174, ptr noundef nonnull @.str.1, i32 noundef 2233, ptr noundef %16034, ptr noundef %16036, ptr noundef %16038, i32 noundef %16039) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16041:                                            ; preds = %16008
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %305) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %305, i8 0, i64 56, i1 false)
  %16042 = load i32, ptr @test_count, align 4, !tbaa !5
  %16043 = add nsw i32 %16042, 1
  store i32 %16043, ptr @test_count, align 4, !tbaa !5
  %16044 = getelementptr inbounds i8, ptr %16014, i64 304
  %16045 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %305, ptr noundef nonnull %16044, i8 noundef zeroext 0) #13
  %16046 = icmp eq i32 %16045, -1
  br i1 %16046, label %16047, label %16069

16047:                                            ; preds = %16041
  %16048 = load i32, ptr %1329, align 4, !tbaa !5
  %16049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16050 = call i32 @s2n_print_stacktrace(ptr noundef %16049) #13
  %16051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16052 = trunc nuw i8 %16051 to i1
  br i1 %16052, label %16053, label %16057

16053:                                            ; preds = %16047
  %16054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16055 = call i32 @fileno(ptr noundef %16054) #13
  %16056 = call i32 @isatty(i32 noundef %16055) #13
  %.not2197 = icmp eq i32 %16056, 0
  br i1 %.not2197, label %16057, label %16058

16057:                                            ; preds = %16053, %16047
  br label %16058

16058:                                            ; preds = %16053, %16057
  %.str.5.sink7640 = phi ptr [ @.str.5, %16057 ], [ @.str.2, %16053 ]
  store i32 %16048, ptr %1329, align 4, !tbaa !5
  %16059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16060 = load i32, ptr @test_count, align 4, !tbaa !5
  %16061 = load i32, ptr %1275, align 4, !tbaa !5
  %16062 = call ptr @s2n_strerror(i32 noundef %16061, ptr noundef nonnull @.str.4) #13
  %16063 = load i32, ptr %1275, align 4, !tbaa !5
  %16064 = call ptr @s2n_strerror_debug(i32 noundef %16063, ptr noundef nonnull @.str.4) #13
  %16065 = load i32, ptr %1329, align 4, !tbaa !5
  %16066 = call ptr @strerror(i32 noundef %16065) #13
  %16067 = load i32, ptr %1329, align 4, !tbaa !5
  %16068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16059, ptr noundef nonnull %.str.5.sink7640, i32 noundef %16060, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 2236, ptr noundef %16062, ptr noundef %16064, ptr noundef %16066, i32 noundef %16067) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16069:                                            ; preds = %16041
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %306) #13
  %16070 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %16070, ptr %306, align 8, !tbaa !9
  %16071 = load i32, ptr @test_count, align 4, !tbaa !5
  %16072 = add nsw i32 %16071, 1
  store i32 %16072, ptr @test_count, align 4, !tbaa !5
  %16073 = icmp eq ptr %16070, null
  br i1 %16073, label %16074, label %16096

16074:                                            ; preds = %16069
  %16075 = load i32, ptr %1329, align 4, !tbaa !5
  %16076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16077 = call i32 @s2n_print_stacktrace(ptr noundef %16076) #13
  %16078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16079 = trunc nuw i8 %16078 to i1
  br i1 %16079, label %16080, label %16084

16080:                                            ; preds = %16074
  %16081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16082 = call i32 @fileno(ptr noundef %16081) #13
  %16083 = call i32 @isatty(i32 noundef %16082) #13
  %.not2196 = icmp eq i32 %16083, 0
  br i1 %.not2196, label %16084, label %16085

16084:                                            ; preds = %16080, %16074
  br label %16085

16085:                                            ; preds = %16080, %16084
  %.str.5.sink7649 = phi ptr [ @.str.5, %16084 ], [ @.str.2, %16080 ]
  store i32 %16075, ptr %1329, align 4, !tbaa !5
  %16086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16087 = load i32, ptr @test_count, align 4, !tbaa !5
  %16088 = load i32, ptr %1275, align 4, !tbaa !5
  %16089 = call ptr @s2n_strerror(i32 noundef %16088, ptr noundef nonnull @.str.4) #13
  %16090 = load i32, ptr %1275, align 4, !tbaa !5
  %16091 = call ptr @s2n_strerror_debug(i32 noundef %16090, ptr noundef nonnull @.str.4) #13
  %16092 = load i32, ptr %1329, align 4, !tbaa !5
  %16093 = call ptr @strerror(i32 noundef %16092) #13
  %16094 = load i32, ptr %1329, align 4, !tbaa !5
  %16095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16086, ptr noundef nonnull %.str.5.sink7649, i32 noundef %16087, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 2239, ptr noundef %16089, ptr noundef %16091, ptr noundef %16093, i32 noundef %16094) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16096:                                            ; preds = %16069
  %16097 = getelementptr inbounds i8, ptr %16070, i64 16
  store ptr %297, ptr %16097, align 8, !tbaa !64
  %16098 = add nsw i32 %16071, 2
  store i32 %16098, ptr @test_count, align 4, !tbaa !5
  %16099 = call i32 @s2n_set_server_name(ptr noundef nonnull %16070, ptr noundef nonnull @.str.66) #13
  %16100 = icmp eq i32 %16099, -1
  br i1 %16100, label %16101, label %16123

16101:                                            ; preds = %16096
  %16102 = load i32, ptr %1329, align 4, !tbaa !5
  %16103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16104 = call i32 @s2n_print_stacktrace(ptr noundef %16103) #13
  %16105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16106 = trunc nuw i8 %16105 to i1
  br i1 %16106, label %16107, label %16111

16107:                                            ; preds = %16101
  %16108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16109 = call i32 @fileno(ptr noundef %16108) #13
  %16110 = call i32 @isatty(i32 noundef %16109) #13
  %.not2195 = icmp eq i32 %16110, 0
  br i1 %.not2195, label %16111, label %16112

16111:                                            ; preds = %16107, %16101
  br label %16112

16112:                                            ; preds = %16107, %16111
  %.str.5.sink7658 = phi ptr [ @.str.5, %16111 ], [ @.str.2, %16107 ]
  store i32 %16102, ptr %1329, align 4, !tbaa !5
  %16113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16114 = load i32, ptr @test_count, align 4, !tbaa !5
  %16115 = load i32, ptr %1275, align 4, !tbaa !5
  %16116 = call ptr @s2n_strerror(i32 noundef %16115, ptr noundef nonnull @.str.4) #13
  %16117 = load i32, ptr %1275, align 4, !tbaa !5
  %16118 = call ptr @s2n_strerror_debug(i32 noundef %16117, ptr noundef nonnull @.str.4) #13
  %16119 = load i32, ptr %1329, align 4, !tbaa !5
  %16120 = call ptr @strerror(i32 noundef %16119) #13
  %16121 = load i32, ptr %1329, align 4, !tbaa !5
  %16122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16113, ptr noundef nonnull %.str.5.sink7658, i32 noundef %16114, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 2241, ptr noundef %16116, ptr noundef %16118, ptr noundef %16120, i32 noundef %16121) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16123:                                            ; preds = %16096
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %307) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %307, i8 0, i64 40, i1 false)
  %16124 = load i32, ptr @test_count, align 4, !tbaa !5
  %16125 = add nsw i32 %16124, 1
  store i32 %16125, ptr @test_count, align 4, !tbaa !5
  %16126 = load i32, ptr %296, align 4, !tbaa !5
  %16127 = load i32, ptr %294, align 4, !tbaa !5
  %16128 = sub i32 %16126, %16127
  %16129 = call i32 @s2n_test_cert_chain_data_from_pem_data(ptr noundef nonnull %16070, ptr noundef nonnull %295, i32 noundef %16128, ptr noundef nonnull %307) #13
  %16130 = call zeroext i1 @s2n_result_is_ok(i32 %16129)
  br i1 %16130, label %16153, label %16131

16131:                                            ; preds = %16123
  %16132 = load i32, ptr %1329, align 4, !tbaa !5
  %16133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16134 = call i32 @s2n_print_stacktrace(ptr noundef %16133) #13
  %16135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16136 = trunc nuw i8 %16135 to i1
  br i1 %16136, label %16137, label %16141

16137:                                            ; preds = %16131
  %16138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16139 = call i32 @fileno(ptr noundef %16138) #13
  %16140 = call i32 @isatty(i32 noundef %16139) #13
  %.not2183 = icmp eq i32 %16140, 0
  br i1 %.not2183, label %16141, label %16142

16141:                                            ; preds = %16137, %16131
  br label %16142

16142:                                            ; preds = %16137, %16141
  %.str.5.sink7667 = phi ptr [ @.str.5, %16141 ], [ @.str.2, %16137 ]
  store i32 %16132, ptr %1329, align 4, !tbaa !5
  %16143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16144 = load i32, ptr @test_count, align 4, !tbaa !5
  %16145 = load i32, ptr %1275, align 4, !tbaa !5
  %16146 = call ptr @s2n_strerror(i32 noundef %16145, ptr noundef nonnull @.str.4) #13
  %16147 = load i32, ptr %1275, align 4, !tbaa !5
  %16148 = call ptr @s2n_strerror_debug(i32 noundef %16147, ptr noundef nonnull @.str.4) #13
  %16149 = load i32, ptr %1329, align 4, !tbaa !5
  %16150 = call ptr @strerror(i32 noundef %16149) #13
  %16151 = load i32, ptr %1329, align 4, !tbaa !5
  %16152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16143, ptr noundef nonnull %.str.5.sink7667, i32 noundef %16144, ptr noundef nonnull @.str.178, ptr noundef nonnull @.str.1, i32 noundef 2249, ptr noundef %16146, ptr noundef %16148, ptr noundef %16150, i32 noundef %16151) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16153:                                            ; preds = %16123
  %16154 = getelementptr inbounds i8, ptr %307, i64 28
  %16155 = load i32, ptr %16154, align 4, !tbaa !15
  %16156 = getelementptr inbounds i8, ptr %307, i64 24
  %16157 = load i32, ptr %16156, align 8, !tbaa !18
  %16158 = sub i32 %16155, %16157
  %16159 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %307, i32 noundef %16158) #13
  %16160 = load i32, ptr @test_count, align 4, !tbaa !5
  %16161 = add nsw i32 %16160, 1
  store i32 %16161, ptr @test_count, align 4, !tbaa !5
  %16162 = icmp eq ptr %16159, null
  br i1 %16162, label %16163, label %16185

16163:                                            ; preds = %16153
  %16164 = load i32, ptr %1329, align 4, !tbaa !5
  %16165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16166 = call i32 @s2n_print_stacktrace(ptr noundef %16165) #13
  %16167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16168 = trunc nuw i8 %16167 to i1
  br i1 %16168, label %16169, label %16173

16169:                                            ; preds = %16163
  %16170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16171 = call i32 @fileno(ptr noundef %16170) #13
  %16172 = call i32 @isatty(i32 noundef %16171) #13
  %.not2194 = icmp eq i32 %16172, 0
  br i1 %.not2194, label %16173, label %16174

16173:                                            ; preds = %16169, %16163
  br label %16174

16174:                                            ; preds = %16169, %16173
  %.str.5.sink7676 = phi ptr [ @.str.5, %16173 ], [ @.str.2, %16169 ]
  store i32 %16164, ptr %1329, align 4, !tbaa !5
  %16175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16176 = load i32, ptr @test_count, align 4, !tbaa !5
  %16177 = load i32, ptr %1275, align 4, !tbaa !5
  %16178 = call ptr @s2n_strerror(i32 noundef %16177, ptr noundef nonnull @.str.4) #13
  %16179 = load i32, ptr %1275, align 4, !tbaa !5
  %16180 = call ptr @s2n_strerror_debug(i32 noundef %16179, ptr noundef nonnull @.str.4) #13
  %16181 = load i32, ptr %1329, align 4, !tbaa !5
  %16182 = call ptr @strerror(i32 noundef %16181) #13
  %16183 = load i32, ptr %1329, align 4, !tbaa !5
  %16184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16175, ptr noundef nonnull %.str.5.sink7676, i32 noundef %16176, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 2252, ptr noundef %16178, ptr noundef %16180, ptr noundef %16182, i32 noundef %16183) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16185:                                            ; preds = %16153
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %308) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %308, i8 0, i64 48, i1 false)
  %16186 = add nsw i32 %16160, 2
  store i32 %16186, ptr @test_count, align 4, !tbaa !5
  %16187 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %308) #13
  %16188 = icmp eq i32 %16187, -1
  br i1 %16188, label %16189, label %16211

16189:                                            ; preds = %16185
  %16190 = load i32, ptr %1329, align 4, !tbaa !5
  %16191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16192 = call i32 @s2n_print_stacktrace(ptr noundef %16191) #13
  %16193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16194 = trunc nuw i8 %16193 to i1
  br i1 %16194, label %16195, label %16199

16195:                                            ; preds = %16189
  %16196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16197 = call i32 @fileno(ptr noundef %16196) #13
  %16198 = call i32 @isatty(i32 noundef %16197) #13
  %.not2193 = icmp eq i32 %16198, 0
  br i1 %.not2193, label %16199, label %16200

16199:                                            ; preds = %16195, %16189
  br label %16200

16200:                                            ; preds = %16195, %16199
  %.str.5.sink7685 = phi ptr [ @.str.5, %16199 ], [ @.str.2, %16195 ]
  store i32 %16190, ptr %1329, align 4, !tbaa !5
  %16201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16202 = load i32, ptr @test_count, align 4, !tbaa !5
  %16203 = load i32, ptr %1275, align 4, !tbaa !5
  %16204 = call ptr @s2n_strerror(i32 noundef %16203, ptr noundef nonnull @.str.4) #13
  %16205 = load i32, ptr %1275, align 4, !tbaa !5
  %16206 = call ptr @s2n_strerror_debug(i32 noundef %16205, ptr noundef nonnull @.str.4) #13
  %16207 = load i32, ptr %1329, align 4, !tbaa !5
  %16208 = call ptr @strerror(i32 noundef %16207) #13
  %16209 = load i32, ptr %1329, align 4, !tbaa !5
  %16210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16201, ptr noundef nonnull %.str.5.sink7685, i32 noundef %16202, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 2255, ptr noundef %16204, ptr noundef %16206, ptr noundef %16208, i32 noundef %16209) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16211:                                            ; preds = %16185
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %309) #13
  store i32 -1, ptr %309, align 4, !tbaa !5
  %16212 = load i32, ptr @test_count, align 4, !tbaa !5
  %16213 = add nsw i32 %16212, 1
  store i32 %16213, ptr @test_count, align 4, !tbaa !5
  %16214 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %305, ptr noundef nonnull %16070, ptr noundef nonnull %16159, i32 noundef %16158, ptr noundef nonnull %309, ptr noundef nonnull %308) #13
  %16215 = call zeroext i1 @s2n_result_is_error(i32 %16214)
  br i1 %16215, label %16238, label %16216

16216:                                            ; preds = %16211
  %16217 = load i32, ptr %1329, align 4, !tbaa !5
  %16218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16219 = call i32 @s2n_print_stacktrace(ptr noundef %16218) #13
  %16220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16221 = trunc nuw i8 %16220 to i1
  br i1 %16221, label %16222, label %16226

16222:                                            ; preds = %16216
  %16223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16224 = call i32 @fileno(ptr noundef %16223) #13
  %16225 = call i32 @isatty(i32 noundef %16224) #13
  %.not2184 = icmp eq i32 %16225, 0
  br i1 %.not2184, label %16226, label %16227

16226:                                            ; preds = %16222, %16216
  br label %16227

16227:                                            ; preds = %16222, %16226
  %.str.5.sink7694 = phi ptr [ @.str.5, %16226 ], [ @.str.2, %16222 ]
  store i32 %16217, ptr %1329, align 4, !tbaa !5
  %16228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16229 = load i32, ptr @test_count, align 4, !tbaa !5
  %16230 = load i32, ptr %1275, align 4, !tbaa !5
  %16231 = call ptr @s2n_strerror(i32 noundef %16230, ptr noundef nonnull @.str.4) #13
  %16232 = load i32, ptr %1275, align 4, !tbaa !5
  %16233 = call ptr @s2n_strerror_debug(i32 noundef %16232, ptr noundef nonnull @.str.4) #13
  %16234 = load i32, ptr %1329, align 4, !tbaa !5
  %16235 = call ptr @strerror(i32 noundef %16234) #13
  %16236 = load i32, ptr %1329, align 4, !tbaa !5
  %16237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16228, ptr noundef nonnull %.str.5.sink7694, i32 noundef %16229, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 2259, ptr noundef %16231, ptr noundef %16233, ptr noundef %16235, i32 noundef %16236) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16238:                                            ; preds = %16211
  %16239 = load i32, ptr @test_count, align 4, !tbaa !5
  %16240 = add nsw i32 %16239, 1
  store i32 %16240, ptr @test_count, align 4, !tbaa !5
  %16241 = load i32, ptr %1275, align 4, !tbaa !5
  %16242 = icmp eq i32 %16241, 469762133
  br i1 %16242, label %16265, label %16243

16243:                                            ; preds = %16238
  %16244 = load i32, ptr %1329, align 4, !tbaa !5
  %16245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16246 = call i32 @s2n_print_stacktrace(ptr noundef %16245) #13
  %16247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16248 = trunc nuw i8 %16247 to i1
  br i1 %16248, label %16249, label %16253

16249:                                            ; preds = %16243
  %16250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16251 = call i32 @fileno(ptr noundef %16250) #13
  %16252 = call i32 @isatty(i32 noundef %16251) #13
  %.not2185 = icmp eq i32 %16252, 0
  br i1 %.not2185, label %16253, label %16254

16253:                                            ; preds = %16249, %16243
  br label %16254

16254:                                            ; preds = %16249, %16253
  %.str.5.sink7703 = phi ptr [ @.str.5, %16253 ], [ @.str.2, %16249 ]
  store i32 %16244, ptr %1329, align 4, !tbaa !5
  %16255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16256 = load i32, ptr @test_count, align 4, !tbaa !5
  %16257 = load i32, ptr %1275, align 4, !tbaa !5
  %16258 = call ptr @s2n_strerror(i32 noundef %16257, ptr noundef nonnull @.str.4) #13
  %16259 = load i32, ptr %1275, align 4, !tbaa !5
  %16260 = call ptr @s2n_strerror_debug(i32 noundef %16259, ptr noundef nonnull @.str.4) #13
  %16261 = load i32, ptr %1329, align 4, !tbaa !5
  %16262 = call ptr @strerror(i32 noundef %16261) #13
  %16263 = load i32, ptr %1329, align 4, !tbaa !5
  %16264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16255, ptr noundef nonnull %.str.5.sink7703, i32 noundef %16256, ptr noundef nonnull @.str.179, ptr noundef nonnull @.str.1, i32 noundef 2259, ptr noundef %16258, ptr noundef %16260, ptr noundef %16262, i32 noundef %16263) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16265:                                            ; preds = %16238
  %16266 = add nsw i32 %16239, 2
  store i32 %16266, ptr @test_count, align 4, !tbaa !5
  %16267 = call ptr @s2n_strerror_debug(i32 noundef 469762133, ptr noundef nonnull @.str.4) #13
  %16268 = icmp eq ptr %16267, null
  br i1 %16268, label %16269, label %16291

16269:                                            ; preds = %16265
  %16270 = load i32, ptr %1329, align 4, !tbaa !5
  %16271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16272 = call i32 @s2n_print_stacktrace(ptr noundef %16271) #13
  %16273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16274 = trunc nuw i8 %16273 to i1
  br i1 %16274, label %16275, label %16279

16275:                                            ; preds = %16269
  %16276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16277 = call i32 @fileno(ptr noundef %16276) #13
  %16278 = call i32 @isatty(i32 noundef %16277) #13
  %.not2192 = icmp eq i32 %16278, 0
  br i1 %.not2192, label %16279, label %16280

16279:                                            ; preds = %16275, %16269
  br label %16280

16280:                                            ; preds = %16275, %16279
  %.str.5.sink7712 = phi ptr [ @.str.5, %16279 ], [ @.str.2, %16275 ]
  store i32 %16270, ptr %1329, align 4, !tbaa !5
  %16281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16282 = load i32, ptr @test_count, align 4, !tbaa !5
  %16283 = load i32, ptr %1275, align 4, !tbaa !5
  %16284 = call ptr @s2n_strerror(i32 noundef %16283, ptr noundef nonnull @.str.4) #13
  %16285 = load i32, ptr %1275, align 4, !tbaa !5
  %16286 = call ptr @s2n_strerror_debug(i32 noundef %16285, ptr noundef nonnull @.str.4) #13
  %16287 = load i32, ptr %1329, align 4, !tbaa !5
  %16288 = call ptr @strerror(i32 noundef %16287) #13
  %16289 = load i32, ptr %1329, align 4, !tbaa !5
  %16290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16281, ptr noundef nonnull %.str.5.sink7712, i32 noundef %16282, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 2259, ptr noundef %16284, ptr noundef %16286, ptr noundef %16288, i32 noundef %16289) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16291:                                            ; preds = %16265
  store i32 0, ptr %1275, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1329, align 4, !tbaa !5
  %16292 = load i32, ptr @test_count, align 4, !tbaa !5
  %16293 = add nsw i32 %16292, 1
  store i32 %16293, ptr @test_count, align 4, !tbaa !5
  %16294 = getelementptr inbounds i8, ptr %305, i64 32
  %16295 = load i32, ptr %16294, align 8, !tbaa !65
  %16296 = icmp eq i32 %16295, 4
  br i1 %16296, label %16319, label %16297

16297:                                            ; preds = %16291
  %16298 = load i32, ptr %1329, align 4, !tbaa !5
  %16299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16300 = call i32 @s2n_print_stacktrace(ptr noundef %16299) #13
  %16301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16302 = trunc nuw i8 %16301 to i1
  br i1 %16302, label %16303, label %16307

16303:                                            ; preds = %16297
  %16304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16305 = call i32 @fileno(ptr noundef %16304) #13
  %16306 = call i32 @isatty(i32 noundef %16305) #13
  %.not2186 = icmp eq i32 %16306, 0
  br i1 %.not2186, label %16307, label %16308

16307:                                            ; preds = %16303, %16297
  br label %16308

16308:                                            ; preds = %16303, %16307
  %.str.5.sink7721 = phi ptr [ @.str.5, %16307 ], [ @.str.2, %16303 ]
  store i32 %16298, ptr %1329, align 4, !tbaa !5
  %16309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16310 = load i32, ptr @test_count, align 4, !tbaa !5
  %16311 = load i32, ptr %1275, align 4, !tbaa !5
  %16312 = call ptr @s2n_strerror(i32 noundef %16311, ptr noundef nonnull @.str.4) #13
  %16313 = load i32, ptr %1275, align 4, !tbaa !5
  %16314 = call ptr @s2n_strerror_debug(i32 noundef %16313, ptr noundef nonnull @.str.4) #13
  %16315 = load i32, ptr %1329, align 4, !tbaa !5
  %16316 = call ptr @strerror(i32 noundef %16315) #13
  %16317 = load i32, ptr %1329, align 4, !tbaa !5
  %16318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16309, ptr noundef nonnull %.str.5.sink7721, i32 noundef %16310, ptr noundef nonnull @.str.180, ptr noundef nonnull @.str.1, i32 noundef 2261, ptr noundef %16312, ptr noundef %16314, ptr noundef %16316, i32 noundef %16317) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16319:                                            ; preds = %16291
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %309) #13
  %16320 = call i32 @s2n_pkey_free(ptr noundef nonnull %308) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %308) #13
  %16321 = call i32 @s2n_stuffer_free(ptr noundef nonnull %307) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %307) #13
  %16322 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %306) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %306) #13
  %16323 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %305) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %305) #13
  %16324 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %304) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %304) #13
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %297) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %296) #13
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %295) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %294) #13
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %293) #13
  %16325 = call i32 @s2n_cleanup() #13
  %16326 = icmp eq i32 %16325, -1
  br i1 %16326, label %16327, label %16349

16327:                                            ; preds = %16319
  %16328 = load i32, ptr %1329, align 4, !tbaa !5
  %16329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16330 = call i32 @s2n_print_stacktrace(ptr noundef %16329) #13
  %16331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16332 = trunc nuw i8 %16331 to i1
  br i1 %16332, label %16333, label %16337

16333:                                            ; preds = %16327
  %16334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16335 = call i32 @fileno(ptr noundef %16334) #13
  %16336 = call i32 @isatty(i32 noundef %16335) #13
  %.not2191 = icmp eq i32 %16336, 0
  br i1 %.not2191, label %16337, label %16338

16337:                                            ; preds = %16333, %16327
  br label %16338

16338:                                            ; preds = %16333, %16337
  %.str.5.sink7730 = phi ptr [ @.str.5, %16337 ], [ @.str.2, %16333 ]
  store i32 %16328, ptr %1329, align 4, !tbaa !5
  %16339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16340 = load i32, ptr @test_count, align 4, !tbaa !5
  %16341 = load i32, ptr %1275, align 4, !tbaa !5
  %16342 = call ptr @s2n_strerror(i32 noundef %16341, ptr noundef nonnull @.str.4) #13
  %16343 = load i32, ptr %1275, align 4, !tbaa !5
  %16344 = call ptr @s2n_strerror_debug(i32 noundef %16343, ptr noundef nonnull @.str.4) #13
  %16345 = load i32, ptr %1329, align 4, !tbaa !5
  %16346 = call ptr @strerror(i32 noundef %16345) #13
  %16347 = load i32, ptr %1329, align 4, !tbaa !5
  %16348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16339, ptr noundef nonnull %.str.5.sink7730, i32 noundef %16340, ptr noundef nonnull @.str.181, ptr noundef nonnull @.str.1, i32 noundef 2265, ptr noundef %16342, ptr noundef %16344, ptr noundef %16346, i32 noundef %16347) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16349:                                            ; preds = %16319
  %16350 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %16351 = icmp eq i32 %16350, -1
  br i1 %16351, label %16352, label %16374

16352:                                            ; preds = %16349
  %16353 = load i32, ptr %1329, align 4, !tbaa !5
  %16354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16355 = call i32 @s2n_print_stacktrace(ptr noundef %16354) #13
  %16356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16357 = trunc nuw i8 %16356 to i1
  br i1 %16357, label %16358, label %16362

16358:                                            ; preds = %16352
  %16359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16360 = call i32 @fileno(ptr noundef %16359) #13
  %16361 = call i32 @isatty(i32 noundef %16360) #13
  %.not2190 = icmp eq i32 %16361, 0
  br i1 %.not2190, label %16362, label %16363

16362:                                            ; preds = %16358, %16352
  br label %16363

16363:                                            ; preds = %16358, %16362
  %.str.5.sink7739 = phi ptr [ @.str.5, %16362 ], [ @.str.2, %16358 ]
  store i32 %16353, ptr %1329, align 4, !tbaa !5
  %16364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16365 = load i32, ptr @test_count, align 4, !tbaa !5
  %16366 = load i32, ptr %1275, align 4, !tbaa !5
  %16367 = call ptr @s2n_strerror(i32 noundef %16366, ptr noundef nonnull @.str.4) #13
  %16368 = load i32, ptr %1275, align 4, !tbaa !5
  %16369 = call ptr @s2n_strerror_debug(i32 noundef %16368, ptr noundef nonnull @.str.4) #13
  %16370 = load i32, ptr %1329, align 4, !tbaa !5
  %16371 = call ptr @strerror(i32 noundef %16370) #13
  %16372 = load i32, ptr %1329, align 4, !tbaa !5
  %16373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16364, ptr noundef nonnull %.str.5.sink7739, i32 noundef %16365, ptr noundef nonnull @.str.182, ptr noundef nonnull @.str.1, i32 noundef 2265, ptr noundef %16367, ptr noundef %16369, ptr noundef %16371, i32 noundef %16372) #15
  call void @exit(i32 noundef 1) #16
  unreachable

16374:                                            ; preds = %16349
  %16375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16376 = trunc nuw i8 %16375 to i1
  br i1 %16376, label %16377, label %16388

16377:                                            ; preds = %16374
  %16378 = load ptr, ptr @stdout, align 8, !tbaa !9
  %16379 = call i32 @fileno(ptr noundef %16378) #13
  %16380 = call i32 @isatty(i32 noundef %16379) #13
  %.not2187 = icmp eq i32 %16380, 0
  br i1 %.not2187, label %16388, label %16381

16381:                                            ; preds = %16377
  %16382 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not2189 = icmp eq i32 %16382, 0
  %16383 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not2189, label %16386, label %16384

16384:                                            ; preds = %16381
  %16385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16383, ptr noundef nonnull @.str.183, i32 noundef %16382) #13
  br label %16395

16386:                                            ; preds = %16381
  %16387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16383, ptr noundef nonnull @.str.184) #13
  br label %16395

16388:                                            ; preds = %16377, %16374
  %16389 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not2188 = icmp eq i32 %16389, 0
  %16390 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not2188, label %16393, label %16391

16391:                                            ; preds = %16388
  %16392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16390, ptr noundef nonnull @.str.185, i32 noundef %16389) #13
  br label %16395

16393:                                            ; preds = %16388
  %16394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16390, ptr noundef nonnull @.str.186) #13
  br label %16395

16395:                                            ; preds = %16391, %16393, %16384, %16386
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare void @s2n_x509_trust_store_init_empty(ptr noundef) local_unnamed_addr #2

declare zeroext i8 @s2n_x509_trust_store_has_certs(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_x509_trust_store_from_ca_file(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_x509_trust_store_wipe(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare i32 @s2n_x509_trust_store_add_pem(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #9

declare i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #11

declare i32 @s2n_test_cert_chain_data_from_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_pkey_zero_init(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_x509_validator_validate_cert_chain(ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_pkey_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_x509_validator_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_x509_validator_set_max_chain_depth(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_x509_validator_init(ptr noundef, ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_set_verify_host_callback(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_accept_everything(ptr noundef, i64 noundef, ptr noundef) #0

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #11

; 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) #12

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_verify_alt(ptr noundef, i64 noundef, ptr noundef) #0

declare i32 @s2n_config_set_wall_clock(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_expired_after_ocsp_timestamp(ptr noundef, ptr noundef) #0

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_early_expired_after_ocsp_timestamp(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_reject_everything(ptr noundef, i64 noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @read_file(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

declare i32 @s2n_x509_validator_validate_cert_stapled_ocsp_response(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_not_expired_ocsp_timestamp(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @fetch_invalid_before_ocsp_timestamp(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @mock_time(ptr noundef, ptr noundef) #0

declare i32 @s2n_set_server_name(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_add_pem_to_trust_store(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_libcrypto_is_awslc() local_unnamed_addr #2

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_set_cert_chain(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_send_cert_chain(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @OPENSSL_sk_num(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @ossl_check_const_X509_sk_type(ptr noundef) local_unnamed_addr #11

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_wipe_trust_store(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_verification_ca_location(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_get_cert(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cert_get_der(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @d2i_X509(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @X509_free_pointer(ptr noundef) local_unnamed_addr #11

declare i32 @X509_get_extension_flags(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_libcrypto_is_libressl() local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @setenv(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @unsetenv(ptr nocapture noundef readonly) local_unnamed_addr #1

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new_minimal() local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_data_from_pem_data(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @s2n_libcrypto_supports_2050() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @s2n_supports_large_time_t() local_unnamed_addr #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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { mustprogress 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 #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { cold nounwind }
attributes #16 = { noreturn nounwind }
attributes #17 = { nounwind allocsize(0) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 28}
!16 = !{!"s2n_stuffer", !17, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!17 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!18 = !{!16, !6, i64 24}
!19 = !{!20, !7, i64 9}
!20 = !{!"host_verify_data", !10, i64 0, !7, i64 8, !7, i64 9}
!21 = !{!20, !7, i64 8}
!22 = !{!23, !10, i64 8}
!23 = !{!"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, !24, i64 160, !25, i64 168, !25, 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, !26, i64 240, !10, i64 632, !10, i64 640, !27, i64 648, !32, i64 1144, !35, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !16, i64 1776, !16, i64 1816, !16, i64 1856, !16, i64 1896, !6, i64 1936, !25, i64 1944, !7, i64 1952, !16, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !38, i64 2004, !38, i64 2008, !39, i64 2016, !37, i64 2208, !6, i64 2212, !37, i64 2216, !25, i64 2224, !7, i64 2232, !25, i64 2240, !25, i64 2248, !25, i64 2256, !38, i64 2264, !38, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !17, i64 2792, !6, i64 2816, !17, i64 2824, !17, i64 2848, !17, i64 2872, !41, i64 2896, !43, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !17, i64 3784, !6, i64 3808, !45, i64 3816, !7, i64 3848, !16, i64 3992, !17, i64 4032, !17, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !37, i64 4084, !37, i64 4086, !6, i64 4088, !6, i64 4092, !17, i64 4096, !6, i64 4120, !46, i64 4128, !38, i64 4176, !7, i64 4180, !7, i64 4181}
!24 = !{!"s2n_timer", !25, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!27 = !{!"s2n_kex_parameters", !28, i64 0, !29, i64 8, !7, i64 24, !29, i64 56, !30, i64 72, !30, i64 184, !7, i64 296, !31, i64 360, !17, i64 448, !17, i64 472}
!28 = !{!"s2n_dh_params", !10, i64 0}
!29 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!30 = !{!"s2n_kem_group_params", !10, i64 0, !31, i64 8, !29, i64 96}
!31 = !{!"s2n_kem_params", !10, i64 0, !17, i64 8, !17, i64 32, !17, i64 56, !12, i64 80}
!32 = !{!"s2n_handshake_parameters", !33, i64 0, !33, i64 48, !17, i64 96, !6, i64 120, !34, 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}
!33 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!34 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!35 = !{!"s2n_psk_parameters", !6, i64 0, !36, i64 8, !37, i64 40, !37, i64 42, !10, i64 48, !6, i64 56}
!36 = !{!"s2n_array", !17, i64 0, !6, i64 24, !6, i64 28}
!37 = !{!"short", !7, i64 0}
!38 = !{!"", !6, i64 0}
!39 = !{!"s2n_handshake", !16, 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, !40, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!40 = !{!"s2n_offered_early_data", !10, i64 0}
!41 = !{!"s2n_client_hello", !17, i64 0, !42, i64 24, !17, i64 728, !17, i64 752, !17, 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}
!42 = !{!"", !7, i64 0, !17, i64 672, !37, i64 696}
!43 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !37, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !44, i64 48, !12, i64 52}
!44 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!45 = !{!"s2n_ticket_fields", !17, i64 0, !6, i64 24}
!46 = !{!"s2n_post_handshake", !16, i64 0, !7, i64 40}
!47 = !{!48, !10, i64 80}
!48 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !49, i64 24, !17, 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, !25, i64 144, !10, i64 152, !25, i64 160, !25, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !50, i64 304, !37, 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, !17, i64 448}
!49 = !{!"certs_by_type", !7, i64 0}
!50 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!51 = !{!7, !7, i64 0}
!52 = !{!53, !25, i64 0}
!53 = !{!"", !25, i64 0, !6, i64 8}
!54 = !{!53, !6, i64 8}
!55 = !{!25, !25, i64 0}
!56 = distinct !{!56, !57}
!57 = !{!"llvm.loop.mustprogress"}
!58 = !{!43, !10, i64 24}
!59 = !{!23, !7, i64 220}
!60 = !{!43, !7, i64 16}
!61 = !{i64 0, i64 1, !51, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !51}
!62 = !{!63, !12, i64 56}
!63 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!64 = !{!23, !10, i64 16}
!65 = !{!43, !6, i64 32}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopRotatePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass