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

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

%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon }
%union.anon = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon.0, i32 }
%union.anon.0 = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@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 [83 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
@__const.main.sources = external hidden unnamed_addr constant [2 x i32], align 4
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [159 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@__const.main.sslv2_client_hello = external hidden unnamed_addr constant [176 x i8], align 16
@.str.44 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [34 x i8], align 1
@__const.main._client_hello_bytes_message = external hidden unnamed_addr constant [51 x i8], align 16
@__const.main.client_hello_bytes = external hidden unnamed_addr constant [55 x i8], align 16
@__const.main.expected_ja3 = external hidden unnamed_addr constant [17 x i8], align 16
@.str.49 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [76 x i8], align 1
@__const.main.client_hello_bytes.53 = external hidden unnamed_addr constant [47 x i8], align 16
@__const.main.expected_ja3.54 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [129 x i8], align 1
@__const.main._client_hello_bytes_message.56 = external hidden unnamed_addr constant [59 x i8], align 16
@__const.main.client_hello_bytes.57 = external hidden unnamed_addr constant [63 x i8], align 16
@__const.main.expected_ja3.58 = external hidden unnamed_addr constant [17 x i8], align 16
@.str.59 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [138 x i8], align 1
@__const.main.raw_client_hello = external hidden unnamed_addr constant [135 x i8], align 16
@__const.main.expected_ja3.70 = external hidden unnamed_addr constant [193 x i8], align 16
@.str.71 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.raw_client_hello.73 = external hidden unnamed_addr constant [164 x i8], align 16
@__const.main.expected_ja3.74 = external hidden unnamed_addr constant [214 x i8], align 16
@__const.main.raw_client_hello.75 = external hidden unnamed_addr constant [164 x i8], align 16
@__const.main.expected_ja3.76 = external hidden unnamed_addr constant [214 x i8], align 16
@__const.main.raw_client_hello.77 = external hidden unnamed_addr constant [258 x i8], align 16
@__const.main.expected_ja3.78 = external hidden unnamed_addr constant [358 x i8], align 16
@__const.main.raw_client_hello.79 = external hidden unnamed_addr constant <{ [323 x i8], [189 x i8] }>, align 16
@__const.main.expected_ja3.80 = external hidden unnamed_addr constant [141 x i8], align 16
@.str.81 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.raw_client_hello.86 = external hidden unnamed_addr constant <{ [330 x i8], [182 x i8] }>, align 16
@__const.main.expected_ja3.87 = external hidden unnamed_addr constant [214 x i8], align 16
@.str.88 = external hidden unnamed_addr constant [33 x i8], align 1
@__const.main.raw_client_hello.89 = external hidden unnamed_addr constant [240 x i8], align 16
@__const.main.expected_ja3.90 = external hidden unnamed_addr constant [124 x i8], align 16
@.str.91 = external hidden unnamed_addr constant [33 x i8], align 1
@__const.main.raw_client_hello.92 = external hidden unnamed_addr constant <{ [404 x i8], [108 x i8] }>, align 16
@__const.main.expected_ja3.93 = external hidden unnamed_addr constant [442 x i8], align 16
@.str.94 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.100 = 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 [500 x i8], align 16
  %10 = alloca [2 x i32], align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca [16 x i8], align 16
  %18 = alloca %struct.s2n_hash_state, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca %struct.s2n_result, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca i32, align 4
  %75 = alloca %struct.s2n_result, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca ptr, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca [176 x i8], align 16
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca ptr, align 8
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca %struct.s2n_result, align 4
  %93 = alloca i64, align 8
  %94 = alloca i32, align 4
  %95 = alloca [51 x i8], align 16
  %96 = alloca [55 x i8], align 16
  %97 = alloca [17 x i8], align 16
  %98 = alloca i64, align 8
  %99 = alloca ptr, align 8
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_result, align 4
  %111 = alloca i64, align 8
  %112 = alloca i32, align 4
  %113 = alloca [43 x i8], align 16
  %114 = alloca [47 x i8], align 16
  %115 = alloca [13 x i8], align 1
  %116 = alloca i64, align 8
  %117 = alloca ptr, align 8
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca ptr, align 8
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca %struct.s2n_result, align 4
  %129 = alloca ptr, align 8
  %130 = alloca i32, align 4
  %131 = alloca ptr, align 8
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca ptr, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i64, align 8
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca %struct.s2n_result, align 4
  %146 = alloca %struct.s2n_result, align 4
  %147 = alloca i64, align 8
  %148 = alloca i32, align 4
  %149 = alloca i8, align 1
  %150 = alloca [59 x i8], align 16
  %151 = alloca [63 x i8], align 16
  %152 = alloca [17 x i8], align 16
  %153 = alloca i64, align 8
  %154 = alloca ptr, align 8
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca ptr, align 8
  %159 = alloca %struct.s2n_result, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca %struct.s2n_result, align 4
  %166 = alloca ptr, align 8
  %167 = alloca i32, align 4
  %168 = alloca ptr, align 8
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca ptr, align 8
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca [16 x i8], align 16
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca %struct.s2n_result, align 4
  %194 = alloca %struct.s2n_result, align 4
  %195 = alloca ptr, align 8
  %196 = alloca i32, align 4
  %197 = alloca ptr, align 8
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca ptr, align 8
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i64, align 8
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca %struct.s2n_result, align 4
  %213 = alloca %struct.s2n_result, align 4
  %214 = alloca i64, align 8
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca ptr, align 8
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca [135 x i8], align 16
  %221 = alloca [193 x i8], align 16
  %222 = alloca ptr, align 8
  %223 = alloca %struct.s2n_result, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca [164 x i8], align 16
  %230 = alloca [214 x i8], align 16
  %231 = alloca ptr, align 8
  %232 = alloca %struct.s2n_result, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca [164 x i8], align 16
  %239 = alloca [214 x i8], align 16
  %240 = alloca ptr, align 8
  %241 = alloca %struct.s2n_result, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca [258 x i8], align 16
  %248 = alloca [358 x i8], align 16
  %249 = alloca ptr, align 8
  %250 = alloca %struct.s2n_result, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca [512 x i8], align 16
  %257 = alloca [141 x i8], align 16
  %258 = alloca %struct.s2n_blob, align 8
  %259 = alloca %struct.s2n_result, align 4
  %260 = alloca ptr, align 8
  %261 = alloca %struct.s2n_result, align 4
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca [512 x i8], align 16
  %273 = alloca [214 x i8], align 16
  %274 = alloca %struct.s2n_blob, align 8
  %275 = alloca %struct.s2n_result, align 4
  %276 = alloca ptr, align 8
  %277 = alloca %struct.s2n_result, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca i32, align 4
  %288 = alloca [240 x i8], align 16
  %289 = alloca [124 x i8], align 16
  %290 = alloca %struct.s2n_blob, align 8
  %291 = alloca %struct.s2n_result, align 4
  %292 = alloca ptr, align 8
  %293 = alloca %struct.s2n_result, align 4
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca i32, align 4
  %301 = alloca i32, align 4
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca [512 x i8], align 16
  %305 = alloca [442 x i8], align 16
  %306 = alloca %struct.s2n_blob, align 8
  %307 = alloca %struct.s2n_result, align 4
  %308 = alloca ptr, align 8
  %309 = alloca %struct.s2n_result, align 4
  %310 = alloca i32, align 4
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca i32, align 4
  %316 = alloca i32, align 4
  %317 = alloca i32, align 4
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca %struct.s2n_result, align 4
  %321 = alloca i32, align 4
  %322 = alloca i32, align 4
  %323 = alloca %struct.s2n_result, align 4
  %324 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %325

325:                                              ; preds = %2
  br label %326

326:                                              ; preds = %325
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %327 = load ptr, ptr @stdout, align 8, !tbaa !9
  %328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %327, ptr noundef @.str, ptr noundef @.str.1) #11
  %329 = load ptr, ptr @stdout, align 8, !tbaa !9
  %330 = call i32 @fflush(ptr noundef %329)
  br label %331

331:                                              ; preds = %326
  %332 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %333 = icmp eq i32 %332, -1
  br i1 %333, label %334, label %385

334:                                              ; preds = %331
  br label %335

335:                                              ; preds = %334
  br label %336

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

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #11
  %346 = call i32 @isatty(i32 noundef %345) #11
  %347 = icmp ne i32 %346, 0
  br i1 %347, label %348, label %365

348:                                              ; preds = %343
  %349 = load i32, ptr %6, align 4, !tbaa !5
  %350 = call ptr @__errno_location() #12
  store i32 %349, ptr %350, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef @.str.4)
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef @.str.4)
  %359 = call ptr @__errno_location() #12
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @strerror(i32 noundef %360) #11
  %362 = call ptr @__errno_location() #12
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef @.str.2, i32 noundef %352, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 124, ptr noundef %355, ptr noundef %358, ptr noundef %361, i32 noundef %363) #11
  br label %382

365:                                              ; preds = %343, %336
  %366 = load i32, ptr %6, align 4, !tbaa !5
  %367 = call ptr @__errno_location() #12
  store i32 %366, ptr %367, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef @.str.4)
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef @.str.4)
  %376 = call ptr @__errno_location() #12
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #11
  %379 = call ptr @__errno_location() #12
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef @.str.5, i32 noundef %369, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 124, ptr noundef %372, ptr noundef %375, ptr noundef %378, i32 noundef %380) #11
  br label %382

382:                                              ; preds = %365, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %383

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

384:                                              ; No predecessors!
  br label %385

385:                                              ; preds = %384, %331
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr @test_count, align 4, !tbaa !5
  %390 = call i32 @s2n_enable_atexit()
  %391 = icmp eq i32 %390, -1
  br i1 %391, label %392, label %443

392:                                              ; preds = %387
  br label %393

393:                                              ; preds = %392
  br label %394

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

401:                                              ; preds = %394
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @fileno(ptr noundef %402) #11
  %404 = call i32 @isatty(i32 noundef %403) #11
  %405 = icmp ne i32 %404, 0
  br i1 %405, label %406, label %423

406:                                              ; preds = %401
  %407 = load i32, ptr %7, align 4, !tbaa !5
  %408 = call ptr @__errno_location() #12
  store i32 %407, ptr %408, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call ptr @s2n_strerror(i32 noundef %412, ptr noundef @.str.4)
  %414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror_debug(i32 noundef %415, ptr noundef @.str.4)
  %417 = call ptr @__errno_location() #12
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #11
  %420 = call ptr @__errno_location() #12
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %409, ptr noundef @.str.2, i32 noundef %410, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 124, ptr noundef %413, ptr noundef %416, ptr noundef %419, i32 noundef %421) #11
  br label %440

423:                                              ; preds = %401, %394
  %424 = load i32, ptr %7, align 4, !tbaa !5
  %425 = call ptr @__errno_location() #12
  store i32 %424, ptr %425, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @s2n_strerror(i32 noundef %429, ptr noundef @.str.4)
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror_debug(i32 noundef %432, ptr noundef @.str.4)
  %434 = call ptr @__errno_location() #12
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call ptr @strerror(i32 noundef %435) #11
  %437 = call ptr @__errno_location() #12
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %426, ptr noundef @.str.5, i32 noundef %427, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 124, ptr noundef %430, ptr noundef %433, ptr noundef %436, i32 noundef %438) #11
  br label %440

440:                                              ; preds = %423, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %441

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

442:                                              ; No predecessors!
  br label %443

443:                                              ; preds = %442, %387
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  br label %446

446:                                              ; preds = %445
  %447 = call i32 @s2n_init()
  %448 = icmp eq i32 %447, -1
  br i1 %448, label %449, label %500

449:                                              ; preds = %446
  br label %450

450:                                              ; preds = %449
  br label %451

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

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

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

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

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

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

499:                                              ; No predecessors!
  br label %500

500:                                              ; preds = %499, %446
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 500, ptr %9) #11
  call void @llvm.memset.p0.i64(ptr align 16 %9, i8 0, i64 500, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %10, ptr align 4 @__const.main.sources, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %503

503:                                              ; preds = %502
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr @test_count, align 4, !tbaa !5
  %506 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %11, ptr noundef @.str.8, ptr noundef @.str.9)
  %507 = icmp eq i32 %506, -1
  br i1 %507, label %508, label %561

508:                                              ; preds = %503
  br label %509

509:                                              ; preds = %508
  br label %510

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

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

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

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

556:                                              ; preds = %539, %522
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %557

557:                                              ; preds = %556
  br label %558

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

559:                                              ; No predecessors!
  br label %560

560:                                              ; preds = %559
  br label %561

561:                                              ; preds = %560, %503
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  %564 = call ptr @s2n_config_new()
  store ptr %564, ptr %13, align 8, !tbaa !9
  br label %565

565:                                              ; preds = %563
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = load ptr, ptr %13, align 8, !tbaa !9
  %569 = icmp eq ptr %568, null
  br i1 %569, label %570, label %623

570:                                              ; preds = %565
  br label %571

571:                                              ; preds = %570
  br label %572

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

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

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

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

618:                                              ; preds = %601, %584
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %619

619:                                              ; preds = %618
  br label %620

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

621:                                              ; No predecessors!
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622, %565
  br label %624

624:                                              ; preds = %623
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr @test_count, align 4, !tbaa !5
  %629 = load ptr, ptr %13, align 8, !tbaa !9
  %630 = load ptr, ptr %11, align 8, !tbaa !9
  %631 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %629, ptr noundef %630)
  %632 = icmp eq i32 %631, -1
  br i1 %632, label %633, label %686

633:                                              ; preds = %626
  br label %634

634:                                              ; preds = %633
  br label %635

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

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

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

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

681:                                              ; preds = %664, %647
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %682

682:                                              ; preds = %681
  br label %683

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

684:                                              ; No predecessors!
  br label %685

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685, %626
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr @test_count, align 4, !tbaa !5
  %692 = load ptr, ptr %13, align 8, !tbaa !9
  %693 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %692, ptr noundef @.str.13)
  %694 = icmp eq i32 %693, -1
  br i1 %694, label %695, label %748

695:                                              ; preds = %689
  br label %696

696:                                              ; preds = %695
  br label %697

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

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

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

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

743:                                              ; preds = %726, %709
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %744

744:                                              ; preds = %743
  br label %745

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

746:                                              ; No predecessors!
  br label %747

747:                                              ; preds = %746
  br label %748

748:                                              ; preds = %747, %689
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #11
  call void @llvm.memset.p0.i64(ptr align 16 %17, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %18) #11
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 56, i1 false)
  br label %751

751:                                              ; preds = %750
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr @test_count, align 4, !tbaa !5
  %754 = call i32 @s2n_hash_new(ptr noundef %18)
  %755 = icmp eq i32 %754, -1
  br i1 %755, label %756, label %809

756:                                              ; preds = %751
  br label %757

757:                                              ; preds = %756
  br label %758

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

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

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

787:                                              ; preds = %765, %758
  %788 = load i32, ptr %19, align 4, !tbaa !5
  %789 = call ptr @__errno_location() #12
  store i32 %788, ptr %789, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror(i32 noundef %793, ptr noundef @.str.4)
  %795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror_debug(i32 noundef %796, ptr noundef @.str.4)
  %798 = call ptr @__errno_location() #12
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call ptr @strerror(i32 noundef %799) #11
  %801 = call ptr @__errno_location() #12
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %790, ptr noundef @.str.5, i32 noundef %791, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 144, ptr noundef %794, ptr noundef %797, ptr noundef %800, i32 noundef %802) #11
  br label %804

804:                                              ; preds = %787, %770
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %805

805:                                              ; preds = %804
  br label %806

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

807:                                              ; No predecessors!
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808, %751
  br label %810

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = call i32 @s2n_hash_init(ptr noundef %18, i32 noundef 1)
  %816 = icmp eq i32 %815, -1
  br i1 %816, label %817, label %870

817:                                              ; preds = %812
  br label %818

818:                                              ; preds = %817
  br label %819

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

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

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

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

865:                                              ; preds = %848, %831
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %866

866:                                              ; preds = %865
  br label %867

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

868:                                              ; No predecessors!
  br label %869

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869, %812
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = add nsw i32 %874, 1
  store i32 %875, ptr @test_count, align 4, !tbaa !5
  %876 = getelementptr inbounds [16 x i8], ptr %17, i64 0, i64 0
  %877 = call i32 @s2n_hash_digest(ptr noundef %18, ptr noundef %876, i32 noundef 16)
  %878 = icmp eq i32 %877, -1
  br i1 %878, label %879, label %932

879:                                              ; preds = %873
  br label %880

880:                                              ; preds = %879
  br label %881

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

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

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

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

927:                                              ; preds = %910, %893
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %928

928:                                              ; preds = %927
  br label %929

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

930:                                              ; No predecessors!
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931, %873
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #11
  %935 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %935, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #11
  %936 = load ptr, ptr %22, align 8, !tbaa !9
  %937 = getelementptr inbounds %struct.s2n_connection, ptr %936, i32 0, i32 71
  store ptr %937, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  store i32 0, ptr %24, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  store i32 0, ptr %25, align 4, !tbaa !5
  br label %938

938:                                              ; preds = %934
  br label %939

939:                                              ; preds = %938
  br label %940

940:                                              ; preds = %939
  %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 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %944 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef null, i32 noundef 0, i32 noundef 500, ptr noundef %943, ptr noundef %24)
  %945 = icmp eq i32 %944, -1
  br i1 %945, label %999, label %946

946:                                              ; preds = %940
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %949 = call ptr @__errno_location() #12
  %950 = load i32, ptr %949, align 4, !tbaa !5
  store i32 %950, ptr %26, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @s2n_print_stacktrace(ptr noundef %951)
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc i8 %953 to i1
  br i1 %954, label %955, label %977

955:                                              ; preds = %948
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @fileno(ptr noundef %956) #11
  %958 = call i32 @isatty(i32 noundef %957) #11
  %959 = icmp ne i32 %958, 0
  br i1 %959, label %960, label %977

960:                                              ; preds = %955
  %961 = load i32, ptr %26, align 4, !tbaa !5
  %962 = call ptr @__errno_location() #12
  store i32 %961, ptr %962, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror(i32 noundef %966, ptr noundef @.str.4)
  %968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef @.str.4)
  %971 = call ptr @__errno_location() #12
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @strerror(i32 noundef %972) #11
  %974 = call ptr @__errno_location() #12
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef @.str.2, i32 noundef %964, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 159, ptr noundef %967, ptr noundef %970, ptr noundef %973, i32 noundef %975) #11
  br label %994

977:                                              ; preds = %955, %948
  %978 = load i32, ptr %26, align 4, !tbaa !5
  %979 = call ptr @__errno_location() #12
  store i32 %978, ptr %979, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror(i32 noundef %983, ptr noundef @.str.4)
  %985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @s2n_strerror_debug(i32 noundef %986, ptr noundef @.str.4)
  %988 = call ptr @__errno_location() #12
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @strerror(i32 noundef %989) #11
  %991 = call ptr @__errno_location() #12
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %980, ptr noundef @.str.5, i32 noundef %981, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 159, ptr noundef %984, ptr noundef %987, ptr noundef %990, i32 noundef %992) #11
  br label %994

994:                                              ; preds = %977, %960
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %995

995:                                              ; preds = %994
  br label %996

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

997:                                              ; No predecessors!
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998, %940
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  br label %1002

1002:                                             ; preds = %1001
  %1003 = load i32, ptr @test_count, align 4, !tbaa !5
  %1004 = add nsw i32 %1003, 1
  store i32 %1004, ptr @test_count, align 4, !tbaa !5
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = icmp eq i32 %1006, 469762089
  br i1 %1007, label %1061, label %1008

1008:                                             ; preds = %1002
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %1011 = call ptr @__errno_location() #12
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  store i32 %1012, ptr %27, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @s2n_print_stacktrace(ptr noundef %1013)
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc i8 %1015 to i1
  br i1 %1016, label %1017, label %1039

1017:                                             ; preds = %1010
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @fileno(ptr noundef %1018) #11
  %1020 = call i32 @isatty(i32 noundef %1019) #11
  %1021 = icmp ne i32 %1020, 0
  br i1 %1021, label %1022, label %1039

1022:                                             ; preds = %1017
  %1023 = load i32, ptr %27, align 4, !tbaa !5
  %1024 = call ptr @__errno_location() #12
  store i32 %1023, ptr %1024, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror(i32 noundef %1028, ptr noundef @.str.4)
  %1030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef @.str.4)
  %1033 = call ptr @__errno_location() #12
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @strerror(i32 noundef %1034) #11
  %1036 = call ptr @__errno_location() #12
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1025, ptr noundef @.str.2, i32 noundef %1026, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 159, ptr noundef %1029, ptr noundef %1032, ptr noundef %1035, i32 noundef %1037) #11
  br label %1056

1039:                                             ; preds = %1017, %1010
  %1040 = load i32, ptr %27, align 4, !tbaa !5
  %1041 = call ptr @__errno_location() #12
  store i32 %1040, ptr %1041, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror(i32 noundef %1045, ptr noundef @.str.4)
  %1047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror_debug(i32 noundef %1048, ptr noundef @.str.4)
  %1050 = call ptr @__errno_location() #12
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @strerror(i32 noundef %1051) #11
  %1053 = call ptr @__errno_location() #12
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1042, ptr noundef @.str.5, i32 noundef %1043, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 159, ptr noundef %1046, ptr noundef %1049, ptr noundef %1052, i32 noundef %1054) #11
  br label %1056

1056:                                             ; preds = %1039, %1022
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

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

1059:                                             ; No predecessors!
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

1061:                                             ; preds = %1060, %1002
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

1063:                                             ; preds = %1062
  br label %1064

1064:                                             ; preds = %1063
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = add nsw i32 %1065, 1
  store i32 %1066, ptr @test_count, align 4, !tbaa !5
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef @.str.4)
  %1070 = icmp eq ptr %1069, null
  br i1 %1070, label %1071, label %1124

1071:                                             ; preds = %1064
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

1073:                                             ; preds = %1072
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %1074 = call ptr @__errno_location() #12
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  store i32 %1075, ptr %28, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = call i32 @s2n_print_stacktrace(ptr noundef %1076)
  %1078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1079 = trunc i8 %1078 to i1
  br i1 %1079, label %1080, label %1102

1080:                                             ; preds = %1073
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @fileno(ptr noundef %1081) #11
  %1083 = call i32 @isatty(i32 noundef %1082) #11
  %1084 = icmp ne i32 %1083, 0
  br i1 %1084, label %1085, label %1102

1085:                                             ; preds = %1080
  %1086 = load i32, ptr %28, align 4, !tbaa !5
  %1087 = call ptr @__errno_location() #12
  store i32 %1086, ptr %1087, align 4, !tbaa !5
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @s2n_strerror(i32 noundef %1091, ptr noundef @.str.4)
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef @.str.4)
  %1096 = call ptr @__errno_location() #12
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #11
  %1099 = call ptr @__errno_location() #12
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef @.str.2, i32 noundef %1089, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 159, ptr noundef %1092, ptr noundef %1095, ptr noundef %1098, i32 noundef %1100) #11
  br label %1119

1102:                                             ; preds = %1080, %1073
  %1103 = load i32, ptr %28, align 4, !tbaa !5
  %1104 = call ptr @__errno_location() #12
  store i32 %1103, ptr %1104, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef @.str.4)
  %1113 = call ptr @__errno_location() #12
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #11
  %1116 = call ptr @__errno_location() #12
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef @.str.5, i32 noundef %1106, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 159, ptr noundef %1109, ptr noundef %1112, ptr noundef %1115, i32 noundef %1117) #11
  br label %1119

1119:                                             ; preds = %1102, %1085
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1120

1120:                                             ; preds = %1119
  br label %1121

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

1122:                                             ; No predecessors!
  br label %1123

1123:                                             ; preds = %1122
  br label %1124

1124:                                             ; preds = %1123, %1064
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

1129:                                             ; preds = %1128
  %1130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1130, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1131 = call ptr @__errno_location() #12
  store i32 0, ptr %1131, align 4, !tbaa !5
  br label %1132

1132:                                             ; preds = %1129
  br label %1133

1133:                                             ; preds = %1132
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = add nsw i32 %1139, 1
  store i32 %1140, ptr @test_count, align 4, !tbaa !5
  %1141 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %1142 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef null, i32 noundef 0, i32 noundef 500, ptr noundef %1141, ptr noundef %24, ptr noundef %25)
  %1143 = icmp eq i32 %1142, -1
  br i1 %1143, label %1197, label %1144

1144:                                             ; preds = %1138
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

1146:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %1147 = call ptr @__errno_location() #12
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  store i32 %1148, ptr %29, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = call i32 @s2n_print_stacktrace(ptr noundef %1149)
  %1151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1152 = trunc i8 %1151 to i1
  br i1 %1152, label %1153, label %1175

1153:                                             ; preds = %1146
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @fileno(ptr noundef %1154) #11
  %1156 = call i32 @isatty(i32 noundef %1155) #11
  %1157 = icmp ne i32 %1156, 0
  br i1 %1157, label %1158, label %1175

1158:                                             ; preds = %1153
  %1159 = load i32, ptr %29, align 4, !tbaa !5
  %1160 = call ptr @__errno_location() #12
  store i32 %1159, ptr %1160, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror(i32 noundef %1164, ptr noundef @.str.4)
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef @.str.4)
  %1169 = call ptr @__errno_location() #12
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call ptr @strerror(i32 noundef %1170) #11
  %1172 = call ptr @__errno_location() #12
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1161, ptr noundef @.str.2, i32 noundef %1162, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1165, ptr noundef %1168, ptr noundef %1171, i32 noundef %1173) #11
  br label %1192

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

1192:                                             ; preds = %1175, %1158
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1193

1193:                                             ; preds = %1192
  br label %1194

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

1195:                                             ; No predecessors!
  br label %1196

1196:                                             ; preds = %1195
  br label %1197

1197:                                             ; preds = %1196, %1138
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

1199:                                             ; preds = %1198
  br label %1200

1200:                                             ; preds = %1199
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = icmp eq i32 %1204, 469762089
  br i1 %1205, label %1259, label %1206

1206:                                             ; preds = %1200
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

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

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

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

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

1254:                                             ; preds = %1237, %1220
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

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

1257:                                             ; No predecessors!
  br label %1258

1258:                                             ; preds = %1257
  br label %1259

1259:                                             ; preds = %1258, %1200
  br label %1260

1260:                                             ; preds = %1259
  br label %1261

1261:                                             ; preds = %1260
  br label %1262

1262:                                             ; preds = %1261
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = add nsw i32 %1263, 1
  store i32 %1264, ptr @test_count, align 4, !tbaa !5
  %1265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef @.str.4)
  %1268 = icmp eq ptr %1267, null
  br i1 %1268, label %1269, label %1322

1269:                                             ; preds = %1262
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %1272 = call ptr @__errno_location() #12
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  store i32 %1273, ptr %31, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = call i32 @s2n_print_stacktrace(ptr noundef %1274)
  %1276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1277 = trunc i8 %1276 to i1
  br i1 %1277, label %1278, label %1300

1278:                                             ; preds = %1271
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @fileno(ptr noundef %1279) #11
  %1281 = call i32 @isatty(i32 noundef %1280) #11
  %1282 = icmp ne i32 %1281, 0
  br i1 %1282, label %1283, label %1300

1283:                                             ; preds = %1278
  %1284 = load i32, ptr %31, align 4, !tbaa !5
  %1285 = call ptr @__errno_location() #12
  store i32 %1284, ptr %1285, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror(i32 noundef %1289, ptr noundef @.str.4)
  %1291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror_debug(i32 noundef %1292, ptr noundef @.str.4)
  %1294 = call ptr @__errno_location() #12
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @strerror(i32 noundef %1295) #11
  %1297 = call ptr @__errno_location() #12
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef @.str.2, i32 noundef %1287, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1290, ptr noundef %1293, ptr noundef %1296, i32 noundef %1298) #11
  br label %1317

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

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

1318:                                             ; preds = %1317
  br label %1319

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

1320:                                             ; No predecessors!
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321, %1262
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  %1328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1328, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1329 = call ptr @__errno_location() #12
  store i32 0, ptr %1329, align 4, !tbaa !5
  br label %1330

1330:                                             ; preds = %1327
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = add nsw i32 %1337, 1
  store i32 %1338, ptr @test_count, align 4, !tbaa !5
  %1339 = load ptr, ptr %23, align 8, !tbaa !9
  %1340 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %1339, i32 noundef 0, i32 noundef 500, ptr noundef null, ptr noundef %24)
  %1341 = icmp eq i32 %1340, -1
  br i1 %1341, label %1395, label %1342

1342:                                             ; preds = %1336
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

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

1351:                                             ; preds = %1344
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @fileno(ptr noundef %1352) #11
  %1354 = call i32 @isatty(i32 noundef %1353) #11
  %1355 = icmp ne i32 %1354, 0
  br i1 %1355, label %1356, label %1373

1356:                                             ; preds = %1351
  %1357 = load i32, ptr %32, align 4, !tbaa !5
  %1358 = call ptr @__errno_location() #12
  store i32 %1357, ptr %1358, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror(i32 noundef %1362, ptr noundef @.str.4)
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror_debug(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call ptr @__errno_location() #12
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #11
  %1370 = call ptr @__errno_location() #12
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1359, ptr noundef @.str.2, i32 noundef %1360, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 169, ptr noundef %1363, ptr noundef %1366, ptr noundef %1369, i32 noundef %1371) #11
  br label %1390

1373:                                             ; preds = %1351, %1344
  %1374 = load i32, ptr %32, align 4, !tbaa !5
  %1375 = call ptr @__errno_location() #12
  store i32 %1374, ptr %1375, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror(i32 noundef %1379, ptr noundef @.str.4)
  %1381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror_debug(i32 noundef %1382, ptr noundef @.str.4)
  %1384 = call ptr @__errno_location() #12
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @strerror(i32 noundef %1385) #11
  %1387 = call ptr @__errno_location() #12
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1376, ptr noundef @.str.5, i32 noundef %1377, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 169, ptr noundef %1380, ptr noundef %1383, ptr noundef %1386, i32 noundef %1388) #11
  br label %1390

1390:                                             ; preds = %1373, %1356
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

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

1393:                                             ; No predecessors!
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394, %1336
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = add nsw i32 %1399, 1
  store i32 %1400, ptr @test_count, align 4, !tbaa !5
  %1401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = icmp eq i32 %1402, 469762089
  br i1 %1403, label %1457, label %1404

1404:                                             ; preds = %1398
  br label %1405

1405:                                             ; preds = %1404
  br label %1406

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

1413:                                             ; preds = %1406
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1415 = call i32 @fileno(ptr noundef %1414) #11
  %1416 = call i32 @isatty(i32 noundef %1415) #11
  %1417 = icmp ne i32 %1416, 0
  br i1 %1417, label %1418, label %1435

1418:                                             ; preds = %1413
  %1419 = load i32, ptr %33, align 4, !tbaa !5
  %1420 = call ptr @__errno_location() #12
  store i32 %1419, ptr %1420, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call ptr @__errno_location() #12
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #11
  %1432 = call ptr @__errno_location() #12
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1421, ptr noundef @.str.2, i32 noundef %1422, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 169, ptr noundef %1425, ptr noundef %1428, ptr noundef %1431, i32 noundef %1433) #11
  br label %1452

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

1452:                                             ; preds = %1435, %1418
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

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

1455:                                             ; No predecessors!
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456, %1398
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = add nsw i32 %1461, 1
  store i32 %1462, ptr @test_count, align 4, !tbaa !5
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror_debug(i32 noundef %1464, ptr noundef @.str.4)
  %1466 = icmp eq ptr %1465, null
  br i1 %1466, label %1467, label %1520

1467:                                             ; preds = %1460
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

1469:                                             ; preds = %1468
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1470 = call ptr @__errno_location() #12
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  store i32 %1471, ptr %34, align 4, !tbaa !5
  %1472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1473 = call i32 @s2n_print_stacktrace(ptr noundef %1472)
  %1474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1475 = trunc i8 %1474 to i1
  br i1 %1475, label %1476, label %1498

1476:                                             ; preds = %1469
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @fileno(ptr noundef %1477) #11
  %1479 = call i32 @isatty(i32 noundef %1478) #11
  %1480 = icmp ne i32 %1479, 0
  br i1 %1480, label %1481, label %1498

1481:                                             ; preds = %1476
  %1482 = load i32, ptr %34, align 4, !tbaa !5
  %1483 = call ptr @__errno_location() #12
  store i32 %1482, ptr %1483, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror(i32 noundef %1487, ptr noundef @.str.4)
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef @.str.4)
  %1492 = call ptr @__errno_location() #12
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @strerror(i32 noundef %1493) #11
  %1495 = call ptr @__errno_location() #12
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1484, ptr noundef @.str.2, i32 noundef %1485, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 169, ptr noundef %1488, ptr noundef %1491, ptr noundef %1494, i32 noundef %1496) #11
  br label %1515

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

1515:                                             ; preds = %1498, %1481
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

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

1518:                                             ; No predecessors!
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519, %1460
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524
  %1526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1526, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1527 = call ptr @__errno_location() #12
  store i32 0, ptr %1527, align 4, !tbaa !5
  br label %1528

1528:                                             ; preds = %1525
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

1532:                                             ; preds = %1531
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

1534:                                             ; preds = %1533
  %1535 = load i32, ptr @test_count, align 4, !tbaa !5
  %1536 = add nsw i32 %1535, 1
  store i32 %1536, ptr @test_count, align 4, !tbaa !5
  %1537 = load ptr, ptr %23, align 8, !tbaa !9
  %1538 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %1537, i32 noundef 0, i32 noundef 500, ptr noundef null, ptr noundef %24, ptr noundef %25)
  %1539 = icmp eq i32 %1538, -1
  br i1 %1539, label %1593, label %1540

1540:                                             ; preds = %1534
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1543 = call ptr @__errno_location() #12
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  store i32 %1544, ptr %35, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = call i32 @s2n_print_stacktrace(ptr noundef %1545)
  %1547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1548 = trunc i8 %1547 to i1
  br i1 %1548, label %1549, label %1571

1549:                                             ; preds = %1542
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = call i32 @fileno(ptr noundef %1550) #11
  %1552 = call i32 @isatty(i32 noundef %1551) #11
  %1553 = icmp ne i32 %1552, 0
  br i1 %1553, label %1554, label %1571

1554:                                             ; preds = %1549
  %1555 = load i32, ptr %35, align 4, !tbaa !5
  %1556 = call ptr @__errno_location() #12
  store i32 %1555, ptr %1556, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call ptr @s2n_strerror(i32 noundef %1560, ptr noundef @.str.4)
  %1562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  %1564 = call ptr @s2n_strerror_debug(i32 noundef %1563, ptr noundef @.str.4)
  %1565 = call ptr @__errno_location() #12
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call ptr @strerror(i32 noundef %1566) #11
  %1568 = call ptr @__errno_location() #12
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef @.str.2, i32 noundef %1558, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1561, ptr noundef %1564, ptr noundef %1567, i32 noundef %1569) #11
  br label %1588

1571:                                             ; preds = %1549, %1542
  %1572 = load i32, ptr %35, align 4, !tbaa !5
  %1573 = call ptr @__errno_location() #12
  store i32 %1572, ptr %1573, align 4, !tbaa !5
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror(i32 noundef %1577, ptr noundef @.str.4)
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef @.str.4)
  %1582 = call ptr @__errno_location() #12
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #11
  %1585 = call ptr @__errno_location() #12
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1574, ptr noundef @.str.5, i32 noundef %1575, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1578, ptr noundef %1581, ptr noundef %1584, i32 noundef %1586) #11
  br label %1588

1588:                                             ; preds = %1571, %1554
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1589

1589:                                             ; preds = %1588
  br label %1590

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

1591:                                             ; No predecessors!
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

1593:                                             ; preds = %1592, %1534
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

1596:                                             ; preds = %1595
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr @test_count, align 4, !tbaa !5
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = icmp eq i32 %1600, 469762089
  br i1 %1601, label %1655, label %1602

1602:                                             ; preds = %1596
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1605 = call ptr @__errno_location() #12
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  store i32 %1606, ptr %36, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = call i32 @s2n_print_stacktrace(ptr noundef %1607)
  %1609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1610 = trunc i8 %1609 to i1
  br i1 %1610, label %1611, label %1633

1611:                                             ; preds = %1604
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @fileno(ptr noundef %1612) #11
  %1614 = call i32 @isatty(i32 noundef %1613) #11
  %1615 = icmp ne i32 %1614, 0
  br i1 %1615, label %1616, label %1633

1616:                                             ; preds = %1611
  %1617 = load i32, ptr %36, align 4, !tbaa !5
  %1618 = call ptr @__errno_location() #12
  store i32 %1617, ptr %1618, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef @.str.4)
  %1627 = call ptr @__errno_location() #12
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @strerror(i32 noundef %1628) #11
  %1630 = call ptr @__errno_location() #12
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef @.str.2, i32 noundef %1620, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1623, ptr noundef %1626, ptr noundef %1629, i32 noundef %1631) #11
  br label %1650

1633:                                             ; preds = %1611, %1604
  %1634 = load i32, ptr %36, align 4, !tbaa !5
  %1635 = call ptr @__errno_location() #12
  store i32 %1634, ptr %1635, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call ptr @__errno_location() #12
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #11
  %1647 = call ptr @__errno_location() #12
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef @.str.5, i32 noundef %1637, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1640, ptr noundef %1643, ptr noundef %1646, i32 noundef %1648) #11
  br label %1650

1650:                                             ; preds = %1633, %1616
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

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

1653:                                             ; No predecessors!
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654, %1596
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1657
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = add nsw i32 %1659, 1
  store i32 %1660, ptr @test_count, align 4, !tbaa !5
  %1661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror_debug(i32 noundef %1662, ptr noundef @.str.4)
  %1664 = icmp eq ptr %1663, null
  br i1 %1664, label %1665, label %1718

1665:                                             ; preds = %1658
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1668 = call ptr @__errno_location() #12
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  store i32 %1669, ptr %37, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = call i32 @s2n_print_stacktrace(ptr noundef %1670)
  %1672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1673 = trunc i8 %1672 to i1
  br i1 %1673, label %1674, label %1696

1674:                                             ; preds = %1667
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @fileno(ptr noundef %1675) #11
  %1677 = call i32 @isatty(i32 noundef %1676) #11
  %1678 = icmp ne i32 %1677, 0
  br i1 %1678, label %1679, label %1696

1679:                                             ; preds = %1674
  %1680 = load i32, ptr %37, align 4, !tbaa !5
  %1681 = call ptr @__errno_location() #12
  store i32 %1680, ptr %1681, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = load i32, ptr @test_count, align 4, !tbaa !5
  %1684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror(i32 noundef %1685, ptr noundef @.str.4)
  %1687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  %1689 = call ptr @s2n_strerror_debug(i32 noundef %1688, ptr noundef @.str.4)
  %1690 = call ptr @__errno_location() #12
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @strerror(i32 noundef %1691) #11
  %1693 = call ptr @__errno_location() #12
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1682, ptr noundef @.str.2, i32 noundef %1683, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1686, ptr noundef %1689, ptr noundef %1692, i32 noundef %1694) #11
  br label %1713

1696:                                             ; preds = %1674, %1667
  %1697 = load i32, ptr %37, align 4, !tbaa !5
  %1698 = call ptr @__errno_location() #12
  store i32 %1697, ptr %1698, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef @.str.4)
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef @.str.4)
  %1707 = call ptr @__errno_location() #12
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #11
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1699, ptr noundef @.str.5, i32 noundef %1700, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1703, ptr noundef %1706, ptr noundef %1709, i32 noundef %1711) #11
  br label %1713

1713:                                             ; preds = %1696, %1679
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; No predecessors!
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717, %1658
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722
  %1724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1724, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1725 = call ptr @__errno_location() #12
  store i32 0, ptr %1725, align 4, !tbaa !5
  br label %1726

1726:                                             ; preds = %1723
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

1732:                                             ; preds = %1731
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = add nsw i32 %1733, 1
  store i32 %1734, ptr @test_count, align 4, !tbaa !5
  %1735 = load ptr, ptr %23, align 8, !tbaa !9
  %1736 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %1735, i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef %24)
  %1737 = icmp eq i32 %1736, -1
  br i1 %1737, label %1791, label %1738

1738:                                             ; preds = %1732
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

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

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

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

1769:                                             ; preds = %1747, %1740
  %1770 = load i32, ptr %38, align 4, !tbaa !5
  %1771 = call ptr @__errno_location() #12
  store i32 %1770, ptr %1771, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror(i32 noundef %1775, ptr noundef @.str.4)
  %1777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @s2n_strerror_debug(i32 noundef %1778, ptr noundef @.str.4)
  %1780 = call ptr @__errno_location() #12
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @strerror(i32 noundef %1781) #11
  %1783 = call ptr @__errno_location() #12
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1772, ptr noundef @.str.5, i32 noundef %1773, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 177, ptr noundef %1776, ptr noundef %1779, ptr noundef %1782, i32 noundef %1784) #11
  br label %1786

1786:                                             ; preds = %1769, %1752
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

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

1789:                                             ; No predecessors!
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790, %1732
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  %1795 = load i32, ptr @test_count, align 4, !tbaa !5
  %1796 = add nsw i32 %1795, 1
  store i32 %1796, ptr @test_count, align 4, !tbaa !5
  %1797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = icmp eq i32 %1798, 469762120
  br i1 %1799, label %1853, label %1800

1800:                                             ; preds = %1794
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

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

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

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

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

1848:                                             ; preds = %1831, %1814
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

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

1851:                                             ; No predecessors!
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852, %1794
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  %1857 = load i32, ptr @test_count, align 4, !tbaa !5
  %1858 = add nsw i32 %1857, 1
  store i32 %1858, ptr @test_count, align 4, !tbaa !5
  %1859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @s2n_strerror_debug(i32 noundef %1860, ptr noundef @.str.4)
  %1862 = icmp eq ptr %1861, null
  br i1 %1862, label %1863, label %1916

1863:                                             ; preds = %1856
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1866 = call ptr @__errno_location() #12
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  store i32 %1867, ptr %40, 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 %40, 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.20, ptr noundef @.str.1, i32 noundef 177, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #11
  br label %1911

1894:                                             ; preds = %1872, %1865
  %1895 = load i32, ptr %40, 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.20, ptr noundef @.str.1, i32 noundef 177, 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 %40) #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, %1856
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  br label %1921

1921:                                             ; preds = %1920
  %1922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1922, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1923 = call ptr @__errno_location() #12
  store i32 0, ptr %1923, align 4, !tbaa !5
  br label %1924

1924:                                             ; preds = %1921
  br label %1925

1925:                                             ; preds = %1924
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = add nsw i32 %1931, 1
  store i32 %1932, ptr @test_count, align 4, !tbaa !5
  %1933 = load ptr, ptr %23, align 8, !tbaa !9
  %1934 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %1933, i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef %24, ptr noundef %25)
  %1935 = icmp eq i32 %1934, -1
  br i1 %1935, label %1989, label %1936

1936:                                             ; preds = %1930
  br label %1937

1937:                                             ; preds = %1936
  br label %1938

1938:                                             ; preds = %1937
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1939 = call ptr @__errno_location() #12
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  store i32 %1940, ptr %41, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = call i32 @s2n_print_stacktrace(ptr noundef %1941)
  %1943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1944 = trunc i8 %1943 to i1
  br i1 %1944, label %1945, label %1967

1945:                                             ; preds = %1938
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = call i32 @fileno(ptr noundef %1946) #11
  %1948 = call i32 @isatty(i32 noundef %1947) #11
  %1949 = icmp ne i32 %1948, 0
  br i1 %1949, label %1950, label %1967

1950:                                             ; preds = %1945
  %1951 = load i32, ptr %41, align 4, !tbaa !5
  %1952 = call ptr @__errno_location() #12
  store i32 %1951, ptr %1952, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror(i32 noundef %1956, ptr noundef @.str.4)
  %1958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror_debug(i32 noundef %1959, ptr noundef @.str.4)
  %1961 = call ptr @__errno_location() #12
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @strerror(i32 noundef %1962) #11
  %1964 = call ptr @__errno_location() #12
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1953, ptr noundef @.str.2, i32 noundef %1954, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 181, ptr noundef %1957, ptr noundef %1960, ptr noundef %1963, i32 noundef %1965) #11
  br label %1984

1967:                                             ; preds = %1945, %1938
  %1968 = load i32, ptr %41, align 4, !tbaa !5
  %1969 = call ptr @__errno_location() #12
  store i32 %1968, ptr %1969, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1973 = load i32, ptr %1972, align 4, !tbaa !5
  %1974 = call ptr @s2n_strerror(i32 noundef %1973, ptr noundef @.str.4)
  %1975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror_debug(i32 noundef %1976, ptr noundef @.str.4)
  %1978 = call ptr @__errno_location() #12
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @strerror(i32 noundef %1979) #11
  %1981 = call ptr @__errno_location() #12
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1970, ptr noundef @.str.5, i32 noundef %1971, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 181, ptr noundef %1974, ptr noundef %1977, ptr noundef %1980, i32 noundef %1982) #11
  br label %1984

1984:                                             ; preds = %1967, %1950
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

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

1987:                                             ; No predecessors!
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

1989:                                             ; preds = %1988, %1930
  br label %1990

1990:                                             ; preds = %1989
  br label %1991

1991:                                             ; preds = %1990
  br label %1992

1992:                                             ; preds = %1991
  %1993 = load i32, ptr @test_count, align 4, !tbaa !5
  %1994 = add nsw i32 %1993, 1
  store i32 %1994, ptr @test_count, align 4, !tbaa !5
  %1995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = icmp eq i32 %1996, 469762120
  br i1 %1997, label %2051, label %1998

1998:                                             ; preds = %1992
  br label %1999

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %2001 = call ptr @__errno_location() #12
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  store i32 %2002, ptr %42, align 4, !tbaa !5
  %2003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2004 = call i32 @s2n_print_stacktrace(ptr noundef %2003)
  %2005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2006 = trunc i8 %2005 to i1
  br i1 %2006, label %2007, label %2029

2007:                                             ; preds = %2000
  %2008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2009 = call i32 @fileno(ptr noundef %2008) #11
  %2010 = call i32 @isatty(i32 noundef %2009) #11
  %2011 = icmp ne i32 %2010, 0
  br i1 %2011, label %2012, label %2029

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

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

2046:                                             ; preds = %2029, %2012
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

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

2049:                                             ; No predecessors!
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

2051:                                             ; preds = %2050, %1992
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

2054:                                             ; preds = %2053
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %2056 = add nsw i32 %2055, 1
  store i32 %2056, ptr @test_count, align 4, !tbaa !5
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.4)
  %2060 = icmp eq ptr %2059, null
  br i1 %2060, label %2061, label %2114

2061:                                             ; preds = %2054
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %2064 = call ptr @__errno_location() #12
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  store i32 %2065, ptr %43, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = call i32 @s2n_print_stacktrace(ptr noundef %2066)
  %2068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2069 = trunc i8 %2068 to i1
  br i1 %2069, label %2070, label %2092

2070:                                             ; preds = %2063
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = call i32 @fileno(ptr noundef %2071) #11
  %2073 = call i32 @isatty(i32 noundef %2072) #11
  %2074 = icmp ne i32 %2073, 0
  br i1 %2074, label %2075, label %2092

2075:                                             ; preds = %2070
  %2076 = load i32, ptr %43, align 4, !tbaa !5
  %2077 = call ptr @__errno_location() #12
  store i32 %2076, ptr %2077, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror(i32 noundef %2081, ptr noundef @.str.4)
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef @.str.4)
  %2086 = call ptr @__errno_location() #12
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @strerror(i32 noundef %2087) #11
  %2089 = call ptr @__errno_location() #12
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2078, ptr noundef @.str.2, i32 noundef %2079, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2082, ptr noundef %2085, ptr noundef %2088, i32 noundef %2090) #11
  br label %2109

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

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

2110:                                             ; preds = %2109
  br label %2111

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

2112:                                             ; No predecessors!
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113, %2054
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

2119:                                             ; preds = %2118
  %2120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2120, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2121 = call ptr @__errno_location() #12
  store i32 0, ptr %2121, align 4, !tbaa !5
  br label %2122

2122:                                             ; preds = %2119
  br label %2123

2123:                                             ; preds = %2122
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = add nsw i32 %2129, 1
  store i32 %2130, ptr @test_count, align 4, !tbaa !5
  %2131 = load ptr, ptr %23, align 8, !tbaa !9
  %2132 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %2133 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %2131, i32 noundef 0, i32 noundef 500, ptr noundef %2132, ptr noundef null)
  %2134 = icmp eq i32 %2133, -1
  br i1 %2134, label %2188, label %2135

2135:                                             ; preds = %2128
  br label %2136

2136:                                             ; preds = %2135
  br label %2137

2137:                                             ; preds = %2136
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %2138 = call ptr @__errno_location() #12
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  store i32 %2139, ptr %44, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @s2n_print_stacktrace(ptr noundef %2140)
  %2142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2143 = trunc i8 %2142 to i1
  br i1 %2143, label %2144, label %2166

2144:                                             ; preds = %2137
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @fileno(ptr noundef %2145) #11
  %2147 = call i32 @isatty(i32 noundef %2146) #11
  %2148 = icmp ne i32 %2147, 0
  br i1 %2148, label %2149, label %2166

2149:                                             ; preds = %2144
  %2150 = load i32, ptr %44, align 4, !tbaa !5
  %2151 = call ptr @__errno_location() #12
  store i32 %2150, ptr %2151, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror(i32 noundef %2155, ptr noundef @.str.4)
  %2157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror_debug(i32 noundef %2158, ptr noundef @.str.4)
  %2160 = call ptr @__errno_location() #12
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @strerror(i32 noundef %2161) #11
  %2163 = call ptr @__errno_location() #12
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef @.str.2, i32 noundef %2153, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2156, ptr noundef %2159, ptr noundef %2162, i32 noundef %2164) #11
  br label %2183

2166:                                             ; preds = %2144, %2137
  %2167 = load i32, ptr %44, align 4, !tbaa !5
  %2168 = call ptr @__errno_location() #12
  store i32 %2167, ptr %2168, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror(i32 noundef %2172, ptr noundef @.str.4)
  %2174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror_debug(i32 noundef %2175, ptr noundef @.str.4)
  %2177 = call ptr @__errno_location() #12
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @strerror(i32 noundef %2178) #11
  %2180 = call ptr @__errno_location() #12
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2169, ptr noundef @.str.5, i32 noundef %2170, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2173, ptr noundef %2176, ptr noundef %2179, i32 noundef %2181) #11
  br label %2183

2183:                                             ; preds = %2166, %2149
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

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

2186:                                             ; No predecessors!
  br label %2187

2187:                                             ; preds = %2186
  br label %2188

2188:                                             ; preds = %2187, %2128
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

2190:                                             ; preds = %2189
  br label %2191

2191:                                             ; preds = %2190
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = add nsw i32 %2192, 1
  store i32 %2193, ptr @test_count, align 4, !tbaa !5
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = icmp eq i32 %2195, 469762089
  br i1 %2196, label %2250, label %2197

2197:                                             ; preds = %2191
  br label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %2200 = call ptr @__errno_location() #12
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  store i32 %2201, ptr %45, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = call i32 @s2n_print_stacktrace(ptr noundef %2202)
  %2204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2205 = trunc i8 %2204 to i1
  br i1 %2205, label %2206, label %2228

2206:                                             ; preds = %2199
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = call i32 @fileno(ptr noundef %2207) #11
  %2209 = call i32 @isatty(i32 noundef %2208) #11
  %2210 = icmp ne i32 %2209, 0
  br i1 %2210, label %2211, label %2228

2211:                                             ; preds = %2206
  %2212 = load i32, ptr %45, align 4, !tbaa !5
  %2213 = call ptr @__errno_location() #12
  store i32 %2212, ptr %2213, align 4, !tbaa !5
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = load i32, ptr @test_count, align 4, !tbaa !5
  %2216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror(i32 noundef %2217, ptr noundef @.str.4)
  %2219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror_debug(i32 noundef %2220, ptr noundef @.str.4)
  %2222 = call ptr @__errno_location() #12
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @strerror(i32 noundef %2223) #11
  %2225 = call ptr @__errno_location() #12
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2214, ptr noundef @.str.2, i32 noundef %2215, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2218, ptr noundef %2221, ptr noundef %2224, i32 noundef %2226) #11
  br label %2245

2228:                                             ; preds = %2206, %2199
  %2229 = load i32, ptr %45, align 4, !tbaa !5
  %2230 = call ptr @__errno_location() #12
  store i32 %2229, ptr %2230, align 4, !tbaa !5
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = load i32, ptr @test_count, align 4, !tbaa !5
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror(i32 noundef %2234, ptr noundef @.str.4)
  %2236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror_debug(i32 noundef %2237, ptr noundef @.str.4)
  %2239 = call ptr @__errno_location() #12
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @strerror(i32 noundef %2240) #11
  %2242 = call ptr @__errno_location() #12
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2231, ptr noundef @.str.5, i32 noundef %2232, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2235, ptr noundef %2238, ptr noundef %2241, i32 noundef %2243) #11
  br label %2245

2245:                                             ; preds = %2228, %2211
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

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

2248:                                             ; No predecessors!
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

2250:                                             ; preds = %2249, %2191
  br label %2251

2251:                                             ; preds = %2250
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  %2254 = load i32, ptr @test_count, align 4, !tbaa !5
  %2255 = add nsw i32 %2254, 1
  store i32 %2255, ptr @test_count, align 4, !tbaa !5
  %2256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call ptr @s2n_strerror_debug(i32 noundef %2257, ptr noundef @.str.4)
  %2259 = icmp eq ptr %2258, null
  br i1 %2259, label %2260, label %2313

2260:                                             ; preds = %2253
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %2263 = call ptr @__errno_location() #12
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  store i32 %2264, ptr %46, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @s2n_print_stacktrace(ptr noundef %2265)
  %2267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2268 = trunc i8 %2267 to i1
  br i1 %2268, label %2269, label %2291

2269:                                             ; preds = %2262
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = call i32 @fileno(ptr noundef %2270) #11
  %2272 = call i32 @isatty(i32 noundef %2271) #11
  %2273 = icmp ne i32 %2272, 0
  br i1 %2273, label %2274, label %2291

2274:                                             ; preds = %2269
  %2275 = load i32, ptr %46, align 4, !tbaa !5
  %2276 = call ptr @__errno_location() #12
  store i32 %2275, ptr %2276, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef @.str.4)
  %2282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror_debug(i32 noundef %2283, ptr noundef @.str.4)
  %2285 = call ptr @__errno_location() #12
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @strerror(i32 noundef %2286) #11
  %2288 = call ptr @__errno_location() #12
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2277, ptr noundef @.str.2, i32 noundef %2278, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2281, ptr noundef %2284, ptr noundef %2287, i32 noundef %2289) #11
  br label %2308

2291:                                             ; preds = %2269, %2262
  %2292 = load i32, ptr %46, align 4, !tbaa !5
  %2293 = call ptr @__errno_location() #12
  store i32 %2292, ptr %2293, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef @.str.4)
  %2299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror_debug(i32 noundef %2300, ptr noundef @.str.4)
  %2302 = call ptr @__errno_location() #12
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @strerror(i32 noundef %2303) #11
  %2305 = call ptr @__errno_location() #12
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2294, ptr noundef @.str.5, i32 noundef %2295, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2298, ptr noundef %2301, ptr noundef %2304, i32 noundef %2306) #11
  br label %2308

2308:                                             ; preds = %2291, %2274
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

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

2311:                                             ; No predecessors!
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

2313:                                             ; preds = %2312, %2253
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

2318:                                             ; preds = %2317
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2319, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2320 = call ptr @__errno_location() #12
  store i32 0, ptr %2320, align 4, !tbaa !5
  br label %2321

2321:                                             ; preds = %2318
  br label %2322

2322:                                             ; preds = %2321
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

2326:                                             ; preds = %2325
  br label %2327

2327:                                             ; preds = %2326
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = add nsw i32 %2328, 1
  store i32 %2329, ptr @test_count, align 4, !tbaa !5
  %2330 = load ptr, ptr %23, align 8, !tbaa !9
  %2331 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %2332 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %2330, i32 noundef 0, i32 noundef 500, ptr noundef %2331, ptr noundef null, ptr noundef %25)
  %2333 = icmp eq i32 %2332, -1
  br i1 %2333, label %2387, label %2334

2334:                                             ; preds = %2327
  br label %2335

2335:                                             ; preds = %2334
  br label %2336

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

2343:                                             ; preds = %2336
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = call i32 @fileno(ptr noundef %2344) #11
  %2346 = call i32 @isatty(i32 noundef %2345) #11
  %2347 = icmp ne i32 %2346, 0
  br i1 %2347, label %2348, label %2365

2348:                                             ; preds = %2343
  %2349 = load i32, ptr %47, align 4, !tbaa !5
  %2350 = call ptr @__errno_location() #12
  store i32 %2349, ptr %2350, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror(i32 noundef %2354, ptr noundef @.str.4)
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror_debug(i32 noundef %2357, ptr noundef @.str.4)
  %2359 = call ptr @__errno_location() #12
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @strerror(i32 noundef %2360) #11
  %2362 = call ptr @__errno_location() #12
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2351, ptr noundef @.str.2, i32 noundef %2352, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 191, ptr noundef %2355, ptr noundef %2358, ptr noundef %2361, i32 noundef %2363) #11
  br label %2382

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

2382:                                             ; preds = %2365, %2348
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

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

2385:                                             ; No predecessors!
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

2387:                                             ; preds = %2386, %2327
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

2390:                                             ; preds = %2389
  %2391 = load i32, ptr @test_count, align 4, !tbaa !5
  %2392 = add nsw i32 %2391, 1
  store i32 %2392, ptr @test_count, align 4, !tbaa !5
  %2393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = icmp eq i32 %2394, 469762089
  br i1 %2395, label %2449, label %2396

2396:                                             ; preds = %2390
  br label %2397

2397:                                             ; preds = %2396
  br label %2398

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

2405:                                             ; preds = %2398
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = call i32 @fileno(ptr noundef %2406) #11
  %2408 = call i32 @isatty(i32 noundef %2407) #11
  %2409 = icmp ne i32 %2408, 0
  br i1 %2409, label %2410, label %2427

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

2427:                                             ; preds = %2405, %2398
  %2428 = load i32, ptr %48, align 4, !tbaa !5
  %2429 = call ptr @__errno_location() #12
  store i32 %2428, ptr %2429, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror(i32 noundef %2433, ptr noundef @.str.4)
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror_debug(i32 noundef %2436, ptr noundef @.str.4)
  %2438 = call ptr @__errno_location() #12
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @strerror(i32 noundef %2439) #11
  %2441 = call ptr @__errno_location() #12
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2430, ptr noundef @.str.5, i32 noundef %2431, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 191, ptr noundef %2434, ptr noundef %2437, ptr noundef %2440, i32 noundef %2442) #11
  br label %2444

2444:                                             ; preds = %2427, %2410
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

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

2447:                                             ; No predecessors!
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

2449:                                             ; preds = %2448, %2390
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450
  br label %2452

2452:                                             ; preds = %2451
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = add nsw i32 %2453, 1
  store i32 %2454, ptr @test_count, align 4, !tbaa !5
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef @.str.4)
  %2458 = icmp eq ptr %2457, null
  br i1 %2458, label %2459, label %2512

2459:                                             ; preds = %2452
  br label %2460

2460:                                             ; preds = %2459
  br label %2461

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

2468:                                             ; preds = %2461
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = call i32 @fileno(ptr noundef %2469) #11
  %2471 = call i32 @isatty(i32 noundef %2470) #11
  %2472 = icmp ne i32 %2471, 0
  br i1 %2472, label %2473, label %2490

2473:                                             ; preds = %2468
  %2474 = load i32, ptr %49, align 4, !tbaa !5
  %2475 = call ptr @__errno_location() #12
  store i32 %2474, ptr %2475, align 4, !tbaa !5
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = load i32, ptr @test_count, align 4, !tbaa !5
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef @.str.4)
  %2481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror_debug(i32 noundef %2482, ptr noundef @.str.4)
  %2484 = call ptr @__errno_location() #12
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @strerror(i32 noundef %2485) #11
  %2487 = call ptr @__errno_location() #12
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2476, ptr noundef @.str.2, i32 noundef %2477, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 191, ptr noundef %2480, ptr noundef %2483, ptr noundef %2486, i32 noundef %2488) #11
  br label %2507

2490:                                             ; preds = %2468, %2461
  %2491 = load i32, ptr %49, align 4, !tbaa !5
  %2492 = call ptr @__errno_location() #12
  store i32 %2491, ptr %2492, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = load i32, ptr @test_count, align 4, !tbaa !5
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror(i32 noundef %2496, ptr noundef @.str.4)
  %2498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror_debug(i32 noundef %2499, ptr noundef @.str.4)
  %2501 = call ptr @__errno_location() #12
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @strerror(i32 noundef %2502) #11
  %2504 = call ptr @__errno_location() #12
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2493, ptr noundef @.str.5, i32 noundef %2494, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 191, ptr noundef %2497, ptr noundef %2500, ptr noundef %2503, i32 noundef %2505) #11
  br label %2507

2507:                                             ; preds = %2490, %2473
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

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

2510:                                             ; No predecessors!
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511, %2452
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2518, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2519 = call ptr @__errno_location() #12
  store i32 0, ptr %2519, align 4, !tbaa !5
  br label %2520

2520:                                             ; preds = %2517
  br label %2521

2521:                                             ; preds = %2520
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

2524:                                             ; preds = %2523
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

2526:                                             ; preds = %2525
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = add nsw i32 %2527, 1
  store i32 %2528, ptr @test_count, align 4, !tbaa !5
  %2529 = load ptr, ptr %23, align 8, !tbaa !9
  %2530 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %2531 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %2529, i32 noundef 0, i32 noundef 500, ptr noundef %2530, ptr noundef %24, ptr noundef null)
  %2532 = icmp eq i32 %2531, -1
  br i1 %2532, label %2586, label %2533

2533:                                             ; preds = %2526
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2534
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %2536 = call ptr @__errno_location() #12
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  store i32 %2537, ptr %50, align 4, !tbaa !5
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = call i32 @s2n_print_stacktrace(ptr noundef %2538)
  %2540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2541 = trunc i8 %2540 to i1
  br i1 %2541, label %2542, label %2564

2542:                                             ; preds = %2535
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = call i32 @fileno(ptr noundef %2543) #11
  %2545 = call i32 @isatty(i32 noundef %2544) #11
  %2546 = icmp ne i32 %2545, 0
  br i1 %2546, label %2547, label %2564

2547:                                             ; preds = %2542
  %2548 = load i32, ptr %50, align 4, !tbaa !5
  %2549 = call ptr @__errno_location() #12
  store i32 %2548, ptr %2549, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = load i32, ptr @test_count, align 4, !tbaa !5
  %2552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call ptr @s2n_strerror(i32 noundef %2553, ptr noundef @.str.4)
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror_debug(i32 noundef %2556, ptr noundef @.str.4)
  %2558 = call ptr @__errno_location() #12
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @strerror(i32 noundef %2559) #11
  %2561 = call ptr @__errno_location() #12
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2550, ptr noundef @.str.2, i32 noundef %2551, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2554, ptr noundef %2557, ptr noundef %2560, i32 noundef %2562) #11
  br label %2581

2564:                                             ; preds = %2542, %2535
  %2565 = load i32, ptr %50, align 4, !tbaa !5
  %2566 = call ptr @__errno_location() #12
  store i32 %2565, ptr %2566, align 4, !tbaa !5
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = load i32, ptr @test_count, align 4, !tbaa !5
  %2569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror(i32 noundef %2570, ptr noundef @.str.4)
  %2572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror_debug(i32 noundef %2573, ptr noundef @.str.4)
  %2575 = call ptr @__errno_location() #12
  %2576 = load i32, ptr %2575, align 4, !tbaa !5
  %2577 = call ptr @strerror(i32 noundef %2576) #11
  %2578 = call ptr @__errno_location() #12
  %2579 = load i32, ptr %2578, align 4, !tbaa !5
  %2580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2567, ptr noundef @.str.5, i32 noundef %2568, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2571, ptr noundef %2574, ptr noundef %2577, i32 noundef %2579) #11
  br label %2581

2581:                                             ; preds = %2564, %2547
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2582

2582:                                             ; preds = %2581
  br label %2583

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

2584:                                             ; No predecessors!
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

2586:                                             ; preds = %2585, %2526
  br label %2587

2587:                                             ; preds = %2586
  br label %2588

2588:                                             ; preds = %2587
  br label %2589

2589:                                             ; preds = %2588
  %2590 = load i32, ptr @test_count, align 4, !tbaa !5
  %2591 = add nsw i32 %2590, 1
  store i32 %2591, ptr @test_count, align 4, !tbaa !5
  %2592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = icmp eq i32 %2593, 469762089
  br i1 %2594, label %2648, label %2595

2595:                                             ; preds = %2589
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

2597:                                             ; preds = %2596
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %2598 = call ptr @__errno_location() #12
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  store i32 %2599, ptr %51, align 4, !tbaa !5
  %2600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2601 = call i32 @s2n_print_stacktrace(ptr noundef %2600)
  %2602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2603 = trunc i8 %2602 to i1
  br i1 %2603, label %2604, label %2626

2604:                                             ; preds = %2597
  %2605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2606 = call i32 @fileno(ptr noundef %2605) #11
  %2607 = call i32 @isatty(i32 noundef %2606) #11
  %2608 = icmp ne i32 %2607, 0
  br i1 %2608, label %2609, label %2626

2609:                                             ; preds = %2604
  %2610 = load i32, ptr %51, align 4, !tbaa !5
  %2611 = call ptr @__errno_location() #12
  store i32 %2610, ptr %2611, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = load i32, ptr @test_count, align 4, !tbaa !5
  %2614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef @.str.4)
  %2617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror_debug(i32 noundef %2618, ptr noundef @.str.4)
  %2620 = call ptr @__errno_location() #12
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @strerror(i32 noundef %2621) #11
  %2623 = call ptr @__errno_location() #12
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2612, ptr noundef @.str.2, i32 noundef %2613, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2616, ptr noundef %2619, ptr noundef %2622, i32 noundef %2624) #11
  br label %2643

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

2643:                                             ; preds = %2626, %2609
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

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

2646:                                             ; No predecessors!
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647, %2589
  br label %2649

2649:                                             ; preds = %2648
  br label %2650

2650:                                             ; preds = %2649
  br label %2651

2651:                                             ; preds = %2650
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = add nsw i32 %2652, 1
  store i32 %2653, ptr @test_count, align 4, !tbaa !5
  %2654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2655 = load i32, ptr %2654, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror_debug(i32 noundef %2655, ptr noundef @.str.4)
  %2657 = icmp eq ptr %2656, null
  br i1 %2657, label %2658, label %2711

2658:                                             ; preds = %2651
  br label %2659

2659:                                             ; preds = %2658
  br label %2660

2660:                                             ; preds = %2659
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %2661 = call ptr @__errno_location() #12
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  store i32 %2662, ptr %52, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @s2n_print_stacktrace(ptr noundef %2663)
  %2665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2666 = trunc i8 %2665 to i1
  br i1 %2666, label %2667, label %2689

2667:                                             ; preds = %2660
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = call i32 @fileno(ptr noundef %2668) #11
  %2670 = call i32 @isatty(i32 noundef %2669) #11
  %2671 = icmp ne i32 %2670, 0
  br i1 %2671, label %2672, label %2689

2672:                                             ; preds = %2667
  %2673 = load i32, ptr %52, align 4, !tbaa !5
  %2674 = call ptr @__errno_location() #12
  store i32 %2673, ptr %2674, align 4, !tbaa !5
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror(i32 noundef %2678, ptr noundef @.str.4)
  %2680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror_debug(i32 noundef %2681, ptr noundef @.str.4)
  %2683 = call ptr @__errno_location() #12
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call ptr @strerror(i32 noundef %2684) #11
  %2686 = call ptr @__errno_location() #12
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2675, ptr noundef @.str.2, i32 noundef %2676, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2679, ptr noundef %2682, ptr noundef %2685, i32 noundef %2687) #11
  br label %2706

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

2706:                                             ; preds = %2689, %2672
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

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

2709:                                             ; No predecessors!
  br label %2710

2710:                                             ; preds = %2709
  br label %2711

2711:                                             ; preds = %2710, %2651
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712
  br label %2714

2714:                                             ; preds = %2713
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2717, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2718 = call ptr @__errno_location() #12
  store i32 0, ptr %2718, align 4, !tbaa !5
  br label %2719

2719:                                             ; preds = %2716
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

2725:                                             ; preds = %2724
  %2726 = load i32, ptr @test_count, align 4, !tbaa !5
  %2727 = add nsw i32 %2726, 1
  store i32 %2727, ptr @test_count, align 4, !tbaa !5
  %2728 = load ptr, ptr %23, align 8, !tbaa !9
  %2729 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %2730 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %2728, i32 noundef 1, i32 noundef 500, ptr noundef %2729, ptr noundef %24)
  %2731 = icmp eq i32 %2730, -1
  br i1 %2731, label %2785, label %2732

2732:                                             ; preds = %2725
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %2735 = call ptr @__errno_location() #12
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  store i32 %2736, ptr %53, align 4, !tbaa !5
  %2737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2738 = call i32 @s2n_print_stacktrace(ptr noundef %2737)
  %2739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2740 = trunc i8 %2739 to i1
  br i1 %2740, label %2741, label %2763

2741:                                             ; preds = %2734
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = call i32 @fileno(ptr noundef %2742) #11
  %2744 = call i32 @isatty(i32 noundef %2743) #11
  %2745 = icmp ne i32 %2744, 0
  br i1 %2745, label %2746, label %2763

2746:                                             ; preds = %2741
  %2747 = load i32, ptr %53, align 4, !tbaa !5
  %2748 = call ptr @__errno_location() #12
  store i32 %2747, ptr %2748, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call ptr @s2n_strerror(i32 noundef %2752, ptr noundef @.str.4)
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef @.str.4)
  %2757 = call ptr @__errno_location() #12
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #11
  %2760 = call ptr @__errno_location() #12
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2749, ptr noundef @.str.2, i32 noundef %2750, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2753, ptr noundef %2756, ptr noundef %2759, i32 noundef %2761) #11
  br label %2780

2763:                                             ; preds = %2741, %2734
  %2764 = load i32, ptr %53, align 4, !tbaa !5
  %2765 = call ptr @__errno_location() #12
  store i32 %2764, ptr %2765, align 4, !tbaa !5
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror(i32 noundef %2769, ptr noundef @.str.4)
  %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_debug(i32 noundef %2772, ptr noundef @.str.4)
  %2774 = call ptr @__errno_location() #12
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @strerror(i32 noundef %2775) #11
  %2777 = call ptr @__errno_location() #12
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2766, ptr noundef @.str.5, i32 noundef %2767, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2770, ptr noundef %2773, ptr noundef %2776, i32 noundef %2778) #11
  br label %2780

2780:                                             ; preds = %2763, %2746
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

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

2783:                                             ; No predecessors!
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784, %2725
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  br label %2788

2788:                                             ; preds = %2787
  %2789 = load i32, ptr @test_count, align 4, !tbaa !5
  %2790 = add nsw i32 %2789, 1
  store i32 %2790, ptr @test_count, align 4, !tbaa !5
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = icmp eq i32 %2792, 469762089
  br i1 %2793, label %2847, label %2794

2794:                                             ; preds = %2788
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2797 = call ptr @__errno_location() #12
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  store i32 %2798, ptr %54, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = call i32 @s2n_print_stacktrace(ptr noundef %2799)
  %2801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2802 = trunc i8 %2801 to i1
  br i1 %2802, label %2803, label %2825

2803:                                             ; preds = %2796
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = call i32 @fileno(ptr noundef %2804) #11
  %2806 = call i32 @isatty(i32 noundef %2805) #11
  %2807 = icmp ne i32 %2806, 0
  br i1 %2807, label %2808, label %2825

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

2825:                                             ; preds = %2803, %2796
  %2826 = load i32, ptr %54, align 4, !tbaa !5
  %2827 = call ptr @__errno_location() #12
  store i32 %2826, ptr %2827, align 4, !tbaa !5
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = load i32, ptr @test_count, align 4, !tbaa !5
  %2830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror(i32 noundef %2831, ptr noundef @.str.4)
  %2833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror_debug(i32 noundef %2834, ptr noundef @.str.4)
  %2836 = call ptr @__errno_location() #12
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @strerror(i32 noundef %2837) #11
  %2839 = call ptr @__errno_location() #12
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2828, ptr noundef @.str.5, i32 noundef %2829, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2832, ptr noundef %2835, ptr noundef %2838, i32 noundef %2840) #11
  br label %2842

2842:                                             ; preds = %2825, %2808
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2843

2843:                                             ; preds = %2842
  br label %2844

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

2845:                                             ; No predecessors!
  br label %2846

2846:                                             ; preds = %2845
  br label %2847

2847:                                             ; preds = %2846, %2788
  br label %2848

2848:                                             ; preds = %2847
  br label %2849

2849:                                             ; preds = %2848
  br label %2850

2850:                                             ; preds = %2849
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = add nsw i32 %2851, 1
  store i32 %2852, ptr @test_count, align 4, !tbaa !5
  %2853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @s2n_strerror_debug(i32 noundef %2854, ptr noundef @.str.4)
  %2856 = icmp eq ptr %2855, null
  br i1 %2856, label %2857, label %2910

2857:                                             ; preds = %2850
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

2859:                                             ; preds = %2858
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %2860 = call ptr @__errno_location() #12
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  store i32 %2861, ptr %55, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @s2n_print_stacktrace(ptr noundef %2862)
  %2864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2865 = trunc i8 %2864 to i1
  br i1 %2865, label %2866, label %2888

2866:                                             ; preds = %2859
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = call i32 @fileno(ptr noundef %2867) #11
  %2869 = call i32 @isatty(i32 noundef %2868) #11
  %2870 = icmp ne i32 %2869, 0
  br i1 %2870, label %2871, label %2888

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

2888:                                             ; preds = %2866, %2859
  %2889 = load i32, ptr %55, align 4, !tbaa !5
  %2890 = call ptr @__errno_location() #12
  store i32 %2889, ptr %2890, align 4, !tbaa !5
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = load i32, ptr @test_count, align 4, !tbaa !5
  %2893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror(i32 noundef %2894, ptr noundef @.str.4)
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror_debug(i32 noundef %2897, ptr noundef @.str.4)
  %2899 = call ptr @__errno_location() #12
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @strerror(i32 noundef %2900) #11
  %2902 = call ptr @__errno_location() #12
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2891, ptr noundef @.str.5, i32 noundef %2892, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2895, ptr noundef %2898, ptr noundef %2901, i32 noundef %2903) #11
  br label %2905

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

2906:                                             ; preds = %2905
  br label %2907

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

2908:                                             ; No predecessors!
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

2910:                                             ; preds = %2909, %2850
  br label %2911

2911:                                             ; preds = %2910
  br label %2912

2912:                                             ; preds = %2911
  br label %2913

2913:                                             ; preds = %2912
  br label %2914

2914:                                             ; preds = %2913
  br label %2915

2915:                                             ; preds = %2914
  %2916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2916, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2917 = call ptr @__errno_location() #12
  store i32 0, ptr %2917, align 4, !tbaa !5
  br label %2918

2918:                                             ; preds = %2915
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922
  br label %2924

2924:                                             ; preds = %2923
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = add nsw i32 %2925, 1
  store i32 %2926, ptr @test_count, align 4, !tbaa !5
  %2927 = load ptr, ptr %23, align 8, !tbaa !9
  %2928 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %2929 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %2927, i32 noundef 1, i32 noundef 500, ptr noundef %2928, ptr noundef %24, ptr noundef %25)
  %2930 = icmp eq i32 %2929, -1
  br i1 %2930, label %2984, label %2931

2931:                                             ; preds = %2924
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

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

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

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

2962:                                             ; preds = %2940, %2933
  %2963 = load i32, ptr %56, align 4, !tbaa !5
  %2964 = call ptr @__errno_location() #12
  store i32 %2963, ptr %2964, align 4, !tbaa !5
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = load i32, ptr @test_count, align 4, !tbaa !5
  %2967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call ptr @s2n_strerror(i32 noundef %2968, ptr noundef @.str.4)
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror_debug(i32 noundef %2971, ptr noundef @.str.4)
  %2973 = call ptr @__errno_location() #12
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @strerror(i32 noundef %2974) #11
  %2976 = call ptr @__errno_location() #12
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2965, ptr noundef @.str.5, i32 noundef %2966, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2969, ptr noundef %2972, ptr noundef %2975, i32 noundef %2977) #11
  br label %2979

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

2980:                                             ; preds = %2979
  br label %2981

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

2982:                                             ; No predecessors!
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

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

2985:                                             ; preds = %2984
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = add nsw i32 %2988, 1
  store i32 %2989, ptr @test_count, align 4, !tbaa !5
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = icmp eq i32 %2991, 469762089
  br i1 %2992, label %3046, label %2993

2993:                                             ; preds = %2987
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2996 = call ptr @__errno_location() #12
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  store i32 %2997, ptr %57, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @s2n_print_stacktrace(ptr noundef %2998)
  %3000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3001 = trunc i8 %3000 to i1
  br i1 %3001, label %3002, label %3024

3002:                                             ; preds = %2995
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = call i32 @fileno(ptr noundef %3003) #11
  %3005 = call i32 @isatty(i32 noundef %3004) #11
  %3006 = icmp ne i32 %3005, 0
  br i1 %3006, label %3007, label %3024

3007:                                             ; preds = %3002
  %3008 = load i32, ptr %57, align 4, !tbaa !5
  %3009 = call ptr @__errno_location() #12
  store i32 %3008, ptr %3009, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = load i32, ptr @test_count, align 4, !tbaa !5
  %3012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror(i32 noundef %3013, ptr noundef @.str.4)
  %3015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call ptr @s2n_strerror_debug(i32 noundef %3016, ptr noundef @.str.4)
  %3018 = call ptr @__errno_location() #12
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @strerror(i32 noundef %3019) #11
  %3021 = call ptr @__errno_location() #12
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3010, ptr noundef @.str.2, i32 noundef %3011, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 205, ptr noundef %3014, ptr noundef %3017, ptr noundef %3020, i32 noundef %3022) #11
  br label %3041

3024:                                             ; preds = %3002, %2995
  %3025 = load i32, ptr %57, align 4, !tbaa !5
  %3026 = call ptr @__errno_location() #12
  store i32 %3025, ptr %3026, align 4, !tbaa !5
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = load i32, ptr @test_count, align 4, !tbaa !5
  %3029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror(i32 noundef %3030, ptr noundef @.str.4)
  %3032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef @.str.4)
  %3035 = call ptr @__errno_location() #12
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @strerror(i32 noundef %3036) #11
  %3038 = call ptr @__errno_location() #12
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3027, ptr noundef @.str.5, i32 noundef %3028, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 205, ptr noundef %3031, ptr noundef %3034, ptr noundef %3037, i32 noundef %3039) #11
  br label %3041

3041:                                             ; preds = %3024, %3007
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %3042

3042:                                             ; preds = %3041
  br label %3043

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

3044:                                             ; No predecessors!
  br label %3045

3045:                                             ; preds = %3044
  br label %3046

3046:                                             ; preds = %3045, %2987
  br label %3047

3047:                                             ; preds = %3046
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

3049:                                             ; preds = %3048
  %3050 = load i32, ptr @test_count, align 4, !tbaa !5
  %3051 = add nsw i32 %3050, 1
  store i32 %3051, ptr @test_count, align 4, !tbaa !5
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror_debug(i32 noundef %3053, ptr noundef @.str.4)
  %3055 = icmp eq ptr %3054, null
  br i1 %3055, label %3056, label %3109

3056:                                             ; preds = %3049
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %3059 = call ptr @__errno_location() #12
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  store i32 %3060, ptr %58, align 4, !tbaa !5
  %3061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3062 = call i32 @s2n_print_stacktrace(ptr noundef %3061)
  %3063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3064 = trunc i8 %3063 to i1
  br i1 %3064, label %3065, label %3087

3065:                                             ; preds = %3058
  %3066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3067 = call i32 @fileno(ptr noundef %3066) #11
  %3068 = call i32 @isatty(i32 noundef %3067) #11
  %3069 = icmp ne i32 %3068, 0
  br i1 %3069, label %3070, label %3087

3070:                                             ; preds = %3065
  %3071 = load i32, ptr %58, align 4, !tbaa !5
  %3072 = call ptr @__errno_location() #12
  store i32 %3071, ptr %3072, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3076 = load i32, ptr %3075, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror(i32 noundef %3076, ptr noundef @.str.4)
  %3078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3079 = load i32, ptr %3078, align 4, !tbaa !5
  %3080 = call ptr @s2n_strerror_debug(i32 noundef %3079, ptr noundef @.str.4)
  %3081 = call ptr @__errno_location() #12
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call ptr @strerror(i32 noundef %3082) #11
  %3084 = call ptr @__errno_location() #12
  %3085 = load i32, ptr %3084, align 4, !tbaa !5
  %3086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3073, ptr noundef @.str.2, i32 noundef %3074, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 205, ptr noundef %3077, ptr noundef %3080, ptr noundef %3083, i32 noundef %3085) #11
  br label %3104

3087:                                             ; preds = %3065, %3058
  %3088 = load i32, ptr %58, align 4, !tbaa !5
  %3089 = call ptr @__errno_location() #12
  store i32 %3088, ptr %3089, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @s2n_strerror_debug(i32 noundef %3096, ptr noundef @.str.4)
  %3098 = call ptr @__errno_location() #12
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call ptr @strerror(i32 noundef %3099) #11
  %3101 = call ptr @__errno_location() #12
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef @.str.5, i32 noundef %3091, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 205, ptr noundef %3094, ptr noundef %3097, ptr noundef %3100, i32 noundef %3102) #11
  br label %3104

3104:                                             ; preds = %3087, %3070
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

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

3107:                                             ; No predecessors!
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108, %3049
  br label %3110

3110:                                             ; preds = %3109
  br label %3111

3111:                                             ; preds = %3110
  br label %3112

3112:                                             ; preds = %3111
  br label %3113

3113:                                             ; preds = %3112
  br label %3114

3114:                                             ; preds = %3113
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3115, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3116 = call ptr @__errno_location() #12
  store i32 0, ptr %3116, align 4, !tbaa !5
  br label %3117

3117:                                             ; preds = %3114
  br label %3118

3118:                                             ; preds = %3117
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

3120:                                             ; preds = %3119
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #11
  %3121 = call i32 @s2n_connection_ptr_free(ptr noundef %22)
  %3122 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  store i32 %3121, ptr %3122, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %3123 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3123, ptr %60, align 8, !tbaa !9
  br label %3124

3124:                                             ; preds = %3120
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = add nsw i32 %3125, 1
  store i32 %3126, ptr @test_count, align 4, !tbaa !5
  %3127 = load ptr, ptr %60, align 8, !tbaa !9
  %3128 = icmp eq ptr %3127, null
  br i1 %3128, label %3129, label %3182

3129:                                             ; preds = %3124
  br label %3130

3130:                                             ; preds = %3129
  br label %3131

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

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

3143:                                             ; preds = %3138
  %3144 = load i32, ptr %61, align 4, !tbaa !5
  %3145 = call ptr @__errno_location() #12
  store i32 %3144, ptr %3145, align 4, !tbaa !5
  %3146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call ptr @s2n_strerror(i32 noundef %3149, ptr noundef @.str.4)
  %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_debug(i32 noundef %3152, ptr noundef @.str.4)
  %3154 = call ptr @__errno_location() #12
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call ptr @strerror(i32 noundef %3155) #11
  %3157 = call ptr @__errno_location() #12
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3146, ptr noundef @.str.2, i32 noundef %3147, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3150, ptr noundef %3153, ptr noundef %3156, i32 noundef %3158) #11
  br label %3177

3160:                                             ; preds = %3138, %3131
  %3161 = load i32, ptr %61, align 4, !tbaa !5
  %3162 = call ptr @__errno_location() #12
  store i32 %3161, ptr %3162, align 4, !tbaa !5
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3166 = load i32, ptr %3165, align 4, !tbaa !5
  %3167 = call ptr @s2n_strerror(i32 noundef %3166, ptr noundef @.str.4)
  %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_debug(i32 noundef %3169, ptr noundef @.str.4)
  %3171 = call ptr @__errno_location() #12
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  %3173 = call ptr @strerror(i32 noundef %3172) #11
  %3174 = call ptr @__errno_location() #12
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3163, ptr noundef @.str.5, i32 noundef %3164, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3167, ptr noundef %3170, ptr noundef %3173, i32 noundef %3175) #11
  br label %3177

3177:                                             ; preds = %3160, %3143
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %3178

3178:                                             ; preds = %3177
  br label %3179

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

3180:                                             ; No predecessors!
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

3182:                                             ; preds = %3181, %3124
  br label %3183

3183:                                             ; preds = %3182
  br label %3184

3184:                                             ; preds = %3183
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %3185 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3185, ptr %62, align 8, !tbaa !9
  br label %3186

3186:                                             ; preds = %3184
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = add nsw i32 %3187, 1
  store i32 %3188, ptr @test_count, align 4, !tbaa !5
  %3189 = load ptr, ptr %62, align 8, !tbaa !9
  %3190 = icmp eq ptr %3189, null
  br i1 %3190, label %3191, label %3244

3191:                                             ; preds = %3186
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

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

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

3205:                                             ; preds = %3200
  %3206 = load i32, ptr %63, align 4, !tbaa !5
  %3207 = call ptr @__errno_location() #12
  store i32 %3206, ptr %3207, align 4, !tbaa !5
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = load i32, ptr @test_count, align 4, !tbaa !5
  %3210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror(i32 noundef %3211, ptr noundef @.str.4)
  %3213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call ptr @s2n_strerror_debug(i32 noundef %3214, ptr noundef @.str.4)
  %3216 = call ptr @__errno_location() #12
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @strerror(i32 noundef %3217) #11
  %3219 = call ptr @__errno_location() #12
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3208, ptr noundef @.str.2, i32 noundef %3209, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 218, ptr noundef %3212, ptr noundef %3215, ptr noundef %3218, i32 noundef %3220) #11
  br label %3239

3222:                                             ; preds = %3200, %3193
  %3223 = load i32, ptr %63, align 4, !tbaa !5
  %3224 = call ptr @__errno_location() #12
  store i32 %3223, ptr %3224, align 4, !tbaa !5
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = load i32, ptr @test_count, align 4, !tbaa !5
  %3227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call ptr @s2n_strerror(i32 noundef %3228, ptr noundef @.str.4)
  %3230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror_debug(i32 noundef %3231, ptr noundef @.str.4)
  %3233 = call ptr @__errno_location() #12
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call ptr @strerror(i32 noundef %3234) #11
  %3236 = call ptr @__errno_location() #12
  %3237 = load i32, ptr %3236, align 4, !tbaa !5
  %3238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3225, ptr noundef @.str.5, i32 noundef %3226, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 218, ptr noundef %3229, ptr noundef %3232, ptr noundef %3235, i32 noundef %3237) #11
  br label %3239

3239:                                             ; preds = %3222, %3205
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

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

3242:                                             ; No predecessors!
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

3244:                                             ; preds = %3243, %3186
  br label %3245

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3245
  br label %3247

3247:                                             ; preds = %3246
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = add nsw i32 %3248, 1
  store i32 %3249, ptr @test_count, align 4, !tbaa !5
  %3250 = load ptr, ptr %62, align 8, !tbaa !9
  %3251 = load ptr, ptr %13, align 8, !tbaa !9
  %3252 = call i32 @s2n_connection_set_config(ptr noundef %3250, ptr noundef %3251)
  %3253 = icmp eq i32 %3252, -1
  br i1 %3253, label %3254, label %3307

3254:                                             ; preds = %3247
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

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

3263:                                             ; preds = %3256
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = call i32 @fileno(ptr noundef %3264) #11
  %3266 = call i32 @isatty(i32 noundef %3265) #11
  %3267 = icmp ne i32 %3266, 0
  br i1 %3267, label %3268, label %3285

3268:                                             ; preds = %3263
  %3269 = load i32, ptr %64, align 4, !tbaa !5
  %3270 = call ptr @__errno_location() #12
  store i32 %3269, ptr %3270, align 4, !tbaa !5
  %3271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3272 = load i32, ptr @test_count, align 4, !tbaa !5
  %3273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror(i32 noundef %3274, ptr noundef @.str.4)
  %3276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call ptr @s2n_strerror_debug(i32 noundef %3277, ptr noundef @.str.4)
  %3279 = call ptr @__errno_location() #12
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call ptr @strerror(i32 noundef %3280) #11
  %3282 = call ptr @__errno_location() #12
  %3283 = load i32, ptr %3282, align 4, !tbaa !5
  %3284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3271, ptr noundef @.str.2, i32 noundef %3272, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3275, ptr noundef %3278, ptr noundef %3281, i32 noundef %3283) #11
  br label %3302

3285:                                             ; preds = %3263, %3256
  %3286 = load i32, ptr %64, align 4, !tbaa !5
  %3287 = call ptr @__errno_location() #12
  store i32 %3286, ptr %3287, align 4, !tbaa !5
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = load i32, ptr @test_count, align 4, !tbaa !5
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror(i32 noundef %3291, ptr noundef @.str.4)
  %3293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror_debug(i32 noundef %3294, ptr noundef @.str.4)
  %3296 = call ptr @__errno_location() #12
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @strerror(i32 noundef %3297) #11
  %3299 = call ptr @__errno_location() #12
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3288, ptr noundef @.str.5, i32 noundef %3289, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3292, ptr noundef %3295, ptr noundef %3298, i32 noundef %3300) #11
  br label %3302

3302:                                             ; preds = %3285, %3268
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

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

3305:                                             ; No predecessors!
  br label %3306

3306:                                             ; preds = %3305
  br label %3307

3307:                                             ; preds = %3306, %3247
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  br label %3310

3310:                                             ; preds = %3309
  %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 = load ptr, ptr %60, align 8, !tbaa !9
  %3314 = call i32 @s2n_client_hello_send(ptr noundef %3313)
  %3315 = icmp eq i32 %3314, -1
  br i1 %3315, label %3316, label %3369

3316:                                             ; preds = %3310
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

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

3325:                                             ; preds = %3318
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = call i32 @fileno(ptr noundef %3326) #11
  %3328 = call i32 @isatty(i32 noundef %3327) #11
  %3329 = icmp ne i32 %3328, 0
  br i1 %3329, label %3330, label %3347

3330:                                             ; preds = %3325
  %3331 = load i32, ptr %65, align 4, !tbaa !5
  %3332 = call ptr @__errno_location() #12
  store i32 %3331, ptr %3332, align 4, !tbaa !5
  %3333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3334 = load i32, ptr @test_count, align 4, !tbaa !5
  %3335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = call ptr @s2n_strerror(i32 noundef %3336, ptr noundef @.str.4)
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror_debug(i32 noundef %3339, ptr noundef @.str.4)
  %3341 = call ptr @__errno_location() #12
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call ptr @strerror(i32 noundef %3342) #11
  %3344 = call ptr @__errno_location() #12
  %3345 = load i32, ptr %3344, align 4, !tbaa !5
  %3346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3333, ptr noundef @.str.2, i32 noundef %3334, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3337, ptr noundef %3340, ptr noundef %3343, i32 noundef %3345) #11
  br label %3364

3347:                                             ; preds = %3325, %3318
  %3348 = load i32, ptr %65, align 4, !tbaa !5
  %3349 = call ptr @__errno_location() #12
  store i32 %3348, ptr %3349, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef @.str.4)
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef @.str.4)
  %3358 = call ptr @__errno_location() #12
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #11
  %3361 = call ptr @__errno_location() #12
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef @.str.5, i32 noundef %3351, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3354, ptr noundef %3357, ptr noundef %3360, i32 noundef %3362) #11
  br label %3364

3364:                                             ; preds = %3347, %3330
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %3365

3365:                                             ; preds = %3364
  br label %3366

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

3367:                                             ; No predecessors!
  br label %3368

3368:                                             ; preds = %3367
  br label %3369

3369:                                             ; preds = %3368, %3310
  br label %3370

3370:                                             ; preds = %3369
  br label %3371

3371:                                             ; preds = %3370
  br label %3372

3372:                                             ; preds = %3371
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %3374 = add nsw i32 %3373, 1
  store i32 %3374, ptr @test_count, align 4, !tbaa !5
  %3375 = load ptr, ptr %60, align 8, !tbaa !9
  %3376 = getelementptr inbounds %struct.s2n_connection, ptr %3375, i32 0, i32 52
  %3377 = getelementptr inbounds %struct.s2n_handshake, ptr %3376, i32 0, i32 0
  %3378 = load ptr, ptr %62, align 8, !tbaa !9
  %3379 = getelementptr inbounds %struct.s2n_connection, ptr %3378, i32 0, i32 52
  %3380 = getelementptr inbounds %struct.s2n_handshake, ptr %3379, i32 0, i32 0
  %3381 = load ptr, ptr %60, align 8, !tbaa !9
  %3382 = getelementptr inbounds %struct.s2n_connection, ptr %3381, i32 0, i32 52
  %3383 = getelementptr inbounds %struct.s2n_handshake, ptr %3382, i32 0, i32 0
  %3384 = getelementptr inbounds %struct.s2n_stuffer, ptr %3383, i32 0, i32 2
  %3385 = load i32, ptr %3384, align 4, !tbaa !15
  %3386 = load ptr, ptr %60, align 8, !tbaa !9
  %3387 = getelementptr inbounds %struct.s2n_connection, ptr %3386, i32 0, i32 52
  %3388 = getelementptr inbounds %struct.s2n_handshake, ptr %3387, i32 0, i32 0
  %3389 = getelementptr inbounds %struct.s2n_stuffer, ptr %3388, i32 0, i32 1
  %3390 = load i32, ptr %3389, align 8, !tbaa !42
  %3391 = sub i32 %3385, %3390
  %3392 = call i32 @s2n_stuffer_copy(ptr noundef %3377, ptr noundef %3380, i32 noundef %3391)
  %3393 = icmp eq i32 %3392, -1
  br i1 %3393, label %3394, label %3447

3394:                                             ; preds = %3372
  br label %3395

3395:                                             ; preds = %3394
  br label %3396

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

3403:                                             ; preds = %3396
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = call i32 @fileno(ptr noundef %3404) #11
  %3406 = call i32 @isatty(i32 noundef %3405) #11
  %3407 = icmp ne i32 %3406, 0
  br i1 %3407, label %3408, label %3425

3408:                                             ; preds = %3403
  %3409 = load i32, ptr %66, align 4, !tbaa !5
  %3410 = call ptr @__errno_location() #12
  store i32 %3409, ptr %3410, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror(i32 noundef %3414, ptr noundef @.str.4)
  %3416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror_debug(i32 noundef %3417, ptr noundef @.str.4)
  %3419 = call ptr @__errno_location() #12
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @strerror(i32 noundef %3420) #11
  %3422 = call ptr @__errno_location() #12
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3411, ptr noundef @.str.2, i32 noundef %3412, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 223, ptr noundef %3415, ptr noundef %3418, ptr noundef %3421, i32 noundef %3423) #11
  br label %3442

3425:                                             ; preds = %3403, %3396
  %3426 = load i32, ptr %66, align 4, !tbaa !5
  %3427 = call ptr @__errno_location() #12
  store i32 %3426, ptr %3427, align 4, !tbaa !5
  %3428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3429 = load i32, ptr @test_count, align 4, !tbaa !5
  %3430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3431 = load i32, ptr %3430, align 4, !tbaa !5
  %3432 = call ptr @s2n_strerror(i32 noundef %3431, ptr noundef @.str.4)
  %3433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call ptr @s2n_strerror_debug(i32 noundef %3434, ptr noundef @.str.4)
  %3436 = call ptr @__errno_location() #12
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @strerror(i32 noundef %3437) #11
  %3439 = call ptr @__errno_location() #12
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3428, ptr noundef @.str.5, i32 noundef %3429, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 223, ptr noundef %3432, ptr noundef %3435, ptr noundef %3438, i32 noundef %3440) #11
  br label %3442

3442:                                             ; preds = %3425, %3408
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3443

3443:                                             ; preds = %3442
  br label %3444

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

3445:                                             ; No predecessors!
  br label %3446

3446:                                             ; preds = %3445
  br label %3447

3447:                                             ; preds = %3446, %3372
  br label %3448

3448:                                             ; preds = %3447
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

3450:                                             ; preds = %3449
  %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 ptr, ptr %62, align 8, !tbaa !9
  %3454 = call i32 @s2n_client_hello_recv(ptr noundef %3453)
  %3455 = icmp eq i32 %3454, -1
  br i1 %3455, label %3456, label %3509

3456:                                             ; preds = %3450
  br label %3457

3457:                                             ; preds = %3456
  br label %3458

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

3465:                                             ; preds = %3458
  %3466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3467 = call i32 @fileno(ptr noundef %3466) #11
  %3468 = call i32 @isatty(i32 noundef %3467) #11
  %3469 = icmp ne i32 %3468, 0
  br i1 %3469, label %3470, label %3487

3470:                                             ; preds = %3465
  %3471 = load i32, ptr %67, align 4, !tbaa !5
  %3472 = call ptr @__errno_location() #12
  store i32 %3471, ptr %3472, align 4, !tbaa !5
  %3473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3474 = load i32, ptr @test_count, align 4, !tbaa !5
  %3475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3476 = load i32, ptr %3475, align 4, !tbaa !5
  %3477 = call ptr @s2n_strerror(i32 noundef %3476, ptr noundef @.str.4)
  %3478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror_debug(i32 noundef %3479, ptr noundef @.str.4)
  %3481 = call ptr @__errno_location() #12
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call ptr @strerror(i32 noundef %3482) #11
  %3484 = call ptr @__errno_location() #12
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3473, ptr noundef @.str.2, i32 noundef %3474, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3477, ptr noundef %3480, ptr noundef %3483, i32 noundef %3485) #11
  br label %3504

3487:                                             ; preds = %3465, %3458
  %3488 = load i32, ptr %67, align 4, !tbaa !5
  %3489 = call ptr @__errno_location() #12
  store i32 %3488, ptr %3489, align 4, !tbaa !5
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call ptr @s2n_strerror(i32 noundef %3493, ptr noundef @.str.4)
  %3495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call ptr @s2n_strerror_debug(i32 noundef %3496, ptr noundef @.str.4)
  %3498 = call ptr @__errno_location() #12
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call ptr @strerror(i32 noundef %3499) #11
  %3501 = call ptr @__errno_location() #12
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3490, ptr noundef @.str.5, i32 noundef %3491, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3494, ptr noundef %3497, ptr noundef %3500, i32 noundef %3502) #11
  br label %3504

3504:                                             ; preds = %3487, %3470
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3505

3505:                                             ; preds = %3504
  br label %3506

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

3507:                                             ; No predecessors!
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508, %3450
  br label %3510

3510:                                             ; preds = %3509
  br label %3511

3511:                                             ; preds = %3510
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  %3512 = load ptr, ptr %62, align 8, !tbaa !9
  %3513 = call ptr @s2n_connection_get_client_hello(ptr noundef %3512)
  store ptr %3513, ptr %68, align 8, !tbaa !9
  br label %3514

3514:                                             ; preds = %3511
  %3515 = load i32, ptr @test_count, align 4, !tbaa !5
  %3516 = add nsw i32 %3515, 1
  store i32 %3516, ptr @test_count, align 4, !tbaa !5
  %3517 = load ptr, ptr %68, align 8, !tbaa !9
  %3518 = icmp eq ptr %3517, null
  br i1 %3518, label %3519, label %3572

3519:                                             ; preds = %3514
  br label %3520

3520:                                             ; preds = %3519
  br label %3521

3521:                                             ; preds = %3520
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %3522 = call ptr @__errno_location() #12
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  store i32 %3523, ptr %69, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = call i32 @s2n_print_stacktrace(ptr noundef %3524)
  %3526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3527 = trunc i8 %3526 to i1
  br i1 %3527, label %3528, label %3550

3528:                                             ; preds = %3521
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = call i32 @fileno(ptr noundef %3529) #11
  %3531 = call i32 @isatty(i32 noundef %3530) #11
  %3532 = icmp ne i32 %3531, 0
  br i1 %3532, label %3533, label %3550

3533:                                             ; preds = %3528
  %3534 = load i32, ptr %69, align 4, !tbaa !5
  %3535 = call ptr @__errno_location() #12
  store i32 %3534, ptr %3535, align 4, !tbaa !5
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = load i32, ptr @test_count, align 4, !tbaa !5
  %3538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror(i32 noundef %3539, ptr noundef @.str.4)
  %3541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @s2n_strerror_debug(i32 noundef %3542, ptr noundef @.str.4)
  %3544 = call ptr @__errno_location() #12
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call ptr @strerror(i32 noundef %3545) #11
  %3547 = call ptr @__errno_location() #12
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3536, ptr noundef @.str.2, i32 noundef %3537, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3540, ptr noundef %3543, ptr noundef %3546, i32 noundef %3548) #11
  br label %3567

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

3567:                                             ; preds = %3550, %3533
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3568

3568:                                             ; preds = %3567
  br label %3569

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

3570:                                             ; No predecessors!
  br label %3571

3571:                                             ; preds = %3570
  br label %3572

3572:                                             ; preds = %3571, %3514
  br label %3573

3573:                                             ; preds = %3572
  br label %3574

3574:                                             ; preds = %3573
  br label %3575

3575:                                             ; preds = %3574
  %3576 = load i32, ptr @test_count, align 4, !tbaa !5
  %3577 = add nsw i32 %3576, 1
  store i32 %3577, ptr @test_count, align 4, !tbaa !5
  %3578 = load ptr, ptr %68, align 8, !tbaa !9
  %3579 = getelementptr inbounds %struct.s2n_client_hello, ptr %3578, i32 0, i32 7
  %3580 = load i8, ptr %3579, align 2
  %3581 = lshr i8 %3580, 5
  %3582 = and i8 %3581, 1
  %3583 = zext i8 %3582 to i32
  %3584 = icmp ne i32 %3583, 0
  br i1 %3584, label %3585, label %3638

3585:                                             ; preds = %3575
  br label %3586

3586:                                             ; preds = %3585
  br label %3587

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

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

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

3616:                                             ; preds = %3594, %3587
  %3617 = load i32, ptr %70, align 4, !tbaa !5
  %3618 = call ptr @__errno_location() #12
  store i32 %3617, ptr %3618, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror(i32 noundef %3622, ptr noundef @.str.4)
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror_debug(i32 noundef %3625, ptr noundef @.str.4)
  %3627 = call ptr @__errno_location() #12
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @strerror(i32 noundef %3628) #11
  %3630 = call ptr @__errno_location() #12
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef @.str.5, i32 noundef %3620, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3623, ptr noundef %3626, ptr noundef %3629, i32 noundef %3631) #11
  br label %3633

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

3634:                                             ; preds = %3633
  br label %3635

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

3636:                                             ; No predecessors!
  br label %3637

3637:                                             ; preds = %3636
  br label %3638

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

3639:                                             ; preds = %3638
  br label %3640

3640:                                             ; preds = %3639
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  store i32 0, ptr %71, align 4, !tbaa !5
  br label %3641

3641:                                             ; preds = %3640
  %3642 = load i32, ptr @test_count, align 4, !tbaa !5
  %3643 = add nsw i32 %3642, 1
  store i32 %3643, ptr @test_count, align 4, !tbaa !5
  %3644 = load ptr, ptr %68, align 8, !tbaa !9
  %3645 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %3646 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %3644, i32 noundef 0, i32 noundef 500, ptr noundef %3645, ptr noundef %71)
  %3647 = icmp eq i32 %3646, -1
  br i1 %3647, label %3648, label %3701

3648:                                             ; preds = %3641
  br label %3649

3649:                                             ; preds = %3648
  br label %3650

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

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

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

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

3696:                                             ; preds = %3679, %3662
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3697

3697:                                             ; preds = %3696
  br label %3698

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

3699:                                             ; No predecessors!
  br label %3700

3700:                                             ; preds = %3699
  br label %3701

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

3702:                                             ; preds = %3701
  br label %3703

3703:                                             ; preds = %3702
  br label %3704

3704:                                             ; preds = %3703
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = add nsw i32 %3705, 1
  store i32 %3706, ptr @test_count, align 4, !tbaa !5
  %3707 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %3708 = load i32, ptr %71, align 4, !tbaa !5
  %3709 = call i32 @s2n_validate_ja3_str(ptr noundef %3707, i32 noundef %3708, ptr noundef @.str.41)
  %3710 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %3709, ptr %3710, align 4
  %3711 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %3712 = load i32, ptr %3711, align 4
  %3713 = call zeroext i1 @s2n_result_is_ok(i32 %3712)
  br i1 %3713, label %3767, label %3714

3714:                                             ; preds = %3704
  br label %3715

3715:                                             ; preds = %3714
  br label %3716

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

3723:                                             ; preds = %3716
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = call i32 @fileno(ptr noundef %3724) #11
  %3726 = call i32 @isatty(i32 noundef %3725) #11
  %3727 = icmp ne i32 %3726, 0
  br i1 %3727, label %3728, label %3745

3728:                                             ; preds = %3723
  %3729 = load i32, ptr %74, align 4, !tbaa !5
  %3730 = call ptr @__errno_location() #12
  store i32 %3729, ptr %3730, align 4, !tbaa !5
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = load i32, ptr @test_count, align 4, !tbaa !5
  %3733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  %3735 = call ptr @s2n_strerror(i32 noundef %3734, ptr noundef @.str.4)
  %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_debug(i32 noundef %3737, ptr noundef @.str.4)
  %3739 = call ptr @__errno_location() #12
  %3740 = load i32, ptr %3739, align 4, !tbaa !5
  %3741 = call ptr @strerror(i32 noundef %3740) #11
  %3742 = call ptr @__errno_location() #12
  %3743 = load i32, ptr %3742, align 4, !tbaa !5
  %3744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3731, ptr noundef @.str.2, i32 noundef %3732, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3735, ptr noundef %3738, ptr noundef %3741, i32 noundef %3743) #11
  br label %3762

3745:                                             ; preds = %3723, %3716
  %3746 = load i32, ptr %74, align 4, !tbaa !5
  %3747 = call ptr @__errno_location() #12
  store i32 %3746, ptr %3747, align 4, !tbaa !5
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = load i32, ptr @test_count, align 4, !tbaa !5
  %3750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3751 = load i32, ptr %3750, align 4, !tbaa !5
  %3752 = call ptr @s2n_strerror(i32 noundef %3751, ptr noundef @.str.4)
  %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_debug(i32 noundef %3754, ptr noundef @.str.4)
  %3756 = call ptr @__errno_location() #12
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call ptr @strerror(i32 noundef %3757) #11
  %3759 = call ptr @__errno_location() #12
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3748, ptr noundef @.str.5, i32 noundef %3749, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3752, ptr noundef %3755, ptr noundef %3758, i32 noundef %3760) #11
  br label %3762

3762:                                             ; preds = %3745, %3728
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

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

3765:                                             ; No predecessors!
  br label %3766

3766:                                             ; preds = %3765
  br label %3767

3767:                                             ; preds = %3766, %3704
  br label %3768

3768:                                             ; preds = %3767
  br label %3769

3769:                                             ; preds = %3768
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  %3770 = call i32 @s2n_connection_ptr_free(ptr noundef %62)
  %3771 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %3770, ptr %3771, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  %3772 = call i32 @s2n_connection_ptr_free(ptr noundef %60)
  %3773 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %3772, ptr %3773, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #11
  %3774 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3774, ptr %77, align 8, !tbaa !9
  br label %3775

3775:                                             ; preds = %3769
  %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 %77, align 8, !tbaa !9
  %3779 = icmp eq ptr %3778, null
  br i1 %3779, label %3780, label %3833

3780:                                             ; preds = %3775
  br label %3781

3781:                                             ; preds = %3780
  br label %3782

3782:                                             ; preds = %3781
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3783 = call ptr @__errno_location() #12
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  store i32 %3784, ptr %78, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = call i32 @s2n_print_stacktrace(ptr noundef %3785)
  %3787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3788 = trunc i8 %3787 to i1
  br i1 %3788, label %3789, label %3811

3789:                                             ; preds = %3782
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = call i32 @fileno(ptr noundef %3790) #11
  %3792 = call i32 @isatty(i32 noundef %3791) #11
  %3793 = icmp ne i32 %3792, 0
  br i1 %3793, label %3794, label %3811

3794:                                             ; preds = %3789
  %3795 = load i32, ptr %78, align 4, !tbaa !5
  %3796 = call ptr @__errno_location() #12
  store i32 %3795, ptr %3796, align 4, !tbaa !5
  %3797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3798 = load i32, ptr @test_count, align 4, !tbaa !5
  %3799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = call ptr @s2n_strerror(i32 noundef %3800, ptr noundef @.str.4)
  %3802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3803 = load i32, ptr %3802, align 4, !tbaa !5
  %3804 = call ptr @s2n_strerror_debug(i32 noundef %3803, ptr noundef @.str.4)
  %3805 = call ptr @__errno_location() #12
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = call ptr @strerror(i32 noundef %3806) #11
  %3808 = call ptr @__errno_location() #12
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3797, ptr noundef @.str.2, i32 noundef %3798, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 243, ptr noundef %3801, ptr noundef %3804, ptr noundef %3807, i32 noundef %3809) #11
  br label %3828

3811:                                             ; preds = %3789, %3782
  %3812 = load i32, ptr %78, align 4, !tbaa !5
  %3813 = call ptr @__errno_location() #12
  store i32 %3812, ptr %3813, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = load i32, ptr @test_count, align 4, !tbaa !5
  %3816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3817 = load i32, ptr %3816, align 4, !tbaa !5
  %3818 = call ptr @s2n_strerror(i32 noundef %3817, ptr noundef @.str.4)
  %3819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  %3821 = call ptr @s2n_strerror_debug(i32 noundef %3820, ptr noundef @.str.4)
  %3822 = call ptr @__errno_location() #12
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  %3824 = call ptr @strerror(i32 noundef %3823) #11
  %3825 = call ptr @__errno_location() #12
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3814, ptr noundef @.str.5, i32 noundef %3815, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 243, ptr noundef %3818, ptr noundef %3821, ptr noundef %3824, i32 noundef %3826) #11
  br label %3828

3828:                                             ; preds = %3811, %3794
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3829

3829:                                             ; preds = %3828
  br label %3830

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

3831:                                             ; No predecessors!
  br label %3832

3832:                                             ; preds = %3831
  br label %3833

3833:                                             ; preds = %3832, %3775
  br label %3834

3834:                                             ; preds = %3833
  br label %3835

3835:                                             ; preds = %3834
  br label %3836

3836:                                             ; preds = %3835
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = add nsw i32 %3837, 1
  store i32 %3838, ptr @test_count, align 4, !tbaa !5
  %3839 = load ptr, ptr %77, align 8, !tbaa !9
  %3840 = load ptr, ptr %13, align 8, !tbaa !9
  %3841 = call i32 @s2n_connection_set_config(ptr noundef %3839, ptr noundef %3840)
  %3842 = icmp eq i32 %3841, -1
  br i1 %3842, label %3843, label %3896

3843:                                             ; preds = %3836
  br label %3844

3844:                                             ; preds = %3843
  br label %3845

3845:                                             ; preds = %3844
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3846 = call ptr @__errno_location() #12
  %3847 = load i32, ptr %3846, align 4, !tbaa !5
  store i32 %3847, ptr %79, align 4, !tbaa !5
  %3848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3849 = call i32 @s2n_print_stacktrace(ptr noundef %3848)
  %3850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3851 = trunc i8 %3850 to i1
  br i1 %3851, label %3852, label %3874

3852:                                             ; preds = %3845
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @fileno(ptr noundef %3853) #11
  %3855 = call i32 @isatty(i32 noundef %3854) #11
  %3856 = icmp ne i32 %3855, 0
  br i1 %3856, label %3857, label %3874

3857:                                             ; preds = %3852
  %3858 = load i32, ptr %79, align 4, !tbaa !5
  %3859 = call ptr @__errno_location() #12
  store i32 %3858, ptr %3859, align 4, !tbaa !5
  %3860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3861 = load i32, ptr @test_count, align 4, !tbaa !5
  %3862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3863 = load i32, ptr %3862, align 4, !tbaa !5
  %3864 = call ptr @s2n_strerror(i32 noundef %3863, ptr noundef @.str.4)
  %3865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3866 = load i32, ptr %3865, align 4, !tbaa !5
  %3867 = call ptr @s2n_strerror_debug(i32 noundef %3866, ptr noundef @.str.4)
  %3868 = call ptr @__errno_location() #12
  %3869 = load i32, ptr %3868, align 4, !tbaa !5
  %3870 = call ptr @strerror(i32 noundef %3869) #11
  %3871 = call ptr @__errno_location() #12
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  %3873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3860, ptr noundef @.str.2, i32 noundef %3861, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3864, ptr noundef %3867, ptr noundef %3870, i32 noundef %3872) #11
  br label %3891

3874:                                             ; preds = %3852, %3845
  %3875 = load i32, ptr %79, align 4, !tbaa !5
  %3876 = call ptr @__errno_location() #12
  store i32 %3875, ptr %3876, align 4, !tbaa !5
  %3877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3878 = load i32, ptr @test_count, align 4, !tbaa !5
  %3879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = call ptr @s2n_strerror(i32 noundef %3880, ptr noundef @.str.4)
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror_debug(i32 noundef %3883, ptr noundef @.str.4)
  %3885 = call ptr @__errno_location() #12
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  %3887 = call ptr @strerror(i32 noundef %3886) #11
  %3888 = call ptr @__errno_location() #12
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  %3890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3877, ptr noundef @.str.5, i32 noundef %3878, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3881, ptr noundef %3884, ptr noundef %3887, i32 noundef %3889) #11
  br label %3891

3891:                                             ; preds = %3874, %3857
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3892

3892:                                             ; preds = %3891
  br label %3893

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

3894:                                             ; No predecessors!
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

3896:                                             ; preds = %3895, %3836
  br label %3897

3897:                                             ; preds = %3896
  br label %3898

3898:                                             ; preds = %3897
  br label %3899

3899:                                             ; preds = %3898
  %3900 = load i32, ptr @test_count, align 4, !tbaa !5
  %3901 = add nsw i32 %3900, 1
  store i32 %3901, ptr @test_count, align 4, !tbaa !5
  %3902 = load ptr, ptr %77, align 8, !tbaa !9
  %3903 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %3902, ptr noundef @.str.13)
  %3904 = icmp eq i32 %3903, -1
  br i1 %3904, label %3905, label %3958

3905:                                             ; preds = %3899
  br label %3906

3906:                                             ; preds = %3905
  br label %3907

3907:                                             ; preds = %3906
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3908 = call ptr @__errno_location() #12
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  store i32 %3909, ptr %80, align 4, !tbaa !5
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = call i32 @s2n_print_stacktrace(ptr noundef %3910)
  %3912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3913 = trunc i8 %3912 to i1
  br i1 %3913, label %3914, label %3936

3914:                                             ; preds = %3907
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = call i32 @fileno(ptr noundef %3915) #11
  %3917 = call i32 @isatty(i32 noundef %3916) #11
  %3918 = icmp ne i32 %3917, 0
  br i1 %3918, label %3919, label %3936

3919:                                             ; preds = %3914
  %3920 = load i32, ptr %80, align 4, !tbaa !5
  %3921 = call ptr @__errno_location() #12
  store i32 %3920, ptr %3921, align 4, !tbaa !5
  %3922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3923 = load i32, ptr @test_count, align 4, !tbaa !5
  %3924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call ptr @s2n_strerror(i32 noundef %3925, ptr noundef @.str.4)
  %3927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call ptr @s2n_strerror_debug(i32 noundef %3928, ptr noundef @.str.4)
  %3930 = call ptr @__errno_location() #12
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @strerror(i32 noundef %3931) #11
  %3933 = call ptr @__errno_location() #12
  %3934 = load i32, ptr %3933, align 4, !tbaa !5
  %3935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3922, ptr noundef @.str.2, i32 noundef %3923, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 245, ptr noundef %3926, ptr noundef %3929, ptr noundef %3932, i32 noundef %3934) #11
  br label %3953

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

3953:                                             ; preds = %3936, %3919
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3954

3954:                                             ; preds = %3953
  br label %3955

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

3956:                                             ; No predecessors!
  br label %3957

3957:                                             ; preds = %3956
  br label %3958

3958:                                             ; preds = %3957, %3899
  br label %3959

3959:                                             ; preds = %3958
  br label %3960

3960:                                             ; preds = %3959
  %3961 = load ptr, ptr %77, align 8, !tbaa !9
  %3962 = getelementptr inbounds %struct.s2n_connection, ptr %3961, i32 0, i32 20
  store i8 20, ptr %3962, align 1, !tbaa !43
  %3963 = load ptr, ptr %77, align 8, !tbaa !9
  %3964 = getelementptr inbounds %struct.s2n_connection, ptr %3963, i32 0, i32 21
  store i8 33, ptr %3964, align 2, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 176, ptr %81) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %81, ptr align 16 @__const.main.sslv2_client_hello, i64 176, i1 false)
  br label %3965

3965:                                             ; preds = %3960
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = add nsw i32 %3966, 1
  store i32 %3967, ptr @test_count, align 4, !tbaa !5
  %3968 = load ptr, ptr %77, align 8, !tbaa !9
  %3969 = getelementptr inbounds %struct.s2n_connection, ptr %3968, i32 0, i32 52
  %3970 = getelementptr inbounds %struct.s2n_handshake, ptr %3969, i32 0, i32 0
  %3971 = getelementptr inbounds [176 x i8], ptr %81, i64 0, i64 0
  %3972 = call i32 @s2n_stuffer_write_bytes(ptr noundef %3970, ptr noundef %3971, i32 noundef 176)
  %3973 = icmp eq i32 %3972, -1
  br i1 %3973, label %3974, label %4027

3974:                                             ; preds = %3965
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

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

3983:                                             ; preds = %3976
  %3984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3985 = call i32 @fileno(ptr noundef %3984) #11
  %3986 = call i32 @isatty(i32 noundef %3985) #11
  %3987 = icmp ne i32 %3986, 0
  br i1 %3987, label %3988, label %4005

3988:                                             ; preds = %3983
  %3989 = load i32, ptr %82, align 4, !tbaa !5
  %3990 = call ptr @__errno_location() #12
  store i32 %3989, ptr %3990, align 4, !tbaa !5
  %3991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror(i32 noundef %3994, ptr noundef @.str.4)
  %3996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call ptr @s2n_strerror_debug(i32 noundef %3997, ptr noundef @.str.4)
  %3999 = call ptr @__errno_location() #12
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call ptr @strerror(i32 noundef %4000) #11
  %4002 = call ptr @__errno_location() #12
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3991, ptr noundef @.str.2, i32 noundef %3992, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 265, ptr noundef %3995, ptr noundef %3998, ptr noundef %4001, i32 noundef %4003) #11
  br label %4022

4005:                                             ; preds = %3983, %3976
  %4006 = load i32, ptr %82, align 4, !tbaa !5
  %4007 = call ptr @__errno_location() #12
  store i32 %4006, ptr %4007, align 4, !tbaa !5
  %4008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4009 = load i32, ptr @test_count, align 4, !tbaa !5
  %4010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4011 = load i32, ptr %4010, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror(i32 noundef %4011, ptr noundef @.str.4)
  %4013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  %4015 = call ptr @s2n_strerror_debug(i32 noundef %4014, ptr noundef @.str.4)
  %4016 = call ptr @__errno_location() #12
  %4017 = load i32, ptr %4016, align 4, !tbaa !5
  %4018 = call ptr @strerror(i32 noundef %4017) #11
  %4019 = call ptr @__errno_location() #12
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4008, ptr noundef @.str.5, i32 noundef %4009, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 265, ptr noundef %4012, ptr noundef %4015, ptr noundef %4018, i32 noundef %4020) #11
  br label %4022

4022:                                             ; preds = %4005, %3988
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %4023

4023:                                             ; preds = %4022
  br label %4024

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

4025:                                             ; No predecessors!
  br label %4026

4026:                                             ; preds = %4025
  br label %4027

4027:                                             ; preds = %4026, %3965
  br label %4028

4028:                                             ; preds = %4027
  br label %4029

4029:                                             ; preds = %4028
  br label %4030

4030:                                             ; preds = %4029
  %4031 = load i32, ptr @test_count, align 4, !tbaa !5
  %4032 = add nsw i32 %4031, 1
  store i32 %4032, ptr @test_count, align 4, !tbaa !5
  %4033 = load ptr, ptr %77, align 8, !tbaa !9
  %4034 = call i32 @s2n_client_hello_recv(ptr noundef %4033)
  %4035 = icmp eq i32 %4034, -1
  br i1 %4035, label %4036, label %4089

4036:                                             ; preds = %4030
  br label %4037

4037:                                             ; preds = %4036
  br label %4038

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

4045:                                             ; preds = %4038
  %4046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4047 = call i32 @fileno(ptr noundef %4046) #11
  %4048 = call i32 @isatty(i32 noundef %4047) #11
  %4049 = icmp ne i32 %4048, 0
  br i1 %4049, label %4050, label %4067

4050:                                             ; preds = %4045
  %4051 = load i32, ptr %83, align 4, !tbaa !5
  %4052 = call ptr @__errno_location() #12
  store i32 %4051, ptr %4052, align 4, !tbaa !5
  %4053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4054 = load i32, ptr @test_count, align 4, !tbaa !5
  %4055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @s2n_strerror(i32 noundef %4056, ptr noundef @.str.4)
  %4058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call ptr @s2n_strerror_debug(i32 noundef %4059, ptr noundef @.str.4)
  %4061 = call ptr @__errno_location() #12
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call ptr @strerror(i32 noundef %4062) #11
  %4064 = call ptr @__errno_location() #12
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4053, ptr noundef @.str.2, i32 noundef %4054, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 266, ptr noundef %4057, ptr noundef %4060, ptr noundef %4063, i32 noundef %4065) #11
  br label %4084

4067:                                             ; preds = %4045, %4038
  %4068 = load i32, ptr %83, align 4, !tbaa !5
  %4069 = call ptr @__errno_location() #12
  store i32 %4068, ptr %4069, align 4, !tbaa !5
  %4070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4071 = load i32, ptr @test_count, align 4, !tbaa !5
  %4072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @s2n_strerror(i32 noundef %4073, ptr noundef @.str.4)
  %4075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call ptr @s2n_strerror_debug(i32 noundef %4076, ptr noundef @.str.4)
  %4078 = call ptr @__errno_location() #12
  %4079 = load i32, ptr %4078, align 4, !tbaa !5
  %4080 = call ptr @strerror(i32 noundef %4079) #11
  %4081 = call ptr @__errno_location() #12
  %4082 = load i32, ptr %4081, align 4, !tbaa !5
  %4083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4070, ptr noundef @.str.5, i32 noundef %4071, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 266, ptr noundef %4074, ptr noundef %4077, ptr noundef %4080, i32 noundef %4082) #11
  br label %4084

4084:                                             ; preds = %4067, %4050
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

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

4087:                                             ; No predecessors!
  br label %4088

4088:                                             ; preds = %4087
  br label %4089

4089:                                             ; preds = %4088, %4030
  br label %4090

4090:                                             ; preds = %4089
  br label %4091

4091:                                             ; preds = %4090
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #11
  %4092 = load ptr, ptr %77, align 8, !tbaa !9
  %4093 = call ptr @s2n_connection_get_client_hello(ptr noundef %4092)
  store ptr %4093, ptr %84, align 8, !tbaa !9
  br label %4094

4094:                                             ; preds = %4091
  %4095 = load i32, ptr @test_count, align 4, !tbaa !5
  %4096 = add nsw i32 %4095, 1
  store i32 %4096, ptr @test_count, align 4, !tbaa !5
  %4097 = load ptr, ptr %84, align 8, !tbaa !9
  %4098 = icmp eq ptr %4097, null
  br i1 %4098, label %4099, label %4152

4099:                                             ; preds = %4094
  br label %4100

4100:                                             ; preds = %4099
  br label %4101

4101:                                             ; preds = %4100
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %4102 = call ptr @__errno_location() #12
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  store i32 %4103, ptr %85, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = call i32 @s2n_print_stacktrace(ptr noundef %4104)
  %4106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4107 = trunc i8 %4106 to i1
  br i1 %4107, label %4108, label %4130

4108:                                             ; preds = %4101
  %4109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4110 = call i32 @fileno(ptr noundef %4109) #11
  %4111 = call i32 @isatty(i32 noundef %4110) #11
  %4112 = icmp ne i32 %4111, 0
  br i1 %4112, label %4113, label %4130

4113:                                             ; preds = %4108
  %4114 = load i32, ptr %85, align 4, !tbaa !5
  %4115 = call ptr @__errno_location() #12
  store i32 %4114, ptr %4115, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = load i32, ptr @test_count, align 4, !tbaa !5
  %4118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call ptr @s2n_strerror(i32 noundef %4119, ptr noundef @.str.4)
  %4121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror_debug(i32 noundef %4122, ptr noundef @.str.4)
  %4124 = call ptr @__errno_location() #12
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call ptr @strerror(i32 noundef %4125) #11
  %4127 = call ptr @__errno_location() #12
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  %4129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4116, ptr noundef @.str.2, i32 noundef %4117, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 269, ptr noundef %4120, ptr noundef %4123, ptr noundef %4126, i32 noundef %4128) #11
  br label %4147

4130:                                             ; preds = %4108, %4101
  %4131 = load i32, ptr %85, align 4, !tbaa !5
  %4132 = call ptr @__errno_location() #12
  store i32 %4131, ptr %4132, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = load i32, ptr @test_count, align 4, !tbaa !5
  %4135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  %4137 = call ptr @s2n_strerror(i32 noundef %4136, ptr noundef @.str.4)
  %4138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call ptr @s2n_strerror_debug(i32 noundef %4139, ptr noundef @.str.4)
  %4141 = call ptr @__errno_location() #12
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @strerror(i32 noundef %4142) #11
  %4144 = call ptr @__errno_location() #12
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4133, ptr noundef @.str.5, i32 noundef %4134, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 269, ptr noundef %4137, ptr noundef %4140, ptr noundef %4143, i32 noundef %4145) #11
  br label %4147

4147:                                             ; preds = %4130, %4113
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %4148

4148:                                             ; preds = %4147
  br label %4149

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

4150:                                             ; No predecessors!
  br label %4151

4151:                                             ; preds = %4150
  br label %4152

4152:                                             ; preds = %4151, %4094
  br label %4153

4153:                                             ; preds = %4152
  br label %4154

4154:                                             ; preds = %4153
  br label %4155

4155:                                             ; preds = %4154
  %4156 = load i32, ptr @test_count, align 4, !tbaa !5
  %4157 = add nsw i32 %4156, 1
  store i32 %4157, ptr @test_count, align 4, !tbaa !5
  %4158 = load ptr, ptr %84, align 8, !tbaa !9
  %4159 = getelementptr inbounds %struct.s2n_client_hello, ptr %4158, i32 0, i32 7
  %4160 = load i8, ptr %4159, align 2
  %4161 = lshr i8 %4160, 5
  %4162 = and i8 %4161, 1
  %4163 = zext i8 %4162 to i32
  %4164 = icmp ne i32 %4163, 0
  br i1 %4164, label %4218, label %4165

4165:                                             ; preds = %4155
  br label %4166

4166:                                             ; preds = %4165
  br label %4167

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

4174:                                             ; preds = %4167
  %4175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4176 = call i32 @fileno(ptr noundef %4175) #11
  %4177 = call i32 @isatty(i32 noundef %4176) #11
  %4178 = icmp ne i32 %4177, 0
  br i1 %4178, label %4179, label %4196

4179:                                             ; preds = %4174
  %4180 = load i32, ptr %86, align 4, !tbaa !5
  %4181 = call ptr @__errno_location() #12
  store i32 %4180, ptr %4181, align 4, !tbaa !5
  %4182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror(i32 noundef %4185, ptr noundef @.str.4)
  %4187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror_debug(i32 noundef %4188, ptr noundef @.str.4)
  %4190 = call ptr @__errno_location() #12
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call ptr @strerror(i32 noundef %4191) #11
  %4193 = call ptr @__errno_location() #12
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4182, ptr noundef @.str.2, i32 noundef %4183, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4186, ptr noundef %4189, ptr noundef %4192, i32 noundef %4194) #11
  br label %4213

4196:                                             ; preds = %4174, %4167
  %4197 = load i32, ptr %86, align 4, !tbaa !5
  %4198 = call ptr @__errno_location() #12
  store i32 %4197, ptr %4198, align 4, !tbaa !5
  %4199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4200 = load i32, ptr @test_count, align 4, !tbaa !5
  %4201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4202 = load i32, ptr %4201, align 4, !tbaa !5
  %4203 = call ptr @s2n_strerror(i32 noundef %4202, ptr noundef @.str.4)
  %4204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4205 = load i32, ptr %4204, align 4, !tbaa !5
  %4206 = call ptr @s2n_strerror_debug(i32 noundef %4205, ptr noundef @.str.4)
  %4207 = call ptr @__errno_location() #12
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call ptr @strerror(i32 noundef %4208) #11
  %4210 = call ptr @__errno_location() #12
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  %4212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4199, ptr noundef @.str.5, i32 noundef %4200, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4203, ptr noundef %4206, ptr noundef %4209, i32 noundef %4211) #11
  br label %4213

4213:                                             ; preds = %4196, %4179
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %4214

4214:                                             ; preds = %4213
  br label %4215

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

4216:                                             ; No predecessors!
  br label %4217

4217:                                             ; preds = %4216
  br label %4218

4218:                                             ; preds = %4217, %4155
  br label %4219

4219:                                             ; preds = %4218
  br label %4220

4220:                                             ; preds = %4219
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  store i32 0, ptr %87, align 4, !tbaa !5
  br label %4221

4221:                                             ; preds = %4220
  br label %4222

4222:                                             ; preds = %4221
  br label %4223

4223:                                             ; preds = %4222
  %4224 = load i32, ptr @test_count, align 4, !tbaa !5
  %4225 = add nsw i32 %4224, 1
  store i32 %4225, ptr @test_count, align 4, !tbaa !5
  %4226 = load ptr, ptr %84, align 8, !tbaa !9
  %4227 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %4228 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4226, i32 noundef 0, i32 noundef 500, ptr noundef %4227, ptr noundef %87)
  %4229 = icmp eq i32 %4228, -1
  br i1 %4229, label %4283, label %4230

4230:                                             ; preds = %4223
  br label %4231

4231:                                             ; preds = %4230
  br label %4232

4232:                                             ; preds = %4231
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %4233 = call ptr @__errno_location() #12
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  store i32 %4234, ptr %88, align 4, !tbaa !5
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = call i32 @s2n_print_stacktrace(ptr noundef %4235)
  %4237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4238 = trunc i8 %4237 to i1
  br i1 %4238, label %4239, label %4261

4239:                                             ; preds = %4232
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = call i32 @fileno(ptr noundef %4240) #11
  %4242 = call i32 @isatty(i32 noundef %4241) #11
  %4243 = icmp ne i32 %4242, 0
  br i1 %4243, label %4244, label %4261

4244:                                             ; preds = %4239
  %4245 = load i32, ptr %88, align 4, !tbaa !5
  %4246 = call ptr @__errno_location() #12
  store i32 %4245, ptr %4246, align 4, !tbaa !5
  %4247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4248 = load i32, ptr @test_count, align 4, !tbaa !5
  %4249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call ptr @s2n_strerror(i32 noundef %4250, ptr noundef @.str.4)
  %4252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4253 = load i32, ptr %4252, align 4, !tbaa !5
  %4254 = call ptr @s2n_strerror_debug(i32 noundef %4253, ptr noundef @.str.4)
  %4255 = call ptr @__errno_location() #12
  %4256 = load i32, ptr %4255, align 4, !tbaa !5
  %4257 = call ptr @strerror(i32 noundef %4256) #11
  %4258 = call ptr @__errno_location() #12
  %4259 = load i32, ptr %4258, align 4, !tbaa !5
  %4260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4247, ptr noundef @.str.2, i32 noundef %4248, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4251, ptr noundef %4254, ptr noundef %4257, i32 noundef %4259) #11
  br label %4278

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

4278:                                             ; preds = %4261, %4244
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %4279

4279:                                             ; preds = %4278
  br label %4280

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

4281:                                             ; No predecessors!
  br label %4282

4282:                                             ; preds = %4281
  br label %4283

4283:                                             ; preds = %4282, %4223
  br label %4284

4284:                                             ; preds = %4283
  br label %4285

4285:                                             ; preds = %4284
  br label %4286

4286:                                             ; preds = %4285
  %4287 = load i32, ptr @test_count, align 4, !tbaa !5
  %4288 = add nsw i32 %4287, 1
  store i32 %4288, ptr @test_count, align 4, !tbaa !5
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = icmp eq i32 %4290, 335544384
  br i1 %4291, label %4345, label %4292

4292:                                             ; preds = %4286
  br label %4293

4293:                                             ; preds = %4292
  br label %4294

4294:                                             ; preds = %4293
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %4295 = call ptr @__errno_location() #12
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  store i32 %4296, ptr %89, align 4, !tbaa !5
  %4297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4298 = call i32 @s2n_print_stacktrace(ptr noundef %4297)
  %4299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4300 = trunc i8 %4299 to i1
  br i1 %4300, label %4301, label %4323

4301:                                             ; preds = %4294
  %4302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4303 = call i32 @fileno(ptr noundef %4302) #11
  %4304 = call i32 @isatty(i32 noundef %4303) #11
  %4305 = icmp ne i32 %4304, 0
  br i1 %4305, label %4306, label %4323

4306:                                             ; preds = %4301
  %4307 = load i32, ptr %89, align 4, !tbaa !5
  %4308 = call ptr @__errno_location() #12
  store i32 %4307, ptr %4308, align 4, !tbaa !5
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = load i32, ptr @test_count, align 4, !tbaa !5
  %4311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror(i32 noundef %4312, ptr noundef @.str.4)
  %4314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @s2n_strerror_debug(i32 noundef %4315, ptr noundef @.str.4)
  %4317 = call ptr @__errno_location() #12
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @strerror(i32 noundef %4318) #11
  %4320 = call ptr @__errno_location() #12
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4309, ptr noundef @.str.2, i32 noundef %4310, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4313, ptr noundef %4316, ptr noundef %4319, i32 noundef %4321) #11
  br label %4340

4323:                                             ; preds = %4301, %4294
  %4324 = load i32, ptr %89, align 4, !tbaa !5
  %4325 = call ptr @__errno_location() #12
  store i32 %4324, ptr %4325, align 4, !tbaa !5
  %4326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4327 = load i32, ptr @test_count, align 4, !tbaa !5
  %4328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4329 = load i32, ptr %4328, align 4, !tbaa !5
  %4330 = call ptr @s2n_strerror(i32 noundef %4329, ptr noundef @.str.4)
  %4331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  %4333 = call ptr @s2n_strerror_debug(i32 noundef %4332, ptr noundef @.str.4)
  %4334 = call ptr @__errno_location() #12
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  %4336 = call ptr @strerror(i32 noundef %4335) #11
  %4337 = call ptr @__errno_location() #12
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4326, ptr noundef @.str.5, i32 noundef %4327, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4330, ptr noundef %4333, ptr noundef %4336, i32 noundef %4338) #11
  br label %4340

4340:                                             ; preds = %4323, %4306
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4341

4341:                                             ; preds = %4340
  br label %4342

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

4343:                                             ; No predecessors!
  br label %4344

4344:                                             ; preds = %4343
  br label %4345

4345:                                             ; preds = %4344, %4286
  br label %4346

4346:                                             ; preds = %4345
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347
  %4349 = load i32, ptr @test_count, align 4, !tbaa !5
  %4350 = add nsw i32 %4349, 1
  store i32 %4350, ptr @test_count, align 4, !tbaa !5
  %4351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call ptr @s2n_strerror_debug(i32 noundef %4352, ptr noundef @.str.4)
  %4354 = icmp eq ptr %4353, null
  br i1 %4354, label %4355, label %4408

4355:                                             ; preds = %4348
  br label %4356

4356:                                             ; preds = %4355
  br label %4357

4357:                                             ; preds = %4356
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %4358 = call ptr @__errno_location() #12
  %4359 = load i32, ptr %4358, align 4, !tbaa !5
  store i32 %4359, ptr %90, align 4, !tbaa !5
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = call i32 @s2n_print_stacktrace(ptr noundef %4360)
  %4362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4363 = trunc i8 %4362 to i1
  br i1 %4363, label %4364, label %4386

4364:                                             ; preds = %4357
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @fileno(ptr noundef %4365) #11
  %4367 = call i32 @isatty(i32 noundef %4366) #11
  %4368 = icmp ne i32 %4367, 0
  br i1 %4368, label %4369, label %4386

4369:                                             ; preds = %4364
  %4370 = load i32, ptr %90, align 4, !tbaa !5
  %4371 = call ptr @__errno_location() #12
  store i32 %4370, ptr %4371, align 4, !tbaa !5
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = load i32, ptr @test_count, align 4, !tbaa !5
  %4374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call ptr @s2n_strerror(i32 noundef %4375, ptr noundef @.str.4)
  %4377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = call ptr @s2n_strerror_debug(i32 noundef %4378, ptr noundef @.str.4)
  %4380 = call ptr @__errno_location() #12
  %4381 = load i32, ptr %4380, align 4, !tbaa !5
  %4382 = call ptr @strerror(i32 noundef %4381) #11
  %4383 = call ptr @__errno_location() #12
  %4384 = load i32, ptr %4383, align 4, !tbaa !5
  %4385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4372, ptr noundef @.str.2, i32 noundef %4373, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4376, ptr noundef %4379, ptr noundef %4382, i32 noundef %4384) #11
  br label %4403

4386:                                             ; preds = %4364, %4357
  %4387 = load i32, ptr %90, align 4, !tbaa !5
  %4388 = call ptr @__errno_location() #12
  store i32 %4387, ptr %4388, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4392, ptr noundef @.str.4)
  %4394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4395 = load i32, ptr %4394, align 4, !tbaa !5
  %4396 = call ptr @s2n_strerror_debug(i32 noundef %4395, ptr noundef @.str.4)
  %4397 = call ptr @__errno_location() #12
  %4398 = load i32, ptr %4397, align 4, !tbaa !5
  %4399 = call ptr @strerror(i32 noundef %4398) #11
  %4400 = call ptr @__errno_location() #12
  %4401 = load i32, ptr %4400, align 4, !tbaa !5
  %4402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4389, ptr noundef @.str.5, i32 noundef %4390, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4393, ptr noundef %4396, ptr noundef %4399, i32 noundef %4401) #11
  br label %4403

4403:                                             ; preds = %4386, %4369
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4404

4404:                                             ; preds = %4403
  br label %4405

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

4406:                                             ; No predecessors!
  br label %4407

4407:                                             ; preds = %4406
  br label %4408

4408:                                             ; preds = %4407, %4348
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  br label %4411

4411:                                             ; preds = %4410
  br label %4412

4412:                                             ; preds = %4411
  br label %4413

4413:                                             ; preds = %4412
  %4414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4414, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4415 = call ptr @__errno_location() #12
  store i32 0, ptr %4415, align 4, !tbaa !5
  br label %4416

4416:                                             ; preds = %4413
  br label %4417

4417:                                             ; preds = %4416
  br label %4418

4418:                                             ; preds = %4417
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

4420:                                             ; preds = %4419
  %4421 = load i32, ptr @test_count, align 4, !tbaa !5
  %4422 = add nsw i32 %4421, 1
  store i32 %4422, ptr @test_count, align 4, !tbaa !5
  %4423 = load i32, ptr %87, align 4, !tbaa !5
  %4424 = icmp eq i32 %4423, 0
  br i1 %4424, label %4478, label %4425

4425:                                             ; preds = %4420
  br label %4426

4426:                                             ; preds = %4425
  br label %4427

4427:                                             ; preds = %4426
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %4428 = call ptr @__errno_location() #12
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  store i32 %4429, ptr %91, align 4, !tbaa !5
  %4430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4431 = call i32 @s2n_print_stacktrace(ptr noundef %4430)
  %4432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4433 = trunc i8 %4432 to i1
  br i1 %4433, label %4434, label %4456

4434:                                             ; preds = %4427
  %4435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4436 = call i32 @fileno(ptr noundef %4435) #11
  %4437 = call i32 @isatty(i32 noundef %4436) #11
  %4438 = icmp ne i32 %4437, 0
  br i1 %4438, label %4439, label %4456

4439:                                             ; preds = %4434
  %4440 = load i32, ptr %91, align 4, !tbaa !5
  %4441 = call ptr @__errno_location() #12
  store i32 %4440, ptr %4441, align 4, !tbaa !5
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = load i32, ptr @test_count, align 4, !tbaa !5
  %4444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @s2n_strerror(i32 noundef %4445, ptr noundef @.str.4)
  %4447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call ptr @s2n_strerror_debug(i32 noundef %4448, ptr noundef @.str.4)
  %4450 = call ptr @__errno_location() #12
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call ptr @strerror(i32 noundef %4451) #11
  %4453 = call ptr @__errno_location() #12
  %4454 = load i32, ptr %4453, align 4, !tbaa !5
  %4455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4442, ptr noundef @.str.2, i32 noundef %4443, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4446, ptr noundef %4449, ptr noundef %4452, i32 noundef %4454) #11
  br label %4473

4456:                                             ; preds = %4434, %4427
  %4457 = load i32, ptr %91, align 4, !tbaa !5
  %4458 = call ptr @__errno_location() #12
  store i32 %4457, ptr %4458, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror(i32 noundef %4462, ptr noundef @.str.4)
  %4464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call ptr @s2n_strerror_debug(i32 noundef %4465, ptr noundef @.str.4)
  %4467 = call ptr @__errno_location() #12
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call ptr @strerror(i32 noundef %4468) #11
  %4470 = call ptr @__errno_location() #12
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4459, ptr noundef @.str.5, i32 noundef %4460, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4463, ptr noundef %4466, ptr noundef %4469, i32 noundef %4471) #11
  br label %4473

4473:                                             ; preds = %4456, %4439
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4474

4474:                                             ; preds = %4473
  br label %4475

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

4476:                                             ; No predecessors!
  br label %4477

4477:                                             ; preds = %4476
  br label %4478

4478:                                             ; preds = %4477, %4420
  br label %4479

4479:                                             ; preds = %4478
  br label %4480

4480:                                             ; preds = %4479
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 176, ptr %81) #11
  %4481 = call i32 @s2n_connection_ptr_free(ptr noundef %77)
  %4482 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  store i32 %4481, ptr %4482, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #11
  store i64 0, ptr %93, align 8, !tbaa !45
  br label %4483

4483:                                             ; preds = %4955, %4480
  %4484 = load i64, ptr %93, align 8, !tbaa !45
  %4485 = icmp ult i64 %4484, 2
  br i1 %4485, label %4487, label %4486

4486:                                             ; preds = %4483
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  br label %4958

4487:                                             ; preds = %4483
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %4488 = load i64, ptr %93, align 8, !tbaa !45
  %4489 = getelementptr inbounds [2 x i32], ptr %10, i64 0, i64 %4488
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  store i32 %4490, ptr %94, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 51, ptr %95) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %95, ptr align 16 @__const.main._client_hello_bytes_message, i64 51, i1 false)
  br label %4491

4491:                                             ; preds = %4487
  %4492 = load i32, ptr @test_count, align 4, !tbaa !5
  %4493 = add nsw i32 %4492, 1
  store i32 %4493, ptr @test_count, align 4, !tbaa !5
  br label %4494

4494:                                             ; preds = %4491
  br label %4495

4495:                                             ; preds = %4494
  call void @llvm.lifetime.start.p0(i64 55, ptr %96) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %96, ptr align 16 @__const.main.client_hello_bytes, i64 55, i1 false)
  call void @llvm.lifetime.start.p0(i64 17, ptr %97) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %97, ptr align 16 @__const.main.expected_ja3, i64 17, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  %4496 = getelementptr inbounds [17 x i8], ptr %97, i64 0, i64 0
  %4497 = call i64 @strlen(ptr noundef %4496) #14
  store i64 %4497, ptr %98, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  %4498 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4498, ptr %99, align 8, !tbaa !9
  br label %4499

4499:                                             ; preds = %4495
  %4500 = load i32, ptr @test_count, align 4, !tbaa !5
  %4501 = add nsw i32 %4500, 1
  store i32 %4501, ptr @test_count, align 4, !tbaa !5
  %4502 = load ptr, ptr %99, align 8, !tbaa !9
  %4503 = icmp eq ptr %4502, null
  br i1 %4503, label %4504, label %4557

4504:                                             ; preds = %4499
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

4506:                                             ; preds = %4505
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %4507 = call ptr @__errno_location() #12
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  store i32 %4508, ptr %100, align 4, !tbaa !5
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = call i32 @s2n_print_stacktrace(ptr noundef %4509)
  %4511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4512 = trunc i8 %4511 to i1
  br i1 %4512, label %4513, label %4535

4513:                                             ; preds = %4506
  %4514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4515 = call i32 @fileno(ptr noundef %4514) #11
  %4516 = call i32 @isatty(i32 noundef %4515) #11
  %4517 = icmp ne i32 %4516, 0
  br i1 %4517, label %4518, label %4535

4518:                                             ; preds = %4513
  %4519 = load i32, ptr %100, align 4, !tbaa !5
  %4520 = call ptr @__errno_location() #12
  store i32 %4519, ptr %4520, align 4, !tbaa !5
  %4521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4522 = load i32, ptr @test_count, align 4, !tbaa !5
  %4523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  %4525 = call ptr @s2n_strerror(i32 noundef %4524, ptr noundef @.str.4)
  %4526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  %4528 = call ptr @s2n_strerror_debug(i32 noundef %4527, ptr noundef @.str.4)
  %4529 = call ptr @__errno_location() #12
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = call ptr @strerror(i32 noundef %4530) #11
  %4532 = call ptr @__errno_location() #12
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4521, ptr noundef @.str.2, i32 noundef %4522, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4525, ptr noundef %4528, ptr noundef %4531, i32 noundef %4533) #11
  br label %4552

4535:                                             ; preds = %4513, %4506
  %4536 = load i32, ptr %100, align 4, !tbaa !5
  %4537 = call ptr @__errno_location() #12
  store i32 %4536, ptr %4537, align 4, !tbaa !5
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = load i32, ptr @test_count, align 4, !tbaa !5
  %4540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4541 = load i32, ptr %4540, align 4, !tbaa !5
  %4542 = call ptr @s2n_strerror(i32 noundef %4541, ptr noundef @.str.4)
  %4543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4544 = load i32, ptr %4543, align 4, !tbaa !5
  %4545 = call ptr @s2n_strerror_debug(i32 noundef %4544, ptr noundef @.str.4)
  %4546 = call ptr @__errno_location() #12
  %4547 = load i32, ptr %4546, align 4, !tbaa !5
  %4548 = call ptr @strerror(i32 noundef %4547) #11
  %4549 = call ptr @__errno_location() #12
  %4550 = load i32, ptr %4549, align 4, !tbaa !5
  %4551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4538, ptr noundef @.str.5, i32 noundef %4539, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4542, ptr noundef %4545, ptr noundef %4548, i32 noundef %4550) #11
  br label %4552

4552:                                             ; preds = %4535, %4518
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

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

4555:                                             ; No predecessors!
  br label %4556

4556:                                             ; preds = %4555
  br label %4557

4557:                                             ; preds = %4556, %4499
  br label %4558

4558:                                             ; preds = %4557
  br label %4559

4559:                                             ; preds = %4558
  br label %4560

4560:                                             ; preds = %4559
  %4561 = load i32, ptr @test_count, align 4, !tbaa !5
  %4562 = add nsw i32 %4561, 1
  store i32 %4562, ptr @test_count, align 4, !tbaa !5
  %4563 = load ptr, ptr %99, align 8, !tbaa !9
  %4564 = load ptr, ptr %13, align 8, !tbaa !9
  %4565 = call i32 @s2n_connection_set_config(ptr noundef %4563, ptr noundef %4564)
  %4566 = icmp eq i32 %4565, -1
  br i1 %4566, label %4567, label %4620

4567:                                             ; preds = %4560
  br label %4568

4568:                                             ; preds = %4567
  br label %4569

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

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

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

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

4615:                                             ; preds = %4598, %4581
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4616

4616:                                             ; preds = %4615
  br label %4617

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

4618:                                             ; No predecessors!
  br label %4619

4619:                                             ; preds = %4618
  br label %4620

4620:                                             ; preds = %4619, %4560
  br label %4621

4621:                                             ; preds = %4620
  br label %4622

4622:                                             ; preds = %4621
  br label %4623

4623:                                             ; preds = %4622
  %4624 = load i32, ptr @test_count, align 4, !tbaa !5
  %4625 = add nsw i32 %4624, 1
  store i32 %4625, ptr @test_count, align 4, !tbaa !5
  %4626 = load ptr, ptr %99, align 8, !tbaa !9
  %4627 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4626, ptr noundef @.str.13)
  %4628 = icmp eq i32 %4627, -1
  br i1 %4628, label %4629, label %4682

4629:                                             ; preds = %4623
  br label %4630

4630:                                             ; preds = %4629
  br label %4631

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

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

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

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

4677:                                             ; preds = %4660, %4643
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4678

4678:                                             ; preds = %4677
  br label %4679

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

4680:                                             ; No predecessors!
  br label %4681

4681:                                             ; preds = %4680
  br label %4682

4682:                                             ; preds = %4681, %4623
  br label %4683

4683:                                             ; preds = %4682
  br label %4684

4684:                                             ; preds = %4683
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  store ptr null, ptr %103, align 8, !tbaa !9
  br label %4685

4685:                                             ; preds = %4684
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = add nsw i32 %4686, 1
  store i32 %4687, ptr @test_count, align 4, !tbaa !5
  %4688 = load ptr, ptr %99, align 8, !tbaa !9
  %4689 = getelementptr inbounds [55 x i8], ptr %96, i64 0, i64 0
  %4690 = load i32, ptr %94, align 4, !tbaa !5
  %4691 = call i32 @s2n_client_hello_from_source(ptr noundef %103, ptr noundef %4688, ptr noundef %4689, i32 noundef 55, i32 noundef %4690)
  %4692 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %4691, ptr %4692, align 4
  %4693 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %4694 = load i32, ptr %4693, align 4
  %4695 = call zeroext i1 @s2n_result_is_ok(i32 %4694)
  br i1 %4695, label %4749, label %4696

4696:                                             ; preds = %4685
  br label %4697

4697:                                             ; preds = %4696
  br label %4698

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

4705:                                             ; preds = %4698
  %4706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4707 = call i32 @fileno(ptr noundef %4706) #11
  %4708 = call i32 @isatty(i32 noundef %4707) #11
  %4709 = icmp ne i32 %4708, 0
  br i1 %4709, label %4710, label %4727

4710:                                             ; preds = %4705
  %4711 = load i32, ptr %105, align 4, !tbaa !5
  %4712 = call ptr @__errno_location() #12
  store i32 %4711, ptr %4712, align 4, !tbaa !5
  %4713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4714 = load i32, ptr @test_count, align 4, !tbaa !5
  %4715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4716 = load i32, ptr %4715, align 4, !tbaa !5
  %4717 = call ptr @s2n_strerror(i32 noundef %4716, ptr noundef @.str.4)
  %4718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4719 = load i32, ptr %4718, align 4, !tbaa !5
  %4720 = call ptr @s2n_strerror_debug(i32 noundef %4719, ptr noundef @.str.4)
  %4721 = call ptr @__errno_location() #12
  %4722 = load i32, ptr %4721, align 4, !tbaa !5
  %4723 = call ptr @strerror(i32 noundef %4722) #11
  %4724 = call ptr @__errno_location() #12
  %4725 = load i32, ptr %4724, align 4, !tbaa !5
  %4726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4713, ptr noundef @.str.2, i32 noundef %4714, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 310, ptr noundef %4717, ptr noundef %4720, ptr noundef %4723, i32 noundef %4725) #11
  br label %4744

4727:                                             ; preds = %4705, %4698
  %4728 = load i32, ptr %105, align 4, !tbaa !5
  %4729 = call ptr @__errno_location() #12
  store i32 %4728, ptr %4729, align 4, !tbaa !5
  %4730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4731 = load i32, ptr @test_count, align 4, !tbaa !5
  %4732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4733 = load i32, ptr %4732, align 4, !tbaa !5
  %4734 = call ptr @s2n_strerror(i32 noundef %4733, ptr noundef @.str.4)
  %4735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4736 = load i32, ptr %4735, align 4, !tbaa !5
  %4737 = call ptr @s2n_strerror_debug(i32 noundef %4736, ptr noundef @.str.4)
  %4738 = call ptr @__errno_location() #12
  %4739 = load i32, ptr %4738, align 4, !tbaa !5
  %4740 = call ptr @strerror(i32 noundef %4739) #11
  %4741 = call ptr @__errno_location() #12
  %4742 = load i32, ptr %4741, align 4, !tbaa !5
  %4743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4730, ptr noundef @.str.5, i32 noundef %4731, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 310, ptr noundef %4734, ptr noundef %4737, ptr noundef %4740, i32 noundef %4742) #11
  br label %4744

4744:                                             ; preds = %4727, %4710
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %4745

4745:                                             ; preds = %4744
  br label %4746

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

4747:                                             ; No predecessors!
  br label %4748

4748:                                             ; preds = %4747
  br label %4749

4749:                                             ; preds = %4748, %4685
  br label %4750

4750:                                             ; preds = %4749
  br label %4751

4751:                                             ; preds = %4750
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  store i32 0, ptr %106, align 4, !tbaa !5
  br label %4752

4752:                                             ; preds = %4751
  %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 = load ptr, ptr %103, align 8, !tbaa !9
  %4756 = load i64, ptr %98, align 8, !tbaa !45
  %4757 = trunc i64 %4756 to i32
  %4758 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %4759 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4755, i32 noundef 0, i32 noundef %4757, ptr noundef %4758, ptr noundef %106)
  %4760 = icmp eq i32 %4759, -1
  br i1 %4760, label %4761, label %4814

4761:                                             ; preds = %4752
  br label %4762

4762:                                             ; preds = %4761
  br label %4763

4763:                                             ; preds = %4762
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %4764 = call ptr @__errno_location() #12
  %4765 = load i32, ptr %4764, align 4, !tbaa !5
  store i32 %4765, ptr %107, align 4, !tbaa !5
  %4766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4767 = call i32 @s2n_print_stacktrace(ptr noundef %4766)
  %4768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4769 = trunc i8 %4768 to i1
  br i1 %4769, label %4770, label %4792

4770:                                             ; preds = %4763
  %4771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4772 = call i32 @fileno(ptr noundef %4771) #11
  %4773 = call i32 @isatty(i32 noundef %4772) #11
  %4774 = icmp ne i32 %4773, 0
  br i1 %4774, label %4775, label %4792

4775:                                             ; preds = %4770
  %4776 = load i32, ptr %107, align 4, !tbaa !5
  %4777 = call ptr @__errno_location() #12
  store i32 %4776, ptr %4777, align 4, !tbaa !5
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = load i32, ptr @test_count, align 4, !tbaa !5
  %4780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @s2n_strerror(i32 noundef %4781, ptr noundef @.str.4)
  %4783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call ptr @s2n_strerror_debug(i32 noundef %4784, ptr noundef @.str.4)
  %4786 = call ptr @__errno_location() #12
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @strerror(i32 noundef %4787) #11
  %4789 = call ptr @__errno_location() #12
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4778, ptr noundef @.str.2, i32 noundef %4779, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4782, ptr noundef %4785, ptr noundef %4788, i32 noundef %4790) #11
  br label %4809

4792:                                             ; preds = %4770, %4763
  %4793 = load i32, ptr %107, align 4, !tbaa !5
  %4794 = call ptr @__errno_location() #12
  store i32 %4793, ptr %4794, align 4, !tbaa !5
  %4795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4796 = load i32, ptr @test_count, align 4, !tbaa !5
  %4797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4798 = load i32, ptr %4797, align 4, !tbaa !5
  %4799 = call ptr @s2n_strerror(i32 noundef %4798, ptr noundef @.str.4)
  %4800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4801 = load i32, ptr %4800, align 4, !tbaa !5
  %4802 = call ptr @s2n_strerror_debug(i32 noundef %4801, ptr noundef @.str.4)
  %4803 = call ptr @__errno_location() #12
  %4804 = load i32, ptr %4803, align 4, !tbaa !5
  %4805 = call ptr @strerror(i32 noundef %4804) #11
  %4806 = call ptr @__errno_location() #12
  %4807 = load i32, ptr %4806, align 4, !tbaa !5
  %4808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4795, ptr noundef @.str.5, i32 noundef %4796, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4799, ptr noundef %4802, ptr noundef %4805, i32 noundef %4807) #11
  br label %4809

4809:                                             ; preds = %4792, %4775
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %4810

4810:                                             ; preds = %4809
  br label %4811

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

4812:                                             ; No predecessors!
  br label %4813

4813:                                             ; preds = %4812
  br label %4814

4814:                                             ; preds = %4813, %4752
  br label %4815

4815:                                             ; preds = %4814
  br label %4816

4816:                                             ; preds = %4815
  br label %4817

4817:                                             ; preds = %4816
  %4818 = load i32, ptr @test_count, align 4, !tbaa !5
  %4819 = add nsw i32 %4818, 1
  store i32 %4819, ptr @test_count, align 4, !tbaa !5
  %4820 = load i32, ptr %106, align 4, !tbaa !5
  %4821 = zext i32 %4820 to i64
  %4822 = load i64, ptr %98, align 8, !tbaa !45
  %4823 = icmp eq i64 %4821, %4822
  br i1 %4823, label %4877, label %4824

4824:                                             ; preds = %4817
  br label %4825

4825:                                             ; preds = %4824
  br label %4826

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

4833:                                             ; preds = %4826
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = call i32 @fileno(ptr noundef %4834) #11
  %4836 = call i32 @isatty(i32 noundef %4835) #11
  %4837 = icmp ne i32 %4836, 0
  br i1 %4837, label %4838, label %4855

4838:                                             ; preds = %4833
  %4839 = load i32, ptr %108, align 4, !tbaa !5
  %4840 = call ptr @__errno_location() #12
  store i32 %4839, ptr %4840, align 4, !tbaa !5
  %4841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4842 = load i32, ptr @test_count, align 4, !tbaa !5
  %4843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4844 = load i32, ptr %4843, align 4, !tbaa !5
  %4845 = call ptr @s2n_strerror(i32 noundef %4844, ptr noundef @.str.4)
  %4846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4847 = load i32, ptr %4846, align 4, !tbaa !5
  %4848 = call ptr @s2n_strerror_debug(i32 noundef %4847, ptr noundef @.str.4)
  %4849 = call ptr @__errno_location() #12
  %4850 = load i32, ptr %4849, align 4, !tbaa !5
  %4851 = call ptr @strerror(i32 noundef %4850) #11
  %4852 = call ptr @__errno_location() #12
  %4853 = load i32, ptr %4852, align 4, !tbaa !5
  %4854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4841, ptr noundef @.str.2, i32 noundef %4842, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4845, ptr noundef %4848, ptr noundef %4851, i32 noundef %4853) #11
  br label %4872

4855:                                             ; preds = %4833, %4826
  %4856 = load i32, ptr %108, align 4, !tbaa !5
  %4857 = call ptr @__errno_location() #12
  store i32 %4856, ptr %4857, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = load i32, ptr @test_count, align 4, !tbaa !5
  %4860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  %4862 = call ptr @s2n_strerror(i32 noundef %4861, ptr noundef @.str.4)
  %4863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call ptr @s2n_strerror_debug(i32 noundef %4864, ptr noundef @.str.4)
  %4866 = call ptr @__errno_location() #12
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  %4868 = call ptr @strerror(i32 noundef %4867) #11
  %4869 = call ptr @__errno_location() #12
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4858, ptr noundef @.str.5, i32 noundef %4859, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4862, ptr noundef %4865, ptr noundef %4868, i32 noundef %4870) #11
  br label %4872

4872:                                             ; preds = %4855, %4838
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %4873

4873:                                             ; preds = %4872
  br label %4874

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

4875:                                             ; No predecessors!
  br label %4876

4876:                                             ; preds = %4875
  br label %4877

4877:                                             ; preds = %4876, %4817
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878
  br label %4880

4880:                                             ; preds = %4879
  %4881 = load i32, ptr %106, align 4, !tbaa !5
  %4882 = icmp ne i32 %4881, 0
  br i1 %4882, label %4883, label %4949

4883:                                             ; preds = %4880
  br label %4884

4884:                                             ; preds = %4883
  %4885 = load i32, ptr @test_count, align 4, !tbaa !5
  %4886 = add nsw i32 %4885, 1
  store i32 %4886, ptr @test_count, align 4, !tbaa !5
  %4887 = getelementptr inbounds [17 x i8], ptr %97, i64 0, i64 0
  %4888 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %4889 = load i32, ptr %106, align 4, !tbaa !5
  %4890 = zext i32 %4889 to i64
  %4891 = call i32 @memcmp(ptr noundef %4887, ptr noundef %4888, i64 noundef %4890) #14
  %4892 = icmp eq i32 %4891, 0
  br i1 %4892, label %4946, label %4893

4893:                                             ; preds = %4884
  br label %4894

4894:                                             ; preds = %4893
  br label %4895

4895:                                             ; preds = %4894
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %4896 = call ptr @__errno_location() #12
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  store i32 %4897, ptr %109, align 4, !tbaa !5
  %4898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4899 = call i32 @s2n_print_stacktrace(ptr noundef %4898)
  %4900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4901 = trunc i8 %4900 to i1
  br i1 %4901, label %4902, label %4924

4902:                                             ; preds = %4895
  %4903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4904 = call i32 @fileno(ptr noundef %4903) #11
  %4905 = call i32 @isatty(i32 noundef %4904) #11
  %4906 = icmp ne i32 %4905, 0
  br i1 %4906, label %4907, label %4924

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

4924:                                             ; preds = %4902, %4895
  %4925 = load i32, ptr %109, align 4, !tbaa !5
  %4926 = call ptr @__errno_location() #12
  store i32 %4925, ptr %4926, align 4, !tbaa !5
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = load i32, ptr @test_count, align 4, !tbaa !5
  %4929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call ptr @s2n_strerror(i32 noundef %4930, ptr noundef @.str.4)
  %4932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call ptr @s2n_strerror_debug(i32 noundef %4933, ptr noundef @.str.4)
  %4935 = call ptr @__errno_location() #12
  %4936 = load i32, ptr %4935, align 4, !tbaa !5
  %4937 = call ptr @strerror(i32 noundef %4936) #11
  %4938 = call ptr @__errno_location() #12
  %4939 = load i32, ptr %4938, align 4, !tbaa !5
  %4940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4927, ptr noundef @.str.5, i32 noundef %4928, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 316, ptr noundef %4931, ptr noundef %4934, ptr noundef %4937, i32 noundef %4939) #11
  br label %4941

4941:                                             ; preds = %4924, %4907
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

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

4944:                                             ; No predecessors!
  br label %4945

4945:                                             ; preds = %4944
  br label %4946

4946:                                             ; preds = %4945, %4884
  br label %4947

4947:                                             ; preds = %4946
  br label %4948

4948:                                             ; preds = %4947
  br label %4949

4949:                                             ; preds = %4948, %4880
  br label %4950

4950:                                             ; preds = %4949
  br label %4951

4951:                                             ; preds = %4950
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  %4952 = call i32 @s2n_client_hello_free(ptr noundef %103)
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  %4953 = call i32 @s2n_connection_ptr_free(ptr noundef %99)
  %4954 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  store i32 %4953, ptr %4954, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @llvm.lifetime.end.p0(i64 17, ptr %97) #11
  call void @llvm.lifetime.end.p0(i64 55, ptr %96) #11
  call void @llvm.lifetime.end.p0(i64 51, ptr %95) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %4955

4955:                                             ; preds = %4951
  %4956 = load i64, ptr %93, align 8, !tbaa !45
  %4957 = add i64 %4956, 1
  store i64 %4957, ptr %93, align 8, !tbaa !45
  br label %4483, !llvm.loop !46

4958:                                             ; preds = %4486
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  store i64 0, ptr %111, align 8, !tbaa !45
  br label %4959

4959:                                             ; preds = %5437, %4958
  %4960 = load i64, ptr %111, align 8, !tbaa !45
  %4961 = icmp ult i64 %4960, 2
  br i1 %4961, label %4963, label %4962

4962:                                             ; preds = %4959
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  br label %5440

4963:                                             ; preds = %4959
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %4964 = load i64, ptr %111, align 8, !tbaa !45
  %4965 = getelementptr inbounds [2 x i32], ptr %10, i64 0, i64 %4964
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  store i32 %4966, ptr %112, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 43, ptr %113) #11
  call void @llvm.memset.p0.i64(ptr align 16 %113, i8 0, i64 43, i1 false)
  %4967 = getelementptr inbounds [43 x i8], ptr %113, i32 0, i32 0
  store i8 3, ptr %4967, align 16
  %4968 = getelementptr inbounds [43 x i8], ptr %113, i32 0, i32 1
  store i8 1, ptr %4968, align 1
  %4969 = getelementptr inbounds [43 x i8], ptr %113, i32 0, i32 36
  store i8 2, ptr %4969, align 4
  %4970 = getelementptr inbounds [43 x i8], ptr %113, i32 0, i32 37
  store i8 -64, ptr %4970, align 1
  %4971 = getelementptr inbounds [43 x i8], ptr %113, i32 0, i32 38
  store i8 47, ptr %4971, align 2
  %4972 = getelementptr inbounds [43 x i8], ptr %113, i32 0, i32 39
  store i8 1, ptr %4972, align 1
  br label %4973

4973:                                             ; preds = %4963
  %4974 = load i32, ptr @test_count, align 4, !tbaa !5
  %4975 = add nsw i32 %4974, 1
  store i32 %4975, ptr @test_count, align 4, !tbaa !5
  br label %4976

4976:                                             ; preds = %4973
  br label %4977

4977:                                             ; preds = %4976
  call void @llvm.lifetime.start.p0(i64 47, ptr %114) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %114, ptr align 16 @__const.main.client_hello_bytes.53, i64 47, i1 false)
  call void @llvm.lifetime.start.p0(i64 13, ptr %115) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %115, ptr align 1 @__const.main.expected_ja3.54, i64 13, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  %4978 = getelementptr inbounds [13 x i8], ptr %115, i64 0, i64 0
  %4979 = call i64 @strlen(ptr noundef %4978) #14
  store i64 %4979, ptr %116, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #11
  %4980 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4980, ptr %117, align 8, !tbaa !9
  br label %4981

4981:                                             ; preds = %4977
  %4982 = load i32, ptr @test_count, align 4, !tbaa !5
  %4983 = add nsw i32 %4982, 1
  store i32 %4983, ptr @test_count, align 4, !tbaa !5
  %4984 = load ptr, ptr %117, align 8, !tbaa !9
  %4985 = icmp eq ptr %4984, null
  br i1 %4985, label %4986, label %5039

4986:                                             ; preds = %4981
  br label %4987

4987:                                             ; preds = %4986
  br label %4988

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

4995:                                             ; preds = %4988
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = call i32 @fileno(ptr noundef %4996) #11
  %4998 = call i32 @isatty(i32 noundef %4997) #11
  %4999 = icmp ne i32 %4998, 0
  br i1 %4999, label %5000, label %5017

5000:                                             ; preds = %4995
  %5001 = load i32, ptr %118, align 4, !tbaa !5
  %5002 = call ptr @__errno_location() #12
  store i32 %5001, ptr %5002, align 4, !tbaa !5
  %5003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5004 = load i32, ptr @test_count, align 4, !tbaa !5
  %5005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @s2n_strerror(i32 noundef %5006, ptr noundef @.str.4)
  %5008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call ptr @s2n_strerror_debug(i32 noundef %5009, ptr noundef @.str.4)
  %5011 = call ptr @__errno_location() #12
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call ptr @strerror(i32 noundef %5012) #11
  %5014 = call ptr @__errno_location() #12
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5003, ptr noundef @.str.2, i32 noundef %5004, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 344, ptr noundef %5007, ptr noundef %5010, ptr noundef %5013, i32 noundef %5015) #11
  br label %5034

5017:                                             ; preds = %4995, %4988
  %5018 = load i32, ptr %118, align 4, !tbaa !5
  %5019 = call ptr @__errno_location() #12
  store i32 %5018, ptr %5019, align 4, !tbaa !5
  %5020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5021 = load i32, ptr @test_count, align 4, !tbaa !5
  %5022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @s2n_strerror(i32 noundef %5023, ptr noundef @.str.4)
  %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_debug(i32 noundef %5026, ptr noundef @.str.4)
  %5028 = call ptr @__errno_location() #12
  %5029 = load i32, ptr %5028, align 4, !tbaa !5
  %5030 = call ptr @strerror(i32 noundef %5029) #11
  %5031 = call ptr @__errno_location() #12
  %5032 = load i32, ptr %5031, align 4, !tbaa !5
  %5033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5020, ptr noundef @.str.5, i32 noundef %5021, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 344, ptr noundef %5024, ptr noundef %5027, ptr noundef %5030, i32 noundef %5032) #11
  br label %5034

5034:                                             ; preds = %5017, %5000
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5035

5035:                                             ; preds = %5034
  br label %5036

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

5037:                                             ; No predecessors!
  br label %5038

5038:                                             ; preds = %5037
  br label %5039

5039:                                             ; preds = %5038, %4981
  br label %5040

5040:                                             ; preds = %5039
  br label %5041

5041:                                             ; preds = %5040
  br label %5042

5042:                                             ; preds = %5041
  %5043 = load i32, ptr @test_count, align 4, !tbaa !5
  %5044 = add nsw i32 %5043, 1
  store i32 %5044, ptr @test_count, align 4, !tbaa !5
  %5045 = load ptr, ptr %117, align 8, !tbaa !9
  %5046 = load ptr, ptr %13, align 8, !tbaa !9
  %5047 = call i32 @s2n_connection_set_config(ptr noundef %5045, ptr noundef %5046)
  %5048 = icmp eq i32 %5047, -1
  br i1 %5048, label %5049, label %5102

5049:                                             ; preds = %5042
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

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

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

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

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

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

5098:                                             ; preds = %5097
  br label %5099

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

5100:                                             ; No predecessors!
  br label %5101

5101:                                             ; preds = %5100
  br label %5102

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

5103:                                             ; preds = %5102
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  %5106 = load i32, ptr @test_count, align 4, !tbaa !5
  %5107 = add nsw i32 %5106, 1
  store i32 %5107, ptr @test_count, align 4, !tbaa !5
  %5108 = load ptr, ptr %117, align 8, !tbaa !9
  %5109 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5108, ptr noundef @.str.13)
  %5110 = icmp eq i32 %5109, -1
  br i1 %5110, label %5111, label %5164

5111:                                             ; preds = %5105
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

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

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

5125:                                             ; preds = %5120
  %5126 = load i32, ptr %120, align 4, !tbaa !5
  %5127 = call ptr @__errno_location() #12
  store i32 %5126, ptr %5127, align 4, !tbaa !5
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = load i32, ptr @test_count, align 4, !tbaa !5
  %5130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @s2n_strerror(i32 noundef %5131, ptr noundef @.str.4)
  %5133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @s2n_strerror_debug(i32 noundef %5134, ptr noundef @.str.4)
  %5136 = call ptr @__errno_location() #12
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call ptr @strerror(i32 noundef %5137) #11
  %5139 = call ptr @__errno_location() #12
  %5140 = load i32, ptr %5139, align 4, !tbaa !5
  %5141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5128, ptr noundef @.str.2, i32 noundef %5129, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 346, ptr noundef %5132, ptr noundef %5135, ptr noundef %5138, i32 noundef %5140) #11
  br label %5159

5142:                                             ; preds = %5120, %5113
  %5143 = load i32, ptr %120, align 4, !tbaa !5
  %5144 = call ptr @__errno_location() #12
  store i32 %5143, ptr %5144, align 4, !tbaa !5
  %5145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5146 = load i32, ptr @test_count, align 4, !tbaa !5
  %5147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5148 = load i32, ptr %5147, align 4, !tbaa !5
  %5149 = call ptr @s2n_strerror(i32 noundef %5148, ptr noundef @.str.4)
  %5150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call ptr @s2n_strerror_debug(i32 noundef %5151, ptr noundef @.str.4)
  %5153 = call ptr @__errno_location() #12
  %5154 = load i32, ptr %5153, align 4, !tbaa !5
  %5155 = call ptr @strerror(i32 noundef %5154) #11
  %5156 = call ptr @__errno_location() #12
  %5157 = load i32, ptr %5156, align 4, !tbaa !5
  %5158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5145, ptr noundef @.str.5, i32 noundef %5146, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 346, ptr noundef %5149, ptr noundef %5152, ptr noundef %5155, i32 noundef %5157) #11
  br label %5159

5159:                                             ; preds = %5142, %5125
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5160

5160:                                             ; preds = %5159
  br label %5161

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

5162:                                             ; No predecessors!
  br label %5163

5163:                                             ; preds = %5162
  br label %5164

5164:                                             ; preds = %5163, %5105
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

5166:                                             ; preds = %5165
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #11
  store ptr null, ptr %121, align 8, !tbaa !9
  br label %5167

5167:                                             ; preds = %5166
  %5168 = load i32, ptr @test_count, align 4, !tbaa !5
  %5169 = add nsw i32 %5168, 1
  store i32 %5169, ptr @test_count, align 4, !tbaa !5
  %5170 = load ptr, ptr %117, align 8, !tbaa !9
  %5171 = getelementptr inbounds [47 x i8], ptr %114, i64 0, i64 0
  %5172 = load i32, ptr %112, align 4, !tbaa !5
  %5173 = call i32 @s2n_client_hello_from_source(ptr noundef %121, ptr noundef %5170, ptr noundef %5171, i32 noundef 47, i32 noundef %5172)
  %5174 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %5173, ptr %5174, align 4
  %5175 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  %5176 = load i32, ptr %5175, align 4
  %5177 = call zeroext i1 @s2n_result_is_ok(i32 %5176)
  br i1 %5177, label %5231, label %5178

5178:                                             ; preds = %5167
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

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

5187:                                             ; preds = %5180
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = call i32 @fileno(ptr noundef %5188) #11
  %5190 = call i32 @isatty(i32 noundef %5189) #11
  %5191 = icmp ne i32 %5190, 0
  br i1 %5191, label %5192, label %5209

5192:                                             ; preds = %5187
  %5193 = load i32, ptr %123, align 4, !tbaa !5
  %5194 = call ptr @__errno_location() #12
  store i32 %5193, ptr %5194, align 4, !tbaa !5
  %5195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5198 = load i32, ptr %5197, align 4, !tbaa !5
  %5199 = call ptr @s2n_strerror(i32 noundef %5198, ptr noundef @.str.4)
  %5200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5201 = load i32, ptr %5200, align 4, !tbaa !5
  %5202 = call ptr @s2n_strerror_debug(i32 noundef %5201, ptr noundef @.str.4)
  %5203 = call ptr @__errno_location() #12
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @strerror(i32 noundef %5204) #11
  %5206 = call ptr @__errno_location() #12
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5195, ptr noundef @.str.2, i32 noundef %5196, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 351, ptr noundef %5199, ptr noundef %5202, ptr noundef %5205, i32 noundef %5207) #11
  br label %5226

5209:                                             ; preds = %5187, %5180
  %5210 = load i32, ptr %123, align 4, !tbaa !5
  %5211 = call ptr @__errno_location() #12
  store i32 %5210, ptr %5211, align 4, !tbaa !5
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = load i32, ptr @test_count, align 4, !tbaa !5
  %5214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror(i32 noundef %5215, ptr noundef @.str.4)
  %5217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror_debug(i32 noundef %5218, ptr noundef @.str.4)
  %5220 = call ptr @__errno_location() #12
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @strerror(i32 noundef %5221) #11
  %5223 = call ptr @__errno_location() #12
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5212, ptr noundef @.str.5, i32 noundef %5213, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 351, ptr noundef %5216, ptr noundef %5219, ptr noundef %5222, i32 noundef %5224) #11
  br label %5226

5226:                                             ; preds = %5209, %5192
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5227

5227:                                             ; preds = %5226
  br label %5228

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

5229:                                             ; No predecessors!
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230, %5167
  br label %5232

5232:                                             ; preds = %5231
  br label %5233

5233:                                             ; preds = %5232
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  store i32 0, ptr %124, align 4, !tbaa !5
  br label %5234

5234:                                             ; preds = %5233
  %5235 = load i32, ptr @test_count, align 4, !tbaa !5
  %5236 = add nsw i32 %5235, 1
  store i32 %5236, ptr @test_count, align 4, !tbaa !5
  %5237 = load ptr, ptr %121, align 8, !tbaa !9
  %5238 = load i64, ptr %116, align 8, !tbaa !45
  %5239 = trunc i64 %5238 to i32
  %5240 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %5241 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %5237, i32 noundef 0, i32 noundef %5239, ptr noundef %5240, ptr noundef %124)
  %5242 = icmp eq i32 %5241, -1
  br i1 %5242, label %5243, label %5296

5243:                                             ; preds = %5234
  br label %5244

5244:                                             ; preds = %5243
  br label %5245

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

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

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

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

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

5292:                                             ; preds = %5291
  br label %5293

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

5294:                                             ; No predecessors!
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

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

5297:                                             ; preds = %5296
  br label %5298

5298:                                             ; preds = %5297
  br label %5299

5299:                                             ; preds = %5298
  %5300 = load i32, ptr @test_count, align 4, !tbaa !5
  %5301 = add nsw i32 %5300, 1
  store i32 %5301, ptr @test_count, align 4, !tbaa !5
  %5302 = load i32, ptr %124, align 4, !tbaa !5
  %5303 = zext i32 %5302 to i64
  %5304 = load i64, ptr %116, align 8, !tbaa !45
  %5305 = icmp eq i64 %5303, %5304
  br i1 %5305, label %5359, label %5306

5306:                                             ; preds = %5299
  br label %5307

5307:                                             ; preds = %5306
  br label %5308

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

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

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

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

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

5355:                                             ; preds = %5354
  br label %5356

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

5357:                                             ; No predecessors!
  br label %5358

5358:                                             ; preds = %5357
  br label %5359

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

5360:                                             ; preds = %5359
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

5362:                                             ; preds = %5361
  %5363 = load i32, ptr %124, align 4, !tbaa !5
  %5364 = icmp ne i32 %5363, 0
  br i1 %5364, label %5365, label %5431

5365:                                             ; preds = %5362
  br label %5366

5366:                                             ; preds = %5365
  %5367 = load i32, ptr @test_count, align 4, !tbaa !5
  %5368 = add nsw i32 %5367, 1
  store i32 %5368, ptr @test_count, align 4, !tbaa !5
  %5369 = getelementptr inbounds [13 x i8], ptr %115, i64 0, i64 0
  %5370 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %5371 = load i32, ptr %124, align 4, !tbaa !5
  %5372 = zext i32 %5371 to i64
  %5373 = call i32 @memcmp(ptr noundef %5369, ptr noundef %5370, i64 noundef %5372) #14
  %5374 = icmp eq i32 %5373, 0
  br i1 %5374, label %5428, label %5375

5375:                                             ; preds = %5366
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %5378 = call ptr @__errno_location() #12
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  store i32 %5379, ptr %127, align 4, !tbaa !5
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @s2n_print_stacktrace(ptr noundef %5380)
  %5382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5383 = trunc i8 %5382 to i1
  br i1 %5383, label %5384, label %5406

5384:                                             ; preds = %5377
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = call i32 @fileno(ptr noundef %5385) #11
  %5387 = call i32 @isatty(i32 noundef %5386) #11
  %5388 = icmp ne i32 %5387, 0
  br i1 %5388, label %5389, label %5406

5389:                                             ; preds = %5384
  %5390 = load i32, ptr %127, align 4, !tbaa !5
  %5391 = call ptr @__errno_location() #12
  store i32 %5390, ptr %5391, align 4, !tbaa !5
  %5392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5393 = load i32, ptr @test_count, align 4, !tbaa !5
  %5394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror(i32 noundef %5395, ptr noundef @.str.4)
  %5397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @s2n_strerror_debug(i32 noundef %5398, ptr noundef @.str.4)
  %5400 = call ptr @__errno_location() #12
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @strerror(i32 noundef %5401) #11
  %5403 = call ptr @__errno_location() #12
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5392, ptr noundef @.str.2, i32 noundef %5393, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 357, ptr noundef %5396, ptr noundef %5399, ptr noundef %5402, i32 noundef %5404) #11
  br label %5423

5406:                                             ; preds = %5384, %5377
  %5407 = load i32, ptr %127, align 4, !tbaa !5
  %5408 = call ptr @__errno_location() #12
  store i32 %5407, ptr %5408, align 4, !tbaa !5
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = load i32, ptr @test_count, align 4, !tbaa !5
  %5411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5412 = load i32, ptr %5411, align 4, !tbaa !5
  %5413 = call ptr @s2n_strerror(i32 noundef %5412, ptr noundef @.str.4)
  %5414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5415 = load i32, ptr %5414, align 4, !tbaa !5
  %5416 = call ptr @s2n_strerror_debug(i32 noundef %5415, ptr noundef @.str.4)
  %5417 = call ptr @__errno_location() #12
  %5418 = load i32, ptr %5417, align 4, !tbaa !5
  %5419 = call ptr @strerror(i32 noundef %5418) #11
  %5420 = call ptr @__errno_location() #12
  %5421 = load i32, ptr %5420, align 4, !tbaa !5
  %5422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5409, ptr noundef @.str.5, i32 noundef %5410, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 357, ptr noundef %5413, ptr noundef %5416, ptr noundef %5419, i32 noundef %5421) #11
  br label %5423

5423:                                             ; preds = %5406, %5389
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

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

5426:                                             ; No predecessors!
  br label %5427

5427:                                             ; preds = %5426
  br label %5428

5428:                                             ; preds = %5427, %5366
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

5430:                                             ; preds = %5429
  br label %5431

5431:                                             ; preds = %5430, %5362
  br label %5432

5432:                                             ; preds = %5431
  br label %5433

5433:                                             ; preds = %5432
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  %5434 = call i32 @s2n_client_hello_free(ptr noundef %121)
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  %5435 = call i32 @s2n_connection_ptr_free(ptr noundef %117)
  %5436 = getelementptr inbounds %struct.s2n_result, ptr %128, i32 0, i32 0
  store i32 %5435, ptr %5436, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  call void @llvm.lifetime.end.p0(i64 13, ptr %115) #11
  call void @llvm.lifetime.end.p0(i64 47, ptr %114) #11
  call void @llvm.lifetime.end.p0(i64 43, ptr %113) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %5437

5437:                                             ; preds = %5433
  %5438 = load i64, ptr %111, align 8, !tbaa !45
  %5439 = add i64 %5438, 1
  store i64 %5439, ptr %111, align 8, !tbaa !45
  br label %4959, !llvm.loop !48

5440:                                             ; preds = %4962
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #11
  %5441 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5441, ptr %129, align 8, !tbaa !9
  br label %5442

5442:                                             ; preds = %5440
  %5443 = load i32, ptr @test_count, align 4, !tbaa !5
  %5444 = add nsw i32 %5443, 1
  store i32 %5444, ptr @test_count, align 4, !tbaa !5
  %5445 = load ptr, ptr %129, align 8, !tbaa !9
  %5446 = icmp eq ptr %5445, null
  br i1 %5446, label %5447, label %5500

5447:                                             ; preds = %5442
  br label %5448

5448:                                             ; preds = %5447
  br label %5449

5449:                                             ; preds = %5448
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %5450 = call ptr @__errno_location() #12
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  store i32 %5451, ptr %130, align 4, !tbaa !5
  %5452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5453 = call i32 @s2n_print_stacktrace(ptr noundef %5452)
  %5454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5455 = trunc i8 %5454 to i1
  br i1 %5455, label %5456, label %5478

5456:                                             ; preds = %5449
  %5457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5458 = call i32 @fileno(ptr noundef %5457) #11
  %5459 = call i32 @isatty(i32 noundef %5458) #11
  %5460 = icmp ne i32 %5459, 0
  br i1 %5460, label %5461, label %5478

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

5478:                                             ; preds = %5456, %5449
  %5479 = load i32, ptr %130, align 4, !tbaa !5
  %5480 = call ptr @__errno_location() #12
  store i32 %5479, ptr %5480, align 4, !tbaa !5
  %5481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5482 = load i32, ptr @test_count, align 4, !tbaa !5
  %5483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  %5485 = call ptr @s2n_strerror(i32 noundef %5484, ptr noundef @.str.4)
  %5486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  %5488 = call ptr @s2n_strerror_debug(i32 noundef %5487, ptr noundef @.str.4)
  %5489 = call ptr @__errno_location() #12
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  %5491 = call ptr @strerror(i32 noundef %5490) #11
  %5492 = call ptr @__errno_location() #12
  %5493 = load i32, ptr %5492, align 4, !tbaa !5
  %5494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5481, ptr noundef @.str.5, i32 noundef %5482, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 364, ptr noundef %5485, ptr noundef %5488, ptr noundef %5491, i32 noundef %5493) #11
  br label %5495

5495:                                             ; preds = %5478, %5461
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %5496

5496:                                             ; preds = %5495
  br label %5497

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

5498:                                             ; No predecessors!
  br label %5499

5499:                                             ; preds = %5498
  br label %5500

5500:                                             ; preds = %5499, %5442
  br label %5501

5501:                                             ; preds = %5500
  br label %5502

5502:                                             ; preds = %5501
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #11
  %5503 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5503, ptr %131, align 8, !tbaa !9
  br label %5504

5504:                                             ; preds = %5502
  %5505 = load i32, ptr @test_count, align 4, !tbaa !5
  %5506 = add nsw i32 %5505, 1
  store i32 %5506, ptr @test_count, align 4, !tbaa !5
  %5507 = load ptr, ptr %131, align 8, !tbaa !9
  %5508 = icmp eq ptr %5507, null
  br i1 %5508, label %5509, label %5562

5509:                                             ; preds = %5504
  br label %5510

5510:                                             ; preds = %5509
  br label %5511

5511:                                             ; preds = %5510
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %5512 = call ptr @__errno_location() #12
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  store i32 %5513, ptr %132, align 4, !tbaa !5
  %5514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5515 = call i32 @s2n_print_stacktrace(ptr noundef %5514)
  %5516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5517 = trunc i8 %5516 to i1
  br i1 %5517, label %5518, label %5540

5518:                                             ; preds = %5511
  %5519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5520 = call i32 @fileno(ptr noundef %5519) #11
  %5521 = call i32 @isatty(i32 noundef %5520) #11
  %5522 = icmp ne i32 %5521, 0
  br i1 %5522, label %5523, label %5540

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

5540:                                             ; preds = %5518, %5511
  %5541 = load i32, ptr %132, align 4, !tbaa !5
  %5542 = call ptr @__errno_location() #12
  store i32 %5541, ptr %5542, align 4, !tbaa !5
  %5543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5544 = load i32, ptr @test_count, align 4, !tbaa !5
  %5545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5546 = load i32, ptr %5545, align 4, !tbaa !5
  %5547 = call ptr @s2n_strerror(i32 noundef %5546, ptr noundef @.str.4)
  %5548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5549 = load i32, ptr %5548, align 4, !tbaa !5
  %5550 = call ptr @s2n_strerror_debug(i32 noundef %5549, ptr noundef @.str.4)
  %5551 = call ptr @__errno_location() #12
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = call ptr @strerror(i32 noundef %5552) #11
  %5554 = call ptr @__errno_location() #12
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  %5556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5543, ptr noundef @.str.5, i32 noundef %5544, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 368, ptr noundef %5547, ptr noundef %5550, ptr noundef %5553, i32 noundef %5555) #11
  br label %5557

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

5558:                                             ; preds = %5557
  br label %5559

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

5560:                                             ; No predecessors!
  br label %5561

5561:                                             ; preds = %5560
  br label %5562

5562:                                             ; preds = %5561, %5504
  br label %5563

5563:                                             ; preds = %5562
  br label %5564

5564:                                             ; preds = %5563
  br label %5565

5565:                                             ; preds = %5564
  %5566 = load i32, ptr @test_count, align 4, !tbaa !5
  %5567 = add nsw i32 %5566, 1
  store i32 %5567, ptr @test_count, align 4, !tbaa !5
  %5568 = load ptr, ptr %131, align 8, !tbaa !9
  %5569 = load ptr, ptr %13, align 8, !tbaa !9
  %5570 = call i32 @s2n_connection_set_config(ptr noundef %5568, ptr noundef %5569)
  %5571 = icmp eq i32 %5570, -1
  br i1 %5571, label %5572, label %5625

5572:                                             ; preds = %5565
  br label %5573

5573:                                             ; preds = %5572
  br label %5574

5574:                                             ; preds = %5573
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %5575 = call ptr @__errno_location() #12
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  store i32 %5576, ptr %133, align 4, !tbaa !5
  %5577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5578 = call i32 @s2n_print_stacktrace(ptr noundef %5577)
  %5579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5580 = trunc i8 %5579 to i1
  br i1 %5580, label %5581, label %5603

5581:                                             ; preds = %5574
  %5582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5583 = call i32 @fileno(ptr noundef %5582) #11
  %5584 = call i32 @isatty(i32 noundef %5583) #11
  %5585 = icmp ne i32 %5584, 0
  br i1 %5585, label %5586, label %5603

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

5603:                                             ; preds = %5581, %5574
  %5604 = load i32, ptr %133, align 4, !tbaa !5
  %5605 = call ptr @__errno_location() #12
  store i32 %5604, ptr %5605, align 4, !tbaa !5
  %5606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5607 = load i32, ptr @test_count, align 4, !tbaa !5
  %5608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5609 = load i32, ptr %5608, align 4, !tbaa !5
  %5610 = call ptr @s2n_strerror(i32 noundef %5609, ptr noundef @.str.4)
  %5611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  %5613 = call ptr @s2n_strerror_debug(i32 noundef %5612, ptr noundef @.str.4)
  %5614 = call ptr @__errno_location() #12
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @strerror(i32 noundef %5615) #11
  %5617 = call ptr @__errno_location() #12
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5606, ptr noundef @.str.5, i32 noundef %5607, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 369, ptr noundef %5610, ptr noundef %5613, ptr noundef %5616, i32 noundef %5618) #11
  br label %5620

5620:                                             ; preds = %5603, %5586
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %5621

5621:                                             ; preds = %5620
  br label %5622

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

5623:                                             ; No predecessors!
  br label %5624

5624:                                             ; preds = %5623
  br label %5625

5625:                                             ; preds = %5624, %5565
  br label %5626

5626:                                             ; preds = %5625
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

5628:                                             ; preds = %5627
  %5629 = load i32, ptr @test_count, align 4, !tbaa !5
  %5630 = add nsw i32 %5629, 1
  store i32 %5630, ptr @test_count, align 4, !tbaa !5
  %5631 = load ptr, ptr %129, align 8, !tbaa !9
  %5632 = call i32 @s2n_client_hello_send(ptr noundef %5631)
  %5633 = icmp eq i32 %5632, -1
  br i1 %5633, label %5634, label %5687

5634:                                             ; preds = %5628
  br label %5635

5635:                                             ; preds = %5634
  br label %5636

5636:                                             ; preds = %5635
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %5637 = call ptr @__errno_location() #12
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  store i32 %5638, ptr %134, align 4, !tbaa !5
  %5639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5640 = call i32 @s2n_print_stacktrace(ptr noundef %5639)
  %5641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5642 = trunc i8 %5641 to i1
  br i1 %5642, label %5643, label %5665

5643:                                             ; preds = %5636
  %5644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5645 = call i32 @fileno(ptr noundef %5644) #11
  %5646 = call i32 @isatty(i32 noundef %5645) #11
  %5647 = icmp ne i32 %5646, 0
  br i1 %5647, label %5648, label %5665

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

5665:                                             ; preds = %5643, %5636
  %5666 = load i32, ptr %134, align 4, !tbaa !5
  %5667 = call ptr @__errno_location() #12
  store i32 %5666, ptr %5667, align 4, !tbaa !5
  %5668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5669 = load i32, ptr @test_count, align 4, !tbaa !5
  %5670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5671 = load i32, ptr %5670, align 4, !tbaa !5
  %5672 = call ptr @s2n_strerror(i32 noundef %5671, ptr noundef @.str.4)
  %5673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5674 = load i32, ptr %5673, align 4, !tbaa !5
  %5675 = call ptr @s2n_strerror_debug(i32 noundef %5674, ptr noundef @.str.4)
  %5676 = call ptr @__errno_location() #12
  %5677 = load i32, ptr %5676, align 4, !tbaa !5
  %5678 = call ptr @strerror(i32 noundef %5677) #11
  %5679 = call ptr @__errno_location() #12
  %5680 = load i32, ptr %5679, align 4, !tbaa !5
  %5681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5668, ptr noundef @.str.5, i32 noundef %5669, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 371, ptr noundef %5672, ptr noundef %5675, ptr noundef %5678, i32 noundef %5680) #11
  br label %5682

5682:                                             ; preds = %5665, %5648
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %5683

5683:                                             ; preds = %5682
  br label %5684

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

5685:                                             ; No predecessors!
  br label %5686

5686:                                             ; preds = %5685
  br label %5687

5687:                                             ; preds = %5686, %5628
  br label %5688

5688:                                             ; preds = %5687
  br label %5689

5689:                                             ; preds = %5688
  br label %5690

5690:                                             ; preds = %5689
  %5691 = load i32, ptr @test_count, align 4, !tbaa !5
  %5692 = add nsw i32 %5691, 1
  store i32 %5692, ptr @test_count, align 4, !tbaa !5
  %5693 = load ptr, ptr %129, align 8, !tbaa !9
  %5694 = getelementptr inbounds %struct.s2n_connection, ptr %5693, i32 0, i32 52
  %5695 = getelementptr inbounds %struct.s2n_handshake, ptr %5694, i32 0, i32 0
  %5696 = load ptr, ptr %131, align 8, !tbaa !9
  %5697 = getelementptr inbounds %struct.s2n_connection, ptr %5696, i32 0, i32 52
  %5698 = getelementptr inbounds %struct.s2n_handshake, ptr %5697, i32 0, i32 0
  %5699 = load ptr, ptr %129, align 8, !tbaa !9
  %5700 = getelementptr inbounds %struct.s2n_connection, ptr %5699, i32 0, i32 52
  %5701 = getelementptr inbounds %struct.s2n_handshake, ptr %5700, i32 0, i32 0
  %5702 = getelementptr inbounds %struct.s2n_stuffer, ptr %5701, i32 0, i32 2
  %5703 = load i32, ptr %5702, align 4, !tbaa !15
  %5704 = load ptr, ptr %129, align 8, !tbaa !9
  %5705 = getelementptr inbounds %struct.s2n_connection, ptr %5704, i32 0, i32 52
  %5706 = getelementptr inbounds %struct.s2n_handshake, ptr %5705, i32 0, i32 0
  %5707 = getelementptr inbounds %struct.s2n_stuffer, ptr %5706, i32 0, i32 1
  %5708 = load i32, ptr %5707, align 8, !tbaa !42
  %5709 = sub i32 %5703, %5708
  %5710 = call i32 @s2n_stuffer_copy(ptr noundef %5695, ptr noundef %5698, i32 noundef %5709)
  %5711 = icmp eq i32 %5710, -1
  br i1 %5711, label %5712, label %5765

5712:                                             ; preds = %5690
  br label %5713

5713:                                             ; preds = %5712
  br label %5714

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

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

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

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

5760:                                             ; preds = %5743, %5726
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %5761

5761:                                             ; preds = %5760
  br label %5762

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

5763:                                             ; No predecessors!
  br label %5764

5764:                                             ; preds = %5763
  br label %5765

5765:                                             ; preds = %5764, %5690
  br label %5766

5766:                                             ; preds = %5765
  br label %5767

5767:                                             ; preds = %5766
  br label %5768

5768:                                             ; preds = %5767
  %5769 = load i32, ptr @test_count, align 4, !tbaa !5
  %5770 = add nsw i32 %5769, 1
  store i32 %5770, ptr @test_count, align 4, !tbaa !5
  %5771 = load ptr, ptr %131, align 8, !tbaa !9
  %5772 = call i32 @s2n_client_hello_recv(ptr noundef %5771)
  %5773 = icmp eq i32 %5772, -1
  br i1 %5773, label %5774, label %5827

5774:                                             ; preds = %5768
  br label %5775

5775:                                             ; preds = %5774
  br label %5776

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

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

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

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

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

5823:                                             ; preds = %5822
  br label %5824

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

5825:                                             ; No predecessors!
  br label %5826

5826:                                             ; preds = %5825
  br label %5827

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

5828:                                             ; preds = %5827
  br label %5829

5829:                                             ; preds = %5828
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  %5830 = load ptr, ptr %131, align 8, !tbaa !9
  %5831 = call ptr @s2n_connection_get_client_hello(ptr noundef %5830)
  store ptr %5831, ptr %137, align 8, !tbaa !9
  br label %5832

5832:                                             ; preds = %5829
  %5833 = load i32, ptr @test_count, align 4, !tbaa !5
  %5834 = add nsw i32 %5833, 1
  store i32 %5834, ptr @test_count, align 4, !tbaa !5
  %5835 = load ptr, ptr %137, align 8, !tbaa !9
  %5836 = icmp eq ptr %5835, null
  br i1 %5836, label %5837, label %5890

5837:                                             ; preds = %5832
  br label %5838

5838:                                             ; preds = %5837
  br label %5839

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

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

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

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

5885:                                             ; preds = %5868, %5851
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5886

5886:                                             ; preds = %5885
  br label %5887

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

5888:                                             ; No predecessors!
  br label %5889

5889:                                             ; preds = %5888
  br label %5890

5890:                                             ; preds = %5889, %5832
  br label %5891

5891:                                             ; preds = %5890
  br label %5892

5892:                                             ; preds = %5891
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  store i32 0, ptr %139, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #11
  store i64 0, ptr %140, align 8, !tbaa !45
  br label %5893

5893:                                             ; preds = %6160, %5892
  %5894 = load i64, ptr %140, align 8, !tbaa !45
  %5895 = icmp ult i64 %5894, 10
  br i1 %5895, label %5897, label %5896

5896:                                             ; preds = %5893
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #11
  br label %6163

5897:                                             ; preds = %5893
  br label %5898

5898:                                             ; preds = %5897
  br label %5899

5899:                                             ; preds = %5898
  br label %5900

5900:                                             ; preds = %5899
  %5901 = load i32, ptr @test_count, align 4, !tbaa !5
  %5902 = add nsw i32 %5901, 1
  store i32 %5902, ptr @test_count, align 4, !tbaa !5
  %5903 = load ptr, ptr %137, align 8, !tbaa !9
  %5904 = load i64, ptr %140, align 8, !tbaa !45
  %5905 = trunc i64 %5904 to i32
  %5906 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %5907 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %5903, i32 noundef 0, i32 noundef %5905, ptr noundef %5906, ptr noundef %139)
  %5908 = icmp eq i32 %5907, -1
  br i1 %5908, label %5962, label %5909

5909:                                             ; preds = %5900
  br label %5910

5910:                                             ; preds = %5909
  br label %5911

5911:                                             ; preds = %5910
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %5912 = call ptr @__errno_location() #12
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  store i32 %5913, ptr %141, align 4, !tbaa !5
  %5914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5915 = call i32 @s2n_print_stacktrace(ptr noundef %5914)
  %5916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5917 = trunc i8 %5916 to i1
  br i1 %5917, label %5918, label %5940

5918:                                             ; preds = %5911
  %5919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5920 = call i32 @fileno(ptr noundef %5919) #11
  %5921 = call i32 @isatty(i32 noundef %5920) #11
  %5922 = icmp ne i32 %5921, 0
  br i1 %5922, label %5923, label %5940

5923:                                             ; preds = %5918
  %5924 = load i32, ptr %141, align 4, !tbaa !5
  %5925 = call ptr @__errno_location() #12
  store i32 %5924, ptr %5925, align 4, !tbaa !5
  %5926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5927 = load i32, ptr @test_count, align 4, !tbaa !5
  %5928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call ptr @s2n_strerror(i32 noundef %5929, ptr noundef @.str.4)
  %5931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call ptr @s2n_strerror_debug(i32 noundef %5932, ptr noundef @.str.4)
  %5934 = call ptr @__errno_location() #12
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call ptr @strerror(i32 noundef %5935) #11
  %5937 = call ptr @__errno_location() #12
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  %5939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5926, ptr noundef @.str.2, i32 noundef %5927, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 384, ptr noundef %5930, ptr noundef %5933, ptr noundef %5936, i32 noundef %5938) #11
  br label %5957

5940:                                             ; preds = %5918, %5911
  %5941 = load i32, ptr %141, align 4, !tbaa !5
  %5942 = call ptr @__errno_location() #12
  store i32 %5941, ptr %5942, align 4, !tbaa !5
  %5943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5944 = load i32, ptr @test_count, align 4, !tbaa !5
  %5945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call ptr @s2n_strerror(i32 noundef %5946, ptr noundef @.str.4)
  %5948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5949 = load i32, ptr %5948, align 4, !tbaa !5
  %5950 = call ptr @s2n_strerror_debug(i32 noundef %5949, ptr noundef @.str.4)
  %5951 = call ptr @__errno_location() #12
  %5952 = load i32, ptr %5951, align 4, !tbaa !5
  %5953 = call ptr @strerror(i32 noundef %5952) #11
  %5954 = call ptr @__errno_location() #12
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5943, ptr noundef @.str.5, i32 noundef %5944, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 384, ptr noundef %5947, ptr noundef %5950, ptr noundef %5953, i32 noundef %5955) #11
  br label %5957

5957:                                             ; preds = %5940, %5923
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %5958

5958:                                             ; preds = %5957
  br label %5959

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

5960:                                             ; No predecessors!
  br label %5961

5961:                                             ; preds = %5960
  br label %5962

5962:                                             ; preds = %5961, %5900
  br label %5963

5963:                                             ; preds = %5962
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

5965:                                             ; preds = %5964
  %5966 = load i32, ptr @test_count, align 4, !tbaa !5
  %5967 = add nsw i32 %5966, 1
  store i32 %5967, ptr @test_count, align 4, !tbaa !5
  %5968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = icmp eq i32 %5969, 469762120
  br i1 %5970, label %6024, label %5971

5971:                                             ; preds = %5965
  br label %5972

5972:                                             ; preds = %5971
  br label %5973

5973:                                             ; preds = %5972
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %5974 = call ptr @__errno_location() #12
  %5975 = load i32, ptr %5974, align 4, !tbaa !5
  store i32 %5975, ptr %142, align 4, !tbaa !5
  %5976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5977 = call i32 @s2n_print_stacktrace(ptr noundef %5976)
  %5978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5979 = trunc i8 %5978 to i1
  br i1 %5979, label %5980, label %6002

5980:                                             ; preds = %5973
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = call i32 @fileno(ptr noundef %5981) #11
  %5983 = call i32 @isatty(i32 noundef %5982) #11
  %5984 = icmp ne i32 %5983, 0
  br i1 %5984, label %5985, label %6002

5985:                                             ; preds = %5980
  %5986 = load i32, ptr %142, align 4, !tbaa !5
  %5987 = call ptr @__errno_location() #12
  store i32 %5986, ptr %5987, align 4, !tbaa !5
  %5988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5989 = load i32, ptr @test_count, align 4, !tbaa !5
  %5990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5991 = load i32, ptr %5990, align 4, !tbaa !5
  %5992 = call ptr @s2n_strerror(i32 noundef %5991, ptr noundef @.str.4)
  %5993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5994 = load i32, ptr %5993, align 4, !tbaa !5
  %5995 = call ptr @s2n_strerror_debug(i32 noundef %5994, ptr noundef @.str.4)
  %5996 = call ptr @__errno_location() #12
  %5997 = load i32, ptr %5996, align 4, !tbaa !5
  %5998 = call ptr @strerror(i32 noundef %5997) #11
  %5999 = call ptr @__errno_location() #12
  %6000 = load i32, ptr %5999, align 4, !tbaa !5
  %6001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5988, ptr noundef @.str.2, i32 noundef %5989, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 384, ptr noundef %5992, ptr noundef %5995, ptr noundef %5998, i32 noundef %6000) #11
  br label %6019

6002:                                             ; preds = %5980, %5973
  %6003 = load i32, ptr %142, align 4, !tbaa !5
  %6004 = call ptr @__errno_location() #12
  store i32 %6003, ptr %6004, align 4, !tbaa !5
  %6005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6006 = load i32, ptr @test_count, align 4, !tbaa !5
  %6007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6008 = load i32, ptr %6007, align 4, !tbaa !5
  %6009 = call ptr @s2n_strerror(i32 noundef %6008, ptr noundef @.str.4)
  %6010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6011 = load i32, ptr %6010, align 4, !tbaa !5
  %6012 = call ptr @s2n_strerror_debug(i32 noundef %6011, ptr noundef @.str.4)
  %6013 = call ptr @__errno_location() #12
  %6014 = load i32, ptr %6013, align 4, !tbaa !5
  %6015 = call ptr @strerror(i32 noundef %6014) #11
  %6016 = call ptr @__errno_location() #12
  %6017 = load i32, ptr %6016, align 4, !tbaa !5
  %6018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6005, ptr noundef @.str.5, i32 noundef %6006, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6009, ptr noundef %6012, ptr noundef %6015, i32 noundef %6017) #11
  br label %6019

6019:                                             ; preds = %6002, %5985
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6020

6020:                                             ; preds = %6019
  br label %6021

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

6022:                                             ; No predecessors!
  br label %6023

6023:                                             ; preds = %6022
  br label %6024

6024:                                             ; preds = %6023, %5965
  br label %6025

6025:                                             ; preds = %6024
  br label %6026

6026:                                             ; preds = %6025
  br label %6027

6027:                                             ; preds = %6026
  %6028 = load i32, ptr @test_count, align 4, !tbaa !5
  %6029 = add nsw i32 %6028, 1
  store i32 %6029, ptr @test_count, align 4, !tbaa !5
  %6030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @s2n_strerror_debug(i32 noundef %6031, ptr noundef @.str.4)
  %6033 = icmp eq ptr %6032, null
  br i1 %6033, label %6034, label %6087

6034:                                             ; preds = %6027
  br label %6035

6035:                                             ; preds = %6034
  br label %6036

6036:                                             ; preds = %6035
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6037 = call ptr @__errno_location() #12
  %6038 = load i32, ptr %6037, align 4, !tbaa !5
  store i32 %6038, ptr %143, align 4, !tbaa !5
  %6039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6040 = call i32 @s2n_print_stacktrace(ptr noundef %6039)
  %6041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6042 = trunc i8 %6041 to i1
  br i1 %6042, label %6043, label %6065

6043:                                             ; preds = %6036
  %6044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6045 = call i32 @fileno(ptr noundef %6044) #11
  %6046 = call i32 @isatty(i32 noundef %6045) #11
  %6047 = icmp ne i32 %6046, 0
  br i1 %6047, label %6048, label %6065

6048:                                             ; preds = %6043
  %6049 = load i32, ptr %143, align 4, !tbaa !5
  %6050 = call ptr @__errno_location() #12
  store i32 %6049, ptr %6050, align 4, !tbaa !5
  %6051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6052 = load i32, ptr @test_count, align 4, !tbaa !5
  %6053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call ptr @s2n_strerror(i32 noundef %6054, ptr noundef @.str.4)
  %6056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  %6058 = call ptr @s2n_strerror_debug(i32 noundef %6057, ptr noundef @.str.4)
  %6059 = call ptr @__errno_location() #12
  %6060 = load i32, ptr %6059, align 4, !tbaa !5
  %6061 = call ptr @strerror(i32 noundef %6060) #11
  %6062 = call ptr @__errno_location() #12
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6051, ptr noundef @.str.2, i32 noundef %6052, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6055, ptr noundef %6058, ptr noundef %6061, i32 noundef %6063) #11
  br label %6082

6065:                                             ; preds = %6043, %6036
  %6066 = load i32, ptr %143, align 4, !tbaa !5
  %6067 = call ptr @__errno_location() #12
  store i32 %6066, ptr %6067, align 4, !tbaa !5
  %6068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6069 = load i32, ptr @test_count, align 4, !tbaa !5
  %6070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6071 = load i32, ptr %6070, align 4, !tbaa !5
  %6072 = call ptr @s2n_strerror(i32 noundef %6071, ptr noundef @.str.4)
  %6073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6074 = load i32, ptr %6073, align 4, !tbaa !5
  %6075 = call ptr @s2n_strerror_debug(i32 noundef %6074, ptr noundef @.str.4)
  %6076 = call ptr @__errno_location() #12
  %6077 = load i32, ptr %6076, align 4, !tbaa !5
  %6078 = call ptr @strerror(i32 noundef %6077) #11
  %6079 = call ptr @__errno_location() #12
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6068, ptr noundef @.str.5, i32 noundef %6069, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6072, ptr noundef %6075, ptr noundef %6078, i32 noundef %6080) #11
  br label %6082

6082:                                             ; preds = %6065, %6048
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6083

6083:                                             ; preds = %6082
  br label %6084

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

6085:                                             ; No predecessors!
  br label %6086

6086:                                             ; preds = %6085
  br label %6087

6087:                                             ; preds = %6086, %6027
  br label %6088

6088:                                             ; preds = %6087
  br label %6089

6089:                                             ; preds = %6088
  br label %6090

6090:                                             ; preds = %6089
  br label %6091

6091:                                             ; preds = %6090
  br label %6092

6092:                                             ; preds = %6091
  %6093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6093, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6094 = call ptr @__errno_location() #12
  store i32 0, ptr %6094, align 4, !tbaa !5
  br label %6095

6095:                                             ; preds = %6092
  br label %6096

6096:                                             ; preds = %6095
  br label %6097

6097:                                             ; preds = %6096
  br label %6098

6098:                                             ; preds = %6097
  br label %6099

6099:                                             ; preds = %6098
  %6100 = load i32, ptr @test_count, align 4, !tbaa !5
  %6101 = add nsw i32 %6100, 1
  store i32 %6101, ptr @test_count, align 4, !tbaa !5
  %6102 = load i32, ptr %139, align 4, !tbaa !5
  %6103 = icmp eq i32 %6102, 0
  br i1 %6103, label %6157, label %6104

6104:                                             ; preds = %6099
  br label %6105

6105:                                             ; preds = %6104
  br label %6106

6106:                                             ; preds = %6105
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %6107 = call ptr @__errno_location() #12
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  store i32 %6108, ptr %144, align 4, !tbaa !5
  %6109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6110 = call i32 @s2n_print_stacktrace(ptr noundef %6109)
  %6111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6112 = trunc i8 %6111 to i1
  br i1 %6112, label %6113, label %6135

6113:                                             ; preds = %6106
  %6114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6115 = call i32 @fileno(ptr noundef %6114) #11
  %6116 = call i32 @isatty(i32 noundef %6115) #11
  %6117 = icmp ne i32 %6116, 0
  br i1 %6117, label %6118, label %6135

6118:                                             ; preds = %6113
  %6119 = load i32, ptr %144, align 4, !tbaa !5
  %6120 = call ptr @__errno_location() #12
  store i32 %6119, ptr %6120, align 4, !tbaa !5
  %6121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6122 = load i32, ptr @test_count, align 4, !tbaa !5
  %6123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6124 = load i32, ptr %6123, align 4, !tbaa !5
  %6125 = call ptr @s2n_strerror(i32 noundef %6124, ptr noundef @.str.4)
  %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_debug(i32 noundef %6127, ptr noundef @.str.4)
  %6129 = call ptr @__errno_location() #12
  %6130 = load i32, ptr %6129, align 4, !tbaa !5
  %6131 = call ptr @strerror(i32 noundef %6130) #11
  %6132 = call ptr @__errno_location() #12
  %6133 = load i32, ptr %6132, align 4, !tbaa !5
  %6134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6121, ptr noundef @.str.2, i32 noundef %6122, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 385, ptr noundef %6125, ptr noundef %6128, ptr noundef %6131, i32 noundef %6133) #11
  br label %6152

6135:                                             ; preds = %6113, %6106
  %6136 = load i32, ptr %144, align 4, !tbaa !5
  %6137 = call ptr @__errno_location() #12
  store i32 %6136, ptr %6137, align 4, !tbaa !5
  %6138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6139 = load i32, ptr @test_count, align 4, !tbaa !5
  %6140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6141 = load i32, ptr %6140, align 4, !tbaa !5
  %6142 = call ptr @s2n_strerror(i32 noundef %6141, ptr noundef @.str.4)
  %6143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6144 = load i32, ptr %6143, align 4, !tbaa !5
  %6145 = call ptr @s2n_strerror_debug(i32 noundef %6144, ptr noundef @.str.4)
  %6146 = call ptr @__errno_location() #12
  %6147 = load i32, ptr %6146, align 4, !tbaa !5
  %6148 = call ptr @strerror(i32 noundef %6147) #11
  %6149 = call ptr @__errno_location() #12
  %6150 = load i32, ptr %6149, align 4, !tbaa !5
  %6151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6138, ptr noundef @.str.5, i32 noundef %6139, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 385, ptr noundef %6142, ptr noundef %6145, ptr noundef %6148, i32 noundef %6150) #11
  br label %6152

6152:                                             ; preds = %6135, %6118
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %6153

6153:                                             ; preds = %6152
  br label %6154

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

6155:                                             ; No predecessors!
  br label %6156

6156:                                             ; preds = %6155
  br label %6157

6157:                                             ; preds = %6156, %6099
  br label %6158

6158:                                             ; preds = %6157
  br label %6159

6159:                                             ; preds = %6158
  br label %6160

6160:                                             ; preds = %6159
  %6161 = load i64, ptr %140, align 8, !tbaa !45
  %6162 = add i64 %6161, 1
  store i64 %6162, ptr %140, align 8, !tbaa !45
  br label %5893, !llvm.loop !49

6163:                                             ; preds = %5896
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  %6164 = call i32 @s2n_connection_ptr_free(ptr noundef %131)
  %6165 = getelementptr inbounds %struct.s2n_result, ptr %145, i32 0, i32 0
  store i32 %6164, ptr %6165, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  %6166 = call i32 @s2n_connection_ptr_free(ptr noundef %129)
  %6167 = getelementptr inbounds %struct.s2n_result, ptr %146, i32 0, i32 0
  store i32 %6166, ptr %6167, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #11
  store i64 0, ptr %147, align 8, !tbaa !45
  br label %6168

6168:                                             ; preds = %6640, %6163
  %6169 = load i64, ptr %147, align 8, !tbaa !45
  %6170 = icmp ult i64 %6169, 2
  br i1 %6170, label %6172, label %6171

6171:                                             ; preds = %6168
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  br label %6643

6172:                                             ; preds = %6168
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6173 = load i64, ptr %147, align 8, !tbaa !45
  %6174 = getelementptr inbounds [2 x i32], ptr %10, i64 0, i64 %6173
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  store i32 %6175, ptr %148, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %149) #11
  store i8 10, ptr %149, align 1, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 59, ptr %150) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %150, ptr align 16 @__const.main._client_hello_bytes_message.56, i64 59, i1 false)
  br label %6176

6176:                                             ; preds = %6172
  %6177 = load i32, ptr @test_count, align 4, !tbaa !5
  %6178 = add nsw i32 %6177, 1
  store i32 %6178, ptr @test_count, align 4, !tbaa !5
  br label %6179

6179:                                             ; preds = %6176
  br label %6180

6180:                                             ; preds = %6179
  call void @llvm.lifetime.start.p0(i64 63, ptr %151) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %151, ptr align 16 @__const.main.client_hello_bytes.57, i64 63, i1 false)
  call void @llvm.lifetime.start.p0(i64 17, ptr %152) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %152, ptr align 16 @__const.main.expected_ja3.58, i64 17, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  %6181 = getelementptr inbounds [17 x i8], ptr %152, i64 0, i64 0
  %6182 = call i64 @strlen(ptr noundef %6181) #14
  store i64 %6182, ptr %153, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #11
  %6183 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6183, ptr %154, align 8, !tbaa !9
  br label %6184

6184:                                             ; preds = %6180
  %6185 = load i32, ptr @test_count, align 4, !tbaa !5
  %6186 = add nsw i32 %6185, 1
  store i32 %6186, ptr @test_count, align 4, !tbaa !5
  %6187 = load ptr, ptr %154, align 8, !tbaa !9
  %6188 = icmp eq ptr %6187, null
  br i1 %6188, label %6189, label %6242

6189:                                             ; preds = %6184
  br label %6190

6190:                                             ; preds = %6189
  br label %6191

6191:                                             ; preds = %6190
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %6192 = call ptr @__errno_location() #12
  %6193 = load i32, ptr %6192, align 4, !tbaa !5
  store i32 %6193, ptr %155, align 4, !tbaa !5
  %6194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6195 = call i32 @s2n_print_stacktrace(ptr noundef %6194)
  %6196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6197 = trunc i8 %6196 to i1
  br i1 %6197, label %6198, label %6220

6198:                                             ; preds = %6191
  %6199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6200 = call i32 @fileno(ptr noundef %6199) #11
  %6201 = call i32 @isatty(i32 noundef %6200) #11
  %6202 = icmp ne i32 %6201, 0
  br i1 %6202, label %6203, label %6220

6203:                                             ; preds = %6198
  %6204 = load i32, ptr %155, align 4, !tbaa !5
  %6205 = call ptr @__errno_location() #12
  store i32 %6204, ptr %6205, align 4, !tbaa !5
  %6206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6207 = load i32, ptr @test_count, align 4, !tbaa !5
  %6208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call ptr @s2n_strerror(i32 noundef %6209, ptr noundef @.str.4)
  %6211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6212 = load i32, ptr %6211, align 4, !tbaa !5
  %6213 = call ptr @s2n_strerror_debug(i32 noundef %6212, ptr noundef @.str.4)
  %6214 = call ptr @__errno_location() #12
  %6215 = load i32, ptr %6214, align 4, !tbaa !5
  %6216 = call ptr @strerror(i32 noundef %6215) #11
  %6217 = call ptr @__errno_location() #12
  %6218 = load i32, ptr %6217, align 4, !tbaa !5
  %6219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6206, ptr noundef @.str.2, i32 noundef %6207, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 416, ptr noundef %6210, ptr noundef %6213, ptr noundef %6216, i32 noundef %6218) #11
  br label %6237

6220:                                             ; preds = %6198, %6191
  %6221 = load i32, ptr %155, align 4, !tbaa !5
  %6222 = call ptr @__errno_location() #12
  store i32 %6221, ptr %6222, align 4, !tbaa !5
  %6223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6224 = load i32, ptr @test_count, align 4, !tbaa !5
  %6225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call ptr @s2n_strerror(i32 noundef %6226, ptr noundef @.str.4)
  %6228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  %6230 = call ptr @s2n_strerror_debug(i32 noundef %6229, ptr noundef @.str.4)
  %6231 = call ptr @__errno_location() #12
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = call ptr @strerror(i32 noundef %6232) #11
  %6234 = call ptr @__errno_location() #12
  %6235 = load i32, ptr %6234, align 4, !tbaa !5
  %6236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6223, ptr noundef @.str.5, i32 noundef %6224, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 416, ptr noundef %6227, ptr noundef %6230, ptr noundef %6233, i32 noundef %6235) #11
  br label %6237

6237:                                             ; preds = %6220, %6203
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %6238

6238:                                             ; preds = %6237
  br label %6239

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

6240:                                             ; No predecessors!
  br label %6241

6241:                                             ; preds = %6240
  br label %6242

6242:                                             ; preds = %6241, %6184
  br label %6243

6243:                                             ; preds = %6242
  br label %6244

6244:                                             ; preds = %6243
  br label %6245

6245:                                             ; preds = %6244
  %6246 = load i32, ptr @test_count, align 4, !tbaa !5
  %6247 = add nsw i32 %6246, 1
  store i32 %6247, ptr @test_count, align 4, !tbaa !5
  %6248 = load ptr, ptr %154, align 8, !tbaa !9
  %6249 = load ptr, ptr %13, align 8, !tbaa !9
  %6250 = call i32 @s2n_connection_set_config(ptr noundef %6248, ptr noundef %6249)
  %6251 = icmp eq i32 %6250, -1
  br i1 %6251, label %6252, label %6305

6252:                                             ; preds = %6245
  br label %6253

6253:                                             ; preds = %6252
  br label %6254

6254:                                             ; preds = %6253
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %6255 = call ptr @__errno_location() #12
  %6256 = load i32, ptr %6255, align 4, !tbaa !5
  store i32 %6256, ptr %156, align 4, !tbaa !5
  %6257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6258 = call i32 @s2n_print_stacktrace(ptr noundef %6257)
  %6259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6260 = trunc i8 %6259 to i1
  br i1 %6260, label %6261, label %6283

6261:                                             ; preds = %6254
  %6262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6263 = call i32 @fileno(ptr noundef %6262) #11
  %6264 = call i32 @isatty(i32 noundef %6263) #11
  %6265 = icmp ne i32 %6264, 0
  br i1 %6265, label %6266, label %6283

6266:                                             ; preds = %6261
  %6267 = load i32, ptr %156, align 4, !tbaa !5
  %6268 = call ptr @__errno_location() #12
  store i32 %6267, ptr %6268, align 4, !tbaa !5
  %6269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6270 = load i32, ptr @test_count, align 4, !tbaa !5
  %6271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6272 = load i32, ptr %6271, align 4, !tbaa !5
  %6273 = call ptr @s2n_strerror(i32 noundef %6272, ptr noundef @.str.4)
  %6274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6275 = load i32, ptr %6274, align 4, !tbaa !5
  %6276 = call ptr @s2n_strerror_debug(i32 noundef %6275, ptr noundef @.str.4)
  %6277 = call ptr @__errno_location() #12
  %6278 = load i32, ptr %6277, align 4, !tbaa !5
  %6279 = call ptr @strerror(i32 noundef %6278) #11
  %6280 = call ptr @__errno_location() #12
  %6281 = load i32, ptr %6280, align 4, !tbaa !5
  %6282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6269, ptr noundef @.str.2, i32 noundef %6270, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 417, ptr noundef %6273, ptr noundef %6276, ptr noundef %6279, i32 noundef %6281) #11
  br label %6300

6283:                                             ; preds = %6261, %6254
  %6284 = load i32, ptr %156, align 4, !tbaa !5
  %6285 = call ptr @__errno_location() #12
  store i32 %6284, ptr %6285, align 4, !tbaa !5
  %6286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6287 = load i32, ptr @test_count, align 4, !tbaa !5
  %6288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6289 = load i32, ptr %6288, align 4, !tbaa !5
  %6290 = call ptr @s2n_strerror(i32 noundef %6289, ptr noundef @.str.4)
  %6291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call ptr @s2n_strerror_debug(i32 noundef %6292, ptr noundef @.str.4)
  %6294 = call ptr @__errno_location() #12
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  %6296 = call ptr @strerror(i32 noundef %6295) #11
  %6297 = call ptr @__errno_location() #12
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  %6299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6286, ptr noundef @.str.5, i32 noundef %6287, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 417, ptr noundef %6290, ptr noundef %6293, ptr noundef %6296, i32 noundef %6298) #11
  br label %6300

6300:                                             ; preds = %6283, %6266
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %6301

6301:                                             ; preds = %6300
  br label %6302

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

6303:                                             ; No predecessors!
  br label %6304

6304:                                             ; preds = %6303
  br label %6305

6305:                                             ; preds = %6304, %6245
  br label %6306

6306:                                             ; preds = %6305
  br label %6307

6307:                                             ; preds = %6306
  br label %6308

6308:                                             ; preds = %6307
  %6309 = load i32, ptr @test_count, align 4, !tbaa !5
  %6310 = add nsw i32 %6309, 1
  store i32 %6310, ptr @test_count, align 4, !tbaa !5
  %6311 = load ptr, ptr %154, align 8, !tbaa !9
  %6312 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6311, ptr noundef @.str.13)
  %6313 = icmp eq i32 %6312, -1
  br i1 %6313, label %6314, label %6367

6314:                                             ; preds = %6308
  br label %6315

6315:                                             ; preds = %6314
  br label %6316

6316:                                             ; preds = %6315
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %6317 = call ptr @__errno_location() #12
  %6318 = load i32, ptr %6317, align 4, !tbaa !5
  store i32 %6318, ptr %157, align 4, !tbaa !5
  %6319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6320 = call i32 @s2n_print_stacktrace(ptr noundef %6319)
  %6321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6322 = trunc i8 %6321 to i1
  br i1 %6322, label %6323, label %6345

6323:                                             ; preds = %6316
  %6324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6325 = call i32 @fileno(ptr noundef %6324) #11
  %6326 = call i32 @isatty(i32 noundef %6325) #11
  %6327 = icmp ne i32 %6326, 0
  br i1 %6327, label %6328, label %6345

6328:                                             ; preds = %6323
  %6329 = load i32, ptr %157, align 4, !tbaa !5
  %6330 = call ptr @__errno_location() #12
  store i32 %6329, ptr %6330, align 4, !tbaa !5
  %6331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6332 = load i32, ptr @test_count, align 4, !tbaa !5
  %6333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6334 = load i32, ptr %6333, align 4, !tbaa !5
  %6335 = call ptr @s2n_strerror(i32 noundef %6334, ptr noundef @.str.4)
  %6336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  %6338 = call ptr @s2n_strerror_debug(i32 noundef %6337, ptr noundef @.str.4)
  %6339 = call ptr @__errno_location() #12
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call ptr @strerror(i32 noundef %6340) #11
  %6342 = call ptr @__errno_location() #12
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6331, ptr noundef @.str.2, i32 noundef %6332, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 418, ptr noundef %6335, ptr noundef %6338, ptr noundef %6341, i32 noundef %6343) #11
  br label %6362

6345:                                             ; preds = %6323, %6316
  %6346 = load i32, ptr %157, align 4, !tbaa !5
  %6347 = call ptr @__errno_location() #12
  store i32 %6346, ptr %6347, align 4, !tbaa !5
  %6348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6349 = load i32, ptr @test_count, align 4, !tbaa !5
  %6350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6351 = load i32, ptr %6350, align 4, !tbaa !5
  %6352 = call ptr @s2n_strerror(i32 noundef %6351, ptr noundef @.str.4)
  %6353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  %6355 = call ptr @s2n_strerror_debug(i32 noundef %6354, ptr noundef @.str.4)
  %6356 = call ptr @__errno_location() #12
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = call ptr @strerror(i32 noundef %6357) #11
  %6359 = call ptr @__errno_location() #12
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  %6361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6348, ptr noundef @.str.5, i32 noundef %6349, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 418, ptr noundef %6352, ptr noundef %6355, ptr noundef %6358, i32 noundef %6360) #11
  br label %6362

6362:                                             ; preds = %6345, %6328
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %6363

6363:                                             ; preds = %6362
  br label %6364

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

6365:                                             ; No predecessors!
  br label %6366

6366:                                             ; preds = %6365
  br label %6367

6367:                                             ; preds = %6366, %6308
  br label %6368

6368:                                             ; preds = %6367
  br label %6369

6369:                                             ; preds = %6368
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #11
  store ptr null, ptr %158, align 8, !tbaa !9
  br label %6370

6370:                                             ; preds = %6369
  %6371 = load i32, ptr @test_count, align 4, !tbaa !5
  %6372 = add nsw i32 %6371, 1
  store i32 %6372, ptr @test_count, align 4, !tbaa !5
  %6373 = load ptr, ptr %154, align 8, !tbaa !9
  %6374 = getelementptr inbounds [63 x i8], ptr %151, i64 0, i64 0
  %6375 = load i32, ptr %148, align 4, !tbaa !5
  %6376 = call i32 @s2n_client_hello_from_source(ptr noundef %158, ptr noundef %6373, ptr noundef %6374, i32 noundef 63, i32 noundef %6375)
  %6377 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  store i32 %6376, ptr %6377, align 4
  %6378 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  %6379 = load i32, ptr %6378, align 4
  %6380 = call zeroext i1 @s2n_result_is_ok(i32 %6379)
  br i1 %6380, label %6434, label %6381

6381:                                             ; preds = %6370
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

6383:                                             ; preds = %6382
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %6384 = call ptr @__errno_location() #12
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  store i32 %6385, ptr %160, align 4, !tbaa !5
  %6386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6387 = call i32 @s2n_print_stacktrace(ptr noundef %6386)
  %6388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6389 = trunc i8 %6388 to i1
  br i1 %6389, label %6390, label %6412

6390:                                             ; preds = %6383
  %6391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6392 = call i32 @fileno(ptr noundef %6391) #11
  %6393 = call i32 @isatty(i32 noundef %6392) #11
  %6394 = icmp ne i32 %6393, 0
  br i1 %6394, label %6395, label %6412

6395:                                             ; preds = %6390
  %6396 = load i32, ptr %160, align 4, !tbaa !5
  %6397 = call ptr @__errno_location() #12
  store i32 %6396, ptr %6397, align 4, !tbaa !5
  %6398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6399 = load i32, ptr @test_count, align 4, !tbaa !5
  %6400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6401 = load i32, ptr %6400, align 4, !tbaa !5
  %6402 = call ptr @s2n_strerror(i32 noundef %6401, ptr noundef @.str.4)
  %6403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6404 = load i32, ptr %6403, align 4, !tbaa !5
  %6405 = call ptr @s2n_strerror_debug(i32 noundef %6404, ptr noundef @.str.4)
  %6406 = call ptr @__errno_location() #12
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  %6408 = call ptr @strerror(i32 noundef %6407) #11
  %6409 = call ptr @__errno_location() #12
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6398, ptr noundef @.str.2, i32 noundef %6399, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 423, ptr noundef %6402, ptr noundef %6405, ptr noundef %6408, i32 noundef %6410) #11
  br label %6429

6412:                                             ; preds = %6390, %6383
  %6413 = load i32, ptr %160, align 4, !tbaa !5
  %6414 = call ptr @__errno_location() #12
  store i32 %6413, ptr %6414, align 4, !tbaa !5
  %6415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6416 = load i32, ptr @test_count, align 4, !tbaa !5
  %6417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6418 = load i32, ptr %6417, align 4, !tbaa !5
  %6419 = call ptr @s2n_strerror(i32 noundef %6418, ptr noundef @.str.4)
  %6420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  %6422 = call ptr @s2n_strerror_debug(i32 noundef %6421, ptr noundef @.str.4)
  %6423 = call ptr @__errno_location() #12
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  %6425 = call ptr @strerror(i32 noundef %6424) #11
  %6426 = call ptr @__errno_location() #12
  %6427 = load i32, ptr %6426, align 4, !tbaa !5
  %6428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6415, ptr noundef @.str.5, i32 noundef %6416, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 423, ptr noundef %6419, ptr noundef %6422, ptr noundef %6425, i32 noundef %6427) #11
  br label %6429

6429:                                             ; preds = %6412, %6395
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %6430

6430:                                             ; preds = %6429
  br label %6431

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

6432:                                             ; No predecessors!
  br label %6433

6433:                                             ; preds = %6432
  br label %6434

6434:                                             ; preds = %6433, %6370
  br label %6435

6435:                                             ; preds = %6434
  br label %6436

6436:                                             ; preds = %6435
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  store i32 0, ptr %161, align 4, !tbaa !5
  br label %6437

6437:                                             ; preds = %6436
  %6438 = load i32, ptr @test_count, align 4, !tbaa !5
  %6439 = add nsw i32 %6438, 1
  store i32 %6439, ptr @test_count, align 4, !tbaa !5
  %6440 = load ptr, ptr %158, align 8, !tbaa !9
  %6441 = load i64, ptr %153, align 8, !tbaa !45
  %6442 = trunc i64 %6441 to i32
  %6443 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %6444 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %6440, i32 noundef 0, i32 noundef %6442, ptr noundef %6443, ptr noundef %161)
  %6445 = icmp eq i32 %6444, -1
  br i1 %6445, label %6446, label %6499

6446:                                             ; preds = %6437
  br label %6447

6447:                                             ; preds = %6446
  br label %6448

6448:                                             ; preds = %6447
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %6449 = call ptr @__errno_location() #12
  %6450 = load i32, ptr %6449, align 4, !tbaa !5
  store i32 %6450, ptr %162, align 4, !tbaa !5
  %6451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6452 = call i32 @s2n_print_stacktrace(ptr noundef %6451)
  %6453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6454 = trunc i8 %6453 to i1
  br i1 %6454, label %6455, label %6477

6455:                                             ; preds = %6448
  %6456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6457 = call i32 @fileno(ptr noundef %6456) #11
  %6458 = call i32 @isatty(i32 noundef %6457) #11
  %6459 = icmp ne i32 %6458, 0
  br i1 %6459, label %6460, label %6477

6460:                                             ; preds = %6455
  %6461 = load i32, ptr %162, align 4, !tbaa !5
  %6462 = call ptr @__errno_location() #12
  store i32 %6461, ptr %6462, align 4, !tbaa !5
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = load i32, ptr @test_count, align 4, !tbaa !5
  %6465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6466 = load i32, ptr %6465, align 4, !tbaa !5
  %6467 = call ptr @s2n_strerror(i32 noundef %6466, ptr noundef @.str.4)
  %6468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = call ptr @s2n_strerror_debug(i32 noundef %6469, ptr noundef @.str.4)
  %6471 = call ptr @__errno_location() #12
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  %6473 = call ptr @strerror(i32 noundef %6472) #11
  %6474 = call ptr @__errno_location() #12
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  %6476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6463, ptr noundef @.str.2, i32 noundef %6464, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 427, ptr noundef %6467, ptr noundef %6470, ptr noundef %6473, i32 noundef %6475) #11
  br label %6494

6477:                                             ; preds = %6455, %6448
  %6478 = load i32, ptr %162, align 4, !tbaa !5
  %6479 = call ptr @__errno_location() #12
  store i32 %6478, ptr %6479, align 4, !tbaa !5
  %6480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6481 = load i32, ptr @test_count, align 4, !tbaa !5
  %6482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6483 = load i32, ptr %6482, align 4, !tbaa !5
  %6484 = call ptr @s2n_strerror(i32 noundef %6483, ptr noundef @.str.4)
  %6485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6486 = load i32, ptr %6485, align 4, !tbaa !5
  %6487 = call ptr @s2n_strerror_debug(i32 noundef %6486, ptr noundef @.str.4)
  %6488 = call ptr @__errno_location() #12
  %6489 = load i32, ptr %6488, align 4, !tbaa !5
  %6490 = call ptr @strerror(i32 noundef %6489) #11
  %6491 = call ptr @__errno_location() #12
  %6492 = load i32, ptr %6491, align 4, !tbaa !5
  %6493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6480, ptr noundef @.str.5, i32 noundef %6481, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 427, ptr noundef %6484, ptr noundef %6487, ptr noundef %6490, i32 noundef %6492) #11
  br label %6494

6494:                                             ; preds = %6477, %6460
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %6495

6495:                                             ; preds = %6494
  br label %6496

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

6497:                                             ; No predecessors!
  br label %6498

6498:                                             ; preds = %6497
  br label %6499

6499:                                             ; preds = %6498, %6437
  br label %6500

6500:                                             ; preds = %6499
  br label %6501

6501:                                             ; preds = %6500
  br label %6502

6502:                                             ; preds = %6501
  %6503 = load i32, ptr @test_count, align 4, !tbaa !5
  %6504 = add nsw i32 %6503, 1
  store i32 %6504, ptr @test_count, align 4, !tbaa !5
  %6505 = load i32, ptr %161, align 4, !tbaa !5
  %6506 = zext i32 %6505 to i64
  %6507 = load i64, ptr %153, align 8, !tbaa !45
  %6508 = icmp eq i64 %6506, %6507
  br i1 %6508, label %6562, label %6509

6509:                                             ; preds = %6502
  br label %6510

6510:                                             ; preds = %6509
  br label %6511

6511:                                             ; preds = %6510
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %6512 = call ptr @__errno_location() #12
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  store i32 %6513, ptr %163, align 4, !tbaa !5
  %6514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6515 = call i32 @s2n_print_stacktrace(ptr noundef %6514)
  %6516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6517 = trunc i8 %6516 to i1
  br i1 %6517, label %6518, label %6540

6518:                                             ; preds = %6511
  %6519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6520 = call i32 @fileno(ptr noundef %6519) #11
  %6521 = call i32 @isatty(i32 noundef %6520) #11
  %6522 = icmp ne i32 %6521, 0
  br i1 %6522, label %6523, label %6540

6523:                                             ; preds = %6518
  %6524 = load i32, ptr %163, align 4, !tbaa !5
  %6525 = call ptr @__errno_location() #12
  store i32 %6524, ptr %6525, align 4, !tbaa !5
  %6526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6527 = load i32, ptr @test_count, align 4, !tbaa !5
  %6528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6529 = load i32, ptr %6528, align 4, !tbaa !5
  %6530 = call ptr @s2n_strerror(i32 noundef %6529, ptr noundef @.str.4)
  %6531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  %6533 = call ptr @s2n_strerror_debug(i32 noundef %6532, ptr noundef @.str.4)
  %6534 = call ptr @__errno_location() #12
  %6535 = load i32, ptr %6534, align 4, !tbaa !5
  %6536 = call ptr @strerror(i32 noundef %6535) #11
  %6537 = call ptr @__errno_location() #12
  %6538 = load i32, ptr %6537, align 4, !tbaa !5
  %6539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6526, ptr noundef @.str.2, i32 noundef %6527, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 428, ptr noundef %6530, ptr noundef %6533, ptr noundef %6536, i32 noundef %6538) #11
  br label %6557

6540:                                             ; preds = %6518, %6511
  %6541 = load i32, ptr %163, align 4, !tbaa !5
  %6542 = call ptr @__errno_location() #12
  store i32 %6541, ptr %6542, align 4, !tbaa !5
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = load i32, ptr @test_count, align 4, !tbaa !5
  %6545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6546 = load i32, ptr %6545, align 4, !tbaa !5
  %6547 = call ptr @s2n_strerror(i32 noundef %6546, ptr noundef @.str.4)
  %6548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6549 = load i32, ptr %6548, align 4, !tbaa !5
  %6550 = call ptr @s2n_strerror_debug(i32 noundef %6549, ptr noundef @.str.4)
  %6551 = call ptr @__errno_location() #12
  %6552 = load i32, ptr %6551, align 4, !tbaa !5
  %6553 = call ptr @strerror(i32 noundef %6552) #11
  %6554 = call ptr @__errno_location() #12
  %6555 = load i32, ptr %6554, align 4, !tbaa !5
  %6556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6543, ptr noundef @.str.5, i32 noundef %6544, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 428, ptr noundef %6547, ptr noundef %6550, ptr noundef %6553, i32 noundef %6555) #11
  br label %6557

6557:                                             ; preds = %6540, %6523
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %6558

6558:                                             ; preds = %6557
  br label %6559

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

6560:                                             ; No predecessors!
  br label %6561

6561:                                             ; preds = %6560
  br label %6562

6562:                                             ; preds = %6561, %6502
  br label %6563

6563:                                             ; preds = %6562
  br label %6564

6564:                                             ; preds = %6563
  br label %6565

6565:                                             ; preds = %6564
  %6566 = load i32, ptr %161, align 4, !tbaa !5
  %6567 = icmp ne i32 %6566, 0
  br i1 %6567, label %6568, label %6634

6568:                                             ; preds = %6565
  br label %6569

6569:                                             ; preds = %6568
  %6570 = load i32, ptr @test_count, align 4, !tbaa !5
  %6571 = add nsw i32 %6570, 1
  store i32 %6571, ptr @test_count, align 4, !tbaa !5
  %6572 = getelementptr inbounds [17 x i8], ptr %152, i64 0, i64 0
  %6573 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %6574 = load i32, ptr %161, align 4, !tbaa !5
  %6575 = zext i32 %6574 to i64
  %6576 = call i32 @memcmp(ptr noundef %6572, ptr noundef %6573, i64 noundef %6575) #14
  %6577 = icmp eq i32 %6576, 0
  br i1 %6577, label %6631, label %6578

6578:                                             ; preds = %6569
  br label %6579

6579:                                             ; preds = %6578
  br label %6580

6580:                                             ; preds = %6579
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %6581 = call ptr @__errno_location() #12
  %6582 = load i32, ptr %6581, align 4, !tbaa !5
  store i32 %6582, ptr %164, align 4, !tbaa !5
  %6583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6584 = call i32 @s2n_print_stacktrace(ptr noundef %6583)
  %6585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6586 = trunc i8 %6585 to i1
  br i1 %6586, label %6587, label %6609

6587:                                             ; preds = %6580
  %6588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6589 = call i32 @fileno(ptr noundef %6588) #11
  %6590 = call i32 @isatty(i32 noundef %6589) #11
  %6591 = icmp ne i32 %6590, 0
  br i1 %6591, label %6592, label %6609

6592:                                             ; preds = %6587
  %6593 = load i32, ptr %164, align 4, !tbaa !5
  %6594 = call ptr @__errno_location() #12
  store i32 %6593, ptr %6594, align 4, !tbaa !5
  %6595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6596 = load i32, ptr @test_count, align 4, !tbaa !5
  %6597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6598 = load i32, ptr %6597, align 4, !tbaa !5
  %6599 = call ptr @s2n_strerror(i32 noundef %6598, ptr noundef @.str.4)
  %6600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6601 = load i32, ptr %6600, align 4, !tbaa !5
  %6602 = call ptr @s2n_strerror_debug(i32 noundef %6601, ptr noundef @.str.4)
  %6603 = call ptr @__errno_location() #12
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  %6605 = call ptr @strerror(i32 noundef %6604) #11
  %6606 = call ptr @__errno_location() #12
  %6607 = load i32, ptr %6606, align 4, !tbaa !5
  %6608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6595, ptr noundef @.str.2, i32 noundef %6596, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 429, ptr noundef %6599, ptr noundef %6602, ptr noundef %6605, i32 noundef %6607) #11
  br label %6626

6609:                                             ; preds = %6587, %6580
  %6610 = load i32, ptr %164, align 4, !tbaa !5
  %6611 = call ptr @__errno_location() #12
  store i32 %6610, ptr %6611, align 4, !tbaa !5
  %6612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6613 = load i32, ptr @test_count, align 4, !tbaa !5
  %6614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6615 = load i32, ptr %6614, align 4, !tbaa !5
  %6616 = call ptr @s2n_strerror(i32 noundef %6615, ptr noundef @.str.4)
  %6617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6618 = load i32, ptr %6617, align 4, !tbaa !5
  %6619 = call ptr @s2n_strerror_debug(i32 noundef %6618, ptr noundef @.str.4)
  %6620 = call ptr @__errno_location() #12
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call ptr @strerror(i32 noundef %6621) #11
  %6623 = call ptr @__errno_location() #12
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6612, ptr noundef @.str.5, i32 noundef %6613, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 429, ptr noundef %6616, ptr noundef %6619, ptr noundef %6622, i32 noundef %6624) #11
  br label %6626

6626:                                             ; preds = %6609, %6592
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %6627

6627:                                             ; preds = %6626
  br label %6628

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

6629:                                             ; No predecessors!
  br label %6630

6630:                                             ; preds = %6629
  br label %6631

6631:                                             ; preds = %6630, %6569
  br label %6632

6632:                                             ; preds = %6631
  br label %6633

6633:                                             ; preds = %6632
  br label %6634

6634:                                             ; preds = %6633, %6565
  br label %6635

6635:                                             ; preds = %6634
  br label %6636

6636:                                             ; preds = %6635
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  %6637 = call i32 @s2n_client_hello_free(ptr noundef %158)
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #11
  %6638 = call i32 @s2n_connection_ptr_free(ptr noundef %154)
  %6639 = getelementptr inbounds %struct.s2n_result, ptr %165, i32 0, i32 0
  store i32 %6638, ptr %6639, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  call void @llvm.lifetime.end.p0(i64 17, ptr %152) #11
  call void @llvm.lifetime.end.p0(i64 63, ptr %151) #11
  call void @llvm.lifetime.end.p0(i64 59, ptr %150) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6640

6640:                                             ; preds = %6636
  %6641 = load i64, ptr %147, align 8, !tbaa !45
  %6642 = add i64 %6641, 1
  store i64 %6642, ptr %147, align 8, !tbaa !45
  br label %6168, !llvm.loop !51

6643:                                             ; preds = %6171
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #11
  %6644 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6644, ptr %166, align 8, !tbaa !9
  br label %6645

6645:                                             ; preds = %6643
  %6646 = load i32, ptr @test_count, align 4, !tbaa !5
  %6647 = add nsw i32 %6646, 1
  store i32 %6647, ptr @test_count, align 4, !tbaa !5
  %6648 = load ptr, ptr %166, align 8, !tbaa !9
  %6649 = icmp eq ptr %6648, null
  br i1 %6649, label %6650, label %6703

6650:                                             ; preds = %6645
  br label %6651

6651:                                             ; preds = %6650
  br label %6652

6652:                                             ; preds = %6651
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %6653 = call ptr @__errno_location() #12
  %6654 = load i32, ptr %6653, align 4, !tbaa !5
  store i32 %6654, ptr %167, align 4, !tbaa !5
  %6655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6656 = call i32 @s2n_print_stacktrace(ptr noundef %6655)
  %6657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6658 = trunc i8 %6657 to i1
  br i1 %6658, label %6659, label %6681

6659:                                             ; preds = %6652
  %6660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6661 = call i32 @fileno(ptr noundef %6660) #11
  %6662 = call i32 @isatty(i32 noundef %6661) #11
  %6663 = icmp ne i32 %6662, 0
  br i1 %6663, label %6664, label %6681

6664:                                             ; preds = %6659
  %6665 = load i32, ptr %167, align 4, !tbaa !5
  %6666 = call ptr @__errno_location() #12
  store i32 %6665, ptr %6666, align 4, !tbaa !5
  %6667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6668 = load i32, ptr @test_count, align 4, !tbaa !5
  %6669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6670 = load i32, ptr %6669, align 4, !tbaa !5
  %6671 = call ptr @s2n_strerror(i32 noundef %6670, ptr noundef @.str.4)
  %6672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6673 = load i32, ptr %6672, align 4, !tbaa !5
  %6674 = call ptr @s2n_strerror_debug(i32 noundef %6673, ptr noundef @.str.4)
  %6675 = call ptr @__errno_location() #12
  %6676 = load i32, ptr %6675, align 4, !tbaa !5
  %6677 = call ptr @strerror(i32 noundef %6676) #11
  %6678 = call ptr @__errno_location() #12
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6667, ptr noundef @.str.2, i32 noundef %6668, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 439, ptr noundef %6671, ptr noundef %6674, ptr noundef %6677, i32 noundef %6679) #11
  br label %6698

6681:                                             ; preds = %6659, %6652
  %6682 = load i32, ptr %167, align 4, !tbaa !5
  %6683 = call ptr @__errno_location() #12
  store i32 %6682, ptr %6683, align 4, !tbaa !5
  %6684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6685 = load i32, ptr @test_count, align 4, !tbaa !5
  %6686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6687 = load i32, ptr %6686, align 4, !tbaa !5
  %6688 = call ptr @s2n_strerror(i32 noundef %6687, ptr noundef @.str.4)
  %6689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6690 = load i32, ptr %6689, align 4, !tbaa !5
  %6691 = call ptr @s2n_strerror_debug(i32 noundef %6690, ptr noundef @.str.4)
  %6692 = call ptr @__errno_location() #12
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @strerror(i32 noundef %6693) #11
  %6695 = call ptr @__errno_location() #12
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6684, ptr noundef @.str.5, i32 noundef %6685, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 439, ptr noundef %6688, ptr noundef %6691, ptr noundef %6694, i32 noundef %6696) #11
  br label %6698

6698:                                             ; preds = %6681, %6664
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %6699

6699:                                             ; preds = %6698
  br label %6700

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

6701:                                             ; No predecessors!
  br label %6702

6702:                                             ; preds = %6701
  br label %6703

6703:                                             ; preds = %6702, %6645
  br label %6704

6704:                                             ; preds = %6703
  br label %6705

6705:                                             ; preds = %6704
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #11
  %6706 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6706, ptr %168, align 8, !tbaa !9
  br label %6707

6707:                                             ; preds = %6705
  %6708 = load i32, ptr @test_count, align 4, !tbaa !5
  %6709 = add nsw i32 %6708, 1
  store i32 %6709, ptr @test_count, align 4, !tbaa !5
  %6710 = load ptr, ptr %168, align 8, !tbaa !9
  %6711 = icmp eq ptr %6710, null
  br i1 %6711, label %6712, label %6765

6712:                                             ; preds = %6707
  br label %6713

6713:                                             ; preds = %6712
  br label %6714

6714:                                             ; preds = %6713
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %6715 = call ptr @__errno_location() #12
  %6716 = load i32, ptr %6715, align 4, !tbaa !5
  store i32 %6716, ptr %169, align 4, !tbaa !5
  %6717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6718 = call i32 @s2n_print_stacktrace(ptr noundef %6717)
  %6719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6720 = trunc i8 %6719 to i1
  br i1 %6720, label %6721, label %6743

6721:                                             ; preds = %6714
  %6722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6723 = call i32 @fileno(ptr noundef %6722) #11
  %6724 = call i32 @isatty(i32 noundef %6723) #11
  %6725 = icmp ne i32 %6724, 0
  br i1 %6725, label %6726, label %6743

6726:                                             ; preds = %6721
  %6727 = load i32, ptr %169, align 4, !tbaa !5
  %6728 = call ptr @__errno_location() #12
  store i32 %6727, ptr %6728, align 4, !tbaa !5
  %6729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6730 = load i32, ptr @test_count, align 4, !tbaa !5
  %6731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6732 = load i32, ptr %6731, align 4, !tbaa !5
  %6733 = call ptr @s2n_strerror(i32 noundef %6732, ptr noundef @.str.4)
  %6734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  %6736 = call ptr @s2n_strerror_debug(i32 noundef %6735, ptr noundef @.str.4)
  %6737 = call ptr @__errno_location() #12
  %6738 = load i32, ptr %6737, align 4, !tbaa !5
  %6739 = call ptr @strerror(i32 noundef %6738) #11
  %6740 = call ptr @__errno_location() #12
  %6741 = load i32, ptr %6740, align 4, !tbaa !5
  %6742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6729, ptr noundef @.str.2, i32 noundef %6730, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 443, ptr noundef %6733, ptr noundef %6736, ptr noundef %6739, i32 noundef %6741) #11
  br label %6760

6743:                                             ; preds = %6721, %6714
  %6744 = load i32, ptr %169, align 4, !tbaa !5
  %6745 = call ptr @__errno_location() #12
  store i32 %6744, ptr %6745, align 4, !tbaa !5
  %6746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6747 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6749, ptr noundef @.str.4)
  %6751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call ptr @s2n_strerror_debug(i32 noundef %6752, ptr noundef @.str.4)
  %6754 = call ptr @__errno_location() #12
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  %6756 = call ptr @strerror(i32 noundef %6755) #11
  %6757 = call ptr @__errno_location() #12
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  %6759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6746, ptr noundef @.str.5, i32 noundef %6747, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 443, ptr noundef %6750, ptr noundef %6753, ptr noundef %6756, i32 noundef %6758) #11
  br label %6760

6760:                                             ; preds = %6743, %6726
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %6761

6761:                                             ; preds = %6760
  br label %6762

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

6763:                                             ; No predecessors!
  br label %6764

6764:                                             ; preds = %6763
  br label %6765

6765:                                             ; preds = %6764, %6707
  br label %6766

6766:                                             ; preds = %6765
  br label %6767

6767:                                             ; preds = %6766
  br label %6768

6768:                                             ; preds = %6767
  %6769 = load i32, ptr @test_count, align 4, !tbaa !5
  %6770 = add nsw i32 %6769, 1
  store i32 %6770, ptr @test_count, align 4, !tbaa !5
  %6771 = load ptr, ptr %168, align 8, !tbaa !9
  %6772 = load ptr, ptr %13, align 8, !tbaa !9
  %6773 = call i32 @s2n_connection_set_config(ptr noundef %6771, ptr noundef %6772)
  %6774 = icmp eq i32 %6773, -1
  br i1 %6774, label %6775, label %6828

6775:                                             ; preds = %6768
  br label %6776

6776:                                             ; preds = %6775
  br label %6777

6777:                                             ; preds = %6776
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %6778 = call ptr @__errno_location() #12
  %6779 = load i32, ptr %6778, align 4, !tbaa !5
  store i32 %6779, ptr %170, align 4, !tbaa !5
  %6780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6781 = call i32 @s2n_print_stacktrace(ptr noundef %6780)
  %6782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6783 = trunc i8 %6782 to i1
  br i1 %6783, label %6784, label %6806

6784:                                             ; preds = %6777
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = call i32 @fileno(ptr noundef %6785) #11
  %6787 = call i32 @isatty(i32 noundef %6786) #11
  %6788 = icmp ne i32 %6787, 0
  br i1 %6788, label %6789, label %6806

6789:                                             ; preds = %6784
  %6790 = load i32, ptr %170, align 4, !tbaa !5
  %6791 = call ptr @__errno_location() #12
  store i32 %6790, ptr %6791, align 4, !tbaa !5
  %6792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6793 = load i32, ptr @test_count, align 4, !tbaa !5
  %6794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  %6796 = call ptr @s2n_strerror(i32 noundef %6795, ptr noundef @.str.4)
  %6797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6798 = load i32, ptr %6797, align 4, !tbaa !5
  %6799 = call ptr @s2n_strerror_debug(i32 noundef %6798, ptr noundef @.str.4)
  %6800 = call ptr @__errno_location() #12
  %6801 = load i32, ptr %6800, align 4, !tbaa !5
  %6802 = call ptr @strerror(i32 noundef %6801) #11
  %6803 = call ptr @__errno_location() #12
  %6804 = load i32, ptr %6803, align 4, !tbaa !5
  %6805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6792, ptr noundef @.str.2, i32 noundef %6793, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 444, ptr noundef %6796, ptr noundef %6799, ptr noundef %6802, i32 noundef %6804) #11
  br label %6823

6806:                                             ; preds = %6784, %6777
  %6807 = load i32, ptr %170, align 4, !tbaa !5
  %6808 = call ptr @__errno_location() #12
  store i32 %6807, ptr %6808, align 4, !tbaa !5
  %6809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6810 = load i32, ptr @test_count, align 4, !tbaa !5
  %6811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @s2n_strerror(i32 noundef %6812, ptr noundef @.str.4)
  %6814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call ptr @s2n_strerror_debug(i32 noundef %6815, ptr noundef @.str.4)
  %6817 = call ptr @__errno_location() #12
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call ptr @strerror(i32 noundef %6818) #11
  %6820 = call ptr @__errno_location() #12
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6809, ptr noundef @.str.5, i32 noundef %6810, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 444, ptr noundef %6813, ptr noundef %6816, ptr noundef %6819, i32 noundef %6821) #11
  br label %6823

6823:                                             ; preds = %6806, %6789
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %6824

6824:                                             ; preds = %6823
  br label %6825

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

6826:                                             ; No predecessors!
  br label %6827

6827:                                             ; preds = %6826
  br label %6828

6828:                                             ; preds = %6827, %6768
  br label %6829

6829:                                             ; preds = %6828
  br label %6830

6830:                                             ; preds = %6829
  br label %6831

6831:                                             ; preds = %6830
  %6832 = load i32, ptr @test_count, align 4, !tbaa !5
  %6833 = add nsw i32 %6832, 1
  store i32 %6833, ptr @test_count, align 4, !tbaa !5
  %6834 = load ptr, ptr %166, align 8, !tbaa !9
  %6835 = call i32 @s2n_client_hello_send(ptr noundef %6834)
  %6836 = icmp eq i32 %6835, -1
  br i1 %6836, label %6837, label %6890

6837:                                             ; preds = %6831
  br label %6838

6838:                                             ; preds = %6837
  br label %6839

6839:                                             ; preds = %6838
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %6840 = call ptr @__errno_location() #12
  %6841 = load i32, ptr %6840, align 4, !tbaa !5
  store i32 %6841, ptr %171, align 4, !tbaa !5
  %6842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6843 = call i32 @s2n_print_stacktrace(ptr noundef %6842)
  %6844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6845 = trunc i8 %6844 to i1
  br i1 %6845, label %6846, label %6868

6846:                                             ; preds = %6839
  %6847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6848 = call i32 @fileno(ptr noundef %6847) #11
  %6849 = call i32 @isatty(i32 noundef %6848) #11
  %6850 = icmp ne i32 %6849, 0
  br i1 %6850, label %6851, label %6868

6851:                                             ; preds = %6846
  %6852 = load i32, ptr %171, align 4, !tbaa !5
  %6853 = call ptr @__errno_location() #12
  store i32 %6852, ptr %6853, align 4, !tbaa !5
  %6854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6855 = load i32, ptr @test_count, align 4, !tbaa !5
  %6856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6857 = load i32, ptr %6856, align 4, !tbaa !5
  %6858 = call ptr @s2n_strerror(i32 noundef %6857, ptr noundef @.str.4)
  %6859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  %6861 = call ptr @s2n_strerror_debug(i32 noundef %6860, ptr noundef @.str.4)
  %6862 = call ptr @__errno_location() #12
  %6863 = load i32, ptr %6862, align 4, !tbaa !5
  %6864 = call ptr @strerror(i32 noundef %6863) #11
  %6865 = call ptr @__errno_location() #12
  %6866 = load i32, ptr %6865, align 4, !tbaa !5
  %6867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6854, ptr noundef @.str.2, i32 noundef %6855, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 446, ptr noundef %6858, ptr noundef %6861, ptr noundef %6864, i32 noundef %6866) #11
  br label %6885

6868:                                             ; preds = %6846, %6839
  %6869 = load i32, ptr %171, align 4, !tbaa !5
  %6870 = call ptr @__errno_location() #12
  store i32 %6869, ptr %6870, align 4, !tbaa !5
  %6871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6872 = load i32, ptr @test_count, align 4, !tbaa !5
  %6873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  %6875 = call ptr @s2n_strerror(i32 noundef %6874, ptr noundef @.str.4)
  %6876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call ptr @s2n_strerror_debug(i32 noundef %6877, ptr noundef @.str.4)
  %6879 = call ptr @__errno_location() #12
  %6880 = load i32, ptr %6879, align 4, !tbaa !5
  %6881 = call ptr @strerror(i32 noundef %6880) #11
  %6882 = call ptr @__errno_location() #12
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  %6884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6871, ptr noundef @.str.5, i32 noundef %6872, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 446, ptr noundef %6875, ptr noundef %6878, ptr noundef %6881, i32 noundef %6883) #11
  br label %6885

6885:                                             ; preds = %6868, %6851
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %6886

6886:                                             ; preds = %6885
  br label %6887

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

6888:                                             ; No predecessors!
  br label %6889

6889:                                             ; preds = %6888
  br label %6890

6890:                                             ; preds = %6889, %6831
  br label %6891

6891:                                             ; preds = %6890
  br label %6892

6892:                                             ; preds = %6891
  br label %6893

6893:                                             ; preds = %6892
  %6894 = load i32, ptr @test_count, align 4, !tbaa !5
  %6895 = add nsw i32 %6894, 1
  store i32 %6895, ptr @test_count, align 4, !tbaa !5
  %6896 = load ptr, ptr %166, align 8, !tbaa !9
  %6897 = getelementptr inbounds %struct.s2n_connection, ptr %6896, i32 0, i32 52
  %6898 = getelementptr inbounds %struct.s2n_handshake, ptr %6897, i32 0, i32 0
  %6899 = load ptr, ptr %168, align 8, !tbaa !9
  %6900 = getelementptr inbounds %struct.s2n_connection, ptr %6899, i32 0, i32 52
  %6901 = getelementptr inbounds %struct.s2n_handshake, ptr %6900, i32 0, i32 0
  %6902 = load ptr, ptr %166, align 8, !tbaa !9
  %6903 = getelementptr inbounds %struct.s2n_connection, ptr %6902, i32 0, i32 52
  %6904 = getelementptr inbounds %struct.s2n_handshake, ptr %6903, i32 0, i32 0
  %6905 = getelementptr inbounds %struct.s2n_stuffer, ptr %6904, i32 0, i32 2
  %6906 = load i32, ptr %6905, align 4, !tbaa !15
  %6907 = load ptr, ptr %166, align 8, !tbaa !9
  %6908 = getelementptr inbounds %struct.s2n_connection, ptr %6907, i32 0, i32 52
  %6909 = getelementptr inbounds %struct.s2n_handshake, ptr %6908, i32 0, i32 0
  %6910 = getelementptr inbounds %struct.s2n_stuffer, ptr %6909, i32 0, i32 1
  %6911 = load i32, ptr %6910, align 8, !tbaa !42
  %6912 = sub i32 %6906, %6911
  %6913 = call i32 @s2n_stuffer_copy(ptr noundef %6898, ptr noundef %6901, i32 noundef %6912)
  %6914 = icmp eq i32 %6913, -1
  br i1 %6914, label %6915, label %6968

6915:                                             ; preds = %6893
  br label %6916

6916:                                             ; preds = %6915
  br label %6917

6917:                                             ; preds = %6916
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %6918 = call ptr @__errno_location() #12
  %6919 = load i32, ptr %6918, align 4, !tbaa !5
  store i32 %6919, ptr %172, align 4, !tbaa !5
  %6920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6921 = call i32 @s2n_print_stacktrace(ptr noundef %6920)
  %6922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6923 = trunc i8 %6922 to i1
  br i1 %6923, label %6924, label %6946

6924:                                             ; preds = %6917
  %6925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6926 = call i32 @fileno(ptr noundef %6925) #11
  %6927 = call i32 @isatty(i32 noundef %6926) #11
  %6928 = icmp ne i32 %6927, 0
  br i1 %6928, label %6929, label %6946

6929:                                             ; preds = %6924
  %6930 = load i32, ptr %172, align 4, !tbaa !5
  %6931 = call ptr @__errno_location() #12
  store i32 %6930, ptr %6931, align 4, !tbaa !5
  %6932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6933 = load i32, ptr @test_count, align 4, !tbaa !5
  %6934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6935 = load i32, ptr %6934, align 4, !tbaa !5
  %6936 = call ptr @s2n_strerror(i32 noundef %6935, ptr noundef @.str.4)
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror_debug(i32 noundef %6938, ptr noundef @.str.4)
  %6940 = call ptr @__errno_location() #12
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @strerror(i32 noundef %6941) #11
  %6943 = call ptr @__errno_location() #12
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6932, ptr noundef @.str.2, i32 noundef %6933, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 448, ptr noundef %6936, ptr noundef %6939, ptr noundef %6942, i32 noundef %6944) #11
  br label %6963

6946:                                             ; preds = %6924, %6917
  %6947 = load i32, ptr %172, align 4, !tbaa !5
  %6948 = call ptr @__errno_location() #12
  store i32 %6947, ptr %6948, align 4, !tbaa !5
  %6949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6950 = load i32, ptr @test_count, align 4, !tbaa !5
  %6951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6952 = load i32, ptr %6951, align 4, !tbaa !5
  %6953 = call ptr @s2n_strerror(i32 noundef %6952, ptr noundef @.str.4)
  %6954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror_debug(i32 noundef %6955, ptr noundef @.str.4)
  %6957 = call ptr @__errno_location() #12
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call ptr @strerror(i32 noundef %6958) #11
  %6960 = call ptr @__errno_location() #12
  %6961 = load i32, ptr %6960, align 4, !tbaa !5
  %6962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6949, ptr noundef @.str.5, i32 noundef %6950, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 448, ptr noundef %6953, ptr noundef %6956, ptr noundef %6959, i32 noundef %6961) #11
  br label %6963

6963:                                             ; preds = %6946, %6929
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %6964

6964:                                             ; preds = %6963
  br label %6965

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

6966:                                             ; No predecessors!
  br label %6967

6967:                                             ; preds = %6966
  br label %6968

6968:                                             ; preds = %6967, %6893
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969
  br label %6971

6971:                                             ; preds = %6970
  %6972 = load i32, ptr @test_count, align 4, !tbaa !5
  %6973 = add nsw i32 %6972, 1
  store i32 %6973, ptr @test_count, align 4, !tbaa !5
  %6974 = load ptr, ptr %168, align 8, !tbaa !9
  %6975 = call i32 @s2n_client_hello_recv(ptr noundef %6974)
  %6976 = icmp eq i32 %6975, -1
  br i1 %6976, label %6977, label %7030

6977:                                             ; preds = %6971
  br label %6978

6978:                                             ; preds = %6977
  br label %6979

6979:                                             ; preds = %6978
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %6980 = call ptr @__errno_location() #12
  %6981 = load i32, ptr %6980, align 4, !tbaa !5
  store i32 %6981, ptr %173, align 4, !tbaa !5
  %6982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6983 = call i32 @s2n_print_stacktrace(ptr noundef %6982)
  %6984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6985 = trunc i8 %6984 to i1
  br i1 %6985, label %6986, label %7008

6986:                                             ; preds = %6979
  %6987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6988 = call i32 @fileno(ptr noundef %6987) #11
  %6989 = call i32 @isatty(i32 noundef %6988) #11
  %6990 = icmp ne i32 %6989, 0
  br i1 %6990, label %6991, label %7008

6991:                                             ; preds = %6986
  %6992 = load i32, ptr %173, align 4, !tbaa !5
  %6993 = call ptr @__errno_location() #12
  store i32 %6992, ptr %6993, align 4, !tbaa !5
  %6994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6995 = load i32, ptr @test_count, align 4, !tbaa !5
  %6996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6997 = load i32, ptr %6996, align 4, !tbaa !5
  %6998 = call ptr @s2n_strerror(i32 noundef %6997, ptr noundef @.str.4)
  %6999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @s2n_strerror_debug(i32 noundef %7000, ptr noundef @.str.4)
  %7002 = call ptr @__errno_location() #12
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @strerror(i32 noundef %7003) #11
  %7005 = call ptr @__errno_location() #12
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6994, ptr noundef @.str.2, i32 noundef %6995, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 449, ptr noundef %6998, ptr noundef %7001, ptr noundef %7004, i32 noundef %7006) #11
  br label %7025

7008:                                             ; preds = %6986, %6979
  %7009 = load i32, ptr %173, align 4, !tbaa !5
  %7010 = call ptr @__errno_location() #12
  store i32 %7009, ptr %7010, align 4, !tbaa !5
  %7011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7012 = load i32, ptr @test_count, align 4, !tbaa !5
  %7013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call ptr @s2n_strerror(i32 noundef %7014, ptr noundef @.str.4)
  %7016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call ptr @s2n_strerror_debug(i32 noundef %7017, ptr noundef @.str.4)
  %7019 = call ptr @__errno_location() #12
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call ptr @strerror(i32 noundef %7020) #11
  %7022 = call ptr @__errno_location() #12
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7011, ptr noundef @.str.5, i32 noundef %7012, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 449, ptr noundef %7015, ptr noundef %7018, ptr noundef %7021, i32 noundef %7023) #11
  br label %7025

7025:                                             ; preds = %7008, %6991
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7026

7026:                                             ; preds = %7025
  br label %7027

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

7028:                                             ; No predecessors!
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

7030:                                             ; preds = %7029, %6971
  br label %7031

7031:                                             ; preds = %7030
  br label %7032

7032:                                             ; preds = %7031
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #11
  %7033 = load ptr, ptr %168, align 8, !tbaa !9
  %7034 = call ptr @s2n_connection_get_client_hello(ptr noundef %7033)
  store ptr %7034, ptr %174, align 8, !tbaa !9
  br label %7035

7035:                                             ; preds = %7032
  %7036 = load i32, ptr @test_count, align 4, !tbaa !5
  %7037 = add nsw i32 %7036, 1
  store i32 %7037, ptr @test_count, align 4, !tbaa !5
  %7038 = load ptr, ptr %174, align 8, !tbaa !9
  %7039 = icmp eq ptr %7038, null
  br i1 %7039, label %7040, label %7093

7040:                                             ; preds = %7035
  br label %7041

7041:                                             ; preds = %7040
  br label %7042

7042:                                             ; preds = %7041
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %7043 = call ptr @__errno_location() #12
  %7044 = load i32, ptr %7043, align 4, !tbaa !5
  store i32 %7044, ptr %175, align 4, !tbaa !5
  %7045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7046 = call i32 @s2n_print_stacktrace(ptr noundef %7045)
  %7047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7048 = trunc i8 %7047 to i1
  br i1 %7048, label %7049, label %7071

7049:                                             ; preds = %7042
  %7050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7051 = call i32 @fileno(ptr noundef %7050) #11
  %7052 = call i32 @isatty(i32 noundef %7051) #11
  %7053 = icmp ne i32 %7052, 0
  br i1 %7053, label %7054, label %7071

7054:                                             ; preds = %7049
  %7055 = load i32, ptr %175, align 4, !tbaa !5
  %7056 = call ptr @__errno_location() #12
  store i32 %7055, ptr %7056, align 4, !tbaa !5
  %7057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7058 = load i32, ptr @test_count, align 4, !tbaa !5
  %7059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7060 = load i32, ptr %7059, align 4, !tbaa !5
  %7061 = call ptr @s2n_strerror(i32 noundef %7060, ptr noundef @.str.4)
  %7062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call ptr @s2n_strerror_debug(i32 noundef %7063, ptr noundef @.str.4)
  %7065 = call ptr @__errno_location() #12
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call ptr @strerror(i32 noundef %7066) #11
  %7068 = call ptr @__errno_location() #12
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  %7070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7057, ptr noundef @.str.2, i32 noundef %7058, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 452, ptr noundef %7061, ptr noundef %7064, ptr noundef %7067, i32 noundef %7069) #11
  br label %7088

7071:                                             ; preds = %7049, %7042
  %7072 = load i32, ptr %175, align 4, !tbaa !5
  %7073 = call ptr @__errno_location() #12
  store i32 %7072, ptr %7073, align 4, !tbaa !5
  %7074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7075 = load i32, ptr @test_count, align 4, !tbaa !5
  %7076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7077 = load i32, ptr %7076, align 4, !tbaa !5
  %7078 = call ptr @s2n_strerror(i32 noundef %7077, ptr noundef @.str.4)
  %7079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call ptr @s2n_strerror_debug(i32 noundef %7080, ptr noundef @.str.4)
  %7082 = call ptr @__errno_location() #12
  %7083 = load i32, ptr %7082, align 4, !tbaa !5
  %7084 = call ptr @strerror(i32 noundef %7083) #11
  %7085 = call ptr @__errno_location() #12
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  %7087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7074, ptr noundef @.str.5, i32 noundef %7075, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 452, ptr noundef %7078, ptr noundef %7081, ptr noundef %7084, i32 noundef %7086) #11
  br label %7088

7088:                                             ; preds = %7071, %7054
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %7089

7089:                                             ; preds = %7088
  br label %7090

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

7091:                                             ; No predecessors!
  br label %7092

7092:                                             ; preds = %7091
  br label %7093

7093:                                             ; preds = %7092, %7035
  br label %7094

7094:                                             ; preds = %7093
  br label %7095

7095:                                             ; preds = %7094
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  store i32 0, ptr %176, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  store i32 0, ptr %177, align 4, !tbaa !5
  br label %7096

7096:                                             ; preds = %7095
  %7097 = load i32, ptr @test_count, align 4, !tbaa !5
  %7098 = add nsw i32 %7097, 1
  store i32 %7098, ptr @test_count, align 4, !tbaa !5
  %7099 = load ptr, ptr %174, align 8, !tbaa !9
  %7100 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %7101 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %7099, i32 noundef 0, i32 noundef 16, ptr noundef %7100, ptr noundef %176, ptr noundef %177)
  %7102 = icmp eq i32 %7101, -1
  br i1 %7102, label %7103, label %7156

7103:                                             ; preds = %7096
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

7105:                                             ; preds = %7104
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %7106 = call ptr @__errno_location() #12
  %7107 = load i32, ptr %7106, align 4, !tbaa !5
  store i32 %7107, ptr %178, align 4, !tbaa !5
  %7108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7109 = call i32 @s2n_print_stacktrace(ptr noundef %7108)
  %7110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7111 = trunc i8 %7110 to i1
  br i1 %7111, label %7112, label %7134

7112:                                             ; preds = %7105
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = call i32 @fileno(ptr noundef %7113) #11
  %7115 = call i32 @isatty(i32 noundef %7114) #11
  %7116 = icmp ne i32 %7115, 0
  br i1 %7116, label %7117, label %7134

7117:                                             ; preds = %7112
  %7118 = load i32, ptr %178, align 4, !tbaa !5
  %7119 = call ptr @__errno_location() #12
  store i32 %7118, ptr %7119, align 4, !tbaa !5
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7123 = load i32, ptr %7122, align 4, !tbaa !5
  %7124 = call ptr @s2n_strerror(i32 noundef %7123, ptr noundef @.str.4)
  %7125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call ptr @s2n_strerror_debug(i32 noundef %7126, ptr noundef @.str.4)
  %7128 = call ptr @__errno_location() #12
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @strerror(i32 noundef %7129) #11
  %7131 = call ptr @__errno_location() #12
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7120, ptr noundef @.str.2, i32 noundef %7121, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 457, ptr noundef %7124, ptr noundef %7127, ptr noundef %7130, i32 noundef %7132) #11
  br label %7151

7134:                                             ; preds = %7112, %7105
  %7135 = load i32, ptr %178, align 4, !tbaa !5
  %7136 = call ptr @__errno_location() #12
  store i32 %7135, ptr %7136, align 4, !tbaa !5
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = load i32, ptr @test_count, align 4, !tbaa !5
  %7139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7140 = load i32, ptr %7139, align 4, !tbaa !5
  %7141 = call ptr @s2n_strerror(i32 noundef %7140, ptr noundef @.str.4)
  %7142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call ptr @s2n_strerror_debug(i32 noundef %7143, ptr noundef @.str.4)
  %7145 = call ptr @__errno_location() #12
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @strerror(i32 noundef %7146) #11
  %7148 = call ptr @__errno_location() #12
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7137, ptr noundef @.str.5, i32 noundef %7138, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 457, ptr noundef %7141, ptr noundef %7144, ptr noundef %7147, i32 noundef %7149) #11
  br label %7151

7151:                                             ; preds = %7134, %7117
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %7152

7152:                                             ; preds = %7151
  br label %7153

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

7154:                                             ; No predecessors!
  br label %7155

7155:                                             ; preds = %7154
  br label %7156

7156:                                             ; preds = %7155, %7096
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158
  %7160 = load i32, ptr @test_count, align 4, !tbaa !5
  %7161 = add nsw i32 %7160, 1
  store i32 %7161, ptr @test_count, align 4, !tbaa !5
  %7162 = load i32, ptr %177, align 4, !tbaa !5
  %7163 = icmp ugt i32 %7162, 16
  br i1 %7163, label %7217, label %7164

7164:                                             ; preds = %7159
  br label %7165

7165:                                             ; preds = %7164
  br label %7166

7166:                                             ; preds = %7165
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %7167 = call ptr @__errno_location() #12
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  store i32 %7168, ptr %179, align 4, !tbaa !5
  %7169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7170 = call i32 @s2n_print_stacktrace(ptr noundef %7169)
  %7171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7172 = trunc i8 %7171 to i1
  br i1 %7172, label %7173, label %7195

7173:                                             ; preds = %7166
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = call i32 @fileno(ptr noundef %7174) #11
  %7176 = call i32 @isatty(i32 noundef %7175) #11
  %7177 = icmp ne i32 %7176, 0
  br i1 %7177, label %7178, label %7195

7178:                                             ; preds = %7173
  %7179 = load i32, ptr %179, align 4, !tbaa !5
  %7180 = call ptr @__errno_location() #12
  store i32 %7179, ptr %7180, align 4, !tbaa !5
  %7181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7182 = load i32, ptr @test_count, align 4, !tbaa !5
  %7183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7184 = load i32, ptr %7183, align 4, !tbaa !5
  %7185 = call ptr @s2n_strerror(i32 noundef %7184, ptr noundef @.str.4)
  %7186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  %7188 = call ptr @s2n_strerror_debug(i32 noundef %7187, ptr noundef @.str.4)
  %7189 = call ptr @__errno_location() #12
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  %7191 = call ptr @strerror(i32 noundef %7190) #11
  %7192 = call ptr @__errno_location() #12
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7181, ptr noundef @.str.2, i32 noundef %7182, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 458, ptr noundef %7185, ptr noundef %7188, ptr noundef %7191, i32 noundef %7193) #11
  br label %7212

7195:                                             ; preds = %7173, %7166
  %7196 = load i32, ptr %179, align 4, !tbaa !5
  %7197 = call ptr @__errno_location() #12
  store i32 %7196, ptr %7197, align 4, !tbaa !5
  %7198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7199 = load i32, ptr @test_count, align 4, !tbaa !5
  %7200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7201 = load i32, ptr %7200, align 4, !tbaa !5
  %7202 = call ptr @s2n_strerror(i32 noundef %7201, ptr noundef @.str.4)
  %7203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7204 = load i32, ptr %7203, align 4, !tbaa !5
  %7205 = call ptr @s2n_strerror_debug(i32 noundef %7204, ptr noundef @.str.4)
  %7206 = call ptr @__errno_location() #12
  %7207 = load i32, ptr %7206, align 4, !tbaa !5
  %7208 = call ptr @strerror(i32 noundef %7207) #11
  %7209 = call ptr @__errno_location() #12
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7198, ptr noundef @.str.5, i32 noundef %7199, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 458, ptr noundef %7202, ptr noundef %7205, ptr noundef %7208, i32 noundef %7210) #11
  br label %7212

7212:                                             ; preds = %7195, %7178
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %7213

7213:                                             ; preds = %7212
  br label %7214

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

7215:                                             ; No predecessors!
  br label %7216

7216:                                             ; preds = %7215
  br label %7217

7217:                                             ; preds = %7216, %7159
  br label %7218

7218:                                             ; preds = %7217
  br label %7219

7219:                                             ; preds = %7218
  br label %7220

7220:                                             ; preds = %7219
  %7221 = load i32, ptr @test_count, align 4, !tbaa !5
  %7222 = add nsw i32 %7221, 1
  store i32 %7222, ptr @test_count, align 4, !tbaa !5
  %7223 = load i32, ptr %176, align 4, !tbaa !5
  %7224 = icmp eq i32 %7223, 16
  br i1 %7224, label %7278, label %7225

7225:                                             ; preds = %7220
  br label %7226

7226:                                             ; preds = %7225
  br label %7227

7227:                                             ; preds = %7226
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %7228 = call ptr @__errno_location() #12
  %7229 = load i32, ptr %7228, align 4, !tbaa !5
  store i32 %7229, ptr %180, align 4, !tbaa !5
  %7230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7231 = call i32 @s2n_print_stacktrace(ptr noundef %7230)
  %7232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7233 = trunc i8 %7232 to i1
  br i1 %7233, label %7234, label %7256

7234:                                             ; preds = %7227
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = call i32 @fileno(ptr noundef %7235) #11
  %7237 = call i32 @isatty(i32 noundef %7236) #11
  %7238 = icmp ne i32 %7237, 0
  br i1 %7238, label %7239, label %7256

7239:                                             ; preds = %7234
  %7240 = load i32, ptr %180, align 4, !tbaa !5
  %7241 = call ptr @__errno_location() #12
  store i32 %7240, ptr %7241, align 4, !tbaa !5
  %7242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7243 = load i32, ptr @test_count, align 4, !tbaa !5
  %7244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7245 = load i32, ptr %7244, align 4, !tbaa !5
  %7246 = call ptr @s2n_strerror(i32 noundef %7245, ptr noundef @.str.4)
  %7247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7248 = load i32, ptr %7247, align 4, !tbaa !5
  %7249 = call ptr @s2n_strerror_debug(i32 noundef %7248, ptr noundef @.str.4)
  %7250 = call ptr @__errno_location() #12
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call ptr @strerror(i32 noundef %7251) #11
  %7253 = call ptr @__errno_location() #12
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7242, ptr noundef @.str.2, i32 noundef %7243, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 459, ptr noundef %7246, ptr noundef %7249, ptr noundef %7252, i32 noundef %7254) #11
  br label %7273

7256:                                             ; preds = %7234, %7227
  %7257 = load i32, ptr %180, align 4, !tbaa !5
  %7258 = call ptr @__errno_location() #12
  store i32 %7257, ptr %7258, align 4, !tbaa !5
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = load i32, ptr @test_count, align 4, !tbaa !5
  %7261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7262 = load i32, ptr %7261, align 4, !tbaa !5
  %7263 = call ptr @s2n_strerror(i32 noundef %7262, ptr noundef @.str.4)
  %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_debug(i32 noundef %7265, ptr noundef @.str.4)
  %7267 = call ptr @__errno_location() #12
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @strerror(i32 noundef %7268) #11
  %7270 = call ptr @__errno_location() #12
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7259, ptr noundef @.str.5, i32 noundef %7260, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 459, ptr noundef %7263, ptr noundef %7266, ptr noundef %7269, i32 noundef %7271) #11
  br label %7273

7273:                                             ; preds = %7256, %7239
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %7274

7274:                                             ; preds = %7273
  br label %7275

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

7276:                                             ; No predecessors!
  br label %7277

7277:                                             ; preds = %7276
  br label %7278

7278:                                             ; preds = %7277, %7220
  br label %7279

7279:                                             ; preds = %7278
  br label %7280

7280:                                             ; preds = %7279
  br label %7281

7281:                                             ; preds = %7280
  %7282 = load i32, ptr @test_count, align 4, !tbaa !5
  %7283 = add nsw i32 %7282, 1
  store i32 %7283, ptr @test_count, align 4, !tbaa !5
  %7284 = getelementptr inbounds [16 x i8], ptr %17, i64 0, i64 0
  %7285 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %7286 = load i32, ptr %176, align 4, !tbaa !5
  %7287 = zext i32 %7286 to i64
  %7288 = call i32 @memcmp(ptr noundef %7284, ptr noundef %7285, i64 noundef %7287) #14
  %7289 = icmp eq i32 %7288, 0
  br i1 %7289, label %7290, label %7343

7290:                                             ; preds = %7281
  br label %7291

7291:                                             ; preds = %7290
  br label %7292

7292:                                             ; preds = %7291
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %7293 = call ptr @__errno_location() #12
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  store i32 %7294, ptr %181, align 4, !tbaa !5
  %7295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7296 = call i32 @s2n_print_stacktrace(ptr noundef %7295)
  %7297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7298 = trunc i8 %7297 to i1
  br i1 %7298, label %7299, label %7321

7299:                                             ; preds = %7292
  %7300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7301 = call i32 @fileno(ptr noundef %7300) #11
  %7302 = call i32 @isatty(i32 noundef %7301) #11
  %7303 = icmp ne i32 %7302, 0
  br i1 %7303, label %7304, label %7321

7304:                                             ; preds = %7299
  %7305 = load i32, ptr %181, align 4, !tbaa !5
  %7306 = call ptr @__errno_location() #12
  store i32 %7305, ptr %7306, align 4, !tbaa !5
  %7307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7308 = load i32, ptr @test_count, align 4, !tbaa !5
  %7309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror(i32 noundef %7310, ptr noundef @.str.4)
  %7312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @s2n_strerror_debug(i32 noundef %7313, ptr noundef @.str.4)
  %7315 = call ptr @__errno_location() #12
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call ptr @strerror(i32 noundef %7316) #11
  %7318 = call ptr @__errno_location() #12
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  %7320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7307, ptr noundef @.str.2, i32 noundef %7308, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 460, ptr noundef %7311, ptr noundef %7314, ptr noundef %7317, i32 noundef %7319) #11
  br label %7338

7321:                                             ; preds = %7299, %7292
  %7322 = load i32, ptr %181, align 4, !tbaa !5
  %7323 = call ptr @__errno_location() #12
  store i32 %7322, ptr %7323, align 4, !tbaa !5
  %7324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7325 = load i32, ptr @test_count, align 4, !tbaa !5
  %7326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @s2n_strerror(i32 noundef %7327, ptr noundef @.str.4)
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror_debug(i32 noundef %7330, ptr noundef @.str.4)
  %7332 = call ptr @__errno_location() #12
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @strerror(i32 noundef %7333) #11
  %7335 = call ptr @__errno_location() #12
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7324, ptr noundef @.str.5, i32 noundef %7325, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 460, ptr noundef %7328, ptr noundef %7331, ptr noundef %7334, i32 noundef %7336) #11
  br label %7338

7338:                                             ; preds = %7321, %7304
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %7339

7339:                                             ; preds = %7338
  br label %7340

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

7341:                                             ; No predecessors!
  br label %7342

7342:                                             ; preds = %7341
  br label %7343

7343:                                             ; preds = %7342, %7281
  br label %7344

7344:                                             ; preds = %7343
  br label %7345

7345:                                             ; preds = %7344
  call void @llvm.lifetime.start.p0(i64 16, ptr %182) #11
  call void @llvm.memset.p0.i64(ptr align 16 %182, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  store i32 0, ptr %183, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  store i32 0, ptr %184, align 4, !tbaa !5
  br label %7346

7346:                                             ; preds = %7345
  %7347 = load i32, ptr @test_count, align 4, !tbaa !5
  %7348 = add nsw i32 %7347, 1
  store i32 %7348, ptr @test_count, align 4, !tbaa !5
  %7349 = load ptr, ptr %174, align 8, !tbaa !9
  %7350 = getelementptr inbounds [16 x i8], ptr %182, i64 0, i64 0
  %7351 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %7349, i32 noundef 0, i32 noundef 16, ptr noundef %7350, ptr noundef %183, ptr noundef %184)
  %7352 = icmp eq i32 %7351, -1
  br i1 %7352, label %7353, label %7406

7353:                                             ; preds = %7346
  br label %7354

7354:                                             ; preds = %7353
  br label %7355

7355:                                             ; preds = %7354
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %7356 = call ptr @__errno_location() #12
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  store i32 %7357, ptr %185, align 4, !tbaa !5
  %7358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7359 = call i32 @s2n_print_stacktrace(ptr noundef %7358)
  %7360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7361 = trunc i8 %7360 to i1
  br i1 %7361, label %7362, label %7384

7362:                                             ; preds = %7355
  %7363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7364 = call i32 @fileno(ptr noundef %7363) #11
  %7365 = call i32 @isatty(i32 noundef %7364) #11
  %7366 = icmp ne i32 %7365, 0
  br i1 %7366, label %7367, label %7384

7367:                                             ; preds = %7362
  %7368 = load i32, ptr %185, align 4, !tbaa !5
  %7369 = call ptr @__errno_location() #12
  store i32 %7368, ptr %7369, align 4, !tbaa !5
  %7370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7371 = load i32, ptr @test_count, align 4, !tbaa !5
  %7372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call ptr @s2n_strerror(i32 noundef %7373, ptr noundef @.str.4)
  %7375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call ptr @s2n_strerror_debug(i32 noundef %7376, ptr noundef @.str.4)
  %7378 = call ptr @__errno_location() #12
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call ptr @strerror(i32 noundef %7379) #11
  %7381 = call ptr @__errno_location() #12
  %7382 = load i32, ptr %7381, align 4, !tbaa !5
  %7383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7370, ptr noundef @.str.2, i32 noundef %7371, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 467, ptr noundef %7374, ptr noundef %7377, ptr noundef %7380, i32 noundef %7382) #11
  br label %7401

7384:                                             ; preds = %7362, %7355
  %7385 = load i32, ptr %185, align 4, !tbaa !5
  %7386 = call ptr @__errno_location() #12
  store i32 %7385, ptr %7386, align 4, !tbaa !5
  %7387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7388 = load i32, ptr @test_count, align 4, !tbaa !5
  %7389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7390 = load i32, ptr %7389, align 4, !tbaa !5
  %7391 = call ptr @s2n_strerror(i32 noundef %7390, ptr noundef @.str.4)
  %7392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7393 = load i32, ptr %7392, align 4, !tbaa !5
  %7394 = call ptr @s2n_strerror_debug(i32 noundef %7393, ptr noundef @.str.4)
  %7395 = call ptr @__errno_location() #12
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  %7397 = call ptr @strerror(i32 noundef %7396) #11
  %7398 = call ptr @__errno_location() #12
  %7399 = load i32, ptr %7398, align 4, !tbaa !5
  %7400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7387, ptr noundef @.str.5, i32 noundef %7388, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 467, ptr noundef %7391, ptr noundef %7394, ptr noundef %7397, i32 noundef %7399) #11
  br label %7401

7401:                                             ; preds = %7384, %7367
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %7402

7402:                                             ; preds = %7401
  br label %7403

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

7404:                                             ; No predecessors!
  br label %7405

7405:                                             ; preds = %7404
  br label %7406

7406:                                             ; preds = %7405, %7346
  br label %7407

7407:                                             ; preds = %7406
  br label %7408

7408:                                             ; preds = %7407
  br label %7409

7409:                                             ; preds = %7408
  %7410 = load i32, ptr @test_count, align 4, !tbaa !5
  %7411 = add nsw i32 %7410, 1
  store i32 %7411, ptr @test_count, align 4, !tbaa !5
  %7412 = load i32, ptr %177, align 4, !tbaa !5
  %7413 = load i32, ptr %184, align 4, !tbaa !5
  %7414 = icmp eq i32 %7412, %7413
  br i1 %7414, label %7468, label %7415

7415:                                             ; preds = %7409
  br label %7416

7416:                                             ; preds = %7415
  br label %7417

7417:                                             ; preds = %7416
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %7418 = call ptr @__errno_location() #12
  %7419 = load i32, ptr %7418, align 4, !tbaa !5
  store i32 %7419, ptr %186, align 4, !tbaa !5
  %7420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7421 = call i32 @s2n_print_stacktrace(ptr noundef %7420)
  %7422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7423 = trunc i8 %7422 to i1
  br i1 %7423, label %7424, label %7446

7424:                                             ; preds = %7417
  %7425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7426 = call i32 @fileno(ptr noundef %7425) #11
  %7427 = call i32 @isatty(i32 noundef %7426) #11
  %7428 = icmp ne i32 %7427, 0
  br i1 %7428, label %7429, label %7446

7429:                                             ; preds = %7424
  %7430 = load i32, ptr %186, align 4, !tbaa !5
  %7431 = call ptr @__errno_location() #12
  store i32 %7430, ptr %7431, align 4, !tbaa !5
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = load i32, ptr @test_count, align 4, !tbaa !5
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror(i32 noundef %7435, ptr noundef @.str.4)
  %7437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror_debug(i32 noundef %7438, ptr noundef @.str.4)
  %7440 = call ptr @__errno_location() #12
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @strerror(i32 noundef %7441) #11
  %7443 = call ptr @__errno_location() #12
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.2, i32 noundef %7433, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 468, ptr noundef %7436, ptr noundef %7439, ptr noundef %7442, i32 noundef %7444) #11
  br label %7463

7446:                                             ; preds = %7424, %7417
  %7447 = load i32, ptr %186, align 4, !tbaa !5
  %7448 = call ptr @__errno_location() #12
  store i32 %7447, ptr %7448, align 4, !tbaa !5
  %7449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7450 = load i32, ptr @test_count, align 4, !tbaa !5
  %7451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call ptr @s2n_strerror(i32 noundef %7452, ptr noundef @.str.4)
  %7454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7455 = load i32, ptr %7454, align 4, !tbaa !5
  %7456 = call ptr @s2n_strerror_debug(i32 noundef %7455, ptr noundef @.str.4)
  %7457 = call ptr @__errno_location() #12
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  %7459 = call ptr @strerror(i32 noundef %7458) #11
  %7460 = call ptr @__errno_location() #12
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7449, ptr noundef @.str.5, i32 noundef %7450, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 468, ptr noundef %7453, ptr noundef %7456, ptr noundef %7459, i32 noundef %7461) #11
  br label %7463

7463:                                             ; preds = %7446, %7429
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %7464

7464:                                             ; preds = %7463
  br label %7465

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

7466:                                             ; No predecessors!
  br label %7467

7467:                                             ; preds = %7466
  br label %7468

7468:                                             ; preds = %7467, %7409
  br label %7469

7469:                                             ; preds = %7468
  br label %7470

7470:                                             ; preds = %7469
  br label %7471

7471:                                             ; preds = %7470
  %7472 = load i32, ptr @test_count, align 4, !tbaa !5
  %7473 = add nsw i32 %7472, 1
  store i32 %7473, ptr @test_count, align 4, !tbaa !5
  %7474 = load i32, ptr %176, align 4, !tbaa !5
  %7475 = load i32, ptr %183, align 4, !tbaa !5
  %7476 = icmp eq i32 %7474, %7475
  br i1 %7476, label %7530, label %7477

7477:                                             ; preds = %7471
  br label %7478

7478:                                             ; preds = %7477
  br label %7479

7479:                                             ; preds = %7478
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %7480 = call ptr @__errno_location() #12
  %7481 = load i32, ptr %7480, align 4, !tbaa !5
  store i32 %7481, ptr %187, align 4, !tbaa !5
  %7482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7483 = call i32 @s2n_print_stacktrace(ptr noundef %7482)
  %7484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7485 = trunc i8 %7484 to i1
  br i1 %7485, label %7486, label %7508

7486:                                             ; preds = %7479
  %7487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7488 = call i32 @fileno(ptr noundef %7487) #11
  %7489 = call i32 @isatty(i32 noundef %7488) #11
  %7490 = icmp ne i32 %7489, 0
  br i1 %7490, label %7491, label %7508

7491:                                             ; preds = %7486
  %7492 = load i32, ptr %187, align 4, !tbaa !5
  %7493 = call ptr @__errno_location() #12
  store i32 %7492, ptr %7493, align 4, !tbaa !5
  %7494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7495 = load i32, ptr @test_count, align 4, !tbaa !5
  %7496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7497 = load i32, ptr %7496, align 4, !tbaa !5
  %7498 = call ptr @s2n_strerror(i32 noundef %7497, ptr noundef @.str.4)
  %7499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call ptr @s2n_strerror_debug(i32 noundef %7500, ptr noundef @.str.4)
  %7502 = call ptr @__errno_location() #12
  %7503 = load i32, ptr %7502, align 4, !tbaa !5
  %7504 = call ptr @strerror(i32 noundef %7503) #11
  %7505 = call ptr @__errno_location() #12
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  %7507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7494, ptr noundef @.str.2, i32 noundef %7495, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 469, ptr noundef %7498, ptr noundef %7501, ptr noundef %7504, i32 noundef %7506) #11
  br label %7525

7508:                                             ; preds = %7486, %7479
  %7509 = load i32, ptr %187, align 4, !tbaa !5
  %7510 = call ptr @__errno_location() #12
  store i32 %7509, ptr %7510, align 4, !tbaa !5
  %7511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7512 = load i32, 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(i32 noundef %7514, ptr noundef @.str.4)
  %7516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  %7518 = call ptr @s2n_strerror_debug(i32 noundef %7517, ptr noundef @.str.4)
  %7519 = call ptr @__errno_location() #12
  %7520 = load i32, ptr %7519, align 4, !tbaa !5
  %7521 = call ptr @strerror(i32 noundef %7520) #11
  %7522 = call ptr @__errno_location() #12
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7511, ptr noundef @.str.5, i32 noundef %7512, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 469, ptr noundef %7515, ptr noundef %7518, ptr noundef %7521, i32 noundef %7523) #11
  br label %7525

7525:                                             ; preds = %7508, %7491
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %7526

7526:                                             ; preds = %7525
  br label %7527

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

7528:                                             ; No predecessors!
  br label %7529

7529:                                             ; preds = %7528
  br label %7530

7530:                                             ; preds = %7529, %7471
  br label %7531

7531:                                             ; preds = %7530
  br label %7532

7532:                                             ; preds = %7531
  br label %7533

7533:                                             ; preds = %7532
  %7534 = load i32, ptr %183, align 4, !tbaa !5
  %7535 = icmp ne i32 %7534, 0
  br i1 %7535, label %7536, label %7602

7536:                                             ; preds = %7533
  br label %7537

7537:                                             ; preds = %7536
  %7538 = load i32, ptr @test_count, align 4, !tbaa !5
  %7539 = add nsw i32 %7538, 1
  store i32 %7539, ptr @test_count, align 4, !tbaa !5
  %7540 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %7541 = getelementptr inbounds [16 x i8], ptr %182, i64 0, i64 0
  %7542 = load i32, ptr %183, align 4, !tbaa !5
  %7543 = zext i32 %7542 to i64
  %7544 = call i32 @memcmp(ptr noundef %7540, ptr noundef %7541, i64 noundef %7543) #14
  %7545 = icmp eq i32 %7544, 0
  br i1 %7545, label %7599, label %7546

7546:                                             ; preds = %7537
  br label %7547

7547:                                             ; preds = %7546
  br label %7548

7548:                                             ; preds = %7547
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %7549 = call ptr @__errno_location() #12
  %7550 = load i32, ptr %7549, align 4, !tbaa !5
  store i32 %7550, ptr %188, align 4, !tbaa !5
  %7551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7552 = call i32 @s2n_print_stacktrace(ptr noundef %7551)
  %7553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7554 = trunc i8 %7553 to i1
  br i1 %7554, label %7555, label %7577

7555:                                             ; preds = %7548
  %7556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7557 = call i32 @fileno(ptr noundef %7556) #11
  %7558 = call i32 @isatty(i32 noundef %7557) #11
  %7559 = icmp ne i32 %7558, 0
  br i1 %7559, label %7560, label %7577

7560:                                             ; preds = %7555
  %7561 = load i32, ptr %188, align 4, !tbaa !5
  %7562 = call ptr @__errno_location() #12
  store i32 %7561, ptr %7562, align 4, !tbaa !5
  %7563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7564 = load i32, ptr @test_count, align 4, !tbaa !5
  %7565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  %7567 = call ptr @s2n_strerror(i32 noundef %7566, ptr noundef @.str.4)
  %7568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7569 = load i32, ptr %7568, align 4, !tbaa !5
  %7570 = call ptr @s2n_strerror_debug(i32 noundef %7569, ptr noundef @.str.4)
  %7571 = call ptr @__errno_location() #12
  %7572 = load i32, ptr %7571, align 4, !tbaa !5
  %7573 = call ptr @strerror(i32 noundef %7572) #11
  %7574 = call ptr @__errno_location() #12
  %7575 = load i32, ptr %7574, align 4, !tbaa !5
  %7576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7563, ptr noundef @.str.2, i32 noundef %7564, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 470, ptr noundef %7567, ptr noundef %7570, ptr noundef %7573, i32 noundef %7575) #11
  br label %7594

7577:                                             ; preds = %7555, %7548
  %7578 = load i32, ptr %188, align 4, !tbaa !5
  %7579 = call ptr @__errno_location() #12
  store i32 %7578, ptr %7579, align 4, !tbaa !5
  %7580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7581 = load i32, ptr @test_count, align 4, !tbaa !5
  %7582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7583 = load i32, ptr %7582, align 4, !tbaa !5
  %7584 = call ptr @s2n_strerror(i32 noundef %7583, ptr noundef @.str.4)
  %7585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7586 = load i32, ptr %7585, align 4, !tbaa !5
  %7587 = call ptr @s2n_strerror_debug(i32 noundef %7586, ptr noundef @.str.4)
  %7588 = call ptr @__errno_location() #12
  %7589 = load i32, ptr %7588, align 4, !tbaa !5
  %7590 = call ptr @strerror(i32 noundef %7589) #11
  %7591 = call ptr @__errno_location() #12
  %7592 = load i32, ptr %7591, align 4, !tbaa !5
  %7593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7580, ptr noundef @.str.5, i32 noundef %7581, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 470, ptr noundef %7584, ptr noundef %7587, ptr noundef %7590, i32 noundef %7592) #11
  br label %7594

7594:                                             ; preds = %7577, %7560
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %7595

7595:                                             ; preds = %7594
  br label %7596

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

7597:                                             ; No predecessors!
  br label %7598

7598:                                             ; preds = %7597
  br label %7599

7599:                                             ; preds = %7598, %7537
  br label %7600

7600:                                             ; preds = %7599
  br label %7601

7601:                                             ; preds = %7600
  br label %7602

7602:                                             ; preds = %7601, %7533
  br label %7603

7603:                                             ; preds = %7602
  br label %7604

7604:                                             ; preds = %7603
  br label %7605

7605:                                             ; preds = %7604
  %7606 = load i32, ptr @test_count, align 4, !tbaa !5
  %7607 = add nsw i32 %7606, 1
  store i32 %7607, ptr @test_count, align 4, !tbaa !5
  %7608 = load ptr, ptr %174, align 8, !tbaa !9
  %7609 = load i32, ptr %177, align 4, !tbaa !5
  %7610 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %7611 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %7608, i32 noundef 0, i32 noundef %7609, ptr noundef %7610, ptr noundef %176)
  %7612 = icmp eq i32 %7611, -1
  br i1 %7612, label %7613, label %7666

7613:                                             ; preds = %7605
  br label %7614

7614:                                             ; preds = %7613
  br label %7615

7615:                                             ; preds = %7614
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %7616 = call ptr @__errno_location() #12
  %7617 = load i32, ptr %7616, align 4, !tbaa !5
  store i32 %7617, ptr %189, align 4, !tbaa !5
  %7618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7619 = call i32 @s2n_print_stacktrace(ptr noundef %7618)
  %7620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7621 = trunc i8 %7620 to i1
  br i1 %7621, label %7622, label %7644

7622:                                             ; preds = %7615
  %7623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7624 = call i32 @fileno(ptr noundef %7623) #11
  %7625 = call i32 @isatty(i32 noundef %7624) #11
  %7626 = icmp ne i32 %7625, 0
  br i1 %7626, label %7627, label %7644

7627:                                             ; preds = %7622
  %7628 = load i32, ptr %189, align 4, !tbaa !5
  %7629 = call ptr @__errno_location() #12
  store i32 %7628, ptr %7629, align 4, !tbaa !5
  %7630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7631 = load i32, ptr @test_count, align 4, !tbaa !5
  %7632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call ptr @s2n_strerror(i32 noundef %7633, ptr noundef @.str.4)
  %7635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call ptr @s2n_strerror_debug(i32 noundef %7636, ptr noundef @.str.4)
  %7638 = call ptr @__errno_location() #12
  %7639 = load i32, ptr %7638, align 4, !tbaa !5
  %7640 = call ptr @strerror(i32 noundef %7639) #11
  %7641 = call ptr @__errno_location() #12
  %7642 = load i32, ptr %7641, align 4, !tbaa !5
  %7643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7630, ptr noundef @.str.2, i32 noundef %7631, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 474, ptr noundef %7634, ptr noundef %7637, ptr noundef %7640, i32 noundef %7642) #11
  br label %7661

7644:                                             ; preds = %7622, %7615
  %7645 = load i32, ptr %189, align 4, !tbaa !5
  %7646 = call ptr @__errno_location() #12
  store i32 %7645, ptr %7646, align 4, !tbaa !5
  %7647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7648 = load i32, ptr @test_count, align 4, !tbaa !5
  %7649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call ptr @s2n_strerror(i32 noundef %7650, ptr noundef @.str.4)
  %7652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call ptr @s2n_strerror_debug(i32 noundef %7653, ptr noundef @.str.4)
  %7655 = call ptr @__errno_location() #12
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call ptr @strerror(i32 noundef %7656) #11
  %7658 = call ptr @__errno_location() #12
  %7659 = load i32, ptr %7658, align 4, !tbaa !5
  %7660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7647, ptr noundef @.str.5, i32 noundef %7648, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 474, ptr noundef %7651, ptr noundef %7654, ptr noundef %7657, i32 noundef %7659) #11
  br label %7661

7661:                                             ; preds = %7644, %7627
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %7662

7662:                                             ; preds = %7661
  br label %7663

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

7664:                                             ; No predecessors!
  br label %7665

7665:                                             ; preds = %7664
  br label %7666

7666:                                             ; preds = %7665, %7605
  br label %7667

7667:                                             ; preds = %7666
  br label %7668

7668:                                             ; preds = %7667
  br label %7669

7669:                                             ; preds = %7668
  br label %7670

7670:                                             ; preds = %7669
  br label %7671

7671:                                             ; preds = %7670
  %7672 = load i32, ptr @test_count, align 4, !tbaa !5
  %7673 = add nsw i32 %7672, 1
  store i32 %7673, ptr @test_count, align 4, !tbaa !5
  %7674 = load ptr, ptr %174, align 8, !tbaa !9
  %7675 = load i32, ptr %177, align 4, !tbaa !5
  %7676 = sub i32 %7675, 1
  %7677 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %7678 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %7674, i32 noundef 0, i32 noundef %7676, ptr noundef %7677, ptr noundef %176)
  %7679 = icmp eq i32 %7678, -1
  br i1 %7679, label %7733, label %7680

7680:                                             ; preds = %7671
  br label %7681

7681:                                             ; preds = %7680
  br label %7682

7682:                                             ; preds = %7681
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %7683 = call ptr @__errno_location() #12
  %7684 = load i32, ptr %7683, align 4, !tbaa !5
  store i32 %7684, ptr %190, align 4, !tbaa !5
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = call i32 @s2n_print_stacktrace(ptr noundef %7685)
  %7687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7688 = trunc i8 %7687 to i1
  br i1 %7688, label %7689, label %7711

7689:                                             ; preds = %7682
  %7690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7691 = call i32 @fileno(ptr noundef %7690) #11
  %7692 = call i32 @isatty(i32 noundef %7691) #11
  %7693 = icmp ne i32 %7692, 0
  br i1 %7693, label %7694, label %7711

7694:                                             ; preds = %7689
  %7695 = load i32, ptr %190, align 4, !tbaa !5
  %7696 = call ptr @__errno_location() #12
  store i32 %7695, ptr %7696, align 4, !tbaa !5
  %7697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7698 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7700, ptr noundef @.str.4)
  %7702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call ptr @s2n_strerror_debug(i32 noundef %7703, ptr noundef @.str.4)
  %7705 = call ptr @__errno_location() #12
  %7706 = load i32, ptr %7705, align 4, !tbaa !5
  %7707 = call ptr @strerror(i32 noundef %7706) #11
  %7708 = call ptr @__errno_location() #12
  %7709 = load i32, ptr %7708, align 4, !tbaa !5
  %7710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7697, ptr noundef @.str.2, i32 noundef %7698, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7701, ptr noundef %7704, ptr noundef %7707, i32 noundef %7709) #11
  br label %7728

7711:                                             ; preds = %7689, %7682
  %7712 = load i32, ptr %190, align 4, !tbaa !5
  %7713 = call ptr @__errno_location() #12
  store i32 %7712, ptr %7713, align 4, !tbaa !5
  %7714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7715 = load i32, ptr @test_count, align 4, !tbaa !5
  %7716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @s2n_strerror(i32 noundef %7717, ptr noundef @.str.4)
  %7719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @s2n_strerror_debug(i32 noundef %7720, ptr noundef @.str.4)
  %7722 = call ptr @__errno_location() #12
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call ptr @strerror(i32 noundef %7723) #11
  %7725 = call ptr @__errno_location() #12
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  %7727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7714, ptr noundef @.str.5, i32 noundef %7715, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7718, ptr noundef %7721, ptr noundef %7724, i32 noundef %7726) #11
  br label %7728

7728:                                             ; preds = %7711, %7694
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

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

7731:                                             ; No predecessors!
  br label %7732

7732:                                             ; preds = %7731
  br label %7733

7733:                                             ; preds = %7732, %7671
  br label %7734

7734:                                             ; preds = %7733
  br label %7735

7735:                                             ; preds = %7734
  br label %7736

7736:                                             ; preds = %7735
  %7737 = load i32, ptr @test_count, align 4, !tbaa !5
  %7738 = add nsw i32 %7737, 1
  store i32 %7738, ptr @test_count, align 4, !tbaa !5
  %7739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = icmp eq i32 %7740, 469762120
  br i1 %7741, label %7795, label %7742

7742:                                             ; preds = %7736
  br label %7743

7743:                                             ; preds = %7742
  br label %7744

7744:                                             ; preds = %7743
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %7745 = call ptr @__errno_location() #12
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  store i32 %7746, ptr %191, align 4, !tbaa !5
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = call i32 @s2n_print_stacktrace(ptr noundef %7747)
  %7749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7750 = trunc i8 %7749 to i1
  br i1 %7750, label %7751, label %7773

7751:                                             ; preds = %7744
  %7752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7753 = call i32 @fileno(ptr noundef %7752) #11
  %7754 = call i32 @isatty(i32 noundef %7753) #11
  %7755 = icmp ne i32 %7754, 0
  br i1 %7755, label %7756, label %7773

7756:                                             ; preds = %7751
  %7757 = load i32, ptr %191, align 4, !tbaa !5
  %7758 = call ptr @__errno_location() #12
  store i32 %7757, ptr %7758, align 4, !tbaa !5
  %7759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7760 = load i32, ptr @test_count, align 4, !tbaa !5
  %7761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @s2n_strerror(i32 noundef %7762, ptr noundef @.str.4)
  %7764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @s2n_strerror_debug(i32 noundef %7765, ptr noundef @.str.4)
  %7767 = call ptr @__errno_location() #12
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call ptr @strerror(i32 noundef %7768) #11
  %7770 = call ptr @__errno_location() #12
  %7771 = load i32, ptr %7770, align 4, !tbaa !5
  %7772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7759, ptr noundef @.str.2, i32 noundef %7760, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7763, ptr noundef %7766, ptr noundef %7769, i32 noundef %7771) #11
  br label %7790

7773:                                             ; preds = %7751, %7744
  %7774 = load i32, ptr %191, align 4, !tbaa !5
  %7775 = call ptr @__errno_location() #12
  store i32 %7774, ptr %7775, align 4, !tbaa !5
  %7776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7777 = load i32, ptr @test_count, align 4, !tbaa !5
  %7778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  %7780 = call ptr @s2n_strerror(i32 noundef %7779, ptr noundef @.str.4)
  %7781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @s2n_strerror_debug(i32 noundef %7782, ptr noundef @.str.4)
  %7784 = call ptr @__errno_location() #12
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call ptr @strerror(i32 noundef %7785) #11
  %7787 = call ptr @__errno_location() #12
  %7788 = load i32, ptr %7787, align 4, !tbaa !5
  %7789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7776, ptr noundef @.str.5, i32 noundef %7777, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7780, ptr noundef %7783, ptr noundef %7786, i32 noundef %7788) #11
  br label %7790

7790:                                             ; preds = %7773, %7756
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

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

7793:                                             ; No predecessors!
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794, %7736
  br label %7796

7796:                                             ; preds = %7795
  br label %7797

7797:                                             ; preds = %7796
  br label %7798

7798:                                             ; preds = %7797
  %7799 = load i32, ptr @test_count, align 4, !tbaa !5
  %7800 = add nsw i32 %7799, 1
  store i32 %7800, ptr @test_count, align 4, !tbaa !5
  %7801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7802 = load i32, ptr %7801, align 4, !tbaa !5
  %7803 = call ptr @s2n_strerror_debug(i32 noundef %7802, ptr noundef @.str.4)
  %7804 = icmp eq ptr %7803, null
  br i1 %7804, label %7805, label %7858

7805:                                             ; preds = %7798
  br label %7806

7806:                                             ; preds = %7805
  br label %7807

7807:                                             ; preds = %7806
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %7808 = call ptr @__errno_location() #12
  %7809 = load i32, ptr %7808, align 4, !tbaa !5
  store i32 %7809, ptr %192, align 4, !tbaa !5
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = call i32 @s2n_print_stacktrace(ptr noundef %7810)
  %7812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7813 = trunc i8 %7812 to i1
  br i1 %7813, label %7814, label %7836

7814:                                             ; preds = %7807
  %7815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7816 = call i32 @fileno(ptr noundef %7815) #11
  %7817 = call i32 @isatty(i32 noundef %7816) #11
  %7818 = icmp ne i32 %7817, 0
  br i1 %7818, label %7819, label %7836

7819:                                             ; preds = %7814
  %7820 = load i32, ptr %192, align 4, !tbaa !5
  %7821 = call ptr @__errno_location() #12
  store i32 %7820, ptr %7821, align 4, !tbaa !5
  %7822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7823 = load i32, ptr @test_count, align 4, !tbaa !5
  %7824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @s2n_strerror(i32 noundef %7825, ptr noundef @.str.4)
  %7827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @s2n_strerror_debug(i32 noundef %7828, ptr noundef @.str.4)
  %7830 = call ptr @__errno_location() #12
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call ptr @strerror(i32 noundef %7831) #11
  %7833 = call ptr @__errno_location() #12
  %7834 = load i32, ptr %7833, align 4, !tbaa !5
  %7835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7822, ptr noundef @.str.2, i32 noundef %7823, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7826, ptr noundef %7829, ptr noundef %7832, i32 noundef %7834) #11
  br label %7853

7836:                                             ; preds = %7814, %7807
  %7837 = load i32, ptr %192, align 4, !tbaa !5
  %7838 = call ptr @__errno_location() #12
  store i32 %7837, ptr %7838, align 4, !tbaa !5
  %7839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7840 = load i32, ptr @test_count, align 4, !tbaa !5
  %7841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7842 = load i32, ptr %7841, align 4, !tbaa !5
  %7843 = call ptr @s2n_strerror(i32 noundef %7842, ptr noundef @.str.4)
  %7844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @s2n_strerror_debug(i32 noundef %7845, ptr noundef @.str.4)
  %7847 = call ptr @__errno_location() #12
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @strerror(i32 noundef %7848) #11
  %7850 = call ptr @__errno_location() #12
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7839, ptr noundef @.str.5, i32 noundef %7840, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7843, ptr noundef %7846, ptr noundef %7849, i32 noundef %7851) #11
  br label %7853

7853:                                             ; preds = %7836, %7819
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

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

7856:                                             ; No predecessors!
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

7858:                                             ; preds = %7857, %7798
  br label %7859

7859:                                             ; preds = %7858
  br label %7860

7860:                                             ; preds = %7859
  br label %7861

7861:                                             ; preds = %7860
  br label %7862

7862:                                             ; preds = %7861
  br label %7863

7863:                                             ; preds = %7862
  %7864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7864, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7865 = call ptr @__errno_location() #12
  store i32 0, ptr %7865, align 4, !tbaa !5
  br label %7866

7866:                                             ; preds = %7863
  br label %7867

7867:                                             ; preds = %7866
  br label %7868

7868:                                             ; preds = %7867
  br label %7869

7869:                                             ; preds = %7868
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %182) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #11
  %7870 = call i32 @s2n_connection_ptr_free(ptr noundef %168)
  %7871 = getelementptr inbounds %struct.s2n_result, ptr %193, i32 0, i32 0
  store i32 %7870, ptr %7871, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  %7872 = call i32 @s2n_connection_ptr_free(ptr noundef %166)
  %7873 = getelementptr inbounds %struct.s2n_result, ptr %194, i32 0, i32 0
  store i32 %7872, ptr %7873, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #11
  %7874 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7874, ptr %195, align 8, !tbaa !9
  br label %7875

7875:                                             ; preds = %7869
  %7876 = load i32, ptr @test_count, align 4, !tbaa !5
  %7877 = add nsw i32 %7876, 1
  store i32 %7877, ptr @test_count, align 4, !tbaa !5
  %7878 = load ptr, ptr %195, align 8, !tbaa !9
  %7879 = icmp eq ptr %7878, null
  br i1 %7879, label %7880, label %7933

7880:                                             ; preds = %7875
  br label %7881

7881:                                             ; preds = %7880
  br label %7882

7882:                                             ; preds = %7881
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %7883 = call ptr @__errno_location() #12
  %7884 = load i32, ptr %7883, align 4, !tbaa !5
  store i32 %7884, ptr %196, align 4, !tbaa !5
  %7885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7886 = call i32 @s2n_print_stacktrace(ptr noundef %7885)
  %7887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7888 = trunc i8 %7887 to i1
  br i1 %7888, label %7889, label %7911

7889:                                             ; preds = %7882
  %7890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7891 = call i32 @fileno(ptr noundef %7890) #11
  %7892 = call i32 @isatty(i32 noundef %7891) #11
  %7893 = icmp ne i32 %7892, 0
  br i1 %7893, label %7894, label %7911

7894:                                             ; preds = %7889
  %7895 = load i32, ptr %196, align 4, !tbaa !5
  %7896 = call ptr @__errno_location() #12
  store i32 %7895, ptr %7896, align 4, !tbaa !5
  %7897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7898 = load i32, ptr @test_count, align 4, !tbaa !5
  %7899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7900 = load i32, ptr %7899, align 4, !tbaa !5
  %7901 = call ptr @s2n_strerror(i32 noundef %7900, ptr noundef @.str.4)
  %7902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  %7904 = call ptr @s2n_strerror_debug(i32 noundef %7903, ptr noundef @.str.4)
  %7905 = call ptr @__errno_location() #12
  %7906 = load i32, ptr %7905, align 4, !tbaa !5
  %7907 = call ptr @strerror(i32 noundef %7906) #11
  %7908 = call ptr @__errno_location() #12
  %7909 = load i32, ptr %7908, align 4, !tbaa !5
  %7910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7897, ptr noundef @.str.2, i32 noundef %7898, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 485, ptr noundef %7901, ptr noundef %7904, ptr noundef %7907, i32 noundef %7909) #11
  br label %7928

7911:                                             ; preds = %7889, %7882
  %7912 = load i32, ptr %196, align 4, !tbaa !5
  %7913 = call ptr @__errno_location() #12
  store i32 %7912, ptr %7913, align 4, !tbaa !5
  %7914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7915 = load i32, ptr @test_count, align 4, !tbaa !5
  %7916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7917 = load i32, ptr %7916, align 4, !tbaa !5
  %7918 = call ptr @s2n_strerror(i32 noundef %7917, ptr noundef @.str.4)
  %7919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7920 = load i32, ptr %7919, align 4, !tbaa !5
  %7921 = call ptr @s2n_strerror_debug(i32 noundef %7920, ptr noundef @.str.4)
  %7922 = call ptr @__errno_location() #12
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  %7924 = call ptr @strerror(i32 noundef %7923) #11
  %7925 = call ptr @__errno_location() #12
  %7926 = load i32, ptr %7925, align 4, !tbaa !5
  %7927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7914, ptr noundef @.str.5, i32 noundef %7915, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 485, ptr noundef %7918, ptr noundef %7921, ptr noundef %7924, i32 noundef %7926) #11
  br label %7928

7928:                                             ; preds = %7911, %7894
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %7929

7929:                                             ; preds = %7928
  br label %7930

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

7931:                                             ; No predecessors!
  br label %7932

7932:                                             ; preds = %7931
  br label %7933

7933:                                             ; preds = %7932, %7875
  br label %7934

7934:                                             ; preds = %7933
  br label %7935

7935:                                             ; preds = %7934
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #11
  %7936 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7936, ptr %197, align 8, !tbaa !9
  br label %7937

7937:                                             ; preds = %7935
  %7938 = load i32, ptr @test_count, align 4, !tbaa !5
  %7939 = add nsw i32 %7938, 1
  store i32 %7939, ptr @test_count, align 4, !tbaa !5
  %7940 = load ptr, ptr %197, align 8, !tbaa !9
  %7941 = icmp eq ptr %7940, null
  br i1 %7941, label %7942, label %7995

7942:                                             ; preds = %7937
  br label %7943

7943:                                             ; preds = %7942
  br label %7944

7944:                                             ; preds = %7943
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %7945 = call ptr @__errno_location() #12
  %7946 = load i32, ptr %7945, align 4, !tbaa !5
  store i32 %7946, ptr %198, align 4, !tbaa !5
  %7947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7948 = call i32 @s2n_print_stacktrace(ptr noundef %7947)
  %7949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7950 = trunc i8 %7949 to i1
  br i1 %7950, label %7951, label %7973

7951:                                             ; preds = %7944
  %7952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7953 = call i32 @fileno(ptr noundef %7952) #11
  %7954 = call i32 @isatty(i32 noundef %7953) #11
  %7955 = icmp ne i32 %7954, 0
  br i1 %7955, label %7956, label %7973

7956:                                             ; preds = %7951
  %7957 = load i32, ptr %198, align 4, !tbaa !5
  %7958 = call ptr @__errno_location() #12
  store i32 %7957, ptr %7958, align 4, !tbaa !5
  %7959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7960 = load i32, ptr @test_count, align 4, !tbaa !5
  %7961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @s2n_strerror(i32 noundef %7962, ptr noundef @.str.4)
  %7964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call ptr @s2n_strerror_debug(i32 noundef %7965, ptr noundef @.str.4)
  %7967 = call ptr @__errno_location() #12
  %7968 = load i32, ptr %7967, align 4, !tbaa !5
  %7969 = call ptr @strerror(i32 noundef %7968) #11
  %7970 = call ptr @__errno_location() #12
  %7971 = load i32, ptr %7970, align 4, !tbaa !5
  %7972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7959, ptr noundef @.str.2, i32 noundef %7960, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 489, ptr noundef %7963, ptr noundef %7966, ptr noundef %7969, i32 noundef %7971) #11
  br label %7990

7973:                                             ; preds = %7951, %7944
  %7974 = load i32, ptr %198, align 4, !tbaa !5
  %7975 = call ptr @__errno_location() #12
  store i32 %7974, ptr %7975, align 4, !tbaa !5
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = load i32, ptr @test_count, align 4, !tbaa !5
  %7978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror(i32 noundef %7979, ptr noundef @.str.4)
  %7981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  %7983 = call ptr @s2n_strerror_debug(i32 noundef %7982, ptr noundef @.str.4)
  %7984 = call ptr @__errno_location() #12
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  %7986 = call ptr @strerror(i32 noundef %7985) #11
  %7987 = call ptr @__errno_location() #12
  %7988 = load i32, ptr %7987, align 4, !tbaa !5
  %7989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7976, ptr noundef @.str.5, i32 noundef %7977, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 489, ptr noundef %7980, ptr noundef %7983, ptr noundef %7986, i32 noundef %7988) #11
  br label %7990

7990:                                             ; preds = %7973, %7956
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %7991

7991:                                             ; preds = %7990
  br label %7992

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

7993:                                             ; No predecessors!
  br label %7994

7994:                                             ; preds = %7993
  br label %7995

7995:                                             ; preds = %7994, %7937
  br label %7996

7996:                                             ; preds = %7995
  br label %7997

7997:                                             ; preds = %7996
  br label %7998

7998:                                             ; preds = %7997
  %7999 = load i32, ptr @test_count, align 4, !tbaa !5
  %8000 = add nsw i32 %7999, 1
  store i32 %8000, ptr @test_count, align 4, !tbaa !5
  %8001 = load ptr, ptr %197, align 8, !tbaa !9
  %8002 = load ptr, ptr %13, align 8, !tbaa !9
  %8003 = call i32 @s2n_connection_set_config(ptr noundef %8001, ptr noundef %8002)
  %8004 = icmp eq i32 %8003, -1
  br i1 %8004, label %8005, label %8058

8005:                                             ; preds = %7998
  br label %8006

8006:                                             ; preds = %8005
  br label %8007

8007:                                             ; preds = %8006
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %8008 = call ptr @__errno_location() #12
  %8009 = load i32, ptr %8008, align 4, !tbaa !5
  store i32 %8009, ptr %199, align 4, !tbaa !5
  %8010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8011 = call i32 @s2n_print_stacktrace(ptr noundef %8010)
  %8012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8013 = trunc i8 %8012 to i1
  br i1 %8013, label %8014, label %8036

8014:                                             ; preds = %8007
  %8015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8016 = call i32 @fileno(ptr noundef %8015) #11
  %8017 = call i32 @isatty(i32 noundef %8016) #11
  %8018 = icmp ne i32 %8017, 0
  br i1 %8018, label %8019, label %8036

8019:                                             ; preds = %8014
  %8020 = load i32, ptr %199, align 4, !tbaa !5
  %8021 = call ptr @__errno_location() #12
  store i32 %8020, ptr %8021, align 4, !tbaa !5
  %8022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8023 = load i32, ptr @test_count, align 4, !tbaa !5
  %8024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8025 = load i32, ptr %8024, align 4, !tbaa !5
  %8026 = call ptr @s2n_strerror(i32 noundef %8025, ptr noundef @.str.4)
  %8027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8028 = load i32, ptr %8027, align 4, !tbaa !5
  %8029 = call ptr @s2n_strerror_debug(i32 noundef %8028, ptr noundef @.str.4)
  %8030 = call ptr @__errno_location() #12
  %8031 = load i32, ptr %8030, align 4, !tbaa !5
  %8032 = call ptr @strerror(i32 noundef %8031) #11
  %8033 = call ptr @__errno_location() #12
  %8034 = load i32, ptr %8033, align 4, !tbaa !5
  %8035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8022, ptr noundef @.str.2, i32 noundef %8023, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 490, ptr noundef %8026, ptr noundef %8029, ptr noundef %8032, i32 noundef %8034) #11
  br label %8053

8036:                                             ; preds = %8014, %8007
  %8037 = load i32, ptr %199, align 4, !tbaa !5
  %8038 = call ptr @__errno_location() #12
  store i32 %8037, ptr %8038, align 4, !tbaa !5
  %8039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8040 = load i32, ptr @test_count, align 4, !tbaa !5
  %8041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8042 = load i32, ptr %8041, align 4, !tbaa !5
  %8043 = call ptr @s2n_strerror(i32 noundef %8042, ptr noundef @.str.4)
  %8044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8045 = load i32, ptr %8044, align 4, !tbaa !5
  %8046 = call ptr @s2n_strerror_debug(i32 noundef %8045, ptr noundef @.str.4)
  %8047 = call ptr @__errno_location() #12
  %8048 = load i32, ptr %8047, align 4, !tbaa !5
  %8049 = call ptr @strerror(i32 noundef %8048) #11
  %8050 = call ptr @__errno_location() #12
  %8051 = load i32, ptr %8050, align 4, !tbaa !5
  %8052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8039, ptr noundef @.str.5, i32 noundef %8040, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 490, ptr noundef %8043, ptr noundef %8046, ptr noundef %8049, i32 noundef %8051) #11
  br label %8053

8053:                                             ; preds = %8036, %8019
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %8054

8054:                                             ; preds = %8053
  br label %8055

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

8056:                                             ; No predecessors!
  br label %8057

8057:                                             ; preds = %8056
  br label %8058

8058:                                             ; preds = %8057, %7998
  br label %8059

8059:                                             ; preds = %8058
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

8061:                                             ; preds = %8060
  %8062 = load i32, ptr @test_count, align 4, !tbaa !5
  %8063 = add nsw i32 %8062, 1
  store i32 %8063, ptr @test_count, align 4, !tbaa !5
  %8064 = load ptr, ptr %195, align 8, !tbaa !9
  %8065 = call i32 @s2n_client_hello_send(ptr noundef %8064)
  %8066 = icmp eq i32 %8065, -1
  br i1 %8066, label %8067, label %8120

8067:                                             ; preds = %8061
  br label %8068

8068:                                             ; preds = %8067
  br label %8069

8069:                                             ; preds = %8068
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %8070 = call ptr @__errno_location() #12
  %8071 = load i32, ptr %8070, align 4, !tbaa !5
  store i32 %8071, ptr %200, align 4, !tbaa !5
  %8072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8073 = call i32 @s2n_print_stacktrace(ptr noundef %8072)
  %8074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8075 = trunc i8 %8074 to i1
  br i1 %8075, label %8076, label %8098

8076:                                             ; preds = %8069
  %8077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8078 = call i32 @fileno(ptr noundef %8077) #11
  %8079 = call i32 @isatty(i32 noundef %8078) #11
  %8080 = icmp ne i32 %8079, 0
  br i1 %8080, label %8081, label %8098

8081:                                             ; preds = %8076
  %8082 = load i32, ptr %200, align 4, !tbaa !5
  %8083 = call ptr @__errno_location() #12
  store i32 %8082, ptr %8083, align 4, !tbaa !5
  %8084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8085 = load i32, ptr @test_count, align 4, !tbaa !5
  %8086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call ptr @s2n_strerror(i32 noundef %8087, ptr noundef @.str.4)
  %8089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8090 = load i32, ptr %8089, align 4, !tbaa !5
  %8091 = call ptr @s2n_strerror_debug(i32 noundef %8090, ptr noundef @.str.4)
  %8092 = call ptr @__errno_location() #12
  %8093 = load i32, ptr %8092, align 4, !tbaa !5
  %8094 = call ptr @strerror(i32 noundef %8093) #11
  %8095 = call ptr @__errno_location() #12
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  %8097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8084, ptr noundef @.str.2, i32 noundef %8085, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 492, ptr noundef %8088, ptr noundef %8091, ptr noundef %8094, i32 noundef %8096) #11
  br label %8115

8098:                                             ; preds = %8076, %8069
  %8099 = load i32, ptr %200, align 4, !tbaa !5
  %8100 = call ptr @__errno_location() #12
  store i32 %8099, ptr %8100, align 4, !tbaa !5
  %8101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8102 = load i32, ptr @test_count, align 4, !tbaa !5
  %8103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = call ptr @s2n_strerror(i32 noundef %8104, ptr noundef @.str.4)
  %8106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8107 = load i32, ptr %8106, align 4, !tbaa !5
  %8108 = call ptr @s2n_strerror_debug(i32 noundef %8107, ptr noundef @.str.4)
  %8109 = call ptr @__errno_location() #12
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  %8111 = call ptr @strerror(i32 noundef %8110) #11
  %8112 = call ptr @__errno_location() #12
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  %8114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8101, ptr noundef @.str.5, i32 noundef %8102, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 492, ptr noundef %8105, ptr noundef %8108, ptr noundef %8111, i32 noundef %8113) #11
  br label %8115

8115:                                             ; preds = %8098, %8081
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %8116

8116:                                             ; preds = %8115
  br label %8117

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

8118:                                             ; No predecessors!
  br label %8119

8119:                                             ; preds = %8118
  br label %8120

8120:                                             ; preds = %8119, %8061
  br label %8121

8121:                                             ; preds = %8120
  br label %8122

8122:                                             ; preds = %8121
  br label %8123

8123:                                             ; preds = %8122
  %8124 = load i32, ptr @test_count, align 4, !tbaa !5
  %8125 = add nsw i32 %8124, 1
  store i32 %8125, ptr @test_count, align 4, !tbaa !5
  %8126 = load ptr, ptr %195, align 8, !tbaa !9
  %8127 = getelementptr inbounds %struct.s2n_connection, ptr %8126, i32 0, i32 52
  %8128 = getelementptr inbounds %struct.s2n_handshake, ptr %8127, i32 0, i32 0
  %8129 = load ptr, ptr %197, align 8, !tbaa !9
  %8130 = getelementptr inbounds %struct.s2n_connection, ptr %8129, i32 0, i32 52
  %8131 = getelementptr inbounds %struct.s2n_handshake, ptr %8130, i32 0, i32 0
  %8132 = load ptr, ptr %195, align 8, !tbaa !9
  %8133 = getelementptr inbounds %struct.s2n_connection, ptr %8132, i32 0, i32 52
  %8134 = getelementptr inbounds %struct.s2n_handshake, ptr %8133, i32 0, i32 0
  %8135 = getelementptr inbounds %struct.s2n_stuffer, ptr %8134, i32 0, i32 2
  %8136 = load i32, ptr %8135, align 4, !tbaa !15
  %8137 = load ptr, ptr %195, align 8, !tbaa !9
  %8138 = getelementptr inbounds %struct.s2n_connection, ptr %8137, i32 0, i32 52
  %8139 = getelementptr inbounds %struct.s2n_handshake, ptr %8138, i32 0, i32 0
  %8140 = getelementptr inbounds %struct.s2n_stuffer, ptr %8139, i32 0, i32 1
  %8141 = load i32, ptr %8140, align 8, !tbaa !42
  %8142 = sub i32 %8136, %8141
  %8143 = call i32 @s2n_stuffer_copy(ptr noundef %8128, ptr noundef %8131, i32 noundef %8142)
  %8144 = icmp eq i32 %8143, -1
  br i1 %8144, label %8145, label %8198

8145:                                             ; preds = %8123
  br label %8146

8146:                                             ; preds = %8145
  br label %8147

8147:                                             ; preds = %8146
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %8148 = call ptr @__errno_location() #12
  %8149 = load i32, ptr %8148, align 4, !tbaa !5
  store i32 %8149, ptr %201, align 4, !tbaa !5
  %8150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8151 = call i32 @s2n_print_stacktrace(ptr noundef %8150)
  %8152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8153 = trunc i8 %8152 to i1
  br i1 %8153, label %8154, label %8176

8154:                                             ; preds = %8147
  %8155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8156 = call i32 @fileno(ptr noundef %8155) #11
  %8157 = call i32 @isatty(i32 noundef %8156) #11
  %8158 = icmp ne i32 %8157, 0
  br i1 %8158, label %8159, label %8176

8159:                                             ; preds = %8154
  %8160 = load i32, ptr %201, align 4, !tbaa !5
  %8161 = call ptr @__errno_location() #12
  store i32 %8160, ptr %8161, align 4, !tbaa !5
  %8162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8163 = load i32, ptr @test_count, align 4, !tbaa !5
  %8164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8165 = load i32, ptr %8164, align 4, !tbaa !5
  %8166 = call ptr @s2n_strerror(i32 noundef %8165, ptr noundef @.str.4)
  %8167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8168 = load i32, ptr %8167, align 4, !tbaa !5
  %8169 = call ptr @s2n_strerror_debug(i32 noundef %8168, ptr noundef @.str.4)
  %8170 = call ptr @__errno_location() #12
  %8171 = load i32, ptr %8170, align 4, !tbaa !5
  %8172 = call ptr @strerror(i32 noundef %8171) #11
  %8173 = call ptr @__errno_location() #12
  %8174 = load i32, ptr %8173, align 4, !tbaa !5
  %8175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8162, ptr noundef @.str.2, i32 noundef %8163, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 494, ptr noundef %8166, ptr noundef %8169, ptr noundef %8172, i32 noundef %8174) #11
  br label %8193

8176:                                             ; preds = %8154, %8147
  %8177 = load i32, ptr %201, align 4, !tbaa !5
  %8178 = call ptr @__errno_location() #12
  store i32 %8177, ptr %8178, align 4, !tbaa !5
  %8179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8180 = load i32, ptr @test_count, align 4, !tbaa !5
  %8181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8182 = load i32, ptr %8181, align 4, !tbaa !5
  %8183 = call ptr @s2n_strerror(i32 noundef %8182, ptr noundef @.str.4)
  %8184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8185 = load i32, ptr %8184, align 4, !tbaa !5
  %8186 = call ptr @s2n_strerror_debug(i32 noundef %8185, ptr noundef @.str.4)
  %8187 = call ptr @__errno_location() #12
  %8188 = load i32, ptr %8187, align 4, !tbaa !5
  %8189 = call ptr @strerror(i32 noundef %8188) #11
  %8190 = call ptr @__errno_location() #12
  %8191 = load i32, ptr %8190, align 4, !tbaa !5
  %8192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8179, ptr noundef @.str.5, i32 noundef %8180, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 494, ptr noundef %8183, ptr noundef %8186, ptr noundef %8189, i32 noundef %8191) #11
  br label %8193

8193:                                             ; preds = %8176, %8159
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %8194

8194:                                             ; preds = %8193
  br label %8195

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

8196:                                             ; No predecessors!
  br label %8197

8197:                                             ; preds = %8196
  br label %8198

8198:                                             ; preds = %8197, %8123
  br label %8199

8199:                                             ; preds = %8198
  br label %8200

8200:                                             ; preds = %8199
  br label %8201

8201:                                             ; preds = %8200
  %8202 = load i32, ptr @test_count, align 4, !tbaa !5
  %8203 = add nsw i32 %8202, 1
  store i32 %8203, ptr @test_count, align 4, !tbaa !5
  %8204 = load ptr, ptr %197, align 8, !tbaa !9
  %8205 = call i32 @s2n_client_hello_recv(ptr noundef %8204)
  %8206 = icmp eq i32 %8205, -1
  br i1 %8206, label %8207, label %8260

8207:                                             ; preds = %8201
  br label %8208

8208:                                             ; preds = %8207
  br label %8209

8209:                                             ; preds = %8208
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %8210 = call ptr @__errno_location() #12
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  store i32 %8211, ptr %202, align 4, !tbaa !5
  %8212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8213 = call i32 @s2n_print_stacktrace(ptr noundef %8212)
  %8214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8215 = trunc i8 %8214 to i1
  br i1 %8215, label %8216, label %8238

8216:                                             ; preds = %8209
  %8217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8218 = call i32 @fileno(ptr noundef %8217) #11
  %8219 = call i32 @isatty(i32 noundef %8218) #11
  %8220 = icmp ne i32 %8219, 0
  br i1 %8220, label %8221, label %8238

8221:                                             ; preds = %8216
  %8222 = load i32, ptr %202, align 4, !tbaa !5
  %8223 = call ptr @__errno_location() #12
  store i32 %8222, ptr %8223, align 4, !tbaa !5
  %8224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8225 = load i32, ptr @test_count, align 4, !tbaa !5
  %8226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8227 = load i32, ptr %8226, align 4, !tbaa !5
  %8228 = call ptr @s2n_strerror(i32 noundef %8227, ptr noundef @.str.4)
  %8229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8230 = load i32, ptr %8229, align 4, !tbaa !5
  %8231 = call ptr @s2n_strerror_debug(i32 noundef %8230, ptr noundef @.str.4)
  %8232 = call ptr @__errno_location() #12
  %8233 = load i32, ptr %8232, align 4, !tbaa !5
  %8234 = call ptr @strerror(i32 noundef %8233) #11
  %8235 = call ptr @__errno_location() #12
  %8236 = load i32, ptr %8235, align 4, !tbaa !5
  %8237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8224, ptr noundef @.str.2, i32 noundef %8225, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 495, ptr noundef %8228, ptr noundef %8231, ptr noundef %8234, i32 noundef %8236) #11
  br label %8255

8238:                                             ; preds = %8216, %8209
  %8239 = load i32, ptr %202, align 4, !tbaa !5
  %8240 = call ptr @__errno_location() #12
  store i32 %8239, ptr %8240, align 4, !tbaa !5
  %8241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8242 = load i32, ptr @test_count, align 4, !tbaa !5
  %8243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8244 = load i32, ptr %8243, align 4, !tbaa !5
  %8245 = call ptr @s2n_strerror(i32 noundef %8244, ptr noundef @.str.4)
  %8246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8247 = load i32, ptr %8246, align 4, !tbaa !5
  %8248 = call ptr @s2n_strerror_debug(i32 noundef %8247, ptr noundef @.str.4)
  %8249 = call ptr @__errno_location() #12
  %8250 = load i32, ptr %8249, align 4, !tbaa !5
  %8251 = call ptr @strerror(i32 noundef %8250) #11
  %8252 = call ptr @__errno_location() #12
  %8253 = load i32, ptr %8252, align 4, !tbaa !5
  %8254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8241, ptr noundef @.str.5, i32 noundef %8242, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 495, ptr noundef %8245, ptr noundef %8248, ptr noundef %8251, i32 noundef %8253) #11
  br label %8255

8255:                                             ; preds = %8238, %8221
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %8256

8256:                                             ; preds = %8255
  br label %8257

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

8258:                                             ; No predecessors!
  br label %8259

8259:                                             ; preds = %8258
  br label %8260

8260:                                             ; preds = %8259, %8201
  br label %8261

8261:                                             ; preds = %8260
  br label %8262

8262:                                             ; preds = %8261
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #11
  %8263 = load ptr, ptr %197, align 8, !tbaa !9
  %8264 = call ptr @s2n_connection_get_client_hello(ptr noundef %8263)
  store ptr %8264, ptr %203, align 8, !tbaa !9
  br label %8265

8265:                                             ; preds = %8262
  %8266 = load i32, ptr @test_count, align 4, !tbaa !5
  %8267 = add nsw i32 %8266, 1
  store i32 %8267, ptr @test_count, align 4, !tbaa !5
  %8268 = load ptr, ptr %203, align 8, !tbaa !9
  %8269 = icmp eq ptr %8268, null
  br i1 %8269, label %8270, label %8323

8270:                                             ; preds = %8265
  br label %8271

8271:                                             ; preds = %8270
  br label %8272

8272:                                             ; preds = %8271
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %8273 = call ptr @__errno_location() #12
  %8274 = load i32, ptr %8273, align 4, !tbaa !5
  store i32 %8274, ptr %204, align 4, !tbaa !5
  %8275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8276 = call i32 @s2n_print_stacktrace(ptr noundef %8275)
  %8277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8278 = trunc i8 %8277 to i1
  br i1 %8278, label %8279, label %8301

8279:                                             ; preds = %8272
  %8280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8281 = call i32 @fileno(ptr noundef %8280) #11
  %8282 = call i32 @isatty(i32 noundef %8281) #11
  %8283 = icmp ne i32 %8282, 0
  br i1 %8283, label %8284, label %8301

8284:                                             ; preds = %8279
  %8285 = load i32, ptr %204, align 4, !tbaa !5
  %8286 = call ptr @__errno_location() #12
  store i32 %8285, ptr %8286, align 4, !tbaa !5
  %8287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8288 = load i32, ptr @test_count, align 4, !tbaa !5
  %8289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8290 = load i32, ptr %8289, align 4, !tbaa !5
  %8291 = call ptr @s2n_strerror(i32 noundef %8290, ptr noundef @.str.4)
  %8292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8293 = load i32, ptr %8292, align 4, !tbaa !5
  %8294 = call ptr @s2n_strerror_debug(i32 noundef %8293, ptr noundef @.str.4)
  %8295 = call ptr @__errno_location() #12
  %8296 = load i32, ptr %8295, align 4, !tbaa !5
  %8297 = call ptr @strerror(i32 noundef %8296) #11
  %8298 = call ptr @__errno_location() #12
  %8299 = load i32, ptr %8298, align 4, !tbaa !5
  %8300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8287, ptr noundef @.str.2, i32 noundef %8288, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 498, ptr noundef %8291, ptr noundef %8294, ptr noundef %8297, i32 noundef %8299) #11
  br label %8318

8301:                                             ; preds = %8279, %8272
  %8302 = load i32, ptr %204, align 4, !tbaa !5
  %8303 = call ptr @__errno_location() #12
  store i32 %8302, ptr %8303, align 4, !tbaa !5
  %8304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8305 = load i32, ptr @test_count, align 4, !tbaa !5
  %8306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8307 = load i32, ptr %8306, align 4, !tbaa !5
  %8308 = call ptr @s2n_strerror(i32 noundef %8307, ptr noundef @.str.4)
  %8309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8310 = load i32, ptr %8309, align 4, !tbaa !5
  %8311 = call ptr @s2n_strerror_debug(i32 noundef %8310, ptr noundef @.str.4)
  %8312 = call ptr @__errno_location() #12
  %8313 = load i32, ptr %8312, align 4, !tbaa !5
  %8314 = call ptr @strerror(i32 noundef %8313) #11
  %8315 = call ptr @__errno_location() #12
  %8316 = load i32, ptr %8315, align 4, !tbaa !5
  %8317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8304, ptr noundef @.str.5, i32 noundef %8305, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 498, ptr noundef %8308, ptr noundef %8311, ptr noundef %8314, i32 noundef %8316) #11
  br label %8318

8318:                                             ; preds = %8301, %8284
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %8319

8319:                                             ; preds = %8318
  br label %8320

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

8321:                                             ; No predecessors!
  br label %8322

8322:                                             ; preds = %8321
  br label %8323

8323:                                             ; preds = %8322, %8265
  br label %8324

8324:                                             ; preds = %8323
  br label %8325

8325:                                             ; preds = %8324
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  store i32 0, ptr %205, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  store i32 0, ptr %206, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #11
  store i64 0, ptr %207, align 8, !tbaa !45
  br label %8326

8326:                                             ; preds = %8532, %8325
  %8327 = load i64, ptr %207, align 8, !tbaa !45
  %8328 = icmp ult i64 %8327, 16
  br i1 %8328, label %8330, label %8329

8329:                                             ; preds = %8326
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #11
  br label %8535

8330:                                             ; preds = %8326
  br label %8331

8331:                                             ; preds = %8330
  br label %8332

8332:                                             ; preds = %8331
  br label %8333

8333:                                             ; preds = %8332
  %8334 = load i32, ptr @test_count, align 4, !tbaa !5
  %8335 = add nsw i32 %8334, 1
  store i32 %8335, ptr @test_count, align 4, !tbaa !5
  %8336 = load ptr, ptr %203, align 8, !tbaa !9
  %8337 = load i64, ptr %207, align 8, !tbaa !45
  %8338 = trunc i64 %8337 to i32
  %8339 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %8340 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %8336, i32 noundef 0, i32 noundef %8338, ptr noundef %8339, ptr noundef %205, ptr noundef %206)
  %8341 = icmp eq i32 %8340, -1
  br i1 %8341, label %8395, label %8342

8342:                                             ; preds = %8333
  br label %8343

8343:                                             ; preds = %8342
  br label %8344

8344:                                             ; preds = %8343
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %8345 = call ptr @__errno_location() #12
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  store i32 %8346, ptr %208, align 4, !tbaa !5
  %8347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8348 = call i32 @s2n_print_stacktrace(ptr noundef %8347)
  %8349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8350 = trunc i8 %8349 to i1
  br i1 %8350, label %8351, label %8373

8351:                                             ; preds = %8344
  %8352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8353 = call i32 @fileno(ptr noundef %8352) #11
  %8354 = call i32 @isatty(i32 noundef %8353) #11
  %8355 = icmp ne i32 %8354, 0
  br i1 %8355, label %8356, label %8373

8356:                                             ; preds = %8351
  %8357 = load i32, ptr %208, align 4, !tbaa !5
  %8358 = call ptr @__errno_location() #12
  store i32 %8357, ptr %8358, align 4, !tbaa !5
  %8359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8360 = load i32, ptr @test_count, align 4, !tbaa !5
  %8361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8362 = load i32, ptr %8361, align 4, !tbaa !5
  %8363 = call ptr @s2n_strerror(i32 noundef %8362, ptr noundef @.str.4)
  %8364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8365 = load i32, ptr %8364, align 4, !tbaa !5
  %8366 = call ptr @s2n_strerror_debug(i32 noundef %8365, ptr noundef @.str.4)
  %8367 = call ptr @__errno_location() #12
  %8368 = load i32, ptr %8367, align 4, !tbaa !5
  %8369 = call ptr @strerror(i32 noundef %8368) #11
  %8370 = call ptr @__errno_location() #12
  %8371 = load i32, ptr %8370, align 4, !tbaa !5
  %8372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8359, ptr noundef @.str.2, i32 noundef %8360, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 505, ptr noundef %8363, ptr noundef %8366, ptr noundef %8369, i32 noundef %8371) #11
  br label %8390

8373:                                             ; preds = %8351, %8344
  %8374 = load i32, ptr %208, align 4, !tbaa !5
  %8375 = call ptr @__errno_location() #12
  store i32 %8374, ptr %8375, align 4, !tbaa !5
  %8376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8377 = load i32, ptr @test_count, align 4, !tbaa !5
  %8378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call ptr @s2n_strerror(i32 noundef %8379, ptr noundef @.str.4)
  %8381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call ptr @s2n_strerror_debug(i32 noundef %8382, ptr noundef @.str.4)
  %8384 = call ptr @__errno_location() #12
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call ptr @strerror(i32 noundef %8385) #11
  %8387 = call ptr @__errno_location() #12
  %8388 = load i32, ptr %8387, align 4, !tbaa !5
  %8389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8376, ptr noundef @.str.5, i32 noundef %8377, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 505, ptr noundef %8380, ptr noundef %8383, ptr noundef %8386, i32 noundef %8388) #11
  br label %8390

8390:                                             ; preds = %8373, %8356
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %8391

8391:                                             ; preds = %8390
  br label %8392

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

8393:                                             ; No predecessors!
  br label %8394

8394:                                             ; preds = %8393
  br label %8395

8395:                                             ; preds = %8394, %8333
  br label %8396

8396:                                             ; preds = %8395
  br label %8397

8397:                                             ; preds = %8396
  br label %8398

8398:                                             ; preds = %8397
  %8399 = load i32, ptr @test_count, align 4, !tbaa !5
  %8400 = add nsw i32 %8399, 1
  store i32 %8400, ptr @test_count, align 4, !tbaa !5
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = icmp eq i32 %8402, 469762120
  br i1 %8403, label %8457, label %8404

8404:                                             ; preds = %8398
  br label %8405

8405:                                             ; preds = %8404
  br label %8406

8406:                                             ; preds = %8405
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %8407 = call ptr @__errno_location() #12
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  store i32 %8408, ptr %209, align 4, !tbaa !5
  %8409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8410 = call i32 @s2n_print_stacktrace(ptr noundef %8409)
  %8411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8412 = trunc i8 %8411 to i1
  br i1 %8412, label %8413, label %8435

8413:                                             ; preds = %8406
  %8414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8415 = call i32 @fileno(ptr noundef %8414) #11
  %8416 = call i32 @isatty(i32 noundef %8415) #11
  %8417 = icmp ne i32 %8416, 0
  br i1 %8417, label %8418, label %8435

8418:                                             ; preds = %8413
  %8419 = load i32, ptr %209, align 4, !tbaa !5
  %8420 = call ptr @__errno_location() #12
  store i32 %8419, ptr %8420, align 4, !tbaa !5
  %8421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8422 = load i32, ptr @test_count, align 4, !tbaa !5
  %8423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8424 = load i32, ptr %8423, align 4, !tbaa !5
  %8425 = call ptr @s2n_strerror(i32 noundef %8424, ptr noundef @.str.4)
  %8426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8427 = load i32, ptr %8426, align 4, !tbaa !5
  %8428 = call ptr @s2n_strerror_debug(i32 noundef %8427, ptr noundef @.str.4)
  %8429 = call ptr @__errno_location() #12
  %8430 = load i32, ptr %8429, align 4, !tbaa !5
  %8431 = call ptr @strerror(i32 noundef %8430) #11
  %8432 = call ptr @__errno_location() #12
  %8433 = load i32, ptr %8432, align 4, !tbaa !5
  %8434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8421, ptr noundef @.str.2, i32 noundef %8422, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 505, ptr noundef %8425, ptr noundef %8428, ptr noundef %8431, i32 noundef %8433) #11
  br label %8452

8435:                                             ; preds = %8413, %8406
  %8436 = load i32, ptr %209, align 4, !tbaa !5
  %8437 = call ptr @__errno_location() #12
  store i32 %8436, ptr %8437, align 4, !tbaa !5
  %8438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8441 = load i32, ptr %8440, align 4, !tbaa !5
  %8442 = call ptr @s2n_strerror(i32 noundef %8441, ptr noundef @.str.4)
  %8443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8444 = load i32, ptr %8443, align 4, !tbaa !5
  %8445 = call ptr @s2n_strerror_debug(i32 noundef %8444, ptr noundef @.str.4)
  %8446 = call ptr @__errno_location() #12
  %8447 = load i32, ptr %8446, align 4, !tbaa !5
  %8448 = call ptr @strerror(i32 noundef %8447) #11
  %8449 = call ptr @__errno_location() #12
  %8450 = load i32, ptr %8449, align 4, !tbaa !5
  %8451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8438, ptr noundef @.str.5, i32 noundef %8439, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 505, ptr noundef %8442, ptr noundef %8445, ptr noundef %8448, i32 noundef %8450) #11
  br label %8452

8452:                                             ; preds = %8435, %8418
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %8453

8453:                                             ; preds = %8452
  br label %8454

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

8455:                                             ; No predecessors!
  br label %8456

8456:                                             ; preds = %8455
  br label %8457

8457:                                             ; preds = %8456, %8398
  br label %8458

8458:                                             ; preds = %8457
  br label %8459

8459:                                             ; preds = %8458
  br label %8460

8460:                                             ; preds = %8459
  %8461 = load i32, ptr @test_count, align 4, !tbaa !5
  %8462 = add nsw i32 %8461, 1
  store i32 %8462, ptr @test_count, align 4, !tbaa !5
  %8463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8464 = load i32, ptr %8463, align 4, !tbaa !5
  %8465 = call ptr @s2n_strerror_debug(i32 noundef %8464, ptr noundef @.str.4)
  %8466 = icmp eq ptr %8465, null
  br i1 %8466, label %8467, label %8520

8467:                                             ; preds = %8460
  br label %8468

8468:                                             ; preds = %8467
  br label %8469

8469:                                             ; preds = %8468
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %8470 = call ptr @__errno_location() #12
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  store i32 %8471, ptr %210, align 4, !tbaa !5
  %8472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8473 = call i32 @s2n_print_stacktrace(ptr noundef %8472)
  %8474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8475 = trunc i8 %8474 to i1
  br i1 %8475, label %8476, label %8498

8476:                                             ; preds = %8469
  %8477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8478 = call i32 @fileno(ptr noundef %8477) #11
  %8479 = call i32 @isatty(i32 noundef %8478) #11
  %8480 = icmp ne i32 %8479, 0
  br i1 %8480, label %8481, label %8498

8481:                                             ; preds = %8476
  %8482 = load i32, ptr %210, align 4, !tbaa !5
  %8483 = call ptr @__errno_location() #12
  store i32 %8482, ptr %8483, align 4, !tbaa !5
  %8484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8485 = load i32, ptr @test_count, align 4, !tbaa !5
  %8486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8487 = load i32, ptr %8486, align 4, !tbaa !5
  %8488 = call ptr @s2n_strerror(i32 noundef %8487, ptr noundef @.str.4)
  %8489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8490 = load i32, ptr %8489, align 4, !tbaa !5
  %8491 = call ptr @s2n_strerror_debug(i32 noundef %8490, ptr noundef @.str.4)
  %8492 = call ptr @__errno_location() #12
  %8493 = load i32, ptr %8492, align 4, !tbaa !5
  %8494 = call ptr @strerror(i32 noundef %8493) #11
  %8495 = call ptr @__errno_location() #12
  %8496 = load i32, ptr %8495, align 4, !tbaa !5
  %8497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8484, ptr noundef @.str.2, i32 noundef %8485, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 505, ptr noundef %8488, ptr noundef %8491, ptr noundef %8494, i32 noundef %8496) #11
  br label %8515

8498:                                             ; preds = %8476, %8469
  %8499 = load i32, ptr %210, align 4, !tbaa !5
  %8500 = call ptr @__errno_location() #12
  store i32 %8499, ptr %8500, align 4, !tbaa !5
  %8501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8502 = load i32, ptr @test_count, align 4, !tbaa !5
  %8503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8504 = load i32, ptr %8503, align 4, !tbaa !5
  %8505 = call ptr @s2n_strerror(i32 noundef %8504, ptr noundef @.str.4)
  %8506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8507 = load i32, ptr %8506, align 4, !tbaa !5
  %8508 = call ptr @s2n_strerror_debug(i32 noundef %8507, ptr noundef @.str.4)
  %8509 = call ptr @__errno_location() #12
  %8510 = load i32, ptr %8509, align 4, !tbaa !5
  %8511 = call ptr @strerror(i32 noundef %8510) #11
  %8512 = call ptr @__errno_location() #12
  %8513 = load i32, ptr %8512, align 4, !tbaa !5
  %8514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8501, ptr noundef @.str.5, i32 noundef %8502, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 505, ptr noundef %8505, ptr noundef %8508, ptr noundef %8511, i32 noundef %8513) #11
  br label %8515

8515:                                             ; preds = %8498, %8481
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %8516

8516:                                             ; preds = %8515
  br label %8517

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

8518:                                             ; No predecessors!
  br label %8519

8519:                                             ; preds = %8518
  br label %8520

8520:                                             ; preds = %8519, %8460
  br label %8521

8521:                                             ; preds = %8520
  br label %8522

8522:                                             ; preds = %8521
  br label %8523

8523:                                             ; preds = %8522
  br label %8524

8524:                                             ; preds = %8523
  br label %8525

8525:                                             ; preds = %8524
  %8526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8526, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8527 = call ptr @__errno_location() #12
  store i32 0, ptr %8527, align 4, !tbaa !5
  br label %8528

8528:                                             ; preds = %8525
  br label %8529

8529:                                             ; preds = %8528
  br label %8530

8530:                                             ; preds = %8529
  br label %8531

8531:                                             ; preds = %8530
  br label %8532

8532:                                             ; preds = %8531
  %8533 = load i64, ptr %207, align 8, !tbaa !45
  %8534 = add i64 %8533, 1
  store i64 %8534, ptr %207, align 8, !tbaa !45
  br label %8326, !llvm.loop !52

8535:                                             ; preds = %8329
  br label %8536

8536:                                             ; preds = %8535
  %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 = load i32, ptr %205, align 4, !tbaa !5
  %8540 = icmp eq i32 %8539, 0
  br i1 %8540, label %8594, label %8541

8541:                                             ; preds = %8536
  br label %8542

8542:                                             ; preds = %8541
  br label %8543

8543:                                             ; preds = %8542
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %8544 = call ptr @__errno_location() #12
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  store i32 %8545, ptr %211, align 4, !tbaa !5
  %8546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8547 = call i32 @s2n_print_stacktrace(ptr noundef %8546)
  %8548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8549 = trunc i8 %8548 to i1
  br i1 %8549, label %8550, label %8572

8550:                                             ; preds = %8543
  %8551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8552 = call i32 @fileno(ptr noundef %8551) #11
  %8553 = call i32 @isatty(i32 noundef %8552) #11
  %8554 = icmp ne i32 %8553, 0
  br i1 %8554, label %8555, label %8572

8555:                                             ; preds = %8550
  %8556 = load i32, ptr %211, align 4, !tbaa !5
  %8557 = call ptr @__errno_location() #12
  store i32 %8556, ptr %8557, align 4, !tbaa !5
  %8558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8559 = load i32, ptr @test_count, align 4, !tbaa !5
  %8560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8561 = load i32, ptr %8560, align 4, !tbaa !5
  %8562 = call ptr @s2n_strerror(i32 noundef %8561, ptr noundef @.str.4)
  %8563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8564 = load i32, ptr %8563, align 4, !tbaa !5
  %8565 = call ptr @s2n_strerror_debug(i32 noundef %8564, ptr noundef @.str.4)
  %8566 = call ptr @__errno_location() #12
  %8567 = load i32, ptr %8566, align 4, !tbaa !5
  %8568 = call ptr @strerror(i32 noundef %8567) #11
  %8569 = call ptr @__errno_location() #12
  %8570 = load i32, ptr %8569, align 4, !tbaa !5
  %8571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8558, ptr noundef @.str.2, i32 noundef %8559, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 507, ptr noundef %8562, ptr noundef %8565, ptr noundef %8568, i32 noundef %8570) #11
  br label %8589

8572:                                             ; preds = %8550, %8543
  %8573 = load i32, ptr %211, align 4, !tbaa !5
  %8574 = call ptr @__errno_location() #12
  store i32 %8573, ptr %8574, align 4, !tbaa !5
  %8575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8576 = load i32, ptr @test_count, align 4, !tbaa !5
  %8577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8578 = load i32, ptr %8577, align 4, !tbaa !5
  %8579 = call ptr @s2n_strerror(i32 noundef %8578, ptr noundef @.str.4)
  %8580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8581 = load i32, ptr %8580, align 4, !tbaa !5
  %8582 = call ptr @s2n_strerror_debug(i32 noundef %8581, ptr noundef @.str.4)
  %8583 = call ptr @__errno_location() #12
  %8584 = load i32, ptr %8583, align 4, !tbaa !5
  %8585 = call ptr @strerror(i32 noundef %8584) #11
  %8586 = call ptr @__errno_location() #12
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8575, ptr noundef @.str.5, i32 noundef %8576, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 507, ptr noundef %8579, ptr noundef %8582, ptr noundef %8585, i32 noundef %8587) #11
  br label %8589

8589:                                             ; preds = %8572, %8555
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %8590

8590:                                             ; preds = %8589
  br label %8591

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

8592:                                             ; No predecessors!
  br label %8593

8593:                                             ; preds = %8592
  br label %8594

8594:                                             ; preds = %8593, %8536
  br label %8595

8595:                                             ; preds = %8594
  br label %8596

8596:                                             ; preds = %8595
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #11
  %8597 = call i32 @s2n_connection_ptr_free(ptr noundef %197)
  %8598 = getelementptr inbounds %struct.s2n_result, ptr %212, i32 0, i32 0
  store i32 %8597, ptr %8598, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #11
  %8599 = call i32 @s2n_connection_ptr_free(ptr noundef %195)
  %8600 = getelementptr inbounds %struct.s2n_result, ptr %213, i32 0, i32 0
  store i32 %8599, ptr %8600, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #11
  store i64 0, ptr %214, align 8, !tbaa !45
  br label %8601

8601:                                             ; preds = %11959, %8596
  %8602 = load i64, ptr %214, align 8, !tbaa !45
  %8603 = icmp ult i64 %8602, 2
  br i1 %8603, label %8605, label %8604

8604:                                             ; preds = %8601
  store i32 881, ptr %215, align 4
  br label %11962

8605:                                             ; preds = %8601
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %8606 = load i64, ptr %214, align 8, !tbaa !45
  %8607 = getelementptr inbounds [2 x i32], ptr %10, i64 0, i64 %8606
  %8608 = load i32, ptr %8607, align 4, !tbaa !5
  store i32 %8608, ptr %216, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #11
  %8609 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8609, ptr %217, align 8, !tbaa !9
  br label %8610

8610:                                             ; preds = %8605
  %8611 = load i32, ptr @test_count, align 4, !tbaa !5
  %8612 = add nsw i32 %8611, 1
  store i32 %8612, ptr @test_count, align 4, !tbaa !5
  %8613 = load ptr, ptr %217, align 8, !tbaa !9
  %8614 = icmp eq ptr %8613, null
  br i1 %8614, label %8615, label %8668

8615:                                             ; preds = %8610
  br label %8616

8616:                                             ; preds = %8615
  br label %8617

8617:                                             ; preds = %8616
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %8618 = call ptr @__errno_location() #12
  %8619 = load i32, ptr %8618, align 4, !tbaa !5
  store i32 %8619, ptr %218, align 4, !tbaa !5
  %8620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8621 = call i32 @s2n_print_stacktrace(ptr noundef %8620)
  %8622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8623 = trunc i8 %8622 to i1
  br i1 %8623, label %8624, label %8646

8624:                                             ; preds = %8617
  %8625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8626 = call i32 @fileno(ptr noundef %8625) #11
  %8627 = call i32 @isatty(i32 noundef %8626) #11
  %8628 = icmp ne i32 %8627, 0
  br i1 %8628, label %8629, label %8646

8629:                                             ; preds = %8624
  %8630 = load i32, ptr %218, align 4, !tbaa !5
  %8631 = call ptr @__errno_location() #12
  store i32 %8630, ptr %8631, align 4, !tbaa !5
  %8632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8633 = load i32, ptr @test_count, align 4, !tbaa !5
  %8634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8635 = load i32, ptr %8634, align 4, !tbaa !5
  %8636 = call ptr @s2n_strerror(i32 noundef %8635, ptr noundef @.str.4)
  %8637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8638 = load i32, ptr %8637, align 4, !tbaa !5
  %8639 = call ptr @s2n_strerror_debug(i32 noundef %8638, ptr noundef @.str.4)
  %8640 = call ptr @__errno_location() #12
  %8641 = load i32, ptr %8640, align 4, !tbaa !5
  %8642 = call ptr @strerror(i32 noundef %8641) #11
  %8643 = call ptr @__errno_location() #12
  %8644 = load i32, ptr %8643, align 4, !tbaa !5
  %8645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8632, ptr noundef @.str.2, i32 noundef %8633, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 521, ptr noundef %8636, ptr noundef %8639, ptr noundef %8642, i32 noundef %8644) #11
  br label %8663

8646:                                             ; preds = %8624, %8617
  %8647 = load i32, ptr %218, align 4, !tbaa !5
  %8648 = call ptr @__errno_location() #12
  store i32 %8647, ptr %8648, align 4, !tbaa !5
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = load i32, ptr @test_count, align 4, !tbaa !5
  %8651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8652 = load i32, ptr %8651, align 4, !tbaa !5
  %8653 = call ptr @s2n_strerror(i32 noundef %8652, ptr noundef @.str.4)
  %8654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8655 = load i32, ptr %8654, align 4, !tbaa !5
  %8656 = call ptr @s2n_strerror_debug(i32 noundef %8655, ptr noundef @.str.4)
  %8657 = call ptr @__errno_location() #12
  %8658 = load i32, ptr %8657, align 4, !tbaa !5
  %8659 = call ptr @strerror(i32 noundef %8658) #11
  %8660 = call ptr @__errno_location() #12
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8649, ptr noundef @.str.5, i32 noundef %8650, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 521, ptr noundef %8653, ptr noundef %8656, ptr noundef %8659, i32 noundef %8661) #11
  br label %8663

8663:                                             ; preds = %8646, %8629
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %8664

8664:                                             ; preds = %8663
  br label %8665

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

8666:                                             ; No predecessors!
  br label %8667

8667:                                             ; preds = %8666
  br label %8668

8668:                                             ; preds = %8667, %8610
  br label %8669

8669:                                             ; preds = %8668
  br label %8670

8670:                                             ; preds = %8669
  br label %8671

8671:                                             ; preds = %8670
  %8672 = load i32, ptr @test_count, align 4, !tbaa !5
  %8673 = add nsw i32 %8672, 1
  store i32 %8673, ptr @test_count, align 4, !tbaa !5
  %8674 = load ptr, ptr %217, align 8, !tbaa !9
  %8675 = load ptr, ptr %13, align 8, !tbaa !9
  %8676 = call i32 @s2n_connection_set_config(ptr noundef %8674, ptr noundef %8675)
  %8677 = icmp eq i32 %8676, -1
  br i1 %8677, label %8678, label %8731

8678:                                             ; preds = %8671
  br label %8679

8679:                                             ; preds = %8678
  br label %8680

8680:                                             ; preds = %8679
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %8681 = call ptr @__errno_location() #12
  %8682 = load i32, ptr %8681, align 4, !tbaa !5
  store i32 %8682, ptr %219, align 4, !tbaa !5
  %8683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8684 = call i32 @s2n_print_stacktrace(ptr noundef %8683)
  %8685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8686 = trunc i8 %8685 to i1
  br i1 %8686, label %8687, label %8709

8687:                                             ; preds = %8680
  %8688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8689 = call i32 @fileno(ptr noundef %8688) #11
  %8690 = call i32 @isatty(i32 noundef %8689) #11
  %8691 = icmp ne i32 %8690, 0
  br i1 %8691, label %8692, label %8709

8692:                                             ; preds = %8687
  %8693 = load i32, ptr %219, align 4, !tbaa !5
  %8694 = call ptr @__errno_location() #12
  store i32 %8693, ptr %8694, align 4, !tbaa !5
  %8695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8696 = load i32, ptr @test_count, align 4, !tbaa !5
  %8697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8698 = load i32, ptr %8697, align 4, !tbaa !5
  %8699 = call ptr @s2n_strerror(i32 noundef %8698, ptr noundef @.str.4)
  %8700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8701 = load i32, ptr %8700, align 4, !tbaa !5
  %8702 = call ptr @s2n_strerror_debug(i32 noundef %8701, ptr noundef @.str.4)
  %8703 = call ptr @__errno_location() #12
  %8704 = load i32, ptr %8703, align 4, !tbaa !5
  %8705 = call ptr @strerror(i32 noundef %8704) #11
  %8706 = call ptr @__errno_location() #12
  %8707 = load i32, ptr %8706, align 4, !tbaa !5
  %8708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8695, ptr noundef @.str.2, i32 noundef %8696, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 522, ptr noundef %8699, ptr noundef %8702, ptr noundef %8705, i32 noundef %8707) #11
  br label %8726

8709:                                             ; preds = %8687, %8680
  %8710 = load i32, ptr %219, align 4, !tbaa !5
  %8711 = call ptr @__errno_location() #12
  store i32 %8710, ptr %8711, align 4, !tbaa !5
  %8712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8713 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8715, ptr noundef @.str.4)
  %8717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8718 = load i32, ptr %8717, align 4, !tbaa !5
  %8719 = call ptr @s2n_strerror_debug(i32 noundef %8718, ptr noundef @.str.4)
  %8720 = call ptr @__errno_location() #12
  %8721 = load i32, ptr %8720, align 4, !tbaa !5
  %8722 = call ptr @strerror(i32 noundef %8721) #11
  %8723 = call ptr @__errno_location() #12
  %8724 = load i32, ptr %8723, align 4, !tbaa !5
  %8725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8712, ptr noundef @.str.5, i32 noundef %8713, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 522, ptr noundef %8716, ptr noundef %8719, ptr noundef %8722, i32 noundef %8724) #11
  br label %8726

8726:                                             ; preds = %8709, %8692
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %8727

8727:                                             ; preds = %8726
  br label %8728

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

8729:                                             ; No predecessors!
  br label %8730

8730:                                             ; preds = %8729
  br label %8731

8731:                                             ; preds = %8730, %8671
  br label %8732

8732:                                             ; preds = %8731
  br label %8733

8733:                                             ; preds = %8732
  call void @llvm.lifetime.start.p0(i64 135, ptr %220) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %220, ptr align 16 @__const.main.raw_client_hello, i64 135, i1 false)
  call void @llvm.lifetime.start.p0(i64 193, ptr %221) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %221, ptr align 16 @__const.main.expected_ja3.70, i64 193, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #11
  store ptr null, ptr %222, align 8, !tbaa !9
  br label %8734

8734:                                             ; preds = %8733
  %8735 = load i32, ptr @test_count, align 4, !tbaa !5
  %8736 = add nsw i32 %8735, 1
  store i32 %8736, ptr @test_count, align 4, !tbaa !5
  %8737 = load ptr, ptr %217, align 8, !tbaa !9
  %8738 = getelementptr inbounds [135 x i8], ptr %220, i64 0, i64 0
  %8739 = load i32, ptr %216, align 4, !tbaa !5
  %8740 = call i32 @s2n_client_hello_from_source(ptr noundef %222, ptr noundef %8737, ptr noundef %8738, i32 noundef 135, i32 noundef %8739)
  %8741 = getelementptr inbounds %struct.s2n_result, ptr %223, i32 0, i32 0
  store i32 %8740, ptr %8741, align 4
  %8742 = getelementptr inbounds %struct.s2n_result, ptr %223, i32 0, i32 0
  %8743 = load i32, ptr %8742, align 4
  %8744 = call zeroext i1 @s2n_result_is_ok(i32 %8743)
  br i1 %8744, label %8798, label %8745

8745:                                             ; preds = %8734
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  %8748 = call ptr @__errno_location() #12
  %8749 = load i32, ptr %8748, align 4, !tbaa !5
  store i32 %8749, ptr %224, align 4, !tbaa !5
  %8750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8751 = call i32 @s2n_print_stacktrace(ptr noundef %8750)
  %8752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8753 = trunc i8 %8752 to i1
  br i1 %8753, label %8754, label %8776

8754:                                             ; preds = %8747
  %8755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8756 = call i32 @fileno(ptr noundef %8755) #11
  %8757 = call i32 @isatty(i32 noundef %8756) #11
  %8758 = icmp ne i32 %8757, 0
  br i1 %8758, label %8759, label %8776

8759:                                             ; preds = %8754
  %8760 = load i32, ptr %224, align 4, !tbaa !5
  %8761 = call ptr @__errno_location() #12
  store i32 %8760, ptr %8761, align 4, !tbaa !5
  %8762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8763 = load i32, ptr @test_count, align 4, !tbaa !5
  %8764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8765 = load i32, ptr %8764, align 4, !tbaa !5
  %8766 = call ptr @s2n_strerror(i32 noundef %8765, ptr noundef @.str.4)
  %8767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8768 = load i32, ptr %8767, align 4, !tbaa !5
  %8769 = call ptr @s2n_strerror_debug(i32 noundef %8768, ptr noundef @.str.4)
  %8770 = call ptr @__errno_location() #12
  %8771 = load i32, ptr %8770, align 4, !tbaa !5
  %8772 = call ptr @strerror(i32 noundef %8771) #11
  %8773 = call ptr @__errno_location() #12
  %8774 = load i32, ptr %8773, align 4, !tbaa !5
  %8775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8762, ptr noundef @.str.2, i32 noundef %8763, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 552, ptr noundef %8766, ptr noundef %8769, ptr noundef %8772, i32 noundef %8774) #11
  br label %8793

8776:                                             ; preds = %8754, %8747
  %8777 = load i32, ptr %224, align 4, !tbaa !5
  %8778 = call ptr @__errno_location() #12
  store i32 %8777, ptr %8778, align 4, !tbaa !5
  %8779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8780 = load i32, ptr @test_count, align 4, !tbaa !5
  %8781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  %8783 = call ptr @s2n_strerror(i32 noundef %8782, ptr noundef @.str.4)
  %8784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8785 = load i32, ptr %8784, align 4, !tbaa !5
  %8786 = call ptr @s2n_strerror_debug(i32 noundef %8785, ptr noundef @.str.4)
  %8787 = call ptr @__errno_location() #12
  %8788 = load i32, ptr %8787, align 4, !tbaa !5
  %8789 = call ptr @strerror(i32 noundef %8788) #11
  %8790 = call ptr @__errno_location() #12
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8779, ptr noundef @.str.5, i32 noundef %8780, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 552, ptr noundef %8783, ptr noundef %8786, ptr noundef %8789, i32 noundef %8791) #11
  br label %8793

8793:                                             ; preds = %8776, %8759
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  br label %8794

8794:                                             ; preds = %8793
  br label %8795

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

8796:                                             ; No predecessors!
  br label %8797

8797:                                             ; preds = %8796
  br label %8798

8798:                                             ; preds = %8797, %8734
  br label %8799

8799:                                             ; preds = %8798
  br label %8800

8800:                                             ; preds = %8799
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  store i32 0, ptr %225, align 4, !tbaa !5
  br label %8801

8801:                                             ; preds = %8800
  %8802 = load i32, ptr @test_count, align 4, !tbaa !5
  %8803 = add nsw i32 %8802, 1
  store i32 %8803, ptr @test_count, align 4, !tbaa !5
  %8804 = load ptr, ptr %222, align 8, !tbaa !9
  %8805 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %8806 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %8804, i32 noundef 0, i32 noundef 500, ptr noundef %8805, ptr noundef %225)
  %8807 = icmp eq i32 %8806, -1
  br i1 %8807, label %8808, label %8861

8808:                                             ; preds = %8801
  br label %8809

8809:                                             ; preds = %8808
  br label %8810

8810:                                             ; preds = %8809
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  %8811 = call ptr @__errno_location() #12
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  store i32 %8812, ptr %226, align 4, !tbaa !5
  %8813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8814 = call i32 @s2n_print_stacktrace(ptr noundef %8813)
  %8815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8816 = trunc i8 %8815 to i1
  br i1 %8816, label %8817, label %8839

8817:                                             ; preds = %8810
  %8818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8819 = call i32 @fileno(ptr noundef %8818) #11
  %8820 = call i32 @isatty(i32 noundef %8819) #11
  %8821 = icmp ne i32 %8820, 0
  br i1 %8821, label %8822, label %8839

8822:                                             ; preds = %8817
  %8823 = load i32, ptr %226, align 4, !tbaa !5
  %8824 = call ptr @__errno_location() #12
  store i32 %8823, ptr %8824, align 4, !tbaa !5
  %8825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8826 = load i32, ptr @test_count, align 4, !tbaa !5
  %8827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8828 = load i32, ptr %8827, align 4, !tbaa !5
  %8829 = call ptr @s2n_strerror(i32 noundef %8828, ptr noundef @.str.4)
  %8830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8831 = load i32, ptr %8830, align 4, !tbaa !5
  %8832 = call ptr @s2n_strerror_debug(i32 noundef %8831, ptr noundef @.str.4)
  %8833 = call ptr @__errno_location() #12
  %8834 = load i32, ptr %8833, align 4, !tbaa !5
  %8835 = call ptr @strerror(i32 noundef %8834) #11
  %8836 = call ptr @__errno_location() #12
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  %8838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8825, ptr noundef @.str.2, i32 noundef %8826, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 556, ptr noundef %8829, ptr noundef %8832, ptr noundef %8835, i32 noundef %8837) #11
  br label %8856

8839:                                             ; preds = %8817, %8810
  %8840 = load i32, ptr %226, 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.5, i32 noundef %8843, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 556, ptr noundef %8846, ptr noundef %8849, ptr noundef %8852, i32 noundef %8854) #11
  br label %8856

8856:                                             ; preds = %8839, %8822
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  br label %8857

8857:                                             ; preds = %8856
  br label %8858

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

8859:                                             ; No predecessors!
  br label %8860

8860:                                             ; preds = %8859
  br label %8861

8861:                                             ; preds = %8860, %8801
  br label %8862

8862:                                             ; preds = %8861
  br label %8863

8863:                                             ; preds = %8862
  br label %8864

8864:                                             ; preds = %8863
  %8865 = load i32, ptr @test_count, align 4, !tbaa !5
  %8866 = add nsw i32 %8865, 1
  store i32 %8866, ptr @test_count, align 4, !tbaa !5
  %8867 = load i32, ptr %225, align 4, !tbaa !5
  %8868 = zext i32 %8867 to i64
  %8869 = icmp eq i64 192, %8868
  br i1 %8869, label %8923, label %8870

8870:                                             ; preds = %8864
  br label %8871

8871:                                             ; preds = %8870
  br label %8872

8872:                                             ; preds = %8871
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %8873 = call ptr @__errno_location() #12
  %8874 = load i32, ptr %8873, align 4, !tbaa !5
  store i32 %8874, ptr %227, align 4, !tbaa !5
  %8875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8876 = call i32 @s2n_print_stacktrace(ptr noundef %8875)
  %8877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8878 = trunc i8 %8877 to i1
  br i1 %8878, label %8879, label %8901

8879:                                             ; preds = %8872
  %8880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8881 = call i32 @fileno(ptr noundef %8880) #11
  %8882 = call i32 @isatty(i32 noundef %8881) #11
  %8883 = icmp ne i32 %8882, 0
  br i1 %8883, label %8884, label %8901

8884:                                             ; preds = %8879
  %8885 = load i32, ptr %227, align 4, !tbaa !5
  %8886 = call ptr @__errno_location() #12
  store i32 %8885, ptr %8886, align 4, !tbaa !5
  %8887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8888 = load i32, ptr @test_count, align 4, !tbaa !5
  %8889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8890 = load i32, ptr %8889, align 4, !tbaa !5
  %8891 = call ptr @s2n_strerror(i32 noundef %8890, ptr noundef @.str.4)
  %8892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8893 = load i32, ptr %8892, align 4, !tbaa !5
  %8894 = call ptr @s2n_strerror_debug(i32 noundef %8893, ptr noundef @.str.4)
  %8895 = call ptr @__errno_location() #12
  %8896 = load i32, ptr %8895, align 4, !tbaa !5
  %8897 = call ptr @strerror(i32 noundef %8896) #11
  %8898 = call ptr @__errno_location() #12
  %8899 = load i32, ptr %8898, align 4, !tbaa !5
  %8900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8887, ptr noundef @.str.2, i32 noundef %8888, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 557, ptr noundef %8891, ptr noundef %8894, ptr noundef %8897, i32 noundef %8899) #11
  br label %8918

8901:                                             ; preds = %8879, %8872
  %8902 = load i32, ptr %227, 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.5, i32 noundef %8905, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 557, ptr noundef %8908, ptr noundef %8911, ptr noundef %8914, i32 noundef %8916) #11
  br label %8918

8918:                                             ; preds = %8901, %8884
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %8919

8919:                                             ; preds = %8918
  br label %8920

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

8921:                                             ; No predecessors!
  br label %8922

8922:                                             ; preds = %8921
  br label %8923

8923:                                             ; preds = %8922, %8864
  br label %8924

8924:                                             ; preds = %8923
  br label %8925

8925:                                             ; preds = %8924
  br label %8926

8926:                                             ; preds = %8925
  %8927 = load i32, ptr %225, align 4, !tbaa !5
  %8928 = icmp ne i32 %8927, 0
  br i1 %8928, label %8929, label %8995

8929:                                             ; preds = %8926
  br label %8930

8930:                                             ; preds = %8929
  %8931 = load i32, ptr @test_count, align 4, !tbaa !5
  %8932 = add nsw i32 %8931, 1
  store i32 %8932, ptr @test_count, align 4, !tbaa !5
  %8933 = getelementptr inbounds [193 x i8], ptr %221, i64 0, i64 0
  %8934 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %8935 = load i32, ptr %225, align 4, !tbaa !5
  %8936 = zext i32 %8935 to i64
  %8937 = call i32 @memcmp(ptr noundef %8933, ptr noundef %8934, i64 noundef %8936) #14
  %8938 = icmp eq i32 %8937, 0
  br i1 %8938, label %8992, label %8939

8939:                                             ; preds = %8930
  br label %8940

8940:                                             ; preds = %8939
  br label %8941

8941:                                             ; preds = %8940
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %8942 = call ptr @__errno_location() #12
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  store i32 %8943, ptr %228, align 4, !tbaa !5
  %8944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8945 = call i32 @s2n_print_stacktrace(ptr noundef %8944)
  %8946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8947 = trunc i8 %8946 to i1
  br i1 %8947, label %8948, label %8970

8948:                                             ; preds = %8941
  %8949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8950 = call i32 @fileno(ptr noundef %8949) #11
  %8951 = call i32 @isatty(i32 noundef %8950) #11
  %8952 = icmp ne i32 %8951, 0
  br i1 %8952, label %8953, label %8970

8953:                                             ; preds = %8948
  %8954 = load i32, ptr %228, align 4, !tbaa !5
  %8955 = call ptr @__errno_location() #12
  store i32 %8954, ptr %8955, align 4, !tbaa !5
  %8956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8957 = load i32, ptr @test_count, align 4, !tbaa !5
  %8958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  %8960 = call ptr @s2n_strerror(i32 noundef %8959, ptr noundef @.str.4)
  %8961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8962 = load i32, ptr %8961, align 4, !tbaa !5
  %8963 = call ptr @s2n_strerror_debug(i32 noundef %8962, ptr noundef @.str.4)
  %8964 = call ptr @__errno_location() #12
  %8965 = load i32, ptr %8964, align 4, !tbaa !5
  %8966 = call ptr @strerror(i32 noundef %8965) #11
  %8967 = call ptr @__errno_location() #12
  %8968 = load i32, ptr %8967, align 4, !tbaa !5
  %8969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8956, ptr noundef @.str.2, i32 noundef %8957, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 558, ptr noundef %8960, ptr noundef %8963, ptr noundef %8966, i32 noundef %8968) #11
  br label %8987

8970:                                             ; preds = %8948, %8941
  %8971 = load i32, ptr %228, align 4, !tbaa !5
  %8972 = call ptr @__errno_location() #12
  store i32 %8971, ptr %8972, align 4, !tbaa !5
  %8973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8974 = load i32, ptr @test_count, align 4, !tbaa !5
  %8975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call ptr @s2n_strerror(i32 noundef %8976, ptr noundef @.str.4)
  %8978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call ptr @s2n_strerror_debug(i32 noundef %8979, ptr noundef @.str.4)
  %8981 = call ptr @__errno_location() #12
  %8982 = load i32, ptr %8981, align 4, !tbaa !5
  %8983 = call ptr @strerror(i32 noundef %8982) #11
  %8984 = call ptr @__errno_location() #12
  %8985 = load i32, ptr %8984, align 4, !tbaa !5
  %8986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8973, ptr noundef @.str.5, i32 noundef %8974, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 558, ptr noundef %8977, ptr noundef %8980, ptr noundef %8983, i32 noundef %8985) #11
  br label %8987

8987:                                             ; preds = %8970, %8953
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %8988

8988:                                             ; preds = %8987
  br label %8989

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

8990:                                             ; No predecessors!
  br label %8991

8991:                                             ; preds = %8990
  br label %8992

8992:                                             ; preds = %8991, %8930
  br label %8993

8993:                                             ; preds = %8992
  br label %8994

8994:                                             ; preds = %8993
  br label %8995

8995:                                             ; preds = %8994, %8926
  br label %8996

8996:                                             ; preds = %8995
  br label %8997

8997:                                             ; preds = %8996
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  %8998 = call i32 @s2n_client_hello_free(ptr noundef %222)
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #11
  call void @llvm.lifetime.end.p0(i64 193, ptr %221) #11
  call void @llvm.lifetime.end.p0(i64 135, ptr %220) #11
  call void @llvm.lifetime.start.p0(i64 164, ptr %229) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %229, ptr align 16 @__const.main.raw_client_hello.73, i64 164, i1 false)
  call void @llvm.lifetime.start.p0(i64 214, ptr %230) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %230, ptr align 16 @__const.main.expected_ja3.74, i64 214, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #11
  store ptr null, ptr %231, align 8, !tbaa !9
  br label %8999

8999:                                             ; preds = %8997
  %9000 = load i32, ptr @test_count, align 4, !tbaa !5
  %9001 = add nsw i32 %9000, 1
  store i32 %9001, ptr @test_count, align 4, !tbaa !5
  %9002 = load ptr, ptr %217, align 8, !tbaa !9
  %9003 = getelementptr inbounds [164 x i8], ptr %229, i64 0, i64 0
  %9004 = load i32, ptr %216, align 4, !tbaa !5
  %9005 = call i32 @s2n_client_hello_from_source(ptr noundef %231, ptr noundef %9002, ptr noundef %9003, i32 noundef 164, i32 noundef %9004)
  %9006 = getelementptr inbounds %struct.s2n_result, ptr %232, i32 0, i32 0
  store i32 %9005, ptr %9006, align 4
  %9007 = getelementptr inbounds %struct.s2n_result, ptr %232, i32 0, i32 0
  %9008 = load i32, ptr %9007, align 4
  %9009 = call zeroext i1 @s2n_result_is_ok(i32 %9008)
  br i1 %9009, label %9063, label %9010

9010:                                             ; preds = %8999
  br label %9011

9011:                                             ; preds = %9010
  br label %9012

9012:                                             ; preds = %9011
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #11
  %9013 = call ptr @__errno_location() #12
  %9014 = load i32, ptr %9013, align 4, !tbaa !5
  store i32 %9014, ptr %233, align 4, !tbaa !5
  %9015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9016 = call i32 @s2n_print_stacktrace(ptr noundef %9015)
  %9017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9018 = trunc i8 %9017 to i1
  br i1 %9018, label %9019, label %9041

9019:                                             ; preds = %9012
  %9020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9021 = call i32 @fileno(ptr noundef %9020) #11
  %9022 = call i32 @isatty(i32 noundef %9021) #11
  %9023 = icmp ne i32 %9022, 0
  br i1 %9023, label %9024, label %9041

9024:                                             ; preds = %9019
  %9025 = load i32, ptr %233, align 4, !tbaa !5
  %9026 = call ptr @__errno_location() #12
  store i32 %9025, ptr %9026, align 4, !tbaa !5
  %9027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9028 = load i32, ptr @test_count, align 4, !tbaa !5
  %9029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9030 = load i32, ptr %9029, align 4, !tbaa !5
  %9031 = call ptr @s2n_strerror(i32 noundef %9030, ptr noundef @.str.4)
  %9032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9033 = load i32, ptr %9032, align 4, !tbaa !5
  %9034 = call ptr @s2n_strerror_debug(i32 noundef %9033, ptr noundef @.str.4)
  %9035 = call ptr @__errno_location() #12
  %9036 = load i32, ptr %9035, align 4, !tbaa !5
  %9037 = call ptr @strerror(i32 noundef %9036) #11
  %9038 = call ptr @__errno_location() #12
  %9039 = load i32, ptr %9038, align 4, !tbaa !5
  %9040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9027, ptr noundef @.str.2, i32 noundef %9028, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9031, ptr noundef %9034, ptr noundef %9037, i32 noundef %9039) #11
  br label %9058

9041:                                             ; preds = %9019, %9012
  %9042 = load i32, ptr %233, align 4, !tbaa !5
  %9043 = call ptr @__errno_location() #12
  store i32 %9042, ptr %9043, align 4, !tbaa !5
  %9044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9045 = load i32, ptr @test_count, align 4, !tbaa !5
  %9046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9047 = load i32, ptr %9046, align 4, !tbaa !5
  %9048 = call ptr @s2n_strerror(i32 noundef %9047, ptr noundef @.str.4)
  %9049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9050 = load i32, ptr %9049, align 4, !tbaa !5
  %9051 = call ptr @s2n_strerror_debug(i32 noundef %9050, ptr noundef @.str.4)
  %9052 = call ptr @__errno_location() #12
  %9053 = load i32, ptr %9052, align 4, !tbaa !5
  %9054 = call ptr @strerror(i32 noundef %9053) #11
  %9055 = call ptr @__errno_location() #12
  %9056 = load i32, ptr %9055, align 4, !tbaa !5
  %9057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9044, ptr noundef @.str.5, i32 noundef %9045, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 593, ptr noundef %9048, ptr noundef %9051, ptr noundef %9054, i32 noundef %9056) #11
  br label %9058

9058:                                             ; preds = %9041, %9024
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %9059

9059:                                             ; preds = %9058
  br label %9060

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

9061:                                             ; No predecessors!
  br label %9062

9062:                                             ; preds = %9061
  br label %9063

9063:                                             ; preds = %9062, %8999
  br label %9064

9064:                                             ; preds = %9063
  br label %9065

9065:                                             ; preds = %9064
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  store i32 0, ptr %234, align 4, !tbaa !5
  br label %9066

9066:                                             ; preds = %9065
  %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 = load ptr, ptr %231, align 8, !tbaa !9
  %9070 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %9071 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %9069, i32 noundef 0, i32 noundef 500, ptr noundef %9070, ptr noundef %234)
  %9072 = icmp eq i32 %9071, -1
  br i1 %9072, label %9073, label %9126

9073:                                             ; preds = %9066
  br label %9074

9074:                                             ; preds = %9073
  br label %9075

9075:                                             ; preds = %9074
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %9076 = call ptr @__errno_location() #12
  %9077 = load i32, ptr %9076, align 4, !tbaa !5
  store i32 %9077, ptr %235, align 4, !tbaa !5
  %9078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9079 = call i32 @s2n_print_stacktrace(ptr noundef %9078)
  %9080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9081 = trunc i8 %9080 to i1
  br i1 %9081, label %9082, label %9104

9082:                                             ; preds = %9075
  %9083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9084 = call i32 @fileno(ptr noundef %9083) #11
  %9085 = call i32 @isatty(i32 noundef %9084) #11
  %9086 = icmp ne i32 %9085, 0
  br i1 %9086, label %9087, label %9104

9087:                                             ; preds = %9082
  %9088 = load i32, ptr %235, align 4, !tbaa !5
  %9089 = call ptr @__errno_location() #12
  store i32 %9088, ptr %9089, align 4, !tbaa !5
  %9090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9091 = load i32, ptr @test_count, align 4, !tbaa !5
  %9092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9093 = load i32, ptr %9092, align 4, !tbaa !5
  %9094 = call ptr @s2n_strerror(i32 noundef %9093, ptr noundef @.str.4)
  %9095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9096 = load i32, ptr %9095, align 4, !tbaa !5
  %9097 = call ptr @s2n_strerror_debug(i32 noundef %9096, ptr noundef @.str.4)
  %9098 = call ptr @__errno_location() #12
  %9099 = load i32, ptr %9098, align 4, !tbaa !5
  %9100 = call ptr @strerror(i32 noundef %9099) #11
  %9101 = call ptr @__errno_location() #12
  %9102 = load i32, ptr %9101, align 4, !tbaa !5
  %9103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9090, ptr noundef @.str.2, i32 noundef %9091, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 597, ptr noundef %9094, ptr noundef %9097, ptr noundef %9100, i32 noundef %9102) #11
  br label %9121

9104:                                             ; preds = %9082, %9075
  %9105 = load i32, ptr %235, 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.5, i32 noundef %9108, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 597, ptr noundef %9111, ptr noundef %9114, ptr noundef %9117, i32 noundef %9119) #11
  br label %9121

9121:                                             ; preds = %9104, %9087
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %9122

9122:                                             ; preds = %9121
  br label %9123

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

9124:                                             ; No predecessors!
  br label %9125

9125:                                             ; preds = %9124
  br label %9126

9126:                                             ; preds = %9125, %9066
  br label %9127

9127:                                             ; preds = %9126
  br label %9128

9128:                                             ; preds = %9127
  br label %9129

9129:                                             ; preds = %9128
  %9130 = load i32, ptr @test_count, align 4, !tbaa !5
  %9131 = add nsw i32 %9130, 1
  store i32 %9131, ptr @test_count, align 4, !tbaa !5
  %9132 = load i32, ptr %234, align 4, !tbaa !5
  %9133 = zext i32 %9132 to i64
  %9134 = icmp eq i64 213, %9133
  br i1 %9134, label %9188, label %9135

9135:                                             ; preds = %9129
  br label %9136

9136:                                             ; preds = %9135
  br label %9137

9137:                                             ; preds = %9136
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #11
  %9138 = call ptr @__errno_location() #12
  %9139 = load i32, ptr %9138, align 4, !tbaa !5
  store i32 %9139, ptr %236, align 4, !tbaa !5
  %9140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9141 = call i32 @s2n_print_stacktrace(ptr noundef %9140)
  %9142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9143 = trunc i8 %9142 to i1
  br i1 %9143, label %9144, label %9166

9144:                                             ; preds = %9137
  %9145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9146 = call i32 @fileno(ptr noundef %9145) #11
  %9147 = call i32 @isatty(i32 noundef %9146) #11
  %9148 = icmp ne i32 %9147, 0
  br i1 %9148, label %9149, label %9166

9149:                                             ; preds = %9144
  %9150 = load i32, ptr %236, align 4, !tbaa !5
  %9151 = call ptr @__errno_location() #12
  store i32 %9150, ptr %9151, align 4, !tbaa !5
  %9152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9153 = load i32, ptr @test_count, align 4, !tbaa !5
  %9154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9155 = load i32, ptr %9154, align 4, !tbaa !5
  %9156 = call ptr @s2n_strerror(i32 noundef %9155, ptr noundef @.str.4)
  %9157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9158 = load i32, ptr %9157, align 4, !tbaa !5
  %9159 = call ptr @s2n_strerror_debug(i32 noundef %9158, ptr noundef @.str.4)
  %9160 = call ptr @__errno_location() #12
  %9161 = load i32, ptr %9160, align 4, !tbaa !5
  %9162 = call ptr @strerror(i32 noundef %9161) #11
  %9163 = call ptr @__errno_location() #12
  %9164 = load i32, ptr %9163, align 4, !tbaa !5
  %9165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9152, ptr noundef @.str.2, i32 noundef %9153, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 598, ptr noundef %9156, ptr noundef %9159, ptr noundef %9162, i32 noundef %9164) #11
  br label %9183

9166:                                             ; preds = %9144, %9137
  %9167 = load i32, ptr %236, 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.5, i32 noundef %9170, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 598, ptr noundef %9173, ptr noundef %9176, ptr noundef %9179, i32 noundef %9181) #11
  br label %9183

9183:                                             ; preds = %9166, %9149
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #11
  br label %9184

9184:                                             ; preds = %9183
  br label %9185

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

9186:                                             ; No predecessors!
  br label %9187

9187:                                             ; preds = %9186
  br label %9188

9188:                                             ; preds = %9187, %9129
  br label %9189

9189:                                             ; preds = %9188
  br label %9190

9190:                                             ; preds = %9189
  br label %9191

9191:                                             ; preds = %9190
  %9192 = load i32, ptr %234, align 4, !tbaa !5
  %9193 = icmp ne i32 %9192, 0
  br i1 %9193, label %9194, label %9260

9194:                                             ; preds = %9191
  br label %9195

9195:                                             ; preds = %9194
  %9196 = load i32, ptr @test_count, align 4, !tbaa !5
  %9197 = add nsw i32 %9196, 1
  store i32 %9197, ptr @test_count, align 4, !tbaa !5
  %9198 = getelementptr inbounds [214 x i8], ptr %230, i64 0, i64 0
  %9199 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %9200 = load i32, ptr %234, align 4, !tbaa !5
  %9201 = zext i32 %9200 to i64
  %9202 = call i32 @memcmp(ptr noundef %9198, ptr noundef %9199, i64 noundef %9201) #14
  %9203 = icmp eq i32 %9202, 0
  br i1 %9203, label %9257, label %9204

9204:                                             ; preds = %9195
  br label %9205

9205:                                             ; preds = %9204
  br label %9206

9206:                                             ; preds = %9205
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %9207 = call ptr @__errno_location() #12
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  store i32 %9208, ptr %237, align 4, !tbaa !5
  %9209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9210 = call i32 @s2n_print_stacktrace(ptr noundef %9209)
  %9211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9212 = trunc i8 %9211 to i1
  br i1 %9212, label %9213, label %9235

9213:                                             ; preds = %9206
  %9214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9215 = call i32 @fileno(ptr noundef %9214) #11
  %9216 = call i32 @isatty(i32 noundef %9215) #11
  %9217 = icmp ne i32 %9216, 0
  br i1 %9217, label %9218, label %9235

9218:                                             ; preds = %9213
  %9219 = load i32, ptr %237, align 4, !tbaa !5
  %9220 = call ptr @__errno_location() #12
  store i32 %9219, ptr %9220, align 4, !tbaa !5
  %9221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9222 = load i32, ptr @test_count, align 4, !tbaa !5
  %9223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9224 = load i32, ptr %9223, align 4, !tbaa !5
  %9225 = call ptr @s2n_strerror(i32 noundef %9224, ptr noundef @.str.4)
  %9226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9227 = load i32, ptr %9226, align 4, !tbaa !5
  %9228 = call ptr @s2n_strerror_debug(i32 noundef %9227, ptr noundef @.str.4)
  %9229 = call ptr @__errno_location() #12
  %9230 = load i32, ptr %9229, align 4, !tbaa !5
  %9231 = call ptr @strerror(i32 noundef %9230) #11
  %9232 = call ptr @__errno_location() #12
  %9233 = load i32, ptr %9232, align 4, !tbaa !5
  %9234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9221, ptr noundef @.str.2, i32 noundef %9222, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 599, ptr noundef %9225, ptr noundef %9228, ptr noundef %9231, i32 noundef %9233) #11
  br label %9252

9235:                                             ; preds = %9213, %9206
  %9236 = load i32, ptr %237, align 4, !tbaa !5
  %9237 = call ptr @__errno_location() #12
  store i32 %9236, ptr %9237, align 4, !tbaa !5
  %9238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9239 = load i32, ptr @test_count, align 4, !tbaa !5
  %9240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @s2n_strerror(i32 noundef %9241, ptr noundef @.str.4)
  %9243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror_debug(i32 noundef %9244, ptr noundef @.str.4)
  %9246 = call ptr @__errno_location() #12
  %9247 = load i32, ptr %9246, align 4, !tbaa !5
  %9248 = call ptr @strerror(i32 noundef %9247) #11
  %9249 = call ptr @__errno_location() #12
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9238, ptr noundef @.str.5, i32 noundef %9239, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 599, ptr noundef %9242, ptr noundef %9245, ptr noundef %9248, i32 noundef %9250) #11
  br label %9252

9252:                                             ; preds = %9235, %9218
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %9253

9253:                                             ; preds = %9252
  br label %9254

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

9255:                                             ; No predecessors!
  br label %9256

9256:                                             ; preds = %9255
  br label %9257

9257:                                             ; preds = %9256, %9195
  br label %9258

9258:                                             ; preds = %9257
  br label %9259

9259:                                             ; preds = %9258
  br label %9260

9260:                                             ; preds = %9259, %9191
  br label %9261

9261:                                             ; preds = %9260
  br label %9262

9262:                                             ; preds = %9261
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  %9263 = call i32 @s2n_client_hello_free(ptr noundef %231)
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #11
  call void @llvm.lifetime.end.p0(i64 214, ptr %230) #11
  call void @llvm.lifetime.end.p0(i64 164, ptr %229) #11
  call void @llvm.lifetime.start.p0(i64 164, ptr %238) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %238, ptr align 16 @__const.main.raw_client_hello.75, i64 164, i1 false)
  call void @llvm.lifetime.start.p0(i64 214, ptr %239) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %239, ptr align 16 @__const.main.expected_ja3.76, i64 214, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #11
  store ptr null, ptr %240, align 8, !tbaa !9
  br label %9264

9264:                                             ; preds = %9262
  %9265 = load i32, ptr @test_count, align 4, !tbaa !5
  %9266 = add nsw i32 %9265, 1
  store i32 %9266, ptr @test_count, align 4, !tbaa !5
  %9267 = load ptr, ptr %217, align 8, !tbaa !9
  %9268 = getelementptr inbounds [164 x i8], ptr %238, i64 0, i64 0
  %9269 = load i32, ptr %216, align 4, !tbaa !5
  %9270 = call i32 @s2n_client_hello_from_source(ptr noundef %240, ptr noundef %9267, ptr noundef %9268, i32 noundef 164, i32 noundef %9269)
  %9271 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  store i32 %9270, ptr %9271, align 4
  %9272 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  %9273 = load i32, ptr %9272, align 4
  %9274 = call zeroext i1 @s2n_result_is_ok(i32 %9273)
  br i1 %9274, label %9328, label %9275

9275:                                             ; preds = %9264
  br label %9276

9276:                                             ; preds = %9275
  br label %9277

9277:                                             ; preds = %9276
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %9278 = call ptr @__errno_location() #12
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  store i32 %9279, ptr %242, align 4, !tbaa !5
  %9280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9281 = call i32 @s2n_print_stacktrace(ptr noundef %9280)
  %9282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9283 = trunc i8 %9282 to i1
  br i1 %9283, label %9284, label %9306

9284:                                             ; preds = %9277
  %9285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9286 = call i32 @fileno(ptr noundef %9285) #11
  %9287 = call i32 @isatty(i32 noundef %9286) #11
  %9288 = icmp ne i32 %9287, 0
  br i1 %9288, label %9289, label %9306

9289:                                             ; preds = %9284
  %9290 = load i32, ptr %242, align 4, !tbaa !5
  %9291 = call ptr @__errno_location() #12
  store i32 %9290, ptr %9291, align 4, !tbaa !5
  %9292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9293 = load i32, ptr @test_count, align 4, !tbaa !5
  %9294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9295 = load i32, ptr %9294, align 4, !tbaa !5
  %9296 = call ptr @s2n_strerror(i32 noundef %9295, ptr noundef @.str.4)
  %9297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9298 = load i32, ptr %9297, align 4, !tbaa !5
  %9299 = call ptr @s2n_strerror_debug(i32 noundef %9298, ptr noundef @.str.4)
  %9300 = call ptr @__errno_location() #12
  %9301 = load i32, ptr %9300, align 4, !tbaa !5
  %9302 = call ptr @strerror(i32 noundef %9301) #11
  %9303 = call ptr @__errno_location() #12
  %9304 = load i32, ptr %9303, align 4, !tbaa !5
  %9305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9292, ptr noundef @.str.2, i32 noundef %9293, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9296, ptr noundef %9299, ptr noundef %9302, i32 noundef %9304) #11
  br label %9323

9306:                                             ; preds = %9284, %9277
  %9307 = load i32, ptr %242, align 4, !tbaa !5
  %9308 = call ptr @__errno_location() #12
  store i32 %9307, ptr %9308, align 4, !tbaa !5
  %9309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9310 = load i32, ptr @test_count, align 4, !tbaa !5
  %9311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9312 = load i32, ptr %9311, align 4, !tbaa !5
  %9313 = call ptr @s2n_strerror(i32 noundef %9312, ptr noundef @.str.4)
  %9314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  %9316 = call ptr @s2n_strerror_debug(i32 noundef %9315, ptr noundef @.str.4)
  %9317 = call ptr @__errno_location() #12
  %9318 = load i32, ptr %9317, align 4, !tbaa !5
  %9319 = call ptr @strerror(i32 noundef %9318) #11
  %9320 = call ptr @__errno_location() #12
  %9321 = load i32, ptr %9320, align 4, !tbaa !5
  %9322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9309, ptr noundef @.str.5, i32 noundef %9310, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 634, ptr noundef %9313, ptr noundef %9316, ptr noundef %9319, i32 noundef %9321) #11
  br label %9323

9323:                                             ; preds = %9306, %9289
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %9324

9324:                                             ; preds = %9323
  br label %9325

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

9326:                                             ; No predecessors!
  br label %9327

9327:                                             ; preds = %9326
  br label %9328

9328:                                             ; preds = %9327, %9264
  br label %9329

9329:                                             ; preds = %9328
  br label %9330

9330:                                             ; preds = %9329
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  store i32 0, ptr %243, align 4, !tbaa !5
  br label %9331

9331:                                             ; preds = %9330
  %9332 = load i32, ptr @test_count, align 4, !tbaa !5
  %9333 = add nsw i32 %9332, 1
  store i32 %9333, ptr @test_count, align 4, !tbaa !5
  %9334 = load ptr, ptr %240, align 8, !tbaa !9
  %9335 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %9336 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %9334, i32 noundef 0, i32 noundef 500, ptr noundef %9335, ptr noundef %243)
  %9337 = icmp eq i32 %9336, -1
  br i1 %9337, label %9338, label %9391

9338:                                             ; preds = %9331
  br label %9339

9339:                                             ; preds = %9338
  br label %9340

9340:                                             ; preds = %9339
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #11
  %9341 = call ptr @__errno_location() #12
  %9342 = load i32, ptr %9341, align 4, !tbaa !5
  store i32 %9342, ptr %244, align 4, !tbaa !5
  %9343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9344 = call i32 @s2n_print_stacktrace(ptr noundef %9343)
  %9345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9346 = trunc i8 %9345 to i1
  br i1 %9346, label %9347, label %9369

9347:                                             ; preds = %9340
  %9348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9349 = call i32 @fileno(ptr noundef %9348) #11
  %9350 = call i32 @isatty(i32 noundef %9349) #11
  %9351 = icmp ne i32 %9350, 0
  br i1 %9351, label %9352, label %9369

9352:                                             ; preds = %9347
  %9353 = load i32, ptr %244, align 4, !tbaa !5
  %9354 = call ptr @__errno_location() #12
  store i32 %9353, ptr %9354, align 4, !tbaa !5
  %9355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9356 = load i32, ptr @test_count, align 4, !tbaa !5
  %9357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9358 = load i32, ptr %9357, align 4, !tbaa !5
  %9359 = call ptr @s2n_strerror(i32 noundef %9358, ptr noundef @.str.4)
  %9360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9361 = load i32, ptr %9360, align 4, !tbaa !5
  %9362 = call ptr @s2n_strerror_debug(i32 noundef %9361, ptr noundef @.str.4)
  %9363 = call ptr @__errno_location() #12
  %9364 = load i32, ptr %9363, align 4, !tbaa !5
  %9365 = call ptr @strerror(i32 noundef %9364) #11
  %9366 = call ptr @__errno_location() #12
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9355, ptr noundef @.str.2, i32 noundef %9356, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 638, ptr noundef %9359, ptr noundef %9362, ptr noundef %9365, i32 noundef %9367) #11
  br label %9386

9369:                                             ; preds = %9347, %9340
  %9370 = load i32, ptr %244, align 4, !tbaa !5
  %9371 = call ptr @__errno_location() #12
  store i32 %9370, ptr %9371, align 4, !tbaa !5
  %9372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9373 = load i32, ptr @test_count, align 4, !tbaa !5
  %9374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9375 = load i32, ptr %9374, align 4, !tbaa !5
  %9376 = call ptr @s2n_strerror(i32 noundef %9375, ptr noundef @.str.4)
  %9377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9378 = load i32, ptr %9377, align 4, !tbaa !5
  %9379 = call ptr @s2n_strerror_debug(i32 noundef %9378, ptr noundef @.str.4)
  %9380 = call ptr @__errno_location() #12
  %9381 = load i32, ptr %9380, align 4, !tbaa !5
  %9382 = call ptr @strerror(i32 noundef %9381) #11
  %9383 = call ptr @__errno_location() #12
  %9384 = load i32, ptr %9383, align 4, !tbaa !5
  %9385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9372, ptr noundef @.str.5, i32 noundef %9373, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 638, ptr noundef %9376, ptr noundef %9379, ptr noundef %9382, i32 noundef %9384) #11
  br label %9386

9386:                                             ; preds = %9369, %9352
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #11
  br label %9387

9387:                                             ; preds = %9386
  br label %9388

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

9389:                                             ; No predecessors!
  br label %9390

9390:                                             ; preds = %9389
  br label %9391

9391:                                             ; preds = %9390, %9331
  br label %9392

9392:                                             ; preds = %9391
  br label %9393

9393:                                             ; preds = %9392
  br label %9394

9394:                                             ; preds = %9393
  %9395 = load i32, ptr @test_count, align 4, !tbaa !5
  %9396 = add nsw i32 %9395, 1
  store i32 %9396, ptr @test_count, align 4, !tbaa !5
  %9397 = load i32, ptr %243, align 4, !tbaa !5
  %9398 = zext i32 %9397 to i64
  %9399 = icmp eq i64 213, %9398
  br i1 %9399, label %9453, label %9400

9400:                                             ; preds = %9394
  br label %9401

9401:                                             ; preds = %9400
  br label %9402

9402:                                             ; preds = %9401
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %9403 = call ptr @__errno_location() #12
  %9404 = load i32, ptr %9403, align 4, !tbaa !5
  store i32 %9404, ptr %245, align 4, !tbaa !5
  %9405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9406 = call i32 @s2n_print_stacktrace(ptr noundef %9405)
  %9407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9408 = trunc i8 %9407 to i1
  br i1 %9408, label %9409, label %9431

9409:                                             ; preds = %9402
  %9410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9411 = call i32 @fileno(ptr noundef %9410) #11
  %9412 = call i32 @isatty(i32 noundef %9411) #11
  %9413 = icmp ne i32 %9412, 0
  br i1 %9413, label %9414, label %9431

9414:                                             ; preds = %9409
  %9415 = load i32, ptr %245, align 4, !tbaa !5
  %9416 = call ptr @__errno_location() #12
  store i32 %9415, ptr %9416, align 4, !tbaa !5
  %9417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9418 = load i32, ptr @test_count, align 4, !tbaa !5
  %9419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9420 = load i32, ptr %9419, align 4, !tbaa !5
  %9421 = call ptr @s2n_strerror(i32 noundef %9420, ptr noundef @.str.4)
  %9422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9423 = load i32, ptr %9422, align 4, !tbaa !5
  %9424 = call ptr @s2n_strerror_debug(i32 noundef %9423, ptr noundef @.str.4)
  %9425 = call ptr @__errno_location() #12
  %9426 = load i32, ptr %9425, align 4, !tbaa !5
  %9427 = call ptr @strerror(i32 noundef %9426) #11
  %9428 = call ptr @__errno_location() #12
  %9429 = load i32, ptr %9428, align 4, !tbaa !5
  %9430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9417, ptr noundef @.str.2, i32 noundef %9418, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 639, ptr noundef %9421, ptr noundef %9424, ptr noundef %9427, i32 noundef %9429) #11
  br label %9448

9431:                                             ; preds = %9409, %9402
  %9432 = load i32, ptr %245, align 4, !tbaa !5
  %9433 = call ptr @__errno_location() #12
  store i32 %9432, ptr %9433, align 4, !tbaa !5
  %9434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9435 = load i32, ptr @test_count, align 4, !tbaa !5
  %9436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9437 = load i32, ptr %9436, align 4, !tbaa !5
  %9438 = call ptr @s2n_strerror(i32 noundef %9437, ptr noundef @.str.4)
  %9439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9440 = load i32, ptr %9439, align 4, !tbaa !5
  %9441 = call ptr @s2n_strerror_debug(i32 noundef %9440, ptr noundef @.str.4)
  %9442 = call ptr @__errno_location() #12
  %9443 = load i32, ptr %9442, align 4, !tbaa !5
  %9444 = call ptr @strerror(i32 noundef %9443) #11
  %9445 = call ptr @__errno_location() #12
  %9446 = load i32, ptr %9445, align 4, !tbaa !5
  %9447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9434, ptr noundef @.str.5, i32 noundef %9435, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 639, ptr noundef %9438, ptr noundef %9441, ptr noundef %9444, i32 noundef %9446) #11
  br label %9448

9448:                                             ; preds = %9431, %9414
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %9449

9449:                                             ; preds = %9448
  br label %9450

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

9451:                                             ; No predecessors!
  br label %9452

9452:                                             ; preds = %9451
  br label %9453

9453:                                             ; preds = %9452, %9394
  br label %9454

9454:                                             ; preds = %9453
  br label %9455

9455:                                             ; preds = %9454
  br label %9456

9456:                                             ; preds = %9455
  %9457 = load i32, ptr %243, align 4, !tbaa !5
  %9458 = icmp ne i32 %9457, 0
  br i1 %9458, label %9459, label %9525

9459:                                             ; preds = %9456
  br label %9460

9460:                                             ; preds = %9459
  %9461 = load i32, ptr @test_count, align 4, !tbaa !5
  %9462 = add nsw i32 %9461, 1
  store i32 %9462, ptr @test_count, align 4, !tbaa !5
  %9463 = getelementptr inbounds [214 x i8], ptr %239, i64 0, i64 0
  %9464 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %9465 = load i32, ptr %243, align 4, !tbaa !5
  %9466 = zext i32 %9465 to i64
  %9467 = call i32 @memcmp(ptr noundef %9463, ptr noundef %9464, i64 noundef %9466) #14
  %9468 = icmp eq i32 %9467, 0
  br i1 %9468, label %9522, label %9469

9469:                                             ; preds = %9460
  br label %9470

9470:                                             ; preds = %9469
  br label %9471

9471:                                             ; preds = %9470
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  %9472 = call ptr @__errno_location() #12
  %9473 = load i32, ptr %9472, align 4, !tbaa !5
  store i32 %9473, ptr %246, align 4, !tbaa !5
  %9474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9475 = call i32 @s2n_print_stacktrace(ptr noundef %9474)
  %9476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9477 = trunc i8 %9476 to i1
  br i1 %9477, label %9478, label %9500

9478:                                             ; preds = %9471
  %9479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9480 = call i32 @fileno(ptr noundef %9479) #11
  %9481 = call i32 @isatty(i32 noundef %9480) #11
  %9482 = icmp ne i32 %9481, 0
  br i1 %9482, label %9483, label %9500

9483:                                             ; preds = %9478
  %9484 = load i32, ptr %246, align 4, !tbaa !5
  %9485 = call ptr @__errno_location() #12
  store i32 %9484, ptr %9485, align 4, !tbaa !5
  %9486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9487 = load i32, ptr @test_count, align 4, !tbaa !5
  %9488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9489 = load i32, ptr %9488, align 4, !tbaa !5
  %9490 = call ptr @s2n_strerror(i32 noundef %9489, ptr noundef @.str.4)
  %9491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9492 = load i32, ptr %9491, align 4, !tbaa !5
  %9493 = call ptr @s2n_strerror_debug(i32 noundef %9492, ptr noundef @.str.4)
  %9494 = call ptr @__errno_location() #12
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  %9496 = call ptr @strerror(i32 noundef %9495) #11
  %9497 = call ptr @__errno_location() #12
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9486, ptr noundef @.str.2, i32 noundef %9487, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 640, ptr noundef %9490, ptr noundef %9493, ptr noundef %9496, i32 noundef %9498) #11
  br label %9517

9500:                                             ; preds = %9478, %9471
  %9501 = load i32, ptr %246, align 4, !tbaa !5
  %9502 = call ptr @__errno_location() #12
  store i32 %9501, ptr %9502, align 4, !tbaa !5
  %9503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9504 = load i32, ptr @test_count, align 4, !tbaa !5
  %9505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9506 = load i32, ptr %9505, align 4, !tbaa !5
  %9507 = call ptr @s2n_strerror(i32 noundef %9506, ptr noundef @.str.4)
  %9508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9509 = load i32, ptr %9508, align 4, !tbaa !5
  %9510 = call ptr @s2n_strerror_debug(i32 noundef %9509, ptr noundef @.str.4)
  %9511 = call ptr @__errno_location() #12
  %9512 = load i32, ptr %9511, align 4, !tbaa !5
  %9513 = call ptr @strerror(i32 noundef %9512) #11
  %9514 = call ptr @__errno_location() #12
  %9515 = load i32, ptr %9514, align 4, !tbaa !5
  %9516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9503, ptr noundef @.str.5, i32 noundef %9504, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 640, ptr noundef %9507, ptr noundef %9510, ptr noundef %9513, i32 noundef %9515) #11
  br label %9517

9517:                                             ; preds = %9500, %9483
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  br label %9518

9518:                                             ; preds = %9517
  br label %9519

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

9520:                                             ; No predecessors!
  br label %9521

9521:                                             ; preds = %9520
  br label %9522

9522:                                             ; preds = %9521, %9460
  br label %9523

9523:                                             ; preds = %9522
  br label %9524

9524:                                             ; preds = %9523
  br label %9525

9525:                                             ; preds = %9524, %9456
  br label %9526

9526:                                             ; preds = %9525
  br label %9527

9527:                                             ; preds = %9526
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  %9528 = call i32 @s2n_client_hello_free(ptr noundef %240)
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #11
  call void @llvm.lifetime.end.p0(i64 214, ptr %239) #11
  call void @llvm.lifetime.end.p0(i64 164, ptr %238) #11
  call void @llvm.lifetime.start.p0(i64 258, ptr %247) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %247, ptr align 16 @__const.main.raw_client_hello.77, i64 258, i1 false)
  call void @llvm.lifetime.start.p0(i64 358, ptr %248) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %248, ptr align 16 @__const.main.expected_ja3.78, i64 358, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #11
  store ptr null, ptr %249, align 8, !tbaa !9
  br label %9529

9529:                                             ; preds = %9527
  %9530 = load i32, ptr @test_count, align 4, !tbaa !5
  %9531 = add nsw i32 %9530, 1
  store i32 %9531, ptr @test_count, align 4, !tbaa !5
  %9532 = load ptr, ptr %217, align 8, !tbaa !9
  %9533 = getelementptr inbounds [258 x i8], ptr %247, i64 0, i64 0
  %9534 = load i32, ptr %216, align 4, !tbaa !5
  %9535 = call i32 @s2n_client_hello_from_source(ptr noundef %249, ptr noundef %9532, ptr noundef %9533, i32 noundef 258, i32 noundef %9534)
  %9536 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  store i32 %9535, ptr %9536, align 4
  %9537 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  %9538 = load i32, ptr %9537, align 4
  %9539 = call zeroext i1 @s2n_result_is_ok(i32 %9538)
  br i1 %9539, label %9593, label %9540

9540:                                             ; preds = %9529
  br label %9541

9541:                                             ; preds = %9540
  br label %9542

9542:                                             ; preds = %9541
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %9543 = call ptr @__errno_location() #12
  %9544 = load i32, ptr %9543, align 4, !tbaa !5
  store i32 %9544, ptr %251, align 4, !tbaa !5
  %9545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9546 = call i32 @s2n_print_stacktrace(ptr noundef %9545)
  %9547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9548 = trunc i8 %9547 to i1
  br i1 %9548, label %9549, label %9571

9549:                                             ; preds = %9542
  %9550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9551 = call i32 @fileno(ptr noundef %9550) #11
  %9552 = call i32 @isatty(i32 noundef %9551) #11
  %9553 = icmp ne i32 %9552, 0
  br i1 %9553, label %9554, label %9571

9554:                                             ; preds = %9549
  %9555 = load i32, ptr %251, align 4, !tbaa !5
  %9556 = call ptr @__errno_location() #12
  store i32 %9555, ptr %9556, align 4, !tbaa !5
  %9557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9558 = load i32, ptr @test_count, align 4, !tbaa !5
  %9559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9560 = load i32, ptr %9559, align 4, !tbaa !5
  %9561 = call ptr @s2n_strerror(i32 noundef %9560, ptr noundef @.str.4)
  %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_debug(i32 noundef %9563, ptr noundef @.str.4)
  %9565 = call ptr @__errno_location() #12
  %9566 = load i32, ptr %9565, align 4, !tbaa !5
  %9567 = call ptr @strerror(i32 noundef %9566) #11
  %9568 = call ptr @__errno_location() #12
  %9569 = load i32, ptr %9568, align 4, !tbaa !5
  %9570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9557, ptr noundef @.str.2, i32 noundef %9558, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 687, ptr noundef %9561, ptr noundef %9564, ptr noundef %9567, i32 noundef %9569) #11
  br label %9588

9571:                                             ; preds = %9549, %9542
  %9572 = load i32, ptr %251, align 4, !tbaa !5
  %9573 = call ptr @__errno_location() #12
  store i32 %9572, ptr %9573, align 4, !tbaa !5
  %9574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9575 = load i32, ptr @test_count, align 4, !tbaa !5
  %9576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9577 = load i32, ptr %9576, align 4, !tbaa !5
  %9578 = call ptr @s2n_strerror(i32 noundef %9577, ptr noundef @.str.4)
  %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_debug(i32 noundef %9580, ptr noundef @.str.4)
  %9582 = call ptr @__errno_location() #12
  %9583 = load i32, ptr %9582, align 4, !tbaa !5
  %9584 = call ptr @strerror(i32 noundef %9583) #11
  %9585 = call ptr @__errno_location() #12
  %9586 = load i32, ptr %9585, align 4, !tbaa !5
  %9587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9574, ptr noundef @.str.5, i32 noundef %9575, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 687, ptr noundef %9578, ptr noundef %9581, ptr noundef %9584, i32 noundef %9586) #11
  br label %9588

9588:                                             ; preds = %9571, %9554
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %9589

9589:                                             ; preds = %9588
  br label %9590

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

9591:                                             ; No predecessors!
  br label %9592

9592:                                             ; preds = %9591
  br label %9593

9593:                                             ; preds = %9592, %9529
  br label %9594

9594:                                             ; preds = %9593
  br label %9595

9595:                                             ; preds = %9594
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  store i32 0, ptr %252, align 4, !tbaa !5
  br label %9596

9596:                                             ; preds = %9595
  %9597 = load i32, ptr @test_count, align 4, !tbaa !5
  %9598 = add nsw i32 %9597, 1
  store i32 %9598, ptr @test_count, align 4, !tbaa !5
  %9599 = load ptr, ptr %249, align 8, !tbaa !9
  %9600 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %9601 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %9599, i32 noundef 0, i32 noundef 500, ptr noundef %9600, ptr noundef %252)
  %9602 = icmp eq i32 %9601, -1
  br i1 %9602, label %9603, label %9656

9603:                                             ; preds = %9596
  br label %9604

9604:                                             ; preds = %9603
  br label %9605

9605:                                             ; preds = %9604
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %9606 = call ptr @__errno_location() #12
  %9607 = load i32, ptr %9606, align 4, !tbaa !5
  store i32 %9607, ptr %253, align 4, !tbaa !5
  %9608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9609 = call i32 @s2n_print_stacktrace(ptr noundef %9608)
  %9610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9611 = trunc i8 %9610 to i1
  br i1 %9611, label %9612, label %9634

9612:                                             ; preds = %9605
  %9613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9614 = call i32 @fileno(ptr noundef %9613) #11
  %9615 = call i32 @isatty(i32 noundef %9614) #11
  %9616 = icmp ne i32 %9615, 0
  br i1 %9616, label %9617, label %9634

9617:                                             ; preds = %9612
  %9618 = load i32, ptr %253, align 4, !tbaa !5
  %9619 = call ptr @__errno_location() #12
  store i32 %9618, ptr %9619, align 4, !tbaa !5
  %9620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9621 = load i32, ptr @test_count, align 4, !tbaa !5
  %9622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call ptr @s2n_strerror(i32 noundef %9623, ptr noundef @.str.4)
  %9625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9626 = load i32, ptr %9625, align 4, !tbaa !5
  %9627 = call ptr @s2n_strerror_debug(i32 noundef %9626, ptr noundef @.str.4)
  %9628 = call ptr @__errno_location() #12
  %9629 = load i32, ptr %9628, align 4, !tbaa !5
  %9630 = call ptr @strerror(i32 noundef %9629) #11
  %9631 = call ptr @__errno_location() #12
  %9632 = load i32, ptr %9631, align 4, !tbaa !5
  %9633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9620, ptr noundef @.str.2, i32 noundef %9621, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 691, ptr noundef %9624, ptr noundef %9627, ptr noundef %9630, i32 noundef %9632) #11
  br label %9651

9634:                                             ; preds = %9612, %9605
  %9635 = load i32, ptr %253, align 4, !tbaa !5
  %9636 = call ptr @__errno_location() #12
  store i32 %9635, ptr %9636, align 4, !tbaa !5
  %9637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9638 = load i32, ptr @test_count, align 4, !tbaa !5
  %9639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call ptr @s2n_strerror(i32 noundef %9640, ptr noundef @.str.4)
  %9642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9643 = load i32, ptr %9642, align 4, !tbaa !5
  %9644 = call ptr @s2n_strerror_debug(i32 noundef %9643, ptr noundef @.str.4)
  %9645 = call ptr @__errno_location() #12
  %9646 = load i32, ptr %9645, align 4, !tbaa !5
  %9647 = call ptr @strerror(i32 noundef %9646) #11
  %9648 = call ptr @__errno_location() #12
  %9649 = load i32, ptr %9648, align 4, !tbaa !5
  %9650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9637, ptr noundef @.str.5, i32 noundef %9638, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 691, ptr noundef %9641, ptr noundef %9644, ptr noundef %9647, i32 noundef %9649) #11
  br label %9651

9651:                                             ; preds = %9634, %9617
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %9652

9652:                                             ; preds = %9651
  br label %9653

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

9654:                                             ; No predecessors!
  br label %9655

9655:                                             ; preds = %9654
  br label %9656

9656:                                             ; preds = %9655, %9596
  br label %9657

9657:                                             ; preds = %9656
  br label %9658

9658:                                             ; preds = %9657
  br label %9659

9659:                                             ; preds = %9658
  %9660 = load i32, ptr @test_count, align 4, !tbaa !5
  %9661 = add nsw i32 %9660, 1
  store i32 %9661, ptr @test_count, align 4, !tbaa !5
  %9662 = load i32, ptr %252, align 4, !tbaa !5
  %9663 = zext i32 %9662 to i64
  %9664 = icmp eq i64 357, %9663
  br i1 %9664, label %9718, label %9665

9665:                                             ; preds = %9659
  br label %9666

9666:                                             ; preds = %9665
  br label %9667

9667:                                             ; preds = %9666
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %9668 = call ptr @__errno_location() #12
  %9669 = load i32, ptr %9668, align 4, !tbaa !5
  store i32 %9669, ptr %254, align 4, !tbaa !5
  %9670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9671 = call i32 @s2n_print_stacktrace(ptr noundef %9670)
  %9672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9673 = trunc i8 %9672 to i1
  br i1 %9673, label %9674, label %9696

9674:                                             ; preds = %9667
  %9675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9676 = call i32 @fileno(ptr noundef %9675) #11
  %9677 = call i32 @isatty(i32 noundef %9676) #11
  %9678 = icmp ne i32 %9677, 0
  br i1 %9678, label %9679, label %9696

9679:                                             ; preds = %9674
  %9680 = load i32, ptr %254, align 4, !tbaa !5
  %9681 = call ptr @__errno_location() #12
  store i32 %9680, ptr %9681, align 4, !tbaa !5
  %9682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9683 = load i32, ptr @test_count, align 4, !tbaa !5
  %9684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9685 = load i32, ptr %9684, align 4, !tbaa !5
  %9686 = call ptr @s2n_strerror(i32 noundef %9685, ptr noundef @.str.4)
  %9687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9688 = load i32, ptr %9687, align 4, !tbaa !5
  %9689 = call ptr @s2n_strerror_debug(i32 noundef %9688, ptr noundef @.str.4)
  %9690 = call ptr @__errno_location() #12
  %9691 = load i32, ptr %9690, align 4, !tbaa !5
  %9692 = call ptr @strerror(i32 noundef %9691) #11
  %9693 = call ptr @__errno_location() #12
  %9694 = load i32, ptr %9693, align 4, !tbaa !5
  %9695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9682, ptr noundef @.str.2, i32 noundef %9683, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 692, ptr noundef %9686, ptr noundef %9689, ptr noundef %9692, i32 noundef %9694) #11
  br label %9713

9696:                                             ; preds = %9674, %9667
  %9697 = load i32, ptr %254, align 4, !tbaa !5
  %9698 = call ptr @__errno_location() #12
  store i32 %9697, ptr %9698, align 4, !tbaa !5
  %9699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9700 = load i32, ptr @test_count, align 4, !tbaa !5
  %9701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9702 = load i32, ptr %9701, align 4, !tbaa !5
  %9703 = call ptr @s2n_strerror(i32 noundef %9702, ptr noundef @.str.4)
  %9704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9705 = load i32, ptr %9704, align 4, !tbaa !5
  %9706 = call ptr @s2n_strerror_debug(i32 noundef %9705, ptr noundef @.str.4)
  %9707 = call ptr @__errno_location() #12
  %9708 = load i32, ptr %9707, align 4, !tbaa !5
  %9709 = call ptr @strerror(i32 noundef %9708) #11
  %9710 = call ptr @__errno_location() #12
  %9711 = load i32, ptr %9710, align 4, !tbaa !5
  %9712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9699, ptr noundef @.str.5, i32 noundef %9700, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 692, ptr noundef %9703, ptr noundef %9706, ptr noundef %9709, i32 noundef %9711) #11
  br label %9713

9713:                                             ; preds = %9696, %9679
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %9714

9714:                                             ; preds = %9713
  br label %9715

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

9716:                                             ; No predecessors!
  br label %9717

9717:                                             ; preds = %9716
  br label %9718

9718:                                             ; preds = %9717, %9659
  br label %9719

9719:                                             ; preds = %9718
  br label %9720

9720:                                             ; preds = %9719
  br label %9721

9721:                                             ; preds = %9720
  %9722 = load i32, ptr %252, align 4, !tbaa !5
  %9723 = icmp ne i32 %9722, 0
  br i1 %9723, label %9724, label %9790

9724:                                             ; preds = %9721
  br label %9725

9725:                                             ; preds = %9724
  %9726 = load i32, ptr @test_count, align 4, !tbaa !5
  %9727 = add nsw i32 %9726, 1
  store i32 %9727, ptr @test_count, align 4, !tbaa !5
  %9728 = getelementptr inbounds [358 x i8], ptr %248, i64 0, i64 0
  %9729 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %9730 = load i32, ptr %252, align 4, !tbaa !5
  %9731 = zext i32 %9730 to i64
  %9732 = call i32 @memcmp(ptr noundef %9728, ptr noundef %9729, i64 noundef %9731) #14
  %9733 = icmp eq i32 %9732, 0
  br i1 %9733, label %9787, label %9734

9734:                                             ; preds = %9725
  br label %9735

9735:                                             ; preds = %9734
  br label %9736

9736:                                             ; preds = %9735
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %9737 = call ptr @__errno_location() #12
  %9738 = load i32, ptr %9737, align 4, !tbaa !5
  store i32 %9738, ptr %255, 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 %255, 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.52, ptr noundef @.str.1, i32 noundef 693, ptr noundef %9755, ptr noundef %9758, ptr noundef %9761, i32 noundef %9763) #11
  br label %9782

9765:                                             ; preds = %9743, %9736
  %9766 = load i32, ptr %255, 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.52, ptr noundef @.str.1, i32 noundef 693, 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 %255) #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, %9725
  br label %9788

9788:                                             ; preds = %9787
  br label %9789

9789:                                             ; preds = %9788
  br label %9790

9790:                                             ; preds = %9789, %9721
  br label %9791

9791:                                             ; preds = %9790
  br label %9792

9792:                                             ; preds = %9791
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  %9793 = call i32 @s2n_client_hello_free(ptr noundef %249)
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #11
  call void @llvm.lifetime.end.p0(i64 358, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 258, ptr %247) #11
  call void @llvm.lifetime.start.p0(i64 512, ptr %256) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %256, ptr align 16 @__const.main.raw_client_hello.79, i64 512, i1 false)
  call void @llvm.lifetime.start.p0(i64 141, ptr %257) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %257, ptr align 16 @__const.main.expected_ja3.80, i64 141, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %258) #11
  call void @llvm.memset.p0.i64(ptr align 8 %258, i8 0, i64 24, i1 false)
  br label %9794

9794:                                             ; preds = %9792
  %9795 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %258, ptr noundef @.str.81)
  %9796 = getelementptr inbounds %struct.s2n_result, ptr %259, i32 0, i32 0
  store i32 %9795, ptr %9796, align 4
  %9797 = getelementptr inbounds %struct.s2n_result, ptr %259, i32 0, i32 0
  %9798 = load i32, ptr %9797, align 4
  %9799 = call zeroext i1 @s2n_result_is_ok(i32 %9798)
  br i1 %9799, label %9801, label %9800

9800:                                             ; preds = %9794
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %215, align 4
  br label %10330

9801:                                             ; preds = %9794
  br label %9802

9802:                                             ; preds = %9801
  br label %9803

9803:                                             ; preds = %9802
  call void @llvm.lifetime.start.p0(i64 8, ptr %260) #11
  store ptr null, ptr %260, align 8, !tbaa !9
  br label %9804

9804:                                             ; preds = %9803
  %9805 = load i32, ptr @test_count, align 4, !tbaa !5
  %9806 = add nsw i32 %9805, 1
  store i32 %9806, ptr @test_count, align 4, !tbaa !5
  %9807 = load ptr, ptr %217, align 8, !tbaa !9
  %9808 = getelementptr inbounds [512 x i8], ptr %256, i64 0, i64 0
  %9809 = load i32, ptr %216, align 4, !tbaa !5
  %9810 = call i32 @s2n_client_hello_from_source(ptr noundef %260, ptr noundef %9807, ptr noundef %9808, i32 noundef 512, i32 noundef %9809)
  %9811 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  store i32 %9810, ptr %9811, align 4
  %9812 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  %9813 = load i32, ptr %9812, align 4
  %9814 = call zeroext i1 @s2n_result_is_ok(i32 %9813)
  br i1 %9814, label %9868, label %9815

9815:                                             ; preds = %9804
  br label %9816

9816:                                             ; preds = %9815
  br label %9817

9817:                                             ; preds = %9816
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %9818 = call ptr @__errno_location() #12
  %9819 = load i32, ptr %9818, align 4, !tbaa !5
  store i32 %9819, ptr %262, align 4, !tbaa !5
  %9820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9821 = call i32 @s2n_print_stacktrace(ptr noundef %9820)
  %9822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9823 = trunc i8 %9822 to i1
  br i1 %9823, label %9824, label %9846

9824:                                             ; preds = %9817
  %9825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9826 = call i32 @fileno(ptr noundef %9825) #11
  %9827 = call i32 @isatty(i32 noundef %9826) #11
  %9828 = icmp ne i32 %9827, 0
  br i1 %9828, label %9829, label %9846

9829:                                             ; preds = %9824
  %9830 = load i32, ptr %262, align 4, !tbaa !5
  %9831 = call ptr @__errno_location() #12
  store i32 %9830, ptr %9831, align 4, !tbaa !5
  %9832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9833 = load i32, ptr @test_count, align 4, !tbaa !5
  %9834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9835 = load i32, ptr %9834, align 4, !tbaa !5
  %9836 = call ptr @s2n_strerror(i32 noundef %9835, ptr noundef @.str.4)
  %9837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9838 = load i32, ptr %9837, align 4, !tbaa !5
  %9839 = call ptr @s2n_strerror_debug(i32 noundef %9838, ptr noundef @.str.4)
  %9840 = call ptr @__errno_location() #12
  %9841 = load i32, ptr %9840, align 4, !tbaa !5
  %9842 = call ptr @strerror(i32 noundef %9841) #11
  %9843 = call ptr @__errno_location() #12
  %9844 = load i32, ptr %9843, align 4, !tbaa !5
  %9845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9832, ptr noundef @.str.2, i32 noundef %9833, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 759, ptr noundef %9836, ptr noundef %9839, ptr noundef %9842, i32 noundef %9844) #11
  br label %9863

9846:                                             ; preds = %9824, %9817
  %9847 = load i32, ptr %262, align 4, !tbaa !5
  %9848 = call ptr @__errno_location() #12
  store i32 %9847, ptr %9848, align 4, !tbaa !5
  %9849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9850 = load i32, ptr @test_count, align 4, !tbaa !5
  %9851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9852 = load i32, ptr %9851, align 4, !tbaa !5
  %9853 = call ptr @s2n_strerror(i32 noundef %9852, ptr noundef @.str.4)
  %9854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9855 = load i32, ptr %9854, align 4, !tbaa !5
  %9856 = call ptr @s2n_strerror_debug(i32 noundef %9855, ptr noundef @.str.4)
  %9857 = call ptr @__errno_location() #12
  %9858 = load i32, ptr %9857, align 4, !tbaa !5
  %9859 = call ptr @strerror(i32 noundef %9858) #11
  %9860 = call ptr @__errno_location() #12
  %9861 = load i32, ptr %9860, align 4, !tbaa !5
  %9862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9849, ptr noundef @.str.5, i32 noundef %9850, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 759, ptr noundef %9853, ptr noundef %9856, ptr noundef %9859, i32 noundef %9861) #11
  br label %9863

9863:                                             ; preds = %9846, %9829
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %9864

9864:                                             ; preds = %9863
  br label %9865

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

9866:                                             ; No predecessors!
  br label %9867

9867:                                             ; preds = %9866
  br label %9868

9868:                                             ; preds = %9867, %9804
  br label %9869

9869:                                             ; preds = %9868
  br label %9870

9870:                                             ; preds = %9869
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #11
  store i32 0, ptr %263, align 4, !tbaa !5
  br label %9871

9871:                                             ; preds = %9870
  %9872 = load i32, ptr @test_count, align 4, !tbaa !5
  %9873 = add nsw i32 %9872, 1
  store i32 %9873, ptr @test_count, align 4, !tbaa !5
  %9874 = load ptr, ptr %260, align 8, !tbaa !9
  %9875 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %9876 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %9874, i32 noundef 0, i32 noundef 500, ptr noundef %9875, ptr noundef %263)
  %9877 = icmp eq i32 %9876, -1
  br i1 %9877, label %9878, label %9931

9878:                                             ; preds = %9871
  br label %9879

9879:                                             ; preds = %9878
  br label %9880

9880:                                             ; preds = %9879
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %9881 = call ptr @__errno_location() #12
  %9882 = load i32, ptr %9881, align 4, !tbaa !5
  store i32 %9882, ptr %264, align 4, !tbaa !5
  %9883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9884 = call i32 @s2n_print_stacktrace(ptr noundef %9883)
  %9885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9886 = trunc i8 %9885 to i1
  br i1 %9886, label %9887, label %9909

9887:                                             ; preds = %9880
  %9888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9889 = call i32 @fileno(ptr noundef %9888) #11
  %9890 = call i32 @isatty(i32 noundef %9889) #11
  %9891 = icmp ne i32 %9890, 0
  br i1 %9891, label %9892, label %9909

9892:                                             ; preds = %9887
  %9893 = load i32, ptr %264, align 4, !tbaa !5
  %9894 = call ptr @__errno_location() #12
  store i32 %9893, ptr %9894, align 4, !tbaa !5
  %9895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9896 = load i32, ptr @test_count, align 4, !tbaa !5
  %9897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9898 = load i32, ptr %9897, align 4, !tbaa !5
  %9899 = call ptr @s2n_strerror(i32 noundef %9898, ptr noundef @.str.4)
  %9900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9901 = load i32, ptr %9900, align 4, !tbaa !5
  %9902 = call ptr @s2n_strerror_debug(i32 noundef %9901, ptr noundef @.str.4)
  %9903 = call ptr @__errno_location() #12
  %9904 = load i32, ptr %9903, align 4, !tbaa !5
  %9905 = call ptr @strerror(i32 noundef %9904) #11
  %9906 = call ptr @__errno_location() #12
  %9907 = load i32, ptr %9906, align 4, !tbaa !5
  %9908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9895, ptr noundef @.str.2, i32 noundef %9896, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 763, ptr noundef %9899, ptr noundef %9902, ptr noundef %9905, i32 noundef %9907) #11
  br label %9926

9909:                                             ; preds = %9887, %9880
  %9910 = load i32, ptr %264, align 4, !tbaa !5
  %9911 = call ptr @__errno_location() #12
  store i32 %9910, ptr %9911, align 4, !tbaa !5
  %9912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9913 = load i32, ptr @test_count, align 4, !tbaa !5
  %9914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9915 = load i32, ptr %9914, align 4, !tbaa !5
  %9916 = call ptr @s2n_strerror(i32 noundef %9915, ptr noundef @.str.4)
  %9917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9918 = load i32, ptr %9917, align 4, !tbaa !5
  %9919 = call ptr @s2n_strerror_debug(i32 noundef %9918, ptr noundef @.str.4)
  %9920 = call ptr @__errno_location() #12
  %9921 = load i32, ptr %9920, align 4, !tbaa !5
  %9922 = call ptr @strerror(i32 noundef %9921) #11
  %9923 = call ptr @__errno_location() #12
  %9924 = load i32, ptr %9923, align 4, !tbaa !5
  %9925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9912, ptr noundef @.str.5, i32 noundef %9913, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 763, ptr noundef %9916, ptr noundef %9919, ptr noundef %9922, i32 noundef %9924) #11
  br label %9926

9926:                                             ; preds = %9909, %9892
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %9927

9927:                                             ; preds = %9926
  br label %9928

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

9929:                                             ; No predecessors!
  br label %9930

9930:                                             ; preds = %9929
  br label %9931

9931:                                             ; preds = %9930, %9871
  br label %9932

9932:                                             ; preds = %9931
  br label %9933

9933:                                             ; preds = %9932
  br label %9934

9934:                                             ; preds = %9933
  %9935 = load i32, ptr @test_count, align 4, !tbaa !5
  %9936 = add nsw i32 %9935, 1
  store i32 %9936, ptr @test_count, align 4, !tbaa !5
  %9937 = load i32, ptr %263, align 4, !tbaa !5
  %9938 = zext i32 %9937 to i64
  %9939 = icmp eq i64 140, %9938
  br i1 %9939, label %9993, label %9940

9940:                                             ; preds = %9934
  br label %9941

9941:                                             ; preds = %9940
  br label %9942

9942:                                             ; preds = %9941
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #11
  %9943 = call ptr @__errno_location() #12
  %9944 = load i32, ptr %9943, align 4, !tbaa !5
  store i32 %9944, ptr %265, align 4, !tbaa !5
  %9945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9946 = call i32 @s2n_print_stacktrace(ptr noundef %9945)
  %9947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9948 = trunc i8 %9947 to i1
  br i1 %9948, label %9949, label %9971

9949:                                             ; preds = %9942
  %9950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9951 = call i32 @fileno(ptr noundef %9950) #11
  %9952 = call i32 @isatty(i32 noundef %9951) #11
  %9953 = icmp ne i32 %9952, 0
  br i1 %9953, label %9954, label %9971

9954:                                             ; preds = %9949
  %9955 = load i32, ptr %265, align 4, !tbaa !5
  %9956 = call ptr @__errno_location() #12
  store i32 %9955, ptr %9956, align 4, !tbaa !5
  %9957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9958 = load i32, ptr @test_count, align 4, !tbaa !5
  %9959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9960 = load i32, ptr %9959, align 4, !tbaa !5
  %9961 = call ptr @s2n_strerror(i32 noundef %9960, ptr noundef @.str.4)
  %9962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9963 = load i32, ptr %9962, align 4, !tbaa !5
  %9964 = call ptr @s2n_strerror_debug(i32 noundef %9963, ptr noundef @.str.4)
  %9965 = call ptr @__errno_location() #12
  %9966 = load i32, ptr %9965, align 4, !tbaa !5
  %9967 = call ptr @strerror(i32 noundef %9966) #11
  %9968 = call ptr @__errno_location() #12
  %9969 = load i32, ptr %9968, align 4, !tbaa !5
  %9970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9957, ptr noundef @.str.2, i32 noundef %9958, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 764, ptr noundef %9961, ptr noundef %9964, ptr noundef %9967, i32 noundef %9969) #11
  br label %9988

9971:                                             ; preds = %9949, %9942
  %9972 = load i32, ptr %265, align 4, !tbaa !5
  %9973 = call ptr @__errno_location() #12
  store i32 %9972, ptr %9973, align 4, !tbaa !5
  %9974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9975 = load i32, ptr @test_count, align 4, !tbaa !5
  %9976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9977 = load i32, ptr %9976, align 4, !tbaa !5
  %9978 = call ptr @s2n_strerror(i32 noundef %9977, ptr noundef @.str.4)
  %9979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9980 = load i32, ptr %9979, align 4, !tbaa !5
  %9981 = call ptr @s2n_strerror_debug(i32 noundef %9980, ptr noundef @.str.4)
  %9982 = call ptr @__errno_location() #12
  %9983 = load i32, ptr %9982, align 4, !tbaa !5
  %9984 = call ptr @strerror(i32 noundef %9983) #11
  %9985 = call ptr @__errno_location() #12
  %9986 = load i32, ptr %9985, align 4, !tbaa !5
  %9987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9974, ptr noundef @.str.5, i32 noundef %9975, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 764, ptr noundef %9978, ptr noundef %9981, ptr noundef %9984, i32 noundef %9986) #11
  br label %9988

9988:                                             ; preds = %9971, %9954
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #11
  br label %9989

9989:                                             ; preds = %9988
  br label %9990

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

9991:                                             ; No predecessors!
  br label %9992

9992:                                             ; preds = %9991
  br label %9993

9993:                                             ; preds = %9992, %9934
  br label %9994

9994:                                             ; preds = %9993
  br label %9995

9995:                                             ; preds = %9994
  br label %9996

9996:                                             ; preds = %9995
  %9997 = load i32, ptr %263, align 4, !tbaa !5
  %9998 = icmp ne i32 %9997, 0
  br i1 %9998, label %9999, label %10065

9999:                                             ; preds = %9996
  br label %10000

10000:                                            ; preds = %9999
  %10001 = load i32, ptr @test_count, align 4, !tbaa !5
  %10002 = add nsw i32 %10001, 1
  store i32 %10002, ptr @test_count, align 4, !tbaa !5
  %10003 = getelementptr inbounds [141 x i8], ptr %257, i64 0, i64 0
  %10004 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10005 = load i32, ptr %263, align 4, !tbaa !5
  %10006 = zext i32 %10005 to i64
  %10007 = call i32 @memcmp(ptr noundef %10003, ptr noundef %10004, i64 noundef %10006) #14
  %10008 = icmp eq i32 %10007, 0
  br i1 %10008, label %10062, label %10009

10009:                                            ; preds = %10000
  br label %10010

10010:                                            ; preds = %10009
  br label %10011

10011:                                            ; preds = %10010
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %10012 = call ptr @__errno_location() #12
  %10013 = load i32, ptr %10012, align 4, !tbaa !5
  store i32 %10013, ptr %266, align 4, !tbaa !5
  %10014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10015 = call i32 @s2n_print_stacktrace(ptr noundef %10014)
  %10016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10017 = trunc i8 %10016 to i1
  br i1 %10017, label %10018, label %10040

10018:                                            ; preds = %10011
  %10019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10020 = call i32 @fileno(ptr noundef %10019) #11
  %10021 = call i32 @isatty(i32 noundef %10020) #11
  %10022 = icmp ne i32 %10021, 0
  br i1 %10022, label %10023, label %10040

10023:                                            ; preds = %10018
  %10024 = load i32, ptr %266, align 4, !tbaa !5
  %10025 = call ptr @__errno_location() #12
  store i32 %10024, ptr %10025, align 4, !tbaa !5
  %10026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10027 = load i32, ptr @test_count, align 4, !tbaa !5
  %10028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10029 = load i32, ptr %10028, align 4, !tbaa !5
  %10030 = call ptr @s2n_strerror(i32 noundef %10029, ptr noundef @.str.4)
  %10031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10032 = load i32, ptr %10031, align 4, !tbaa !5
  %10033 = call ptr @s2n_strerror_debug(i32 noundef %10032, ptr noundef @.str.4)
  %10034 = call ptr @__errno_location() #12
  %10035 = load i32, ptr %10034, align 4, !tbaa !5
  %10036 = call ptr @strerror(i32 noundef %10035) #11
  %10037 = call ptr @__errno_location() #12
  %10038 = load i32, ptr %10037, align 4, !tbaa !5
  %10039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10026, ptr noundef @.str.2, i32 noundef %10027, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 765, ptr noundef %10030, ptr noundef %10033, ptr noundef %10036, i32 noundef %10038) #11
  br label %10057

10040:                                            ; preds = %10018, %10011
  %10041 = load i32, ptr %266, align 4, !tbaa !5
  %10042 = call ptr @__errno_location() #12
  store i32 %10041, ptr %10042, align 4, !tbaa !5
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = load i32, ptr @test_count, align 4, !tbaa !5
  %10045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10046 = load i32, ptr %10045, align 4, !tbaa !5
  %10047 = call ptr @s2n_strerror(i32 noundef %10046, ptr noundef @.str.4)
  %10048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10049 = load i32, ptr %10048, align 4, !tbaa !5
  %10050 = call ptr @s2n_strerror_debug(i32 noundef %10049, ptr noundef @.str.4)
  %10051 = call ptr @__errno_location() #12
  %10052 = load i32, ptr %10051, align 4, !tbaa !5
  %10053 = call ptr @strerror(i32 noundef %10052) #11
  %10054 = call ptr @__errno_location() #12
  %10055 = load i32, ptr %10054, align 4, !tbaa !5
  %10056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10043, ptr noundef @.str.5, i32 noundef %10044, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 765, ptr noundef %10047, ptr noundef %10050, ptr noundef %10053, i32 noundef %10055) #11
  br label %10057

10057:                                            ; preds = %10040, %10023
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %10058

10058:                                            ; preds = %10057
  br label %10059

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

10060:                                            ; No predecessors!
  br label %10061

10061:                                            ; preds = %10060
  br label %10062

10062:                                            ; preds = %10061, %10000
  br label %10063

10063:                                            ; preds = %10062
  br label %10064

10064:                                            ; preds = %10063
  br label %10065

10065:                                            ; preds = %10064, %9996
  br label %10066

10066:                                            ; preds = %10065
  br label %10067

10067:                                            ; preds = %10066
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  store i32 0, ptr %267, align 4, !tbaa !5
  br label %10068

10068:                                            ; preds = %10067
  %10069 = load i32, ptr @test_count, align 4, !tbaa !5
  %10070 = add nsw i32 %10069, 1
  store i32 %10070, ptr @test_count, align 4, !tbaa !5
  %10071 = load ptr, ptr %260, align 8, !tbaa !9
  %10072 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10073 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %10071, i32 noundef 0, i32 noundef 500, ptr noundef %10072, ptr noundef %263, ptr noundef %267)
  %10074 = icmp eq i32 %10073, -1
  br i1 %10074, label %10075, label %10128

10075:                                            ; preds = %10068
  br label %10076

10076:                                            ; preds = %10075
  br label %10077

10077:                                            ; preds = %10076
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %10078 = call ptr @__errno_location() #12
  %10079 = load i32, ptr %10078, align 4, !tbaa !5
  store i32 %10079, ptr %268, align 4, !tbaa !5
  %10080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10081 = call i32 @s2n_print_stacktrace(ptr noundef %10080)
  %10082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10083 = trunc i8 %10082 to i1
  br i1 %10083, label %10084, label %10106

10084:                                            ; preds = %10077
  %10085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10086 = call i32 @fileno(ptr noundef %10085) #11
  %10087 = call i32 @isatty(i32 noundef %10086) #11
  %10088 = icmp ne i32 %10087, 0
  br i1 %10088, label %10089, label %10106

10089:                                            ; preds = %10084
  %10090 = load i32, ptr %268, align 4, !tbaa !5
  %10091 = call ptr @__errno_location() #12
  store i32 %10090, ptr %10091, align 4, !tbaa !5
  %10092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10093 = load i32, ptr @test_count, align 4, !tbaa !5
  %10094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10095 = load i32, ptr %10094, align 4, !tbaa !5
  %10096 = call ptr @s2n_strerror(i32 noundef %10095, ptr noundef @.str.4)
  %10097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10098 = load i32, ptr %10097, align 4, !tbaa !5
  %10099 = call ptr @s2n_strerror_debug(i32 noundef %10098, ptr noundef @.str.4)
  %10100 = call ptr @__errno_location() #12
  %10101 = load i32, ptr %10100, align 4, !tbaa !5
  %10102 = call ptr @strerror(i32 noundef %10101) #11
  %10103 = call ptr @__errno_location() #12
  %10104 = load i32, ptr %10103, align 4, !tbaa !5
  %10105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10092, ptr noundef @.str.2, i32 noundef %10093, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 770, ptr noundef %10096, ptr noundef %10099, ptr noundef %10102, i32 noundef %10104) #11
  br label %10123

10106:                                            ; preds = %10084, %10077
  %10107 = load i32, ptr %268, align 4, !tbaa !5
  %10108 = call ptr @__errno_location() #12
  store i32 %10107, ptr %10108, align 4, !tbaa !5
  %10109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10110 = load i32, ptr @test_count, align 4, !tbaa !5
  %10111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10112 = load i32, ptr %10111, align 4, !tbaa !5
  %10113 = call ptr @s2n_strerror(i32 noundef %10112, ptr noundef @.str.4)
  %10114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10115 = load i32, ptr %10114, align 4, !tbaa !5
  %10116 = call ptr @s2n_strerror_debug(i32 noundef %10115, ptr noundef @.str.4)
  %10117 = call ptr @__errno_location() #12
  %10118 = load i32, ptr %10117, align 4, !tbaa !5
  %10119 = call ptr @strerror(i32 noundef %10118) #11
  %10120 = call ptr @__errno_location() #12
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  %10122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10109, ptr noundef @.str.5, i32 noundef %10110, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 770, ptr noundef %10113, ptr noundef %10116, ptr noundef %10119, i32 noundef %10121) #11
  br label %10123

10123:                                            ; preds = %10106, %10089
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  br label %10124

10124:                                            ; preds = %10123
  br label %10125

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

10126:                                            ; No predecessors!
  br label %10127

10127:                                            ; preds = %10126
  br label %10128

10128:                                            ; preds = %10127, %10068
  br label %10129

10129:                                            ; preds = %10128
  br label %10130

10130:                                            ; preds = %10129
  br label %10131

10131:                                            ; preds = %10130
  %10132 = load i32, ptr @test_count, align 4, !tbaa !5
  %10133 = add nsw i32 %10132, 1
  store i32 %10133, ptr @test_count, align 4, !tbaa !5
  %10134 = load i32, ptr %267, align 4, !tbaa !5
  %10135 = zext i32 %10134 to i64
  %10136 = icmp eq i64 140, %10135
  br i1 %10136, label %10190, label %10137

10137:                                            ; preds = %10131
  br label %10138

10138:                                            ; preds = %10137
  br label %10139

10139:                                            ; preds = %10138
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #11
  %10140 = call ptr @__errno_location() #12
  %10141 = load i32, ptr %10140, align 4, !tbaa !5
  store i32 %10141, ptr %269, align 4, !tbaa !5
  %10142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10143 = call i32 @s2n_print_stacktrace(ptr noundef %10142)
  %10144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10145 = trunc i8 %10144 to i1
  br i1 %10145, label %10146, label %10168

10146:                                            ; preds = %10139
  %10147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10148 = call i32 @fileno(ptr noundef %10147) #11
  %10149 = call i32 @isatty(i32 noundef %10148) #11
  %10150 = icmp ne i32 %10149, 0
  br i1 %10150, label %10151, label %10168

10151:                                            ; preds = %10146
  %10152 = load i32, ptr %269, align 4, !tbaa !5
  %10153 = call ptr @__errno_location() #12
  store i32 %10152, ptr %10153, align 4, !tbaa !5
  %10154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10155 = load i32, ptr @test_count, align 4, !tbaa !5
  %10156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10157 = load i32, ptr %10156, align 4, !tbaa !5
  %10158 = call ptr @s2n_strerror(i32 noundef %10157, ptr noundef @.str.4)
  %10159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10160 = load i32, ptr %10159, align 4, !tbaa !5
  %10161 = call ptr @s2n_strerror_debug(i32 noundef %10160, ptr noundef @.str.4)
  %10162 = call ptr @__errno_location() #12
  %10163 = load i32, ptr %10162, align 4, !tbaa !5
  %10164 = call ptr @strerror(i32 noundef %10163) #11
  %10165 = call ptr @__errno_location() #12
  %10166 = load i32, ptr %10165, align 4, !tbaa !5
  %10167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10154, ptr noundef @.str.2, i32 noundef %10155, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 771, ptr noundef %10158, ptr noundef %10161, ptr noundef %10164, i32 noundef %10166) #11
  br label %10185

10168:                                            ; preds = %10146, %10139
  %10169 = load i32, ptr %269, align 4, !tbaa !5
  %10170 = call ptr @__errno_location() #12
  store i32 %10169, ptr %10170, align 4, !tbaa !5
  %10171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10172 = load i32, ptr @test_count, align 4, !tbaa !5
  %10173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10174 = load i32, ptr %10173, align 4, !tbaa !5
  %10175 = call ptr @s2n_strerror(i32 noundef %10174, ptr noundef @.str.4)
  %10176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10177 = load i32, ptr %10176, align 4, !tbaa !5
  %10178 = call ptr @s2n_strerror_debug(i32 noundef %10177, ptr noundef @.str.4)
  %10179 = call ptr @__errno_location() #12
  %10180 = load i32, ptr %10179, align 4, !tbaa !5
  %10181 = call ptr @strerror(i32 noundef %10180) #11
  %10182 = call ptr @__errno_location() #12
  %10183 = load i32, ptr %10182, align 4, !tbaa !5
  %10184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10171, ptr noundef @.str.5, i32 noundef %10172, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 771, ptr noundef %10175, ptr noundef %10178, ptr noundef %10181, i32 noundef %10183) #11
  br label %10185

10185:                                            ; preds = %10168, %10151
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #11
  br label %10186

10186:                                            ; preds = %10185
  br label %10187

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

10188:                                            ; No predecessors!
  br label %10189

10189:                                            ; preds = %10188
  br label %10190

10190:                                            ; preds = %10189, %10131
  br label %10191

10191:                                            ; preds = %10190
  br label %10192

10192:                                            ; preds = %10191
  br label %10193

10193:                                            ; preds = %10192
  %10194 = load i32, ptr @test_count, align 4, !tbaa !5
  %10195 = add nsw i32 %10194, 1
  store i32 %10195, ptr @test_count, align 4, !tbaa !5
  %10196 = getelementptr inbounds %struct.s2n_blob, ptr %258, i32 0, i32 1
  %10197 = load i32, ptr %10196, align 8, !tbaa !53
  %10198 = load i32, ptr %263, align 4, !tbaa !5
  %10199 = icmp eq i32 %10197, %10198
  br i1 %10199, label %10253, label %10200

10200:                                            ; preds = %10193
  br label %10201

10201:                                            ; preds = %10200
  br label %10202

10202:                                            ; preds = %10201
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %10203 = call ptr @__errno_location() #12
  %10204 = load i32, ptr %10203, align 4, !tbaa !5
  store i32 %10204, ptr %270, align 4, !tbaa !5
  %10205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10206 = call i32 @s2n_print_stacktrace(ptr noundef %10205)
  %10207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10208 = trunc i8 %10207 to i1
  br i1 %10208, label %10209, label %10231

10209:                                            ; preds = %10202
  %10210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10211 = call i32 @fileno(ptr noundef %10210) #11
  %10212 = call i32 @isatty(i32 noundef %10211) #11
  %10213 = icmp ne i32 %10212, 0
  br i1 %10213, label %10214, label %10231

10214:                                            ; preds = %10209
  %10215 = load i32, ptr %270, align 4, !tbaa !5
  %10216 = call ptr @__errno_location() #12
  store i32 %10215, ptr %10216, align 4, !tbaa !5
  %10217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10218 = load i32, ptr @test_count, align 4, !tbaa !5
  %10219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10220 = load i32, ptr %10219, align 4, !tbaa !5
  %10221 = call ptr @s2n_strerror(i32 noundef %10220, ptr noundef @.str.4)
  %10222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10223 = load i32, ptr %10222, align 4, !tbaa !5
  %10224 = call ptr @s2n_strerror_debug(i32 noundef %10223, ptr noundef @.str.4)
  %10225 = call ptr @__errno_location() #12
  %10226 = load i32, ptr %10225, align 4, !tbaa !5
  %10227 = call ptr @strerror(i32 noundef %10226) #11
  %10228 = call ptr @__errno_location() #12
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  %10230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10217, ptr noundef @.str.2, i32 noundef %10218, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 772, ptr noundef %10221, ptr noundef %10224, ptr noundef %10227, i32 noundef %10229) #11
  br label %10248

10231:                                            ; preds = %10209, %10202
  %10232 = load i32, ptr %270, align 4, !tbaa !5
  %10233 = call ptr @__errno_location() #12
  store i32 %10232, ptr %10233, align 4, !tbaa !5
  %10234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10235 = load i32, ptr @test_count, align 4, !tbaa !5
  %10236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10237 = load i32, ptr %10236, align 4, !tbaa !5
  %10238 = call ptr @s2n_strerror(i32 noundef %10237, ptr noundef @.str.4)
  %10239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10240 = load i32, ptr %10239, align 4, !tbaa !5
  %10241 = call ptr @s2n_strerror_debug(i32 noundef %10240, ptr noundef @.str.4)
  %10242 = call ptr @__errno_location() #12
  %10243 = load i32, ptr %10242, align 4, !tbaa !5
  %10244 = call ptr @strerror(i32 noundef %10243) #11
  %10245 = call ptr @__errno_location() #12
  %10246 = load i32, ptr %10245, align 4, !tbaa !5
  %10247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10234, ptr noundef @.str.5, i32 noundef %10235, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 772, ptr noundef %10238, ptr noundef %10241, ptr noundef %10244, i32 noundef %10246) #11
  br label %10248

10248:                                            ; preds = %10231, %10214
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %10249

10249:                                            ; preds = %10248
  br label %10250

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

10251:                                            ; No predecessors!
  br label %10252

10252:                                            ; preds = %10251
  br label %10253

10253:                                            ; preds = %10252, %10193
  br label %10254

10254:                                            ; preds = %10253
  br label %10255

10255:                                            ; preds = %10254
  br label %10256

10256:                                            ; preds = %10255
  %10257 = load i32, ptr %263, align 4, !tbaa !5
  %10258 = icmp ne i32 %10257, 0
  br i1 %10258, label %10259, label %10326

10259:                                            ; preds = %10256
  br label %10260

10260:                                            ; preds = %10259
  %10261 = load i32, ptr @test_count, align 4, !tbaa !5
  %10262 = add nsw i32 %10261, 1
  store i32 %10262, ptr @test_count, align 4, !tbaa !5
  %10263 = getelementptr inbounds %struct.s2n_blob, ptr %258, i32 0, i32 0
  %10264 = load ptr, ptr %10263, align 8, !tbaa !54
  %10265 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10266 = load i32, ptr %263, align 4, !tbaa !5
  %10267 = zext i32 %10266 to i64
  %10268 = call i32 @memcmp(ptr noundef %10264, ptr noundef %10265, i64 noundef %10267) #14
  %10269 = icmp eq i32 %10268, 0
  br i1 %10269, label %10323, label %10270

10270:                                            ; preds = %10260
  br label %10271

10271:                                            ; preds = %10270
  br label %10272

10272:                                            ; preds = %10271
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #11
  %10273 = call ptr @__errno_location() #12
  %10274 = load i32, ptr %10273, align 4, !tbaa !5
  store i32 %10274, ptr %271, align 4, !tbaa !5
  %10275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10276 = call i32 @s2n_print_stacktrace(ptr noundef %10275)
  %10277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10278 = trunc i8 %10277 to i1
  br i1 %10278, label %10279, label %10301

10279:                                            ; preds = %10272
  %10280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10281 = call i32 @fileno(ptr noundef %10280) #11
  %10282 = call i32 @isatty(i32 noundef %10281) #11
  %10283 = icmp ne i32 %10282, 0
  br i1 %10283, label %10284, label %10301

10284:                                            ; preds = %10279
  %10285 = load i32, ptr %271, align 4, !tbaa !5
  %10286 = call ptr @__errno_location() #12
  store i32 %10285, ptr %10286, align 4, !tbaa !5
  %10287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10288 = load i32, ptr @test_count, align 4, !tbaa !5
  %10289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10290 = load i32, ptr %10289, align 4, !tbaa !5
  %10291 = call ptr @s2n_strerror(i32 noundef %10290, ptr noundef @.str.4)
  %10292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10293 = load i32, ptr %10292, align 4, !tbaa !5
  %10294 = call ptr @s2n_strerror_debug(i32 noundef %10293, ptr noundef @.str.4)
  %10295 = call ptr @__errno_location() #12
  %10296 = load i32, ptr %10295, align 4, !tbaa !5
  %10297 = call ptr @strerror(i32 noundef %10296) #11
  %10298 = call ptr @__errno_location() #12
  %10299 = load i32, ptr %10298, align 4, !tbaa !5
  %10300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10287, ptr noundef @.str.2, i32 noundef %10288, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 773, ptr noundef %10291, ptr noundef %10294, ptr noundef %10297, i32 noundef %10299) #11
  br label %10318

10301:                                            ; preds = %10279, %10272
  %10302 = load i32, ptr %271, align 4, !tbaa !5
  %10303 = call ptr @__errno_location() #12
  store i32 %10302, ptr %10303, align 4, !tbaa !5
  %10304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10305 = load i32, ptr @test_count, align 4, !tbaa !5
  %10306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10307 = load i32, ptr %10306, align 4, !tbaa !5
  %10308 = call ptr @s2n_strerror(i32 noundef %10307, ptr noundef @.str.4)
  %10309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  %10311 = call ptr @s2n_strerror_debug(i32 noundef %10310, ptr noundef @.str.4)
  %10312 = call ptr @__errno_location() #12
  %10313 = load i32, ptr %10312, align 4, !tbaa !5
  %10314 = call ptr @strerror(i32 noundef %10313) #11
  %10315 = call ptr @__errno_location() #12
  %10316 = load i32, ptr %10315, align 4, !tbaa !5
  %10317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10304, ptr noundef @.str.5, i32 noundef %10305, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 773, ptr noundef %10308, ptr noundef %10311, ptr noundef %10314, i32 noundef %10316) #11
  br label %10318

10318:                                            ; preds = %10301, %10284
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #11
  br label %10319

10319:                                            ; preds = %10318
  br label %10320

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

10321:                                            ; No predecessors!
  br label %10322

10322:                                            ; preds = %10321
  br label %10323

10323:                                            ; preds = %10322, %10260
  br label %10324

10324:                                            ; preds = %10323
  br label %10325

10325:                                            ; preds = %10324
  br label %10326

10326:                                            ; preds = %10325, %10256
  br label %10327

10327:                                            ; preds = %10326
  br label %10328

10328:                                            ; preds = %10327
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #11
  %10329 = call i32 @s2n_client_hello_free(ptr noundef %260)
  call void @llvm.lifetime.end.p0(i64 8, ptr %260) #11
  store i32 0, ptr %215, align 4
  br label %10330

10330:                                            ; preds = %10328, %9800
  %10331 = call i32 @s2n_free(ptr noundef %258)
  call void @llvm.lifetime.end.p0(i64 24, ptr %258) #11
  call void @llvm.lifetime.end.p0(i64 141, ptr %257) #11
  call void @llvm.lifetime.end.p0(i64 512, ptr %256) #11
  %10332 = load i32, ptr %215, align 4
  switch i32 %10332, label %11954 [
    i32 0, label %10333
  ]

10333:                                            ; preds = %10330
  call void @llvm.lifetime.start.p0(i64 512, ptr %272) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %272, ptr align 16 @__const.main.raw_client_hello.86, i64 512, i1 false)
  call void @llvm.lifetime.start.p0(i64 214, ptr %273) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %273, ptr align 16 @__const.main.expected_ja3.87, i64 214, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %274) #11
  call void @llvm.memset.p0.i64(ptr align 8 %274, i8 0, i64 24, i1 false)
  br label %10334

10334:                                            ; preds = %10333
  %10335 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %274, ptr noundef @.str.88)
  %10336 = getelementptr inbounds %struct.s2n_result, ptr %275, i32 0, i32 0
  store i32 %10335, ptr %10336, align 4
  %10337 = getelementptr inbounds %struct.s2n_result, ptr %275, i32 0, i32 0
  %10338 = load i32, ptr %10337, align 4
  %10339 = call zeroext i1 @s2n_result_is_ok(i32 %10338)
  br i1 %10339, label %10341, label %10340

10340:                                            ; preds = %10334
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %215, align 4
  br label %10870

10341:                                            ; preds = %10334
  br label %10342

10342:                                            ; preds = %10341
  br label %10343

10343:                                            ; preds = %10342
  call void @llvm.lifetime.start.p0(i64 8, ptr %276) #11
  store ptr null, ptr %276, align 8, !tbaa !9
  br label %10344

10344:                                            ; preds = %10343
  %10345 = load i32, ptr @test_count, align 4, !tbaa !5
  %10346 = add nsw i32 %10345, 1
  store i32 %10346, ptr @test_count, align 4, !tbaa !5
  %10347 = load ptr, ptr %217, align 8, !tbaa !9
  %10348 = getelementptr inbounds [512 x i8], ptr %272, i64 0, i64 0
  %10349 = load i32, ptr %216, align 4, !tbaa !5
  %10350 = call i32 @s2n_client_hello_from_source(ptr noundef %276, ptr noundef %10347, ptr noundef %10348, i32 noundef 512, i32 noundef %10349)
  %10351 = getelementptr inbounds %struct.s2n_result, ptr %277, i32 0, i32 0
  store i32 %10350, ptr %10351, align 4
  %10352 = getelementptr inbounds %struct.s2n_result, ptr %277, i32 0, i32 0
  %10353 = load i32, ptr %10352, align 4
  %10354 = call zeroext i1 @s2n_result_is_ok(i32 %10353)
  br i1 %10354, label %10408, label %10355

10355:                                            ; preds = %10344
  br label %10356

10356:                                            ; preds = %10355
  br label %10357

10357:                                            ; preds = %10356
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %10358 = call ptr @__errno_location() #12
  %10359 = load i32, ptr %10358, align 4, !tbaa !5
  store i32 %10359, ptr %278, align 4, !tbaa !5
  %10360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10361 = call i32 @s2n_print_stacktrace(ptr noundef %10360)
  %10362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10363 = trunc i8 %10362 to i1
  br i1 %10363, label %10364, label %10386

10364:                                            ; preds = %10357
  %10365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10366 = call i32 @fileno(ptr noundef %10365) #11
  %10367 = call i32 @isatty(i32 noundef %10366) #11
  %10368 = icmp ne i32 %10367, 0
  br i1 %10368, label %10369, label %10386

10369:                                            ; preds = %10364
  %10370 = load i32, ptr %278, align 4, !tbaa !5
  %10371 = call ptr @__errno_location() #12
  store i32 %10370, ptr %10371, align 4, !tbaa !5
  %10372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10373 = load i32, ptr @test_count, align 4, !tbaa !5
  %10374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10375 = load i32, ptr %10374, align 4, !tbaa !5
  %10376 = call ptr @s2n_strerror(i32 noundef %10375, ptr noundef @.str.4)
  %10377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10378 = load i32, ptr %10377, align 4, !tbaa !5
  %10379 = call ptr @s2n_strerror_debug(i32 noundef %10378, ptr noundef @.str.4)
  %10380 = call ptr @__errno_location() #12
  %10381 = load i32, ptr %10380, align 4, !tbaa !5
  %10382 = call ptr @strerror(i32 noundef %10381) #11
  %10383 = call ptr @__errno_location() #12
  %10384 = load i32, ptr %10383, align 4, !tbaa !5
  %10385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10372, ptr noundef @.str.2, i32 noundef %10373, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 841, ptr noundef %10376, ptr noundef %10379, ptr noundef %10382, i32 noundef %10384) #11
  br label %10403

10386:                                            ; preds = %10364, %10357
  %10387 = load i32, ptr %278, align 4, !tbaa !5
  %10388 = call ptr @__errno_location() #12
  store i32 %10387, ptr %10388, align 4, !tbaa !5
  %10389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10390 = load i32, ptr @test_count, align 4, !tbaa !5
  %10391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10392 = load i32, ptr %10391, align 4, !tbaa !5
  %10393 = call ptr @s2n_strerror(i32 noundef %10392, ptr noundef @.str.4)
  %10394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10395 = load i32, ptr %10394, align 4, !tbaa !5
  %10396 = call ptr @s2n_strerror_debug(i32 noundef %10395, ptr noundef @.str.4)
  %10397 = call ptr @__errno_location() #12
  %10398 = load i32, ptr %10397, align 4, !tbaa !5
  %10399 = call ptr @strerror(i32 noundef %10398) #11
  %10400 = call ptr @__errno_location() #12
  %10401 = load i32, ptr %10400, align 4, !tbaa !5
  %10402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10389, ptr noundef @.str.5, i32 noundef %10390, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 841, ptr noundef %10393, ptr noundef %10396, ptr noundef %10399, i32 noundef %10401) #11
  br label %10403

10403:                                            ; preds = %10386, %10369
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %10404

10404:                                            ; preds = %10403
  br label %10405

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

10406:                                            ; No predecessors!
  br label %10407

10407:                                            ; preds = %10406
  br label %10408

10408:                                            ; preds = %10407, %10344
  br label %10409

10409:                                            ; preds = %10408
  br label %10410

10410:                                            ; preds = %10409
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  store i32 0, ptr %279, align 4, !tbaa !5
  br label %10411

10411:                                            ; preds = %10410
  %10412 = load i32, ptr @test_count, align 4, !tbaa !5
  %10413 = add nsw i32 %10412, 1
  store i32 %10413, ptr @test_count, align 4, !tbaa !5
  %10414 = load ptr, ptr %276, align 8, !tbaa !9
  %10415 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10416 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %10414, i32 noundef 0, i32 noundef 500, ptr noundef %10415, ptr noundef %279)
  %10417 = icmp eq i32 %10416, -1
  br i1 %10417, label %10418, label %10471

10418:                                            ; preds = %10411
  br label %10419

10419:                                            ; preds = %10418
  br label %10420

10420:                                            ; preds = %10419
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #11
  %10421 = call ptr @__errno_location() #12
  %10422 = load i32, ptr %10421, align 4, !tbaa !5
  store i32 %10422, ptr %280, align 4, !tbaa !5
  %10423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10424 = call i32 @s2n_print_stacktrace(ptr noundef %10423)
  %10425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10426 = trunc i8 %10425 to i1
  br i1 %10426, label %10427, label %10449

10427:                                            ; preds = %10420
  %10428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10429 = call i32 @fileno(ptr noundef %10428) #11
  %10430 = call i32 @isatty(i32 noundef %10429) #11
  %10431 = icmp ne i32 %10430, 0
  br i1 %10431, label %10432, label %10449

10432:                                            ; preds = %10427
  %10433 = load i32, ptr %280, align 4, !tbaa !5
  %10434 = call ptr @__errno_location() #12
  store i32 %10433, ptr %10434, align 4, !tbaa !5
  %10435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10436 = load i32, ptr @test_count, align 4, !tbaa !5
  %10437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10438 = load i32, ptr %10437, align 4, !tbaa !5
  %10439 = call ptr @s2n_strerror(i32 noundef %10438, ptr noundef @.str.4)
  %10440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10441 = load i32, ptr %10440, align 4, !tbaa !5
  %10442 = call ptr @s2n_strerror_debug(i32 noundef %10441, ptr noundef @.str.4)
  %10443 = call ptr @__errno_location() #12
  %10444 = load i32, ptr %10443, align 4, !tbaa !5
  %10445 = call ptr @strerror(i32 noundef %10444) #11
  %10446 = call ptr @__errno_location() #12
  %10447 = load i32, ptr %10446, align 4, !tbaa !5
  %10448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10435, ptr noundef @.str.2, i32 noundef %10436, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 845, ptr noundef %10439, ptr noundef %10442, ptr noundef %10445, i32 noundef %10447) #11
  br label %10466

10449:                                            ; preds = %10427, %10420
  %10450 = load i32, ptr %280, align 4, !tbaa !5
  %10451 = call ptr @__errno_location() #12
  store i32 %10450, ptr %10451, align 4, !tbaa !5
  %10452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10453 = load i32, ptr @test_count, align 4, !tbaa !5
  %10454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10455 = load i32, ptr %10454, align 4, !tbaa !5
  %10456 = call ptr @s2n_strerror(i32 noundef %10455, ptr noundef @.str.4)
  %10457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10458 = load i32, ptr %10457, align 4, !tbaa !5
  %10459 = call ptr @s2n_strerror_debug(i32 noundef %10458, ptr noundef @.str.4)
  %10460 = call ptr @__errno_location() #12
  %10461 = load i32, ptr %10460, align 4, !tbaa !5
  %10462 = call ptr @strerror(i32 noundef %10461) #11
  %10463 = call ptr @__errno_location() #12
  %10464 = load i32, ptr %10463, align 4, !tbaa !5
  %10465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10452, ptr noundef @.str.5, i32 noundef %10453, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 845, ptr noundef %10456, ptr noundef %10459, ptr noundef %10462, i32 noundef %10464) #11
  br label %10466

10466:                                            ; preds = %10449, %10432
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #11
  br label %10467

10467:                                            ; preds = %10466
  br label %10468

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

10469:                                            ; No predecessors!
  br label %10470

10470:                                            ; preds = %10469
  br label %10471

10471:                                            ; preds = %10470, %10411
  br label %10472

10472:                                            ; preds = %10471
  br label %10473

10473:                                            ; preds = %10472
  br label %10474

10474:                                            ; preds = %10473
  %10475 = load i32, ptr @test_count, align 4, !tbaa !5
  %10476 = add nsw i32 %10475, 1
  store i32 %10476, ptr @test_count, align 4, !tbaa !5
  %10477 = load i32, ptr %279, align 4, !tbaa !5
  %10478 = zext i32 %10477 to i64
  %10479 = icmp eq i64 213, %10478
  br i1 %10479, label %10533, label %10480

10480:                                            ; preds = %10474
  br label %10481

10481:                                            ; preds = %10480
  br label %10482

10482:                                            ; preds = %10481
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #11
  %10483 = call ptr @__errno_location() #12
  %10484 = load i32, ptr %10483, align 4, !tbaa !5
  store i32 %10484, ptr %281, align 4, !tbaa !5
  %10485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10486 = call i32 @s2n_print_stacktrace(ptr noundef %10485)
  %10487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10488 = trunc i8 %10487 to i1
  br i1 %10488, label %10489, label %10511

10489:                                            ; preds = %10482
  %10490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10491 = call i32 @fileno(ptr noundef %10490) #11
  %10492 = call i32 @isatty(i32 noundef %10491) #11
  %10493 = icmp ne i32 %10492, 0
  br i1 %10493, label %10494, label %10511

10494:                                            ; preds = %10489
  %10495 = load i32, ptr %281, align 4, !tbaa !5
  %10496 = call ptr @__errno_location() #12
  store i32 %10495, ptr %10496, align 4, !tbaa !5
  %10497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10498 = load i32, ptr @test_count, align 4, !tbaa !5
  %10499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10500 = load i32, ptr %10499, align 4, !tbaa !5
  %10501 = call ptr @s2n_strerror(i32 noundef %10500, ptr noundef @.str.4)
  %10502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10503 = load i32, ptr %10502, align 4, !tbaa !5
  %10504 = call ptr @s2n_strerror_debug(i32 noundef %10503, ptr noundef @.str.4)
  %10505 = call ptr @__errno_location() #12
  %10506 = load i32, ptr %10505, align 4, !tbaa !5
  %10507 = call ptr @strerror(i32 noundef %10506) #11
  %10508 = call ptr @__errno_location() #12
  %10509 = load i32, ptr %10508, align 4, !tbaa !5
  %10510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10497, ptr noundef @.str.2, i32 noundef %10498, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 846, ptr noundef %10501, ptr noundef %10504, ptr noundef %10507, i32 noundef %10509) #11
  br label %10528

10511:                                            ; preds = %10489, %10482
  %10512 = load i32, ptr %281, align 4, !tbaa !5
  %10513 = call ptr @__errno_location() #12
  store i32 %10512, ptr %10513, align 4, !tbaa !5
  %10514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10515 = load i32, ptr @test_count, align 4, !tbaa !5
  %10516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10517 = load i32, ptr %10516, align 4, !tbaa !5
  %10518 = call ptr @s2n_strerror(i32 noundef %10517, ptr noundef @.str.4)
  %10519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10520 = load i32, ptr %10519, align 4, !tbaa !5
  %10521 = call ptr @s2n_strerror_debug(i32 noundef %10520, ptr noundef @.str.4)
  %10522 = call ptr @__errno_location() #12
  %10523 = load i32, ptr %10522, align 4, !tbaa !5
  %10524 = call ptr @strerror(i32 noundef %10523) #11
  %10525 = call ptr @__errno_location() #12
  %10526 = load i32, ptr %10525, align 4, !tbaa !5
  %10527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10514, ptr noundef @.str.5, i32 noundef %10515, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 846, ptr noundef %10518, ptr noundef %10521, ptr noundef %10524, i32 noundef %10526) #11
  br label %10528

10528:                                            ; preds = %10511, %10494
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #11
  br label %10529

10529:                                            ; preds = %10528
  br label %10530

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

10531:                                            ; No predecessors!
  br label %10532

10532:                                            ; preds = %10531
  br label %10533

10533:                                            ; preds = %10532, %10474
  br label %10534

10534:                                            ; preds = %10533
  br label %10535

10535:                                            ; preds = %10534
  br label %10536

10536:                                            ; preds = %10535
  %10537 = load i32, ptr %279, align 4, !tbaa !5
  %10538 = icmp ne i32 %10537, 0
  br i1 %10538, label %10539, label %10605

10539:                                            ; preds = %10536
  br label %10540

10540:                                            ; preds = %10539
  %10541 = load i32, ptr @test_count, align 4, !tbaa !5
  %10542 = add nsw i32 %10541, 1
  store i32 %10542, ptr @test_count, align 4, !tbaa !5
  %10543 = getelementptr inbounds [214 x i8], ptr %273, i64 0, i64 0
  %10544 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10545 = load i32, ptr %279, align 4, !tbaa !5
  %10546 = zext i32 %10545 to i64
  %10547 = call i32 @memcmp(ptr noundef %10543, ptr noundef %10544, i64 noundef %10546) #14
  %10548 = icmp eq i32 %10547, 0
  br i1 %10548, label %10602, label %10549

10549:                                            ; preds = %10540
  br label %10550

10550:                                            ; preds = %10549
  br label %10551

10551:                                            ; preds = %10550
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %10552 = call ptr @__errno_location() #12
  %10553 = load i32, ptr %10552, align 4, !tbaa !5
  store i32 %10553, ptr %282, align 4, !tbaa !5
  %10554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10555 = call i32 @s2n_print_stacktrace(ptr noundef %10554)
  %10556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10557 = trunc i8 %10556 to i1
  br i1 %10557, label %10558, label %10580

10558:                                            ; preds = %10551
  %10559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10560 = call i32 @fileno(ptr noundef %10559) #11
  %10561 = call i32 @isatty(i32 noundef %10560) #11
  %10562 = icmp ne i32 %10561, 0
  br i1 %10562, label %10563, label %10580

10563:                                            ; preds = %10558
  %10564 = load i32, ptr %282, align 4, !tbaa !5
  %10565 = call ptr @__errno_location() #12
  store i32 %10564, ptr %10565, align 4, !tbaa !5
  %10566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10567 = load i32, ptr @test_count, align 4, !tbaa !5
  %10568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10569 = load i32, ptr %10568, align 4, !tbaa !5
  %10570 = call ptr @s2n_strerror(i32 noundef %10569, ptr noundef @.str.4)
  %10571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10572 = load i32, ptr %10571, align 4, !tbaa !5
  %10573 = call ptr @s2n_strerror_debug(i32 noundef %10572, ptr noundef @.str.4)
  %10574 = call ptr @__errno_location() #12
  %10575 = load i32, ptr %10574, align 4, !tbaa !5
  %10576 = call ptr @strerror(i32 noundef %10575) #11
  %10577 = call ptr @__errno_location() #12
  %10578 = load i32, ptr %10577, align 4, !tbaa !5
  %10579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10566, ptr noundef @.str.2, i32 noundef %10567, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 847, ptr noundef %10570, ptr noundef %10573, ptr noundef %10576, i32 noundef %10578) #11
  br label %10597

10580:                                            ; preds = %10558, %10551
  %10581 = load i32, ptr %282, align 4, !tbaa !5
  %10582 = call ptr @__errno_location() #12
  store i32 %10581, ptr %10582, align 4, !tbaa !5
  %10583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10584 = load i32, ptr @test_count, align 4, !tbaa !5
  %10585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10586 = load i32, ptr %10585, align 4, !tbaa !5
  %10587 = call ptr @s2n_strerror(i32 noundef %10586, ptr noundef @.str.4)
  %10588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10589 = load i32, ptr %10588, align 4, !tbaa !5
  %10590 = call ptr @s2n_strerror_debug(i32 noundef %10589, ptr noundef @.str.4)
  %10591 = call ptr @__errno_location() #12
  %10592 = load i32, ptr %10591, align 4, !tbaa !5
  %10593 = call ptr @strerror(i32 noundef %10592) #11
  %10594 = call ptr @__errno_location() #12
  %10595 = load i32, ptr %10594, align 4, !tbaa !5
  %10596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10583, ptr noundef @.str.5, i32 noundef %10584, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 847, ptr noundef %10587, ptr noundef %10590, ptr noundef %10593, i32 noundef %10595) #11
  br label %10597

10597:                                            ; preds = %10580, %10563
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %10598

10598:                                            ; preds = %10597
  br label %10599

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

10600:                                            ; No predecessors!
  br label %10601

10601:                                            ; preds = %10600
  br label %10602

10602:                                            ; preds = %10601, %10540
  br label %10603

10603:                                            ; preds = %10602
  br label %10604

10604:                                            ; preds = %10603
  br label %10605

10605:                                            ; preds = %10604, %10536
  br label %10606

10606:                                            ; preds = %10605
  br label %10607

10607:                                            ; preds = %10606
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  store i32 0, ptr %283, align 4, !tbaa !5
  br label %10608

10608:                                            ; preds = %10607
  %10609 = load i32, ptr @test_count, align 4, !tbaa !5
  %10610 = add nsw i32 %10609, 1
  store i32 %10610, ptr @test_count, align 4, !tbaa !5
  %10611 = load ptr, ptr %276, align 8, !tbaa !9
  %10612 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10613 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %10611, i32 noundef 0, i32 noundef 500, ptr noundef %10612, ptr noundef %279, ptr noundef %283)
  %10614 = icmp eq i32 %10613, -1
  br i1 %10614, label %10615, label %10668

10615:                                            ; preds = %10608
  br label %10616

10616:                                            ; preds = %10615
  br label %10617

10617:                                            ; preds = %10616
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  %10618 = call ptr @__errno_location() #12
  %10619 = load i32, ptr %10618, align 4, !tbaa !5
  store i32 %10619, ptr %284, align 4, !tbaa !5
  %10620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10621 = call i32 @s2n_print_stacktrace(ptr noundef %10620)
  %10622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10623 = trunc i8 %10622 to i1
  br i1 %10623, label %10624, label %10646

10624:                                            ; preds = %10617
  %10625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10626 = call i32 @fileno(ptr noundef %10625) #11
  %10627 = call i32 @isatty(i32 noundef %10626) #11
  %10628 = icmp ne i32 %10627, 0
  br i1 %10628, label %10629, label %10646

10629:                                            ; preds = %10624
  %10630 = load i32, ptr %284, align 4, !tbaa !5
  %10631 = call ptr @__errno_location() #12
  store i32 %10630, ptr %10631, align 4, !tbaa !5
  %10632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10633 = load i32, ptr @test_count, align 4, !tbaa !5
  %10634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10635 = load i32, ptr %10634, align 4, !tbaa !5
  %10636 = call ptr @s2n_strerror(i32 noundef %10635, ptr noundef @.str.4)
  %10637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10638 = load i32, ptr %10637, align 4, !tbaa !5
  %10639 = call ptr @s2n_strerror_debug(i32 noundef %10638, ptr noundef @.str.4)
  %10640 = call ptr @__errno_location() #12
  %10641 = load i32, ptr %10640, align 4, !tbaa !5
  %10642 = call ptr @strerror(i32 noundef %10641) #11
  %10643 = call ptr @__errno_location() #12
  %10644 = load i32, ptr %10643, align 4, !tbaa !5
  %10645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10632, ptr noundef @.str.2, i32 noundef %10633, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 852, ptr noundef %10636, ptr noundef %10639, ptr noundef %10642, i32 noundef %10644) #11
  br label %10663

10646:                                            ; preds = %10624, %10617
  %10647 = load i32, ptr %284, align 4, !tbaa !5
  %10648 = call ptr @__errno_location() #12
  store i32 %10647, ptr %10648, align 4, !tbaa !5
  %10649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10650 = load i32, ptr @test_count, align 4, !tbaa !5
  %10651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10652 = load i32, ptr %10651, align 4, !tbaa !5
  %10653 = call ptr @s2n_strerror(i32 noundef %10652, ptr noundef @.str.4)
  %10654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10655 = load i32, ptr %10654, align 4, !tbaa !5
  %10656 = call ptr @s2n_strerror_debug(i32 noundef %10655, ptr noundef @.str.4)
  %10657 = call ptr @__errno_location() #12
  %10658 = load i32, ptr %10657, align 4, !tbaa !5
  %10659 = call ptr @strerror(i32 noundef %10658) #11
  %10660 = call ptr @__errno_location() #12
  %10661 = load i32, ptr %10660, align 4, !tbaa !5
  %10662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10649, ptr noundef @.str.5, i32 noundef %10650, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 852, ptr noundef %10653, ptr noundef %10656, ptr noundef %10659, i32 noundef %10661) #11
  br label %10663

10663:                                            ; preds = %10646, %10629
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  br label %10664

10664:                                            ; preds = %10663
  br label %10665

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

10666:                                            ; No predecessors!
  br label %10667

10667:                                            ; preds = %10666
  br label %10668

10668:                                            ; preds = %10667, %10608
  br label %10669

10669:                                            ; preds = %10668
  br label %10670

10670:                                            ; preds = %10669
  br label %10671

10671:                                            ; preds = %10670
  %10672 = load i32, ptr @test_count, align 4, !tbaa !5
  %10673 = add nsw i32 %10672, 1
  store i32 %10673, ptr @test_count, align 4, !tbaa !5
  %10674 = load i32, ptr %283, align 4, !tbaa !5
  %10675 = zext i32 %10674 to i64
  %10676 = icmp eq i64 213, %10675
  br i1 %10676, label %10730, label %10677

10677:                                            ; preds = %10671
  br label %10678

10678:                                            ; preds = %10677
  br label %10679

10679:                                            ; preds = %10678
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %10680 = call ptr @__errno_location() #12
  %10681 = load i32, ptr %10680, align 4, !tbaa !5
  store i32 %10681, ptr %285, align 4, !tbaa !5
  %10682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10683 = call i32 @s2n_print_stacktrace(ptr noundef %10682)
  %10684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10685 = trunc i8 %10684 to i1
  br i1 %10685, label %10686, label %10708

10686:                                            ; preds = %10679
  %10687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10688 = call i32 @fileno(ptr noundef %10687) #11
  %10689 = call i32 @isatty(i32 noundef %10688) #11
  %10690 = icmp ne i32 %10689, 0
  br i1 %10690, label %10691, label %10708

10691:                                            ; preds = %10686
  %10692 = load i32, ptr %285, align 4, !tbaa !5
  %10693 = call ptr @__errno_location() #12
  store i32 %10692, ptr %10693, align 4, !tbaa !5
  %10694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10695 = load i32, ptr @test_count, align 4, !tbaa !5
  %10696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10697 = load i32, ptr %10696, align 4, !tbaa !5
  %10698 = call ptr @s2n_strerror(i32 noundef %10697, ptr noundef @.str.4)
  %10699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10700 = load i32, ptr %10699, align 4, !tbaa !5
  %10701 = call ptr @s2n_strerror_debug(i32 noundef %10700, ptr noundef @.str.4)
  %10702 = call ptr @__errno_location() #12
  %10703 = load i32, ptr %10702, align 4, !tbaa !5
  %10704 = call ptr @strerror(i32 noundef %10703) #11
  %10705 = call ptr @__errno_location() #12
  %10706 = load i32, ptr %10705, align 4, !tbaa !5
  %10707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10694, ptr noundef @.str.2, i32 noundef %10695, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 853, ptr noundef %10698, ptr noundef %10701, ptr noundef %10704, i32 noundef %10706) #11
  br label %10725

10708:                                            ; preds = %10686, %10679
  %10709 = load i32, ptr %285, align 4, !tbaa !5
  %10710 = call ptr @__errno_location() #12
  store i32 %10709, ptr %10710, align 4, !tbaa !5
  %10711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10712 = load i32, ptr @test_count, align 4, !tbaa !5
  %10713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10714 = load i32, ptr %10713, align 4, !tbaa !5
  %10715 = call ptr @s2n_strerror(i32 noundef %10714, ptr noundef @.str.4)
  %10716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10717 = load i32, ptr %10716, align 4, !tbaa !5
  %10718 = call ptr @s2n_strerror_debug(i32 noundef %10717, ptr noundef @.str.4)
  %10719 = call ptr @__errno_location() #12
  %10720 = load i32, ptr %10719, align 4, !tbaa !5
  %10721 = call ptr @strerror(i32 noundef %10720) #11
  %10722 = call ptr @__errno_location() #12
  %10723 = load i32, ptr %10722, align 4, !tbaa !5
  %10724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10711, ptr noundef @.str.5, i32 noundef %10712, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 853, ptr noundef %10715, ptr noundef %10718, ptr noundef %10721, i32 noundef %10723) #11
  br label %10725

10725:                                            ; preds = %10708, %10691
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %10726

10726:                                            ; preds = %10725
  br label %10727

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

10728:                                            ; No predecessors!
  br label %10729

10729:                                            ; preds = %10728
  br label %10730

10730:                                            ; preds = %10729, %10671
  br label %10731

10731:                                            ; preds = %10730
  br label %10732

10732:                                            ; preds = %10731
  br label %10733

10733:                                            ; preds = %10732
  %10734 = load i32, ptr @test_count, align 4, !tbaa !5
  %10735 = add nsw i32 %10734, 1
  store i32 %10735, ptr @test_count, align 4, !tbaa !5
  %10736 = getelementptr inbounds %struct.s2n_blob, ptr %274, i32 0, i32 1
  %10737 = load i32, ptr %10736, align 8, !tbaa !53
  %10738 = load i32, ptr %279, align 4, !tbaa !5
  %10739 = icmp eq i32 %10737, %10738
  br i1 %10739, label %10793, label %10740

10740:                                            ; preds = %10733
  br label %10741

10741:                                            ; preds = %10740
  br label %10742

10742:                                            ; preds = %10741
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %10743 = call ptr @__errno_location() #12
  %10744 = load i32, ptr %10743, align 4, !tbaa !5
  store i32 %10744, ptr %286, align 4, !tbaa !5
  %10745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10746 = call i32 @s2n_print_stacktrace(ptr noundef %10745)
  %10747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10748 = trunc i8 %10747 to i1
  br i1 %10748, label %10749, label %10771

10749:                                            ; preds = %10742
  %10750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10751 = call i32 @fileno(ptr noundef %10750) #11
  %10752 = call i32 @isatty(i32 noundef %10751) #11
  %10753 = icmp ne i32 %10752, 0
  br i1 %10753, label %10754, label %10771

10754:                                            ; preds = %10749
  %10755 = load i32, ptr %286, align 4, !tbaa !5
  %10756 = call ptr @__errno_location() #12
  store i32 %10755, ptr %10756, align 4, !tbaa !5
  %10757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10758 = load i32, ptr @test_count, align 4, !tbaa !5
  %10759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10760 = load i32, ptr %10759, align 4, !tbaa !5
  %10761 = call ptr @s2n_strerror(i32 noundef %10760, ptr noundef @.str.4)
  %10762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10763 = load i32, ptr %10762, align 4, !tbaa !5
  %10764 = call ptr @s2n_strerror_debug(i32 noundef %10763, ptr noundef @.str.4)
  %10765 = call ptr @__errno_location() #12
  %10766 = load i32, ptr %10765, align 4, !tbaa !5
  %10767 = call ptr @strerror(i32 noundef %10766) #11
  %10768 = call ptr @__errno_location() #12
  %10769 = load i32, ptr %10768, align 4, !tbaa !5
  %10770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10757, ptr noundef @.str.2, i32 noundef %10758, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 854, ptr noundef %10761, ptr noundef %10764, ptr noundef %10767, i32 noundef %10769) #11
  br label %10788

10771:                                            ; preds = %10749, %10742
  %10772 = load i32, ptr %286, align 4, !tbaa !5
  %10773 = call ptr @__errno_location() #12
  store i32 %10772, ptr %10773, align 4, !tbaa !5
  %10774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10775 = load i32, ptr @test_count, align 4, !tbaa !5
  %10776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10777 = load i32, ptr %10776, align 4, !tbaa !5
  %10778 = call ptr @s2n_strerror(i32 noundef %10777, ptr noundef @.str.4)
  %10779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10780 = load i32, ptr %10779, align 4, !tbaa !5
  %10781 = call ptr @s2n_strerror_debug(i32 noundef %10780, ptr noundef @.str.4)
  %10782 = call ptr @__errno_location() #12
  %10783 = load i32, ptr %10782, align 4, !tbaa !5
  %10784 = call ptr @strerror(i32 noundef %10783) #11
  %10785 = call ptr @__errno_location() #12
  %10786 = load i32, ptr %10785, align 4, !tbaa !5
  %10787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10774, ptr noundef @.str.5, i32 noundef %10775, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 854, ptr noundef %10778, ptr noundef %10781, ptr noundef %10784, i32 noundef %10786) #11
  br label %10788

10788:                                            ; preds = %10771, %10754
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %10789

10789:                                            ; preds = %10788
  br label %10790

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

10791:                                            ; No predecessors!
  br label %10792

10792:                                            ; preds = %10791
  br label %10793

10793:                                            ; preds = %10792, %10733
  br label %10794

10794:                                            ; preds = %10793
  br label %10795

10795:                                            ; preds = %10794
  br label %10796

10796:                                            ; preds = %10795
  %10797 = load i32, ptr %279, align 4, !tbaa !5
  %10798 = icmp ne i32 %10797, 0
  br i1 %10798, label %10799, label %10866

10799:                                            ; preds = %10796
  br label %10800

10800:                                            ; preds = %10799
  %10801 = load i32, ptr @test_count, align 4, !tbaa !5
  %10802 = add nsw i32 %10801, 1
  store i32 %10802, ptr @test_count, align 4, !tbaa !5
  %10803 = getelementptr inbounds %struct.s2n_blob, ptr %274, i32 0, i32 0
  %10804 = load ptr, ptr %10803, align 8, !tbaa !54
  %10805 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10806 = load i32, ptr %279, align 4, !tbaa !5
  %10807 = zext i32 %10806 to i64
  %10808 = call i32 @memcmp(ptr noundef %10804, ptr noundef %10805, i64 noundef %10807) #14
  %10809 = icmp eq i32 %10808, 0
  br i1 %10809, label %10863, label %10810

10810:                                            ; preds = %10800
  br label %10811

10811:                                            ; preds = %10810
  br label %10812

10812:                                            ; preds = %10811
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %10813 = call ptr @__errno_location() #12
  %10814 = load i32, ptr %10813, align 4, !tbaa !5
  store i32 %10814, ptr %287, align 4, !tbaa !5
  %10815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10816 = call i32 @s2n_print_stacktrace(ptr noundef %10815)
  %10817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10818 = trunc i8 %10817 to i1
  br i1 %10818, label %10819, label %10841

10819:                                            ; preds = %10812
  %10820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10821 = call i32 @fileno(ptr noundef %10820) #11
  %10822 = call i32 @isatty(i32 noundef %10821) #11
  %10823 = icmp ne i32 %10822, 0
  br i1 %10823, label %10824, label %10841

10824:                                            ; preds = %10819
  %10825 = load i32, ptr %287, align 4, !tbaa !5
  %10826 = call ptr @__errno_location() #12
  store i32 %10825, ptr %10826, align 4, !tbaa !5
  %10827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10828 = load i32, ptr @test_count, align 4, !tbaa !5
  %10829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10830 = load i32, ptr %10829, align 4, !tbaa !5
  %10831 = call ptr @s2n_strerror(i32 noundef %10830, ptr noundef @.str.4)
  %10832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10833 = load i32, ptr %10832, align 4, !tbaa !5
  %10834 = call ptr @s2n_strerror_debug(i32 noundef %10833, ptr noundef @.str.4)
  %10835 = call ptr @__errno_location() #12
  %10836 = load i32, ptr %10835, align 4, !tbaa !5
  %10837 = call ptr @strerror(i32 noundef %10836) #11
  %10838 = call ptr @__errno_location() #12
  %10839 = load i32, ptr %10838, align 4, !tbaa !5
  %10840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10827, ptr noundef @.str.2, i32 noundef %10828, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 855, ptr noundef %10831, ptr noundef %10834, ptr noundef %10837, i32 noundef %10839) #11
  br label %10858

10841:                                            ; preds = %10819, %10812
  %10842 = load i32, ptr %287, align 4, !tbaa !5
  %10843 = call ptr @__errno_location() #12
  store i32 %10842, ptr %10843, align 4, !tbaa !5
  %10844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10845 = load i32, ptr @test_count, align 4, !tbaa !5
  %10846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10847 = load i32, ptr %10846, align 4, !tbaa !5
  %10848 = call ptr @s2n_strerror(i32 noundef %10847, ptr noundef @.str.4)
  %10849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10850 = load i32, ptr %10849, align 4, !tbaa !5
  %10851 = call ptr @s2n_strerror_debug(i32 noundef %10850, ptr noundef @.str.4)
  %10852 = call ptr @__errno_location() #12
  %10853 = load i32, ptr %10852, align 4, !tbaa !5
  %10854 = call ptr @strerror(i32 noundef %10853) #11
  %10855 = call ptr @__errno_location() #12
  %10856 = load i32, ptr %10855, align 4, !tbaa !5
  %10857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10844, ptr noundef @.str.5, i32 noundef %10845, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 855, ptr noundef %10848, ptr noundef %10851, ptr noundef %10854, i32 noundef %10856) #11
  br label %10858

10858:                                            ; preds = %10841, %10824
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %10859

10859:                                            ; preds = %10858
  br label %10860

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

10861:                                            ; No predecessors!
  br label %10862

10862:                                            ; preds = %10861
  br label %10863

10863:                                            ; preds = %10862, %10800
  br label %10864

10864:                                            ; preds = %10863
  br label %10865

10865:                                            ; preds = %10864
  br label %10866

10866:                                            ; preds = %10865, %10796
  br label %10867

10867:                                            ; preds = %10866
  br label %10868

10868:                                            ; preds = %10867
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  %10869 = call i32 @s2n_client_hello_free(ptr noundef %276)
  call void @llvm.lifetime.end.p0(i64 8, ptr %276) #11
  store i32 0, ptr %215, align 4
  br label %10870

10870:                                            ; preds = %10868, %10340
  %10871 = call i32 @s2n_free(ptr noundef %274)
  call void @llvm.lifetime.end.p0(i64 24, ptr %274) #11
  call void @llvm.lifetime.end.p0(i64 214, ptr %273) #11
  call void @llvm.lifetime.end.p0(i64 512, ptr %272) #11
  %10872 = load i32, ptr %215, align 4
  switch i32 %10872, label %11954 [
    i32 0, label %10873
  ]

10873:                                            ; preds = %10870
  call void @llvm.lifetime.start.p0(i64 240, ptr %288) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %288, ptr align 16 @__const.main.raw_client_hello.89, i64 240, i1 false)
  call void @llvm.lifetime.start.p0(i64 124, ptr %289) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %289, ptr align 16 @__const.main.expected_ja3.90, i64 124, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %290) #11
  call void @llvm.memset.p0.i64(ptr align 8 %290, i8 0, i64 24, i1 false)
  br label %10874

10874:                                            ; preds = %10873
  %10875 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %290, ptr noundef @.str.91)
  %10876 = getelementptr inbounds %struct.s2n_result, ptr %291, i32 0, i32 0
  store i32 %10875, ptr %10876, align 4
  %10877 = getelementptr inbounds %struct.s2n_result, ptr %291, i32 0, i32 0
  %10878 = load i32, ptr %10877, align 4
  %10879 = call zeroext i1 @s2n_result_is_ok(i32 %10878)
  br i1 %10879, label %10881, label %10880

10880:                                            ; preds = %10874
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %215, align 4
  br label %11410

10881:                                            ; preds = %10874
  br label %10882

10882:                                            ; preds = %10881
  br label %10883

10883:                                            ; preds = %10882
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #11
  store ptr null, ptr %292, align 8, !tbaa !9
  br label %10884

10884:                                            ; preds = %10883
  %10885 = load i32, ptr @test_count, align 4, !tbaa !5
  %10886 = add nsw i32 %10885, 1
  store i32 %10886, ptr @test_count, align 4, !tbaa !5
  %10887 = load ptr, ptr %217, align 8, !tbaa !9
  %10888 = getelementptr inbounds [240 x i8], ptr %288, i64 0, i64 0
  %10889 = load i32, ptr %216, align 4, !tbaa !5
  %10890 = call i32 @s2n_client_hello_from_source(ptr noundef %292, ptr noundef %10887, ptr noundef %10888, i32 noundef 240, i32 noundef %10889)
  %10891 = getelementptr inbounds %struct.s2n_result, ptr %293, i32 0, i32 0
  store i32 %10890, ptr %10891, align 4
  %10892 = getelementptr inbounds %struct.s2n_result, ptr %293, i32 0, i32 0
  %10893 = load i32, ptr %10892, align 4
  %10894 = call zeroext i1 @s2n_result_is_ok(i32 %10893)
  br i1 %10894, label %10948, label %10895

10895:                                            ; preds = %10884
  br label %10896

10896:                                            ; preds = %10895
  br label %10897

10897:                                            ; preds = %10896
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %10898 = call ptr @__errno_location() #12
  %10899 = load i32, ptr %10898, align 4, !tbaa !5
  store i32 %10899, ptr %294, align 4, !tbaa !5
  %10900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10901 = call i32 @s2n_print_stacktrace(ptr noundef %10900)
  %10902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10903 = trunc i8 %10902 to i1
  br i1 %10903, label %10904, label %10926

10904:                                            ; preds = %10897
  %10905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10906 = call i32 @fileno(ptr noundef %10905) #11
  %10907 = call i32 @isatty(i32 noundef %10906) #11
  %10908 = icmp ne i32 %10907, 0
  br i1 %10908, label %10909, label %10926

10909:                                            ; preds = %10904
  %10910 = load i32, ptr %294, align 4, !tbaa !5
  %10911 = call ptr @__errno_location() #12
  store i32 %10910, ptr %10911, align 4, !tbaa !5
  %10912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10913 = load i32, ptr @test_count, align 4, !tbaa !5
  %10914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10915 = load i32, ptr %10914, align 4, !tbaa !5
  %10916 = call ptr @s2n_strerror(i32 noundef %10915, ptr noundef @.str.4)
  %10917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10918 = load i32, ptr %10917, align 4, !tbaa !5
  %10919 = call ptr @s2n_strerror_debug(i32 noundef %10918, ptr noundef @.str.4)
  %10920 = call ptr @__errno_location() #12
  %10921 = load i32, ptr %10920, align 4, !tbaa !5
  %10922 = call ptr @strerror(i32 noundef %10921) #11
  %10923 = call ptr @__errno_location() #12
  %10924 = load i32, ptr %10923, align 4, !tbaa !5
  %10925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10912, ptr noundef @.str.2, i32 noundef %10913, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 895, ptr noundef %10916, ptr noundef %10919, ptr noundef %10922, i32 noundef %10924) #11
  br label %10943

10926:                                            ; preds = %10904, %10897
  %10927 = load i32, ptr %294, align 4, !tbaa !5
  %10928 = call ptr @__errno_location() #12
  store i32 %10927, ptr %10928, align 4, !tbaa !5
  %10929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10930 = load i32, ptr @test_count, align 4, !tbaa !5
  %10931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10932 = load i32, ptr %10931, align 4, !tbaa !5
  %10933 = call ptr @s2n_strerror(i32 noundef %10932, ptr noundef @.str.4)
  %10934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10935 = load i32, ptr %10934, align 4, !tbaa !5
  %10936 = call ptr @s2n_strerror_debug(i32 noundef %10935, ptr noundef @.str.4)
  %10937 = call ptr @__errno_location() #12
  %10938 = load i32, ptr %10937, align 4, !tbaa !5
  %10939 = call ptr @strerror(i32 noundef %10938) #11
  %10940 = call ptr @__errno_location() #12
  %10941 = load i32, ptr %10940, align 4, !tbaa !5
  %10942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10929, ptr noundef @.str.5, i32 noundef %10930, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 895, ptr noundef %10933, ptr noundef %10936, ptr noundef %10939, i32 noundef %10941) #11
  br label %10943

10943:                                            ; preds = %10926, %10909
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %10944

10944:                                            ; preds = %10943
  br label %10945

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

10946:                                            ; No predecessors!
  br label %10947

10947:                                            ; preds = %10946
  br label %10948

10948:                                            ; preds = %10947, %10884
  br label %10949

10949:                                            ; preds = %10948
  br label %10950

10950:                                            ; preds = %10949
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  store i32 0, ptr %295, align 4, !tbaa !5
  br label %10951

10951:                                            ; preds = %10950
  %10952 = load i32, ptr @test_count, align 4, !tbaa !5
  %10953 = add nsw i32 %10952, 1
  store i32 %10953, ptr @test_count, align 4, !tbaa !5
  %10954 = load ptr, ptr %292, align 8, !tbaa !9
  %10955 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %10956 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %10954, i32 noundef 0, i32 noundef 500, ptr noundef %10955, ptr noundef %295)
  %10957 = icmp eq i32 %10956, -1
  br i1 %10957, label %10958, label %11011

10958:                                            ; preds = %10951
  br label %10959

10959:                                            ; preds = %10958
  br label %10960

10960:                                            ; preds = %10959
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %10961 = call ptr @__errno_location() #12
  %10962 = load i32, ptr %10961, align 4, !tbaa !5
  store i32 %10962, ptr %296, align 4, !tbaa !5
  %10963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10964 = call i32 @s2n_print_stacktrace(ptr noundef %10963)
  %10965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10966 = trunc i8 %10965 to i1
  br i1 %10966, label %10967, label %10989

10967:                                            ; preds = %10960
  %10968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10969 = call i32 @fileno(ptr noundef %10968) #11
  %10970 = call i32 @isatty(i32 noundef %10969) #11
  %10971 = icmp ne i32 %10970, 0
  br i1 %10971, label %10972, label %10989

10972:                                            ; preds = %10967
  %10973 = load i32, ptr %296, align 4, !tbaa !5
  %10974 = call ptr @__errno_location() #12
  store i32 %10973, ptr %10974, align 4, !tbaa !5
  %10975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10976 = load i32, ptr @test_count, align 4, !tbaa !5
  %10977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10978 = load i32, ptr %10977, align 4, !tbaa !5
  %10979 = call ptr @s2n_strerror(i32 noundef %10978, ptr noundef @.str.4)
  %10980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10981 = load i32, ptr %10980, align 4, !tbaa !5
  %10982 = call ptr @s2n_strerror_debug(i32 noundef %10981, ptr noundef @.str.4)
  %10983 = call ptr @__errno_location() #12
  %10984 = load i32, ptr %10983, align 4, !tbaa !5
  %10985 = call ptr @strerror(i32 noundef %10984) #11
  %10986 = call ptr @__errno_location() #12
  %10987 = load i32, ptr %10986, align 4, !tbaa !5
  %10988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10975, ptr noundef @.str.2, i32 noundef %10976, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 899, ptr noundef %10979, ptr noundef %10982, ptr noundef %10985, i32 noundef %10987) #11
  br label %11006

10989:                                            ; preds = %10967, %10960
  %10990 = load i32, ptr %296, align 4, !tbaa !5
  %10991 = call ptr @__errno_location() #12
  store i32 %10990, ptr %10991, align 4, !tbaa !5
  %10992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10993 = load i32, ptr @test_count, align 4, !tbaa !5
  %10994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10995 = load i32, ptr %10994, align 4, !tbaa !5
  %10996 = call ptr @s2n_strerror(i32 noundef %10995, ptr noundef @.str.4)
  %10997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10998 = load i32, ptr %10997, align 4, !tbaa !5
  %10999 = call ptr @s2n_strerror_debug(i32 noundef %10998, ptr noundef @.str.4)
  %11000 = call ptr @__errno_location() #12
  %11001 = load i32, ptr %11000, align 4, !tbaa !5
  %11002 = call ptr @strerror(i32 noundef %11001) #11
  %11003 = call ptr @__errno_location() #12
  %11004 = load i32, ptr %11003, align 4, !tbaa !5
  %11005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10992, ptr noundef @.str.5, i32 noundef %10993, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 899, ptr noundef %10996, ptr noundef %10999, ptr noundef %11002, i32 noundef %11004) #11
  br label %11006

11006:                                            ; preds = %10989, %10972
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %11007

11007:                                            ; preds = %11006
  br label %11008

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

11009:                                            ; No predecessors!
  br label %11010

11010:                                            ; preds = %11009
  br label %11011

11011:                                            ; preds = %11010, %10951
  br label %11012

11012:                                            ; preds = %11011
  br label %11013

11013:                                            ; preds = %11012
  br label %11014

11014:                                            ; preds = %11013
  %11015 = load i32, ptr @test_count, align 4, !tbaa !5
  %11016 = add nsw i32 %11015, 1
  store i32 %11016, ptr @test_count, align 4, !tbaa !5
  %11017 = load i32, ptr %295, align 4, !tbaa !5
  %11018 = zext i32 %11017 to i64
  %11019 = icmp eq i64 123, %11018
  br i1 %11019, label %11073, label %11020

11020:                                            ; preds = %11014
  br label %11021

11021:                                            ; preds = %11020
  br label %11022

11022:                                            ; preds = %11021
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %11023 = call ptr @__errno_location() #12
  %11024 = load i32, ptr %11023, align 4, !tbaa !5
  store i32 %11024, ptr %297, align 4, !tbaa !5
  %11025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11026 = call i32 @s2n_print_stacktrace(ptr noundef %11025)
  %11027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11028 = trunc i8 %11027 to i1
  br i1 %11028, label %11029, label %11051

11029:                                            ; preds = %11022
  %11030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11031 = call i32 @fileno(ptr noundef %11030) #11
  %11032 = call i32 @isatty(i32 noundef %11031) #11
  %11033 = icmp ne i32 %11032, 0
  br i1 %11033, label %11034, label %11051

11034:                                            ; preds = %11029
  %11035 = load i32, ptr %297, align 4, !tbaa !5
  %11036 = call ptr @__errno_location() #12
  store i32 %11035, ptr %11036, align 4, !tbaa !5
  %11037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11038 = load i32, ptr @test_count, align 4, !tbaa !5
  %11039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11040 = load i32, ptr %11039, align 4, !tbaa !5
  %11041 = call ptr @s2n_strerror(i32 noundef %11040, ptr noundef @.str.4)
  %11042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11043 = load i32, ptr %11042, align 4, !tbaa !5
  %11044 = call ptr @s2n_strerror_debug(i32 noundef %11043, ptr noundef @.str.4)
  %11045 = call ptr @__errno_location() #12
  %11046 = load i32, ptr %11045, align 4, !tbaa !5
  %11047 = call ptr @strerror(i32 noundef %11046) #11
  %11048 = call ptr @__errno_location() #12
  %11049 = load i32, ptr %11048, align 4, !tbaa !5
  %11050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11037, ptr noundef @.str.2, i32 noundef %11038, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 900, ptr noundef %11041, ptr noundef %11044, ptr noundef %11047, i32 noundef %11049) #11
  br label %11068

11051:                                            ; preds = %11029, %11022
  %11052 = load i32, ptr %297, align 4, !tbaa !5
  %11053 = call ptr @__errno_location() #12
  store i32 %11052, ptr %11053, align 4, !tbaa !5
  %11054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11055 = load i32, ptr @test_count, align 4, !tbaa !5
  %11056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11057 = load i32, ptr %11056, align 4, !tbaa !5
  %11058 = call ptr @s2n_strerror(i32 noundef %11057, ptr noundef @.str.4)
  %11059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11060 = load i32, ptr %11059, align 4, !tbaa !5
  %11061 = call ptr @s2n_strerror_debug(i32 noundef %11060, ptr noundef @.str.4)
  %11062 = call ptr @__errno_location() #12
  %11063 = load i32, ptr %11062, align 4, !tbaa !5
  %11064 = call ptr @strerror(i32 noundef %11063) #11
  %11065 = call ptr @__errno_location() #12
  %11066 = load i32, ptr %11065, align 4, !tbaa !5
  %11067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11054, ptr noundef @.str.5, i32 noundef %11055, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 900, ptr noundef %11058, ptr noundef %11061, ptr noundef %11064, i32 noundef %11066) #11
  br label %11068

11068:                                            ; preds = %11051, %11034
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %11069

11069:                                            ; preds = %11068
  br label %11070

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

11071:                                            ; No predecessors!
  br label %11072

11072:                                            ; preds = %11071
  br label %11073

11073:                                            ; preds = %11072, %11014
  br label %11074

11074:                                            ; preds = %11073
  br label %11075

11075:                                            ; preds = %11074
  br label %11076

11076:                                            ; preds = %11075
  %11077 = load i32, ptr %295, align 4, !tbaa !5
  %11078 = icmp ne i32 %11077, 0
  br i1 %11078, label %11079, label %11145

11079:                                            ; preds = %11076
  br label %11080

11080:                                            ; preds = %11079
  %11081 = load i32, ptr @test_count, align 4, !tbaa !5
  %11082 = add nsw i32 %11081, 1
  store i32 %11082, ptr @test_count, align 4, !tbaa !5
  %11083 = getelementptr inbounds [124 x i8], ptr %289, i64 0, i64 0
  %11084 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %11085 = load i32, ptr %295, align 4, !tbaa !5
  %11086 = zext i32 %11085 to i64
  %11087 = call i32 @memcmp(ptr noundef %11083, ptr noundef %11084, i64 noundef %11086) #14
  %11088 = icmp eq i32 %11087, 0
  br i1 %11088, label %11142, label %11089

11089:                                            ; preds = %11080
  br label %11090

11090:                                            ; preds = %11089
  br label %11091

11091:                                            ; preds = %11090
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %11092 = call ptr @__errno_location() #12
  %11093 = load i32, ptr %11092, align 4, !tbaa !5
  store i32 %11093, ptr %298, align 4, !tbaa !5
  %11094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11095 = call i32 @s2n_print_stacktrace(ptr noundef %11094)
  %11096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11097 = trunc i8 %11096 to i1
  br i1 %11097, label %11098, label %11120

11098:                                            ; preds = %11091
  %11099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11100 = call i32 @fileno(ptr noundef %11099) #11
  %11101 = call i32 @isatty(i32 noundef %11100) #11
  %11102 = icmp ne i32 %11101, 0
  br i1 %11102, label %11103, label %11120

11103:                                            ; preds = %11098
  %11104 = load i32, ptr %298, align 4, !tbaa !5
  %11105 = call ptr @__errno_location() #12
  store i32 %11104, ptr %11105, align 4, !tbaa !5
  %11106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11107 = load i32, ptr @test_count, align 4, !tbaa !5
  %11108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11109 = load i32, ptr %11108, align 4, !tbaa !5
  %11110 = call ptr @s2n_strerror(i32 noundef %11109, ptr noundef @.str.4)
  %11111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11112 = load i32, ptr %11111, align 4, !tbaa !5
  %11113 = call ptr @s2n_strerror_debug(i32 noundef %11112, ptr noundef @.str.4)
  %11114 = call ptr @__errno_location() #12
  %11115 = load i32, ptr %11114, align 4, !tbaa !5
  %11116 = call ptr @strerror(i32 noundef %11115) #11
  %11117 = call ptr @__errno_location() #12
  %11118 = load i32, ptr %11117, align 4, !tbaa !5
  %11119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11106, ptr noundef @.str.2, i32 noundef %11107, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 901, ptr noundef %11110, ptr noundef %11113, ptr noundef %11116, i32 noundef %11118) #11
  br label %11137

11120:                                            ; preds = %11098, %11091
  %11121 = load i32, ptr %298, align 4, !tbaa !5
  %11122 = call ptr @__errno_location() #12
  store i32 %11121, ptr %11122, align 4, !tbaa !5
  %11123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11124 = load i32, ptr @test_count, align 4, !tbaa !5
  %11125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11126 = load i32, ptr %11125, align 4, !tbaa !5
  %11127 = call ptr @s2n_strerror(i32 noundef %11126, ptr noundef @.str.4)
  %11128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11129 = load i32, ptr %11128, align 4, !tbaa !5
  %11130 = call ptr @s2n_strerror_debug(i32 noundef %11129, ptr noundef @.str.4)
  %11131 = call ptr @__errno_location() #12
  %11132 = load i32, ptr %11131, align 4, !tbaa !5
  %11133 = call ptr @strerror(i32 noundef %11132) #11
  %11134 = call ptr @__errno_location() #12
  %11135 = load i32, ptr %11134, align 4, !tbaa !5
  %11136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11123, ptr noundef @.str.5, i32 noundef %11124, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 901, ptr noundef %11127, ptr noundef %11130, ptr noundef %11133, i32 noundef %11135) #11
  br label %11137

11137:                                            ; preds = %11120, %11103
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %11138

11138:                                            ; preds = %11137
  br label %11139

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

11140:                                            ; No predecessors!
  br label %11141

11141:                                            ; preds = %11140
  br label %11142

11142:                                            ; preds = %11141, %11080
  br label %11143

11143:                                            ; preds = %11142
  br label %11144

11144:                                            ; preds = %11143
  br label %11145

11145:                                            ; preds = %11144, %11076
  br label %11146

11146:                                            ; preds = %11145
  br label %11147

11147:                                            ; preds = %11146
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  store i32 0, ptr %299, align 4, !tbaa !5
  br label %11148

11148:                                            ; preds = %11147
  %11149 = load i32, ptr @test_count, align 4, !tbaa !5
  %11150 = add nsw i32 %11149, 1
  store i32 %11150, ptr @test_count, align 4, !tbaa !5
  %11151 = load ptr, ptr %292, align 8, !tbaa !9
  %11152 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %11153 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %11151, i32 noundef 0, i32 noundef 500, ptr noundef %11152, ptr noundef %295, ptr noundef %299)
  %11154 = icmp eq i32 %11153, -1
  br i1 %11154, label %11155, label %11208

11155:                                            ; preds = %11148
  br label %11156

11156:                                            ; preds = %11155
  br label %11157

11157:                                            ; preds = %11156
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  %11158 = call ptr @__errno_location() #12
  %11159 = load i32, ptr %11158, align 4, !tbaa !5
  store i32 %11159, ptr %300, align 4, !tbaa !5
  %11160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11161 = call i32 @s2n_print_stacktrace(ptr noundef %11160)
  %11162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11163 = trunc i8 %11162 to i1
  br i1 %11163, label %11164, label %11186

11164:                                            ; preds = %11157
  %11165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11166 = call i32 @fileno(ptr noundef %11165) #11
  %11167 = call i32 @isatty(i32 noundef %11166) #11
  %11168 = icmp ne i32 %11167, 0
  br i1 %11168, label %11169, label %11186

11169:                                            ; preds = %11164
  %11170 = load i32, ptr %300, align 4, !tbaa !5
  %11171 = call ptr @__errno_location() #12
  store i32 %11170, ptr %11171, align 4, !tbaa !5
  %11172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11173 = load i32, ptr @test_count, align 4, !tbaa !5
  %11174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11175 = load i32, ptr %11174, align 4, !tbaa !5
  %11176 = call ptr @s2n_strerror(i32 noundef %11175, ptr noundef @.str.4)
  %11177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11178 = load i32, ptr %11177, align 4, !tbaa !5
  %11179 = call ptr @s2n_strerror_debug(i32 noundef %11178, ptr noundef @.str.4)
  %11180 = call ptr @__errno_location() #12
  %11181 = load i32, ptr %11180, align 4, !tbaa !5
  %11182 = call ptr @strerror(i32 noundef %11181) #11
  %11183 = call ptr @__errno_location() #12
  %11184 = load i32, ptr %11183, align 4, !tbaa !5
  %11185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11172, ptr noundef @.str.2, i32 noundef %11173, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 906, ptr noundef %11176, ptr noundef %11179, ptr noundef %11182, i32 noundef %11184) #11
  br label %11203

11186:                                            ; preds = %11164, %11157
  %11187 = load i32, ptr %300, align 4, !tbaa !5
  %11188 = call ptr @__errno_location() #12
  store i32 %11187, ptr %11188, align 4, !tbaa !5
  %11189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11190 = load i32, ptr @test_count, align 4, !tbaa !5
  %11191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11192 = load i32, ptr %11191, align 4, !tbaa !5
  %11193 = call ptr @s2n_strerror(i32 noundef %11192, ptr noundef @.str.4)
  %11194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11195 = load i32, ptr %11194, align 4, !tbaa !5
  %11196 = call ptr @s2n_strerror_debug(i32 noundef %11195, ptr noundef @.str.4)
  %11197 = call ptr @__errno_location() #12
  %11198 = load i32, ptr %11197, align 4, !tbaa !5
  %11199 = call ptr @strerror(i32 noundef %11198) #11
  %11200 = call ptr @__errno_location() #12
  %11201 = load i32, ptr %11200, align 4, !tbaa !5
  %11202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11189, ptr noundef @.str.5, i32 noundef %11190, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 906, ptr noundef %11193, ptr noundef %11196, ptr noundef %11199, i32 noundef %11201) #11
  br label %11203

11203:                                            ; preds = %11186, %11169
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  br label %11204

11204:                                            ; preds = %11203
  br label %11205

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

11206:                                            ; No predecessors!
  br label %11207

11207:                                            ; preds = %11206
  br label %11208

11208:                                            ; preds = %11207, %11148
  br label %11209

11209:                                            ; preds = %11208
  br label %11210

11210:                                            ; preds = %11209
  br label %11211

11211:                                            ; preds = %11210
  %11212 = load i32, ptr @test_count, align 4, !tbaa !5
  %11213 = add nsw i32 %11212, 1
  store i32 %11213, ptr @test_count, align 4, !tbaa !5
  %11214 = load i32, ptr %299, align 4, !tbaa !5
  %11215 = zext i32 %11214 to i64
  %11216 = icmp eq i64 123, %11215
  br i1 %11216, label %11270, label %11217

11217:                                            ; preds = %11211
  br label %11218

11218:                                            ; preds = %11217
  br label %11219

11219:                                            ; preds = %11218
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #11
  %11220 = call ptr @__errno_location() #12
  %11221 = load i32, ptr %11220, align 4, !tbaa !5
  store i32 %11221, ptr %301, align 4, !tbaa !5
  %11222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11223 = call i32 @s2n_print_stacktrace(ptr noundef %11222)
  %11224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11225 = trunc i8 %11224 to i1
  br i1 %11225, label %11226, label %11248

11226:                                            ; preds = %11219
  %11227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11228 = call i32 @fileno(ptr noundef %11227) #11
  %11229 = call i32 @isatty(i32 noundef %11228) #11
  %11230 = icmp ne i32 %11229, 0
  br i1 %11230, label %11231, label %11248

11231:                                            ; preds = %11226
  %11232 = load i32, ptr %301, align 4, !tbaa !5
  %11233 = call ptr @__errno_location() #12
  store i32 %11232, ptr %11233, align 4, !tbaa !5
  %11234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11235 = load i32, ptr @test_count, align 4, !tbaa !5
  %11236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11237 = load i32, ptr %11236, align 4, !tbaa !5
  %11238 = call ptr @s2n_strerror(i32 noundef %11237, ptr noundef @.str.4)
  %11239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11240 = load i32, ptr %11239, align 4, !tbaa !5
  %11241 = call ptr @s2n_strerror_debug(i32 noundef %11240, ptr noundef @.str.4)
  %11242 = call ptr @__errno_location() #12
  %11243 = load i32, ptr %11242, align 4, !tbaa !5
  %11244 = call ptr @strerror(i32 noundef %11243) #11
  %11245 = call ptr @__errno_location() #12
  %11246 = load i32, ptr %11245, align 4, !tbaa !5
  %11247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11234, ptr noundef @.str.2, i32 noundef %11235, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 907, ptr noundef %11238, ptr noundef %11241, ptr noundef %11244, i32 noundef %11246) #11
  br label %11265

11248:                                            ; preds = %11226, %11219
  %11249 = load i32, ptr %301, align 4, !tbaa !5
  %11250 = call ptr @__errno_location() #12
  store i32 %11249, ptr %11250, align 4, !tbaa !5
  %11251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11252 = load i32, ptr @test_count, align 4, !tbaa !5
  %11253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11254 = load i32, ptr %11253, align 4, !tbaa !5
  %11255 = call ptr @s2n_strerror(i32 noundef %11254, ptr noundef @.str.4)
  %11256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11257 = load i32, ptr %11256, align 4, !tbaa !5
  %11258 = call ptr @s2n_strerror_debug(i32 noundef %11257, ptr noundef @.str.4)
  %11259 = call ptr @__errno_location() #12
  %11260 = load i32, ptr %11259, align 4, !tbaa !5
  %11261 = call ptr @strerror(i32 noundef %11260) #11
  %11262 = call ptr @__errno_location() #12
  %11263 = load i32, ptr %11262, align 4, !tbaa !5
  %11264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11251, ptr noundef @.str.5, i32 noundef %11252, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 907, ptr noundef %11255, ptr noundef %11258, ptr noundef %11261, i32 noundef %11263) #11
  br label %11265

11265:                                            ; preds = %11248, %11231
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #11
  br label %11266

11266:                                            ; preds = %11265
  br label %11267

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

11268:                                            ; No predecessors!
  br label %11269

11269:                                            ; preds = %11268
  br label %11270

11270:                                            ; preds = %11269, %11211
  br label %11271

11271:                                            ; preds = %11270
  br label %11272

11272:                                            ; preds = %11271
  br label %11273

11273:                                            ; preds = %11272
  %11274 = load i32, ptr @test_count, align 4, !tbaa !5
  %11275 = add nsw i32 %11274, 1
  store i32 %11275, ptr @test_count, align 4, !tbaa !5
  %11276 = getelementptr inbounds %struct.s2n_blob, ptr %290, i32 0, i32 1
  %11277 = load i32, ptr %11276, align 8, !tbaa !53
  %11278 = load i32, ptr %295, align 4, !tbaa !5
  %11279 = icmp eq i32 %11277, %11278
  br i1 %11279, label %11333, label %11280

11280:                                            ; preds = %11273
  br label %11281

11281:                                            ; preds = %11280
  br label %11282

11282:                                            ; preds = %11281
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %11283 = call ptr @__errno_location() #12
  %11284 = load i32, ptr %11283, align 4, !tbaa !5
  store i32 %11284, ptr %302, align 4, !tbaa !5
  %11285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11286 = call i32 @s2n_print_stacktrace(ptr noundef %11285)
  %11287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11288 = trunc i8 %11287 to i1
  br i1 %11288, label %11289, label %11311

11289:                                            ; preds = %11282
  %11290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11291 = call i32 @fileno(ptr noundef %11290) #11
  %11292 = call i32 @isatty(i32 noundef %11291) #11
  %11293 = icmp ne i32 %11292, 0
  br i1 %11293, label %11294, label %11311

11294:                                            ; preds = %11289
  %11295 = load i32, ptr %302, align 4, !tbaa !5
  %11296 = call ptr @__errno_location() #12
  store i32 %11295, ptr %11296, align 4, !tbaa !5
  %11297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11298 = load i32, ptr @test_count, align 4, !tbaa !5
  %11299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11300 = load i32, ptr %11299, align 4, !tbaa !5
  %11301 = call ptr @s2n_strerror(i32 noundef %11300, ptr noundef @.str.4)
  %11302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11303 = load i32, ptr %11302, align 4, !tbaa !5
  %11304 = call ptr @s2n_strerror_debug(i32 noundef %11303, ptr noundef @.str.4)
  %11305 = call ptr @__errno_location() #12
  %11306 = load i32, ptr %11305, align 4, !tbaa !5
  %11307 = call ptr @strerror(i32 noundef %11306) #11
  %11308 = call ptr @__errno_location() #12
  %11309 = load i32, ptr %11308, align 4, !tbaa !5
  %11310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11297, ptr noundef @.str.2, i32 noundef %11298, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 908, ptr noundef %11301, ptr noundef %11304, ptr noundef %11307, i32 noundef %11309) #11
  br label %11328

11311:                                            ; preds = %11289, %11282
  %11312 = load i32, ptr %302, align 4, !tbaa !5
  %11313 = call ptr @__errno_location() #12
  store i32 %11312, ptr %11313, align 4, !tbaa !5
  %11314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11315 = load i32, ptr @test_count, align 4, !tbaa !5
  %11316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11317 = load i32, ptr %11316, align 4, !tbaa !5
  %11318 = call ptr @s2n_strerror(i32 noundef %11317, ptr noundef @.str.4)
  %11319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11320 = load i32, ptr %11319, align 4, !tbaa !5
  %11321 = call ptr @s2n_strerror_debug(i32 noundef %11320, ptr noundef @.str.4)
  %11322 = call ptr @__errno_location() #12
  %11323 = load i32, ptr %11322, align 4, !tbaa !5
  %11324 = call ptr @strerror(i32 noundef %11323) #11
  %11325 = call ptr @__errno_location() #12
  %11326 = load i32, ptr %11325, align 4, !tbaa !5
  %11327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11314, ptr noundef @.str.5, i32 noundef %11315, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 908, ptr noundef %11318, ptr noundef %11321, ptr noundef %11324, i32 noundef %11326) #11
  br label %11328

11328:                                            ; preds = %11311, %11294
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %11329

11329:                                            ; preds = %11328
  br label %11330

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

11331:                                            ; No predecessors!
  br label %11332

11332:                                            ; preds = %11331
  br label %11333

11333:                                            ; preds = %11332, %11273
  br label %11334

11334:                                            ; preds = %11333
  br label %11335

11335:                                            ; preds = %11334
  br label %11336

11336:                                            ; preds = %11335
  %11337 = load i32, ptr %295, align 4, !tbaa !5
  %11338 = icmp ne i32 %11337, 0
  br i1 %11338, label %11339, label %11406

11339:                                            ; preds = %11336
  br label %11340

11340:                                            ; preds = %11339
  %11341 = load i32, ptr @test_count, align 4, !tbaa !5
  %11342 = add nsw i32 %11341, 1
  store i32 %11342, ptr @test_count, align 4, !tbaa !5
  %11343 = getelementptr inbounds %struct.s2n_blob, ptr %290, i32 0, i32 0
  %11344 = load ptr, ptr %11343, align 8, !tbaa !54
  %11345 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %11346 = load i32, ptr %295, align 4, !tbaa !5
  %11347 = zext i32 %11346 to i64
  %11348 = call i32 @memcmp(ptr noundef %11344, ptr noundef %11345, i64 noundef %11347) #14
  %11349 = icmp eq i32 %11348, 0
  br i1 %11349, label %11403, label %11350

11350:                                            ; preds = %11340
  br label %11351

11351:                                            ; preds = %11350
  br label %11352

11352:                                            ; preds = %11351
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %11353 = call ptr @__errno_location() #12
  %11354 = load i32, ptr %11353, align 4, !tbaa !5
  store i32 %11354, ptr %303, align 4, !tbaa !5
  %11355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11356 = call i32 @s2n_print_stacktrace(ptr noundef %11355)
  %11357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11358 = trunc i8 %11357 to i1
  br i1 %11358, label %11359, label %11381

11359:                                            ; preds = %11352
  %11360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11361 = call i32 @fileno(ptr noundef %11360) #11
  %11362 = call i32 @isatty(i32 noundef %11361) #11
  %11363 = icmp ne i32 %11362, 0
  br i1 %11363, label %11364, label %11381

11364:                                            ; preds = %11359
  %11365 = load i32, ptr %303, align 4, !tbaa !5
  %11366 = call ptr @__errno_location() #12
  store i32 %11365, ptr %11366, align 4, !tbaa !5
  %11367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11368 = load i32, ptr @test_count, align 4, !tbaa !5
  %11369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11370 = load i32, ptr %11369, align 4, !tbaa !5
  %11371 = call ptr @s2n_strerror(i32 noundef %11370, ptr noundef @.str.4)
  %11372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11373 = load i32, ptr %11372, align 4, !tbaa !5
  %11374 = call ptr @s2n_strerror_debug(i32 noundef %11373, ptr noundef @.str.4)
  %11375 = call ptr @__errno_location() #12
  %11376 = load i32, ptr %11375, align 4, !tbaa !5
  %11377 = call ptr @strerror(i32 noundef %11376) #11
  %11378 = call ptr @__errno_location() #12
  %11379 = load i32, ptr %11378, align 4, !tbaa !5
  %11380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11367, ptr noundef @.str.2, i32 noundef %11368, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 909, ptr noundef %11371, ptr noundef %11374, ptr noundef %11377, i32 noundef %11379) #11
  br label %11398

11381:                                            ; preds = %11359, %11352
  %11382 = load i32, ptr %303, align 4, !tbaa !5
  %11383 = call ptr @__errno_location() #12
  store i32 %11382, ptr %11383, align 4, !tbaa !5
  %11384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11385 = load i32, ptr @test_count, align 4, !tbaa !5
  %11386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11387 = load i32, ptr %11386, align 4, !tbaa !5
  %11388 = call ptr @s2n_strerror(i32 noundef %11387, ptr noundef @.str.4)
  %11389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11390 = load i32, ptr %11389, align 4, !tbaa !5
  %11391 = call ptr @s2n_strerror_debug(i32 noundef %11390, ptr noundef @.str.4)
  %11392 = call ptr @__errno_location() #12
  %11393 = load i32, ptr %11392, align 4, !tbaa !5
  %11394 = call ptr @strerror(i32 noundef %11393) #11
  %11395 = call ptr @__errno_location() #12
  %11396 = load i32, ptr %11395, align 4, !tbaa !5
  %11397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11384, ptr noundef @.str.5, i32 noundef %11385, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 909, ptr noundef %11388, ptr noundef %11391, ptr noundef %11394, i32 noundef %11396) #11
  br label %11398

11398:                                            ; preds = %11381, %11364
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %11399

11399:                                            ; preds = %11398
  br label %11400

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

11401:                                            ; No predecessors!
  br label %11402

11402:                                            ; preds = %11401
  br label %11403

11403:                                            ; preds = %11402, %11340
  br label %11404

11404:                                            ; preds = %11403
  br label %11405

11405:                                            ; preds = %11404
  br label %11406

11406:                                            ; preds = %11405, %11336
  br label %11407

11407:                                            ; preds = %11406
  br label %11408

11408:                                            ; preds = %11407
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  %11409 = call i32 @s2n_client_hello_free(ptr noundef %292)
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #11
  store i32 0, ptr %215, align 4
  br label %11410

11410:                                            ; preds = %11408, %10880
  %11411 = call i32 @s2n_free(ptr noundef %290)
  call void @llvm.lifetime.end.p0(i64 24, ptr %290) #11
  call void @llvm.lifetime.end.p0(i64 124, ptr %289) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr %288) #11
  %11412 = load i32, ptr %215, align 4
  switch i32 %11412, label %11954 [
    i32 0, label %11413
  ]

11413:                                            ; preds = %11410
  call void @llvm.lifetime.start.p0(i64 512, ptr %304) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %304, ptr align 16 @__const.main.raw_client_hello.92, i64 512, i1 false)
  call void @llvm.lifetime.start.p0(i64 442, ptr %305) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %305, ptr align 16 @__const.main.expected_ja3.93, i64 442, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %306) #11
  call void @llvm.memset.p0.i64(ptr align 8 %306, i8 0, i64 24, i1 false)
  br label %11414

11414:                                            ; preds = %11413
  %11415 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %306, ptr noundef @.str.94)
  %11416 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  store i32 %11415, ptr %11416, align 4
  %11417 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  %11418 = load i32, ptr %11417, align 4
  %11419 = call zeroext i1 @s2n_result_is_ok(i32 %11418)
  br i1 %11419, label %11421, label %11420

11420:                                            ; preds = %11414
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %215, align 4
  br label %11950

11421:                                            ; preds = %11414
  br label %11422

11422:                                            ; preds = %11421
  br label %11423

11423:                                            ; preds = %11422
  call void @llvm.lifetime.start.p0(i64 8, ptr %308) #11
  store ptr null, ptr %308, align 8, !tbaa !9
  br label %11424

11424:                                            ; preds = %11423
  %11425 = load i32, ptr @test_count, align 4, !tbaa !5
  %11426 = add nsw i32 %11425, 1
  store i32 %11426, ptr @test_count, align 4, !tbaa !5
  %11427 = load ptr, ptr %217, align 8, !tbaa !9
  %11428 = getelementptr inbounds [512 x i8], ptr %304, i64 0, i64 0
  %11429 = load i32, ptr %216, align 4, !tbaa !5
  %11430 = call i32 @s2n_client_hello_from_source(ptr noundef %308, ptr noundef %11427, ptr noundef %11428, i32 noundef 512, i32 noundef %11429)
  %11431 = getelementptr inbounds %struct.s2n_result, ptr %309, i32 0, i32 0
  store i32 %11430, ptr %11431, align 4
  %11432 = getelementptr inbounds %struct.s2n_result, ptr %309, i32 0, i32 0
  %11433 = load i32, ptr %11432, align 4
  %11434 = call zeroext i1 @s2n_result_is_ok(i32 %11433)
  br i1 %11434, label %11488, label %11435

11435:                                            ; preds = %11424
  br label %11436

11436:                                            ; preds = %11435
  br label %11437

11437:                                            ; preds = %11436
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #11
  %11438 = call ptr @__errno_location() #12
  %11439 = load i32, ptr %11438, align 4, !tbaa !5
  store i32 %11439, ptr %310, align 4, !tbaa !5
  %11440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11441 = call i32 @s2n_print_stacktrace(ptr noundef %11440)
  %11442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11443 = trunc i8 %11442 to i1
  br i1 %11443, label %11444, label %11466

11444:                                            ; preds = %11437
  %11445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11446 = call i32 @fileno(ptr noundef %11445) #11
  %11447 = call i32 @isatty(i32 noundef %11446) #11
  %11448 = icmp ne i32 %11447, 0
  br i1 %11448, label %11449, label %11466

11449:                                            ; preds = %11444
  %11450 = load i32, ptr %310, align 4, !tbaa !5
  %11451 = call ptr @__errno_location() #12
  store i32 %11450, ptr %11451, align 4, !tbaa !5
  %11452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11453 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %11455, ptr noundef @.str.4)
  %11457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11458 = load i32, ptr %11457, align 4, !tbaa !5
  %11459 = call ptr @s2n_strerror_debug(i32 noundef %11458, ptr noundef @.str.4)
  %11460 = call ptr @__errno_location() #12
  %11461 = load i32, ptr %11460, align 4, !tbaa !5
  %11462 = call ptr @strerror(i32 noundef %11461) #11
  %11463 = call ptr @__errno_location() #12
  %11464 = load i32, ptr %11463, align 4, !tbaa !5
  %11465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11452, ptr noundef @.str.2, i32 noundef %11453, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 983, ptr noundef %11456, ptr noundef %11459, ptr noundef %11462, i32 noundef %11464) #11
  br label %11483

11466:                                            ; preds = %11444, %11437
  %11467 = load i32, ptr %310, align 4, !tbaa !5
  %11468 = call ptr @__errno_location() #12
  store i32 %11467, ptr %11468, align 4, !tbaa !5
  %11469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11470 = load i32, ptr @test_count, align 4, !tbaa !5
  %11471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11472 = load i32, ptr %11471, align 4, !tbaa !5
  %11473 = call ptr @s2n_strerror(i32 noundef %11472, ptr noundef @.str.4)
  %11474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11475 = load i32, ptr %11474, align 4, !tbaa !5
  %11476 = call ptr @s2n_strerror_debug(i32 noundef %11475, ptr noundef @.str.4)
  %11477 = call ptr @__errno_location() #12
  %11478 = load i32, ptr %11477, align 4, !tbaa !5
  %11479 = call ptr @strerror(i32 noundef %11478) #11
  %11480 = call ptr @__errno_location() #12
  %11481 = load i32, ptr %11480, align 4, !tbaa !5
  %11482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11469, ptr noundef @.str.5, i32 noundef %11470, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 983, ptr noundef %11473, ptr noundef %11476, ptr noundef %11479, i32 noundef %11481) #11
  br label %11483

11483:                                            ; preds = %11466, %11449
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #11
  br label %11484

11484:                                            ; preds = %11483
  br label %11485

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

11486:                                            ; No predecessors!
  br label %11487

11487:                                            ; preds = %11486
  br label %11488

11488:                                            ; preds = %11487, %11424
  br label %11489

11489:                                            ; preds = %11488
  br label %11490

11490:                                            ; preds = %11489
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  store i32 0, ptr %311, align 4, !tbaa !5
  br label %11491

11491:                                            ; preds = %11490
  %11492 = load i32, ptr @test_count, align 4, !tbaa !5
  %11493 = add nsw i32 %11492, 1
  store i32 %11493, ptr @test_count, align 4, !tbaa !5
  %11494 = load ptr, ptr %308, align 8, !tbaa !9
  %11495 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %11496 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %11494, i32 noundef 0, i32 noundef 500, ptr noundef %11495, ptr noundef %311)
  %11497 = icmp eq i32 %11496, -1
  br i1 %11497, label %11498, label %11551

11498:                                            ; preds = %11491
  br label %11499

11499:                                            ; preds = %11498
  br label %11500

11500:                                            ; preds = %11499
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %11501 = call ptr @__errno_location() #12
  %11502 = load i32, ptr %11501, align 4, !tbaa !5
  store i32 %11502, ptr %312, align 4, !tbaa !5
  %11503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11504 = call i32 @s2n_print_stacktrace(ptr noundef %11503)
  %11505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11506 = trunc i8 %11505 to i1
  br i1 %11506, label %11507, label %11529

11507:                                            ; preds = %11500
  %11508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11509 = call i32 @fileno(ptr noundef %11508) #11
  %11510 = call i32 @isatty(i32 noundef %11509) #11
  %11511 = icmp ne i32 %11510, 0
  br i1 %11511, label %11512, label %11529

11512:                                            ; preds = %11507
  %11513 = load i32, ptr %312, align 4, !tbaa !5
  %11514 = call ptr @__errno_location() #12
  store i32 %11513, ptr %11514, align 4, !tbaa !5
  %11515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11516 = load i32, ptr @test_count, align 4, !tbaa !5
  %11517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11518 = load i32, ptr %11517, align 4, !tbaa !5
  %11519 = call ptr @s2n_strerror(i32 noundef %11518, ptr noundef @.str.4)
  %11520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11521 = load i32, ptr %11520, align 4, !tbaa !5
  %11522 = call ptr @s2n_strerror_debug(i32 noundef %11521, ptr noundef @.str.4)
  %11523 = call ptr @__errno_location() #12
  %11524 = load i32, ptr %11523, align 4, !tbaa !5
  %11525 = call ptr @strerror(i32 noundef %11524) #11
  %11526 = call ptr @__errno_location() #12
  %11527 = load i32, ptr %11526, align 4, !tbaa !5
  %11528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11515, ptr noundef @.str.2, i32 noundef %11516, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 987, ptr noundef %11519, ptr noundef %11522, ptr noundef %11525, i32 noundef %11527) #11
  br label %11546

11529:                                            ; preds = %11507, %11500
  %11530 = load i32, ptr %312, align 4, !tbaa !5
  %11531 = call ptr @__errno_location() #12
  store i32 %11530, ptr %11531, align 4, !tbaa !5
  %11532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11533 = load i32, ptr @test_count, align 4, !tbaa !5
  %11534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11535 = load i32, ptr %11534, align 4, !tbaa !5
  %11536 = call ptr @s2n_strerror(i32 noundef %11535, ptr noundef @.str.4)
  %11537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11538 = load i32, ptr %11537, align 4, !tbaa !5
  %11539 = call ptr @s2n_strerror_debug(i32 noundef %11538, ptr noundef @.str.4)
  %11540 = call ptr @__errno_location() #12
  %11541 = load i32, ptr %11540, align 4, !tbaa !5
  %11542 = call ptr @strerror(i32 noundef %11541) #11
  %11543 = call ptr @__errno_location() #12
  %11544 = load i32, ptr %11543, align 4, !tbaa !5
  %11545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11532, ptr noundef @.str.5, i32 noundef %11533, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 987, ptr noundef %11536, ptr noundef %11539, ptr noundef %11542, i32 noundef %11544) #11
  br label %11546

11546:                                            ; preds = %11529, %11512
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %11547

11547:                                            ; preds = %11546
  br label %11548

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

11549:                                            ; No predecessors!
  br label %11550

11550:                                            ; preds = %11549
  br label %11551

11551:                                            ; preds = %11550, %11491
  br label %11552

11552:                                            ; preds = %11551
  br label %11553

11553:                                            ; preds = %11552
  br label %11554

11554:                                            ; preds = %11553
  %11555 = load i32, ptr @test_count, align 4, !tbaa !5
  %11556 = add nsw i32 %11555, 1
  store i32 %11556, ptr @test_count, align 4, !tbaa !5
  %11557 = load i32, ptr %311, align 4, !tbaa !5
  %11558 = zext i32 %11557 to i64
  %11559 = icmp eq i64 441, %11558
  br i1 %11559, label %11613, label %11560

11560:                                            ; preds = %11554
  br label %11561

11561:                                            ; preds = %11560
  br label %11562

11562:                                            ; preds = %11561
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #11
  %11563 = call ptr @__errno_location() #12
  %11564 = load i32, ptr %11563, align 4, !tbaa !5
  store i32 %11564, ptr %313, align 4, !tbaa !5
  %11565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11566 = call i32 @s2n_print_stacktrace(ptr noundef %11565)
  %11567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11568 = trunc i8 %11567 to i1
  br i1 %11568, label %11569, label %11591

11569:                                            ; preds = %11562
  %11570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11571 = call i32 @fileno(ptr noundef %11570) #11
  %11572 = call i32 @isatty(i32 noundef %11571) #11
  %11573 = icmp ne i32 %11572, 0
  br i1 %11573, label %11574, label %11591

11574:                                            ; preds = %11569
  %11575 = load i32, ptr %313, align 4, !tbaa !5
  %11576 = call ptr @__errno_location() #12
  store i32 %11575, ptr %11576, align 4, !tbaa !5
  %11577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11578 = load i32, ptr @test_count, align 4, !tbaa !5
  %11579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11580 = load i32, ptr %11579, align 4, !tbaa !5
  %11581 = call ptr @s2n_strerror(i32 noundef %11580, ptr noundef @.str.4)
  %11582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11583 = load i32, ptr %11582, align 4, !tbaa !5
  %11584 = call ptr @s2n_strerror_debug(i32 noundef %11583, ptr noundef @.str.4)
  %11585 = call ptr @__errno_location() #12
  %11586 = load i32, ptr %11585, align 4, !tbaa !5
  %11587 = call ptr @strerror(i32 noundef %11586) #11
  %11588 = call ptr @__errno_location() #12
  %11589 = load i32, ptr %11588, align 4, !tbaa !5
  %11590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11577, ptr noundef @.str.2, i32 noundef %11578, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 988, ptr noundef %11581, ptr noundef %11584, ptr noundef %11587, i32 noundef %11589) #11
  br label %11608

11591:                                            ; preds = %11569, %11562
  %11592 = load i32, ptr %313, align 4, !tbaa !5
  %11593 = call ptr @__errno_location() #12
  store i32 %11592, ptr %11593, align 4, !tbaa !5
  %11594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11595 = load i32, ptr @test_count, align 4, !tbaa !5
  %11596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11597 = load i32, ptr %11596, align 4, !tbaa !5
  %11598 = call ptr @s2n_strerror(i32 noundef %11597, ptr noundef @.str.4)
  %11599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11600 = load i32, ptr %11599, align 4, !tbaa !5
  %11601 = call ptr @s2n_strerror_debug(i32 noundef %11600, ptr noundef @.str.4)
  %11602 = call ptr @__errno_location() #12
  %11603 = load i32, ptr %11602, align 4, !tbaa !5
  %11604 = call ptr @strerror(i32 noundef %11603) #11
  %11605 = call ptr @__errno_location() #12
  %11606 = load i32, ptr %11605, align 4, !tbaa !5
  %11607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11594, ptr noundef @.str.5, i32 noundef %11595, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 988, ptr noundef %11598, ptr noundef %11601, ptr noundef %11604, i32 noundef %11606) #11
  br label %11608

11608:                                            ; preds = %11591, %11574
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #11
  br label %11609

11609:                                            ; preds = %11608
  br label %11610

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

11611:                                            ; No predecessors!
  br label %11612

11612:                                            ; preds = %11611
  br label %11613

11613:                                            ; preds = %11612, %11554
  br label %11614

11614:                                            ; preds = %11613
  br label %11615

11615:                                            ; preds = %11614
  br label %11616

11616:                                            ; preds = %11615
  %11617 = load i32, ptr %311, align 4, !tbaa !5
  %11618 = icmp ne i32 %11617, 0
  br i1 %11618, label %11619, label %11685

11619:                                            ; preds = %11616
  br label %11620

11620:                                            ; preds = %11619
  %11621 = load i32, ptr @test_count, align 4, !tbaa !5
  %11622 = add nsw i32 %11621, 1
  store i32 %11622, ptr @test_count, align 4, !tbaa !5
  %11623 = getelementptr inbounds [442 x i8], ptr %305, i64 0, i64 0
  %11624 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %11625 = load i32, ptr %311, align 4, !tbaa !5
  %11626 = zext i32 %11625 to i64
  %11627 = call i32 @memcmp(ptr noundef %11623, ptr noundef %11624, i64 noundef %11626) #14
  %11628 = icmp eq i32 %11627, 0
  br i1 %11628, label %11682, label %11629

11629:                                            ; preds = %11620
  br label %11630

11630:                                            ; preds = %11629
  br label %11631

11631:                                            ; preds = %11630
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %11632 = call ptr @__errno_location() #12
  %11633 = load i32, ptr %11632, align 4, !tbaa !5
  store i32 %11633, ptr %314, align 4, !tbaa !5
  %11634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11635 = call i32 @s2n_print_stacktrace(ptr noundef %11634)
  %11636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11637 = trunc i8 %11636 to i1
  br i1 %11637, label %11638, label %11660

11638:                                            ; preds = %11631
  %11639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11640 = call i32 @fileno(ptr noundef %11639) #11
  %11641 = call i32 @isatty(i32 noundef %11640) #11
  %11642 = icmp ne i32 %11641, 0
  br i1 %11642, label %11643, label %11660

11643:                                            ; preds = %11638
  %11644 = load i32, ptr %314, align 4, !tbaa !5
  %11645 = call ptr @__errno_location() #12
  store i32 %11644, ptr %11645, align 4, !tbaa !5
  %11646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11647 = load i32, ptr @test_count, align 4, !tbaa !5
  %11648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11649 = load i32, ptr %11648, align 4, !tbaa !5
  %11650 = call ptr @s2n_strerror(i32 noundef %11649, ptr noundef @.str.4)
  %11651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11652 = load i32, ptr %11651, align 4, !tbaa !5
  %11653 = call ptr @s2n_strerror_debug(i32 noundef %11652, ptr noundef @.str.4)
  %11654 = call ptr @__errno_location() #12
  %11655 = load i32, ptr %11654, align 4, !tbaa !5
  %11656 = call ptr @strerror(i32 noundef %11655) #11
  %11657 = call ptr @__errno_location() #12
  %11658 = load i32, ptr %11657, align 4, !tbaa !5
  %11659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11646, ptr noundef @.str.2, i32 noundef %11647, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 989, ptr noundef %11650, ptr noundef %11653, ptr noundef %11656, i32 noundef %11658) #11
  br label %11677

11660:                                            ; preds = %11638, %11631
  %11661 = load i32, ptr %314, align 4, !tbaa !5
  %11662 = call ptr @__errno_location() #12
  store i32 %11661, ptr %11662, align 4, !tbaa !5
  %11663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11664 = load i32, ptr @test_count, align 4, !tbaa !5
  %11665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11666 = load i32, ptr %11665, align 4, !tbaa !5
  %11667 = call ptr @s2n_strerror(i32 noundef %11666, ptr noundef @.str.4)
  %11668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11669 = load i32, ptr %11668, align 4, !tbaa !5
  %11670 = call ptr @s2n_strerror_debug(i32 noundef %11669, ptr noundef @.str.4)
  %11671 = call ptr @__errno_location() #12
  %11672 = load i32, ptr %11671, align 4, !tbaa !5
  %11673 = call ptr @strerror(i32 noundef %11672) #11
  %11674 = call ptr @__errno_location() #12
  %11675 = load i32, ptr %11674, align 4, !tbaa !5
  %11676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11663, ptr noundef @.str.5, i32 noundef %11664, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 989, ptr noundef %11667, ptr noundef %11670, ptr noundef %11673, i32 noundef %11675) #11
  br label %11677

11677:                                            ; preds = %11660, %11643
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %11678

11678:                                            ; preds = %11677
  br label %11679

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

11680:                                            ; No predecessors!
  br label %11681

11681:                                            ; preds = %11680
  br label %11682

11682:                                            ; preds = %11681, %11620
  br label %11683

11683:                                            ; preds = %11682
  br label %11684

11684:                                            ; preds = %11683
  br label %11685

11685:                                            ; preds = %11684, %11616
  br label %11686

11686:                                            ; preds = %11685
  br label %11687

11687:                                            ; preds = %11686
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  store i32 0, ptr %315, align 4, !tbaa !5
  br label %11688

11688:                                            ; preds = %11687
  %11689 = load i32, ptr @test_count, align 4, !tbaa !5
  %11690 = add nsw i32 %11689, 1
  store i32 %11690, ptr @test_count, align 4, !tbaa !5
  %11691 = load ptr, ptr %308, align 8, !tbaa !9
  %11692 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %11693 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %11691, i32 noundef 0, i32 noundef 500, ptr noundef %11692, ptr noundef %311, ptr noundef %315)
  %11694 = icmp eq i32 %11693, -1
  br i1 %11694, label %11695, label %11748

11695:                                            ; preds = %11688
  br label %11696

11696:                                            ; preds = %11695
  br label %11697

11697:                                            ; preds = %11696
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #11
  %11698 = call ptr @__errno_location() #12
  %11699 = load i32, ptr %11698, align 4, !tbaa !5
  store i32 %11699, ptr %316, align 4, !tbaa !5
  %11700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11701 = call i32 @s2n_print_stacktrace(ptr noundef %11700)
  %11702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11703 = trunc i8 %11702 to i1
  br i1 %11703, label %11704, label %11726

11704:                                            ; preds = %11697
  %11705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11706 = call i32 @fileno(ptr noundef %11705) #11
  %11707 = call i32 @isatty(i32 noundef %11706) #11
  %11708 = icmp ne i32 %11707, 0
  br i1 %11708, label %11709, label %11726

11709:                                            ; preds = %11704
  %11710 = load i32, ptr %316, align 4, !tbaa !5
  %11711 = call ptr @__errno_location() #12
  store i32 %11710, ptr %11711, align 4, !tbaa !5
  %11712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11713 = load i32, ptr @test_count, align 4, !tbaa !5
  %11714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11715 = load i32, ptr %11714, align 4, !tbaa !5
  %11716 = call ptr @s2n_strerror(i32 noundef %11715, ptr noundef @.str.4)
  %11717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11718 = load i32, ptr %11717, align 4, !tbaa !5
  %11719 = call ptr @s2n_strerror_debug(i32 noundef %11718, ptr noundef @.str.4)
  %11720 = call ptr @__errno_location() #12
  %11721 = load i32, ptr %11720, align 4, !tbaa !5
  %11722 = call ptr @strerror(i32 noundef %11721) #11
  %11723 = call ptr @__errno_location() #12
  %11724 = load i32, ptr %11723, align 4, !tbaa !5
  %11725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11712, ptr noundef @.str.2, i32 noundef %11713, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 994, ptr noundef %11716, ptr noundef %11719, ptr noundef %11722, i32 noundef %11724) #11
  br label %11743

11726:                                            ; preds = %11704, %11697
  %11727 = load i32, ptr %316, align 4, !tbaa !5
  %11728 = call ptr @__errno_location() #12
  store i32 %11727, ptr %11728, align 4, !tbaa !5
  %11729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11730 = load i32, ptr @test_count, align 4, !tbaa !5
  %11731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11732 = load i32, ptr %11731, align 4, !tbaa !5
  %11733 = call ptr @s2n_strerror(i32 noundef %11732, ptr noundef @.str.4)
  %11734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11735 = load i32, ptr %11734, align 4, !tbaa !5
  %11736 = call ptr @s2n_strerror_debug(i32 noundef %11735, ptr noundef @.str.4)
  %11737 = call ptr @__errno_location() #12
  %11738 = load i32, ptr %11737, align 4, !tbaa !5
  %11739 = call ptr @strerror(i32 noundef %11738) #11
  %11740 = call ptr @__errno_location() #12
  %11741 = load i32, ptr %11740, align 4, !tbaa !5
  %11742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11729, ptr noundef @.str.5, i32 noundef %11730, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 994, ptr noundef %11733, ptr noundef %11736, ptr noundef %11739, i32 noundef %11741) #11
  br label %11743

11743:                                            ; preds = %11726, %11709
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #11
  br label %11744

11744:                                            ; preds = %11743
  br label %11745

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

11746:                                            ; No predecessors!
  br label %11747

11747:                                            ; preds = %11746
  br label %11748

11748:                                            ; preds = %11747, %11688
  br label %11749

11749:                                            ; preds = %11748
  br label %11750

11750:                                            ; preds = %11749
  br label %11751

11751:                                            ; preds = %11750
  %11752 = load i32, ptr @test_count, align 4, !tbaa !5
  %11753 = add nsw i32 %11752, 1
  store i32 %11753, ptr @test_count, align 4, !tbaa !5
  %11754 = load i32, ptr %315, align 4, !tbaa !5
  %11755 = zext i32 %11754 to i64
  %11756 = icmp eq i64 441, %11755
  br i1 %11756, label %11810, label %11757

11757:                                            ; preds = %11751
  br label %11758

11758:                                            ; preds = %11757
  br label %11759

11759:                                            ; preds = %11758
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #11
  %11760 = call ptr @__errno_location() #12
  %11761 = load i32, ptr %11760, align 4, !tbaa !5
  store i32 %11761, ptr %317, align 4, !tbaa !5
  %11762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11763 = call i32 @s2n_print_stacktrace(ptr noundef %11762)
  %11764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11765 = trunc i8 %11764 to i1
  br i1 %11765, label %11766, label %11788

11766:                                            ; preds = %11759
  %11767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11768 = call i32 @fileno(ptr noundef %11767) #11
  %11769 = call i32 @isatty(i32 noundef %11768) #11
  %11770 = icmp ne i32 %11769, 0
  br i1 %11770, label %11771, label %11788

11771:                                            ; preds = %11766
  %11772 = load i32, ptr %317, align 4, !tbaa !5
  %11773 = call ptr @__errno_location() #12
  store i32 %11772, ptr %11773, align 4, !tbaa !5
  %11774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11775 = load i32, ptr @test_count, align 4, !tbaa !5
  %11776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11777 = load i32, ptr %11776, align 4, !tbaa !5
  %11778 = call ptr @s2n_strerror(i32 noundef %11777, ptr noundef @.str.4)
  %11779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11780 = load i32, ptr %11779, align 4, !tbaa !5
  %11781 = call ptr @s2n_strerror_debug(i32 noundef %11780, ptr noundef @.str.4)
  %11782 = call ptr @__errno_location() #12
  %11783 = load i32, ptr %11782, align 4, !tbaa !5
  %11784 = call ptr @strerror(i32 noundef %11783) #11
  %11785 = call ptr @__errno_location() #12
  %11786 = load i32, ptr %11785, align 4, !tbaa !5
  %11787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11774, ptr noundef @.str.2, i32 noundef %11775, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 995, ptr noundef %11778, ptr noundef %11781, ptr noundef %11784, i32 noundef %11786) #11
  br label %11805

11788:                                            ; preds = %11766, %11759
  %11789 = load i32, ptr %317, align 4, !tbaa !5
  %11790 = call ptr @__errno_location() #12
  store i32 %11789, ptr %11790, align 4, !tbaa !5
  %11791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11792 = load i32, ptr @test_count, align 4, !tbaa !5
  %11793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11794 = load i32, ptr %11793, align 4, !tbaa !5
  %11795 = call ptr @s2n_strerror(i32 noundef %11794, ptr noundef @.str.4)
  %11796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11797 = load i32, ptr %11796, align 4, !tbaa !5
  %11798 = call ptr @s2n_strerror_debug(i32 noundef %11797, ptr noundef @.str.4)
  %11799 = call ptr @__errno_location() #12
  %11800 = load i32, ptr %11799, align 4, !tbaa !5
  %11801 = call ptr @strerror(i32 noundef %11800) #11
  %11802 = call ptr @__errno_location() #12
  %11803 = load i32, ptr %11802, align 4, !tbaa !5
  %11804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11791, ptr noundef @.str.5, i32 noundef %11792, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 995, ptr noundef %11795, ptr noundef %11798, ptr noundef %11801, i32 noundef %11803) #11
  br label %11805

11805:                                            ; preds = %11788, %11771
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #11
  br label %11806

11806:                                            ; preds = %11805
  br label %11807

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

11808:                                            ; No predecessors!
  br label %11809

11809:                                            ; preds = %11808
  br label %11810

11810:                                            ; preds = %11809, %11751
  br label %11811

11811:                                            ; preds = %11810
  br label %11812

11812:                                            ; preds = %11811
  br label %11813

11813:                                            ; preds = %11812
  %11814 = load i32, ptr @test_count, align 4, !tbaa !5
  %11815 = add nsw i32 %11814, 1
  store i32 %11815, ptr @test_count, align 4, !tbaa !5
  %11816 = getelementptr inbounds %struct.s2n_blob, ptr %306, i32 0, i32 1
  %11817 = load i32, ptr %11816, align 8, !tbaa !53
  %11818 = load i32, ptr %311, align 4, !tbaa !5
  %11819 = icmp eq i32 %11817, %11818
  br i1 %11819, label %11873, label %11820

11820:                                            ; preds = %11813
  br label %11821

11821:                                            ; preds = %11820
  br label %11822

11822:                                            ; preds = %11821
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %11823 = call ptr @__errno_location() #12
  %11824 = load i32, ptr %11823, align 4, !tbaa !5
  store i32 %11824, ptr %318, align 4, !tbaa !5
  %11825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11826 = call i32 @s2n_print_stacktrace(ptr noundef %11825)
  %11827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11828 = trunc i8 %11827 to i1
  br i1 %11828, label %11829, label %11851

11829:                                            ; preds = %11822
  %11830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11831 = call i32 @fileno(ptr noundef %11830) #11
  %11832 = call i32 @isatty(i32 noundef %11831) #11
  %11833 = icmp ne i32 %11832, 0
  br i1 %11833, label %11834, label %11851

11834:                                            ; preds = %11829
  %11835 = load i32, ptr %318, align 4, !tbaa !5
  %11836 = call ptr @__errno_location() #12
  store i32 %11835, ptr %11836, align 4, !tbaa !5
  %11837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11838 = load i32, ptr @test_count, align 4, !tbaa !5
  %11839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11840 = load i32, ptr %11839, align 4, !tbaa !5
  %11841 = call ptr @s2n_strerror(i32 noundef %11840, ptr noundef @.str.4)
  %11842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11843 = load i32, ptr %11842, align 4, !tbaa !5
  %11844 = call ptr @s2n_strerror_debug(i32 noundef %11843, ptr noundef @.str.4)
  %11845 = call ptr @__errno_location() #12
  %11846 = load i32, ptr %11845, align 4, !tbaa !5
  %11847 = call ptr @strerror(i32 noundef %11846) #11
  %11848 = call ptr @__errno_location() #12
  %11849 = load i32, ptr %11848, align 4, !tbaa !5
  %11850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11837, ptr noundef @.str.2, i32 noundef %11838, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 996, ptr noundef %11841, ptr noundef %11844, ptr noundef %11847, i32 noundef %11849) #11
  br label %11868

11851:                                            ; preds = %11829, %11822
  %11852 = load i32, ptr %318, align 4, !tbaa !5
  %11853 = call ptr @__errno_location() #12
  store i32 %11852, ptr %11853, align 4, !tbaa !5
  %11854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11855 = load i32, ptr @test_count, align 4, !tbaa !5
  %11856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11857 = load i32, ptr %11856, align 4, !tbaa !5
  %11858 = call ptr @s2n_strerror(i32 noundef %11857, ptr noundef @.str.4)
  %11859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11860 = load i32, ptr %11859, align 4, !tbaa !5
  %11861 = call ptr @s2n_strerror_debug(i32 noundef %11860, ptr noundef @.str.4)
  %11862 = call ptr @__errno_location() #12
  %11863 = load i32, ptr %11862, align 4, !tbaa !5
  %11864 = call ptr @strerror(i32 noundef %11863) #11
  %11865 = call ptr @__errno_location() #12
  %11866 = load i32, ptr %11865, align 4, !tbaa !5
  %11867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11854, ptr noundef @.str.5, i32 noundef %11855, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 996, ptr noundef %11858, ptr noundef %11861, ptr noundef %11864, i32 noundef %11866) #11
  br label %11868

11868:                                            ; preds = %11851, %11834
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %11869

11869:                                            ; preds = %11868
  br label %11870

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

11871:                                            ; No predecessors!
  br label %11872

11872:                                            ; preds = %11871
  br label %11873

11873:                                            ; preds = %11872, %11813
  br label %11874

11874:                                            ; preds = %11873
  br label %11875

11875:                                            ; preds = %11874
  br label %11876

11876:                                            ; preds = %11875
  %11877 = load i32, ptr %311, align 4, !tbaa !5
  %11878 = icmp ne i32 %11877, 0
  br i1 %11878, label %11879, label %11946

11879:                                            ; preds = %11876
  br label %11880

11880:                                            ; preds = %11879
  %11881 = load i32, ptr @test_count, align 4, !tbaa !5
  %11882 = add nsw i32 %11881, 1
  store i32 %11882, ptr @test_count, align 4, !tbaa !5
  %11883 = getelementptr inbounds %struct.s2n_blob, ptr %306, i32 0, i32 0
  %11884 = load ptr, ptr %11883, align 8, !tbaa !54
  %11885 = getelementptr inbounds [500 x i8], ptr %9, i64 0, i64 0
  %11886 = load i32, ptr %311, align 4, !tbaa !5
  %11887 = zext i32 %11886 to i64
  %11888 = call i32 @memcmp(ptr noundef %11884, ptr noundef %11885, i64 noundef %11887) #14
  %11889 = icmp eq i32 %11888, 0
  br i1 %11889, label %11943, label %11890

11890:                                            ; preds = %11880
  br label %11891

11891:                                            ; preds = %11890
  br label %11892

11892:                                            ; preds = %11891
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %11893 = call ptr @__errno_location() #12
  %11894 = load i32, ptr %11893, align 4, !tbaa !5
  store i32 %11894, ptr %319, align 4, !tbaa !5
  %11895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11896 = call i32 @s2n_print_stacktrace(ptr noundef %11895)
  %11897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11898 = trunc i8 %11897 to i1
  br i1 %11898, label %11899, label %11921

11899:                                            ; preds = %11892
  %11900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11901 = call i32 @fileno(ptr noundef %11900) #11
  %11902 = call i32 @isatty(i32 noundef %11901) #11
  %11903 = icmp ne i32 %11902, 0
  br i1 %11903, label %11904, label %11921

11904:                                            ; preds = %11899
  %11905 = load i32, ptr %319, align 4, !tbaa !5
  %11906 = call ptr @__errno_location() #12
  store i32 %11905, ptr %11906, align 4, !tbaa !5
  %11907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11908 = load i32, ptr @test_count, align 4, !tbaa !5
  %11909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11910 = load i32, ptr %11909, align 4, !tbaa !5
  %11911 = call ptr @s2n_strerror(i32 noundef %11910, ptr noundef @.str.4)
  %11912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11913 = load i32, ptr %11912, align 4, !tbaa !5
  %11914 = call ptr @s2n_strerror_debug(i32 noundef %11913, ptr noundef @.str.4)
  %11915 = call ptr @__errno_location() #12
  %11916 = load i32, ptr %11915, align 4, !tbaa !5
  %11917 = call ptr @strerror(i32 noundef %11916) #11
  %11918 = call ptr @__errno_location() #12
  %11919 = load i32, ptr %11918, align 4, !tbaa !5
  %11920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11907, ptr noundef @.str.2, i32 noundef %11908, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 997, ptr noundef %11911, ptr noundef %11914, ptr noundef %11917, i32 noundef %11919) #11
  br label %11938

11921:                                            ; preds = %11899, %11892
  %11922 = load i32, ptr %319, align 4, !tbaa !5
  %11923 = call ptr @__errno_location() #12
  store i32 %11922, ptr %11923, align 4, !tbaa !5
  %11924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11925 = load i32, ptr @test_count, align 4, !tbaa !5
  %11926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11927 = load i32, ptr %11926, align 4, !tbaa !5
  %11928 = call ptr @s2n_strerror(i32 noundef %11927, ptr noundef @.str.4)
  %11929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11930 = load i32, ptr %11929, align 4, !tbaa !5
  %11931 = call ptr @s2n_strerror_debug(i32 noundef %11930, ptr noundef @.str.4)
  %11932 = call ptr @__errno_location() #12
  %11933 = load i32, ptr %11932, align 4, !tbaa !5
  %11934 = call ptr @strerror(i32 noundef %11933) #11
  %11935 = call ptr @__errno_location() #12
  %11936 = load i32, ptr %11935, align 4, !tbaa !5
  %11937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11924, ptr noundef @.str.5, i32 noundef %11925, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 997, ptr noundef %11928, ptr noundef %11931, ptr noundef %11934, i32 noundef %11936) #11
  br label %11938

11938:                                            ; preds = %11921, %11904
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %11939

11939:                                            ; preds = %11938
  br label %11940

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

11941:                                            ; No predecessors!
  br label %11942

11942:                                            ; preds = %11941
  br label %11943

11943:                                            ; preds = %11942, %11880
  br label %11944

11944:                                            ; preds = %11943
  br label %11945

11945:                                            ; preds = %11944
  br label %11946

11946:                                            ; preds = %11945, %11876
  br label %11947

11947:                                            ; preds = %11946
  br label %11948

11948:                                            ; preds = %11947
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  %11949 = call i32 @s2n_client_hello_free(ptr noundef %308)
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #11
  store i32 0, ptr %215, align 4
  br label %11950

11950:                                            ; preds = %11948, %11420
  %11951 = call i32 @s2n_free(ptr noundef %306)
  call void @llvm.lifetime.end.p0(i64 24, ptr %306) #11
  call void @llvm.lifetime.end.p0(i64 442, ptr %305) #11
  call void @llvm.lifetime.end.p0(i64 512, ptr %304) #11
  %11952 = load i32, ptr %215, align 4
  switch i32 %11952, label %11954 [
    i32 0, label %11953
  ]

11953:                                            ; preds = %11950
  store i32 0, ptr %215, align 4
  br label %11954

11954:                                            ; preds = %11953, %11950, %11410, %10870, %10330
  %11955 = call i32 @s2n_connection_ptr_free(ptr noundef %217)
  %11956 = getelementptr inbounds %struct.s2n_result, ptr %320, i32 0, i32 0
  store i32 %11955, ptr %11956, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  %11957 = load i32, ptr %215, align 4
  switch i32 %11957, label %11962 [
    i32 0, label %11958
  ]

11958:                                            ; preds = %11954
  br label %11959

11959:                                            ; preds = %11958
  %11960 = load i64, ptr %214, align 8, !tbaa !45
  %11961 = add i64 %11960, 1
  store i64 %11961, ptr %214, align 8, !tbaa !45
  br label %8601, !llvm.loop !55

11962:                                            ; preds = %11954, %8604
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #11
  %11963 = load i32, ptr %215, align 4
  switch i32 %11963, label %12119 [
    i32 881, label %11964
  ]

11964:                                            ; preds = %11962
  br label %11965

11965:                                            ; preds = %11964
  br label %11966

11966:                                            ; preds = %11965
  %11967 = call i32 @s2n_cleanup()
  %11968 = icmp eq i32 %11967, -1
  br i1 %11968, label %11969, label %12022

11969:                                            ; preds = %11966
  br label %11970

11970:                                            ; preds = %11969
  br label %11971

11971:                                            ; preds = %11970
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %11972 = call ptr @__errno_location() #12
  %11973 = load i32, ptr %11972, align 4, !tbaa !5
  store i32 %11973, ptr %321, align 4, !tbaa !5
  %11974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11975 = call i32 @s2n_print_stacktrace(ptr noundef %11974)
  %11976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11977 = trunc i8 %11976 to i1
  br i1 %11977, label %11978, label %12000

11978:                                            ; preds = %11971
  %11979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11980 = call i32 @fileno(ptr noundef %11979) #11
  %11981 = call i32 @isatty(i32 noundef %11980) #11
  %11982 = icmp ne i32 %11981, 0
  br i1 %11982, label %11983, label %12000

11983:                                            ; preds = %11978
  %11984 = load i32, ptr %321, align 4, !tbaa !5
  %11985 = call ptr @__errno_location() #12
  store i32 %11984, ptr %11985, align 4, !tbaa !5
  %11986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11987 = load i32, ptr @test_count, align 4, !tbaa !5
  %11988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11989 = load i32, ptr %11988, align 4, !tbaa !5
  %11990 = call ptr @s2n_strerror(i32 noundef %11989, ptr noundef @.str.4)
  %11991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11992 = load i32, ptr %11991, align 4, !tbaa !5
  %11993 = call ptr @s2n_strerror_debug(i32 noundef %11992, ptr noundef @.str.4)
  %11994 = call ptr @__errno_location() #12
  %11995 = load i32, ptr %11994, align 4, !tbaa !5
  %11996 = call ptr @strerror(i32 noundef %11995) #11
  %11997 = call ptr @__errno_location() #12
  %11998 = load i32, ptr %11997, align 4, !tbaa !5
  %11999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11986, ptr noundef @.str.2, i32 noundef %11987, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %11990, ptr noundef %11993, ptr noundef %11996, i32 noundef %11998) #11
  br label %12017

12000:                                            ; preds = %11978, %11971
  %12001 = load i32, ptr %321, align 4, !tbaa !5
  %12002 = call ptr @__errno_location() #12
  store i32 %12001, ptr %12002, align 4, !tbaa !5
  %12003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12004 = load i32, ptr @test_count, align 4, !tbaa !5
  %12005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12006 = load i32, ptr %12005, align 4, !tbaa !5
  %12007 = call ptr @s2n_strerror(i32 noundef %12006, ptr noundef @.str.4)
  %12008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12009 = load i32, ptr %12008, align 4, !tbaa !5
  %12010 = call ptr @s2n_strerror_debug(i32 noundef %12009, ptr noundef @.str.4)
  %12011 = call ptr @__errno_location() #12
  %12012 = load i32, ptr %12011, align 4, !tbaa !5
  %12013 = call ptr @strerror(i32 noundef %12012) #11
  %12014 = call ptr @__errno_location() #12
  %12015 = load i32, ptr %12014, align 4, !tbaa !5
  %12016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12003, ptr noundef @.str.5, i32 noundef %12004, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %12007, ptr noundef %12010, ptr noundef %12013, i32 noundef %12015) #11
  br label %12017

12017:                                            ; preds = %12000, %11983
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %12018

12018:                                            ; preds = %12017
  br label %12019

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

12020:                                            ; No predecessors!
  br label %12021

12021:                                            ; preds = %12020
  br label %12022

12022:                                            ; preds = %12021, %11966
  br label %12023

12023:                                            ; preds = %12022
  br label %12024

12024:                                            ; preds = %12023
  br label %12025

12025:                                            ; preds = %12024
  br label %12026

12026:                                            ; preds = %12025
  %12027 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %12028 = icmp eq i32 %12027, -1
  br i1 %12028, label %12029, label %12082

12029:                                            ; preds = %12026
  br label %12030

12030:                                            ; preds = %12029
  br label %12031

12031:                                            ; preds = %12030
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %12032 = call ptr @__errno_location() #12
  %12033 = load i32, ptr %12032, align 4, !tbaa !5
  store i32 %12033, ptr %322, align 4, !tbaa !5
  %12034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12035 = call i32 @s2n_print_stacktrace(ptr noundef %12034)
  %12036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12037 = trunc i8 %12036 to i1
  br i1 %12037, label %12038, label %12060

12038:                                            ; preds = %12031
  %12039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12040 = call i32 @fileno(ptr noundef %12039) #11
  %12041 = call i32 @isatty(i32 noundef %12040) #11
  %12042 = icmp ne i32 %12041, 0
  br i1 %12042, label %12043, label %12060

12043:                                            ; preds = %12038
  %12044 = load i32, ptr %322, align 4, !tbaa !5
  %12045 = call ptr @__errno_location() #12
  store i32 %12044, ptr %12045, align 4, !tbaa !5
  %12046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12047 = load i32, ptr @test_count, align 4, !tbaa !5
  %12048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12049 = load i32, ptr %12048, align 4, !tbaa !5
  %12050 = call ptr @s2n_strerror(i32 noundef %12049, ptr noundef @.str.4)
  %12051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12052 = load i32, ptr %12051, align 4, !tbaa !5
  %12053 = call ptr @s2n_strerror_debug(i32 noundef %12052, ptr noundef @.str.4)
  %12054 = call ptr @__errno_location() #12
  %12055 = load i32, ptr %12054, align 4, !tbaa !5
  %12056 = call ptr @strerror(i32 noundef %12055) #11
  %12057 = call ptr @__errno_location() #12
  %12058 = load i32, ptr %12057, align 4, !tbaa !5
  %12059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12046, ptr noundef @.str.2, i32 noundef %12047, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %12050, ptr noundef %12053, ptr noundef %12056, i32 noundef %12058) #11
  br label %12077

12060:                                            ; preds = %12038, %12031
  %12061 = load i32, ptr %322, align 4, !tbaa !5
  %12062 = call ptr @__errno_location() #12
  store i32 %12061, ptr %12062, align 4, !tbaa !5
  %12063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12064 = load i32, ptr @test_count, align 4, !tbaa !5
  %12065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12066 = load i32, ptr %12065, align 4, !tbaa !5
  %12067 = call ptr @s2n_strerror(i32 noundef %12066, ptr noundef @.str.4)
  %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_debug(i32 noundef %12069, ptr noundef @.str.4)
  %12071 = call ptr @__errno_location() #12
  %12072 = load i32, ptr %12071, align 4, !tbaa !5
  %12073 = call ptr @strerror(i32 noundef %12072) #11
  %12074 = call ptr @__errno_location() #12
  %12075 = load i32, ptr %12074, align 4, !tbaa !5
  %12076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12063, ptr noundef @.str.5, i32 noundef %12064, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %12067, ptr noundef %12070, ptr noundef %12073, i32 noundef %12075) #11
  br label %12077

12077:                                            ; preds = %12060, %12043
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %12078

12078:                                            ; preds = %12077
  br label %12079

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

12080:                                            ; No predecessors!
  br label %12081

12081:                                            ; preds = %12080
  br label %12082

12082:                                            ; preds = %12081, %12026
  br label %12083

12083:                                            ; preds = %12082
  br label %12084

12084:                                            ; preds = %12083
  %12085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12086 = trunc i8 %12085 to i1
  br i1 %12086, label %12087, label %12103

12087:                                            ; preds = %12084
  %12088 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12089 = call i32 @fileno(ptr noundef %12088) #11
  %12090 = call i32 @isatty(i32 noundef %12089) #11
  %12091 = icmp ne i32 %12090, 0
  br i1 %12091, label %12092, label %12103

12092:                                            ; preds = %12087
  %12093 = load i32, ptr @test_count, align 4, !tbaa !5
  %12094 = icmp ne i32 %12093, 0
  br i1 %12094, label %12095, label %12099

12095:                                            ; preds = %12092
  %12096 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12097 = load i32, ptr @test_count, align 4, !tbaa !5
  %12098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12096, ptr noundef @.str.97, i32 noundef %12097) #11
  br label %12102

12099:                                            ; preds = %12092
  %12100 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12100, ptr noundef @.str.98) #11
  br label %12102

12102:                                            ; preds = %12099, %12095
  br label %12114

12103:                                            ; preds = %12087, %12084
  %12104 = load i32, ptr @test_count, align 4, !tbaa !5
  %12105 = icmp ne i32 %12104, 0
  br i1 %12105, label %12106, label %12110

12106:                                            ; preds = %12103
  %12107 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12108 = load i32, ptr @test_count, align 4, !tbaa !5
  %12109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12107, ptr noundef @.str.99, i32 noundef %12108) #11
  br label %12113

12110:                                            ; preds = %12103
  %12111 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12111, ptr noundef @.str.100) #11
  br label %12113

12113:                                            ; preds = %12110, %12106
  br label %12114

12114:                                            ; preds = %12113, %12102
  store i32 0, ptr %3, align 4
  store i32 1, ptr %215, align 4
  br label %12119

12115:                                            ; No predecessors!
  br label %12116

12116:                                            ; preds = %12115
  br label %12117

12117:                                            ; preds = %12116
  br label %12118

12118:                                            ; preds = %12117
  store i32 0, ptr %215, align 4
  br label %12119

12119:                                            ; preds = %12118, %12114, %11962
  %12120 = call i32 @s2n_hash_free(ptr noundef %18)
  call void @llvm.lifetime.end.p0(i64 56, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #11
  %12121 = call i32 @s2n_config_ptr_free(ptr noundef %13)
  %12122 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  store i32 %12121, ptr %12122, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  %12123 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %11)
  %12124 = getelementptr inbounds %struct.s2n_result, ptr %324, i32 0, i32 0
  store i32 %12123, ptr %12124, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 500, ptr %9) #11
  %12125 = load i32, ptr %215, align 4
  switch i32 %12125, label %12128 [
    i32 0, label %12126
    i32 1, label %12126
  ]

12126:                                            ; preds = %12119, %12119
  %12127 = load i32, ptr %3, align 4
  ret i32 %12127

12128:                                            ; preds = %12119
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #2

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

declare i32 @s2n_hash_free(ptr noundef) #2

declare i32 @s2n_hash_new(ptr noundef) #2

declare i32 @s2n_hash_init(ptr noundef, i32 noundef) #2

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_client_hello_get_fingerprint_string(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @s2n_client_hello_send(ptr noundef) #2

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_client_hello_recv(ptr noundef) #2

declare ptr @s2n_connection_get_client_hello(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #9

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_validate_ja3_str(ptr noundef, i32 noundef, ptr noundef) #0

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #10

declare i32 @s2n_client_hello_free(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_client_hello_from_source(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #0

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

declare i32 @s2n_free(ptr noundef) #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 2044}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !6, i64 2040}
!43 = !{!16, !7, i64 217}
!44 = !{!16, !7, i64 218}
!45 = !{!18, !18, i64 0}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = distinct !{!48, !47}
!49 = distinct !{!49, !47}
!50 = !{!7, !7, i64 0}
!51 = distinct !{!51, !47}
!52 = distinct !{!52, !47}
!53 = !{!25, !6, i64 8}
!54 = !{!25, !10, i64 0}
!55 = distinct !{!55, !47}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon }
%union.anon = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 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
@__const.main.sources = external hidden unnamed_addr constant [2 x i32], align 4
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [159 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@__const.main.sslv2_client_hello = external hidden unnamed_addr constant [176 x i8], align 16
@.str.44 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [34 x i8], align 1
@__const.main.client_hello_bytes = external hidden unnamed_addr constant [55 x i8], align 16
@__const.main.expected_ja3 = external hidden unnamed_addr constant [17 x i8], align 16
@.str.49 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [76 x i8], align 1
@__const.main.client_hello_bytes.53 = external hidden unnamed_addr constant [47 x i8], align 16
@__const.main.expected_ja3.54 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [129 x i8], align 1
@__const.main.client_hello_bytes.57 = external hidden unnamed_addr constant [63 x i8], align 16
@__const.main.expected_ja3.58 = external hidden unnamed_addr constant [17 x i8], align 16
@.str.59 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [138 x i8], align 1
@__const.main.raw_client_hello = external hidden unnamed_addr constant [135 x i8], align 16
@__const.main.expected_ja3.70 = external hidden unnamed_addr constant [193 x i8], align 16
@.str.71 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.raw_client_hello.73 = external hidden unnamed_addr constant [164 x i8], align 16
@__const.main.expected_ja3.74 = external hidden unnamed_addr constant [214 x i8], align 16
@__const.main.raw_client_hello.75 = external hidden unnamed_addr constant [164 x i8], align 16
@__const.main.expected_ja3.76 = external hidden unnamed_addr constant [214 x i8], align 16
@__const.main.raw_client_hello.77 = external hidden unnamed_addr constant [258 x i8], align 16
@__const.main.expected_ja3.78 = external hidden unnamed_addr constant [358 x i8], align 16
@__const.main.raw_client_hello.79 = external hidden unnamed_addr constant <{ [323 x i8], [189 x i8] }>, align 16
@__const.main.expected_ja3.80 = external hidden unnamed_addr constant [141 x i8], align 16
@.str.81 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.raw_client_hello.86 = external hidden unnamed_addr constant <{ [330 x i8], [182 x i8] }>, align 16
@__const.main.expected_ja3.87 = external hidden unnamed_addr constant [214 x i8], align 16
@.str.88 = external hidden unnamed_addr constant [33 x i8], align 1
@__const.main.raw_client_hello.89 = external hidden unnamed_addr constant [240 x i8], align 16
@__const.main.expected_ja3.90 = external hidden unnamed_addr constant [124 x i8], align 16
@.str.91 = external hidden unnamed_addr constant [33 x i8], align 1
@__const.main.raw_client_hello.92 = external hidden unnamed_addr constant <{ [404 x i8], [108 x i8] }>, align 16
@__const.main.expected_ja3.93 = external hidden unnamed_addr constant [442 x i8], align 16
@.str.94 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [500 x i8], align 16
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca [16 x i8], align 16
  %7 = alloca %struct.s2n_hash_state, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca [176 x i8], align 16
  %16 = alloca i32, align 4
  %17 = alloca [55 x i8], align 16
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca [47 x i8], align 16
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca [63 x i8], align 16
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca [16 x i8], align 16
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca [135 x i8], align 16
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca [164 x i8], align 16
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca [164 x i8], align 16
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca [258 x i8], align 16
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca [512 x i8], align 16
  %57 = alloca %struct.s2n_blob, align 8
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca [512 x i8], align 16
  %62 = alloca %struct.s2n_blob, align 8
  %63 = alloca ptr, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca [240 x i8], align 16
  %67 = alloca %struct.s2n_blob, align 8
  %68 = alloca ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca [512 x i8], align 16
  %72 = alloca %struct.s2n_blob, align 8
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %76 = load ptr, ptr @stdout, align 8, !tbaa !9
  %77 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #13
  %78 = load ptr, ptr @stdout, align 8, !tbaa !9
  %79 = tail call i32 @fflush(ptr noundef %78)
  %80 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %81 = icmp eq i32 %80, -1
  br i1 %81, label %82, label %106

82:                                               ; preds = %2
  %83 = tail call ptr @__errno_location() #14
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = tail call i32 @s2n_print_stacktrace(ptr noundef %85) #13
  %87 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %88 = trunc nuw i8 %87 to i1
  br i1 %88, label %89, label %93

89:                                               ; preds = %82
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = tail call i32 @fileno(ptr noundef %90) #13
  %92 = tail call i32 @isatty(i32 noundef %91) #13
  %.not688 = icmp eq i32 %92, 0
  br i1 %.not688, label %93, label %94

93:                                               ; preds = %89, %82
  br label %94

94:                                               ; preds = %89, %93
  %.str.5.sink = phi ptr [ @.str.5, %93 ], [ @.str.2, %89 ]
  store i32 %84, ptr %83, align 4, !tbaa !5
  %95 = load ptr, ptr @stderr, align 8, !tbaa !9
  %96 = load i32, ptr @test_count, align 4, !tbaa !5
  %97 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %98 = load i32, ptr %97, align 4, !tbaa !5
  %99 = tail call ptr @s2n_strerror(i32 noundef %98, ptr noundef nonnull @.str.4) #13
  %100 = load i32, ptr %97, align 4, !tbaa !5
  %101 = tail call ptr @s2n_strerror_debug(i32 noundef %100, ptr noundef nonnull @.str.4) #13
  %102 = load i32, ptr %83, align 4, !tbaa !5
  %103 = tail call ptr @strerror(i32 noundef %102) #13
  %104 = load i32, ptr %83, align 4, !tbaa !5
  %105 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %95, ptr noundef nonnull %.str.5.sink, i32 noundef %96, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %99, ptr noundef %101, ptr noundef %103, i32 noundef %104) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

106:                                              ; preds = %2
  %107 = load i32, ptr @test_count, align 4, !tbaa !5
  %108 = add nsw i32 %107, 1
  store i32 %108, ptr @test_count, align 4, !tbaa !5
  %109 = tail call i32 @s2n_enable_atexit() #13
  %110 = icmp eq i32 %109, -1
  br i1 %110, label %111, label %135

111:                                              ; preds = %106
  %112 = tail call ptr @__errno_location() #14
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = tail call i32 @s2n_print_stacktrace(ptr noundef %114) #13
  %116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %117 = trunc nuw i8 %116 to i1
  br i1 %117, label %118, label %122

118:                                              ; preds = %111
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = tail call i32 @fileno(ptr noundef %119) #13
  %121 = tail call i32 @isatty(i32 noundef %120) #13
  %.not687 = icmp eq i32 %121, 0
  br i1 %.not687, label %122, label %123

122:                                              ; preds = %118, %111
  br label %123

123:                                              ; preds = %118, %122
  %.str.5.sink725 = phi ptr [ @.str.5, %122 ], [ @.str.2, %118 ]
  store i32 %113, ptr %112, align 4, !tbaa !5
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = tail call ptr @s2n_strerror(i32 noundef %127, ptr noundef nonnull @.str.4) #13
  %129 = load i32, ptr %126, align 4, !tbaa !5
  %130 = tail call ptr @s2n_strerror_debug(i32 noundef %129, ptr noundef nonnull @.str.4) #13
  %131 = load i32, ptr %112, align 4, !tbaa !5
  %132 = tail call ptr @strerror(i32 noundef %131) #13
  %133 = load i32, ptr %112, align 4, !tbaa !5
  %134 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %124, ptr noundef nonnull %.str.5.sink725, i32 noundef %125, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %128, ptr noundef %130, ptr noundef %132, i32 noundef %133) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

135:                                              ; preds = %106
  %136 = tail call i32 @s2n_init() #13
  %137 = icmp eq i32 %136, -1
  br i1 %137, label %138, label %162

138:                                              ; preds = %135
  %139 = tail call ptr @__errno_location() #14
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = tail call i32 @s2n_print_stacktrace(ptr noundef %141) #13
  %143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %144 = trunc nuw i8 %143 to i1
  br i1 %144, label %145, label %149

145:                                              ; preds = %138
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = tail call i32 @fileno(ptr noundef %146) #13
  %148 = tail call i32 @isatty(i32 noundef %147) #13
  %.not686 = icmp eq i32 %148, 0
  br i1 %.not686, label %149, label %150

149:                                              ; preds = %145, %138
  br label %150

150:                                              ; preds = %145, %149
  %.str.5.sink736 = phi ptr [ @.str.5, %149 ], [ @.str.2, %145 ]
  store i32 %140, ptr %139, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = tail call ptr @s2n_strerror(i32 noundef %154, ptr noundef nonnull @.str.4) #13
  %156 = load i32, ptr %153, align 4, !tbaa !5
  %157 = tail call ptr @s2n_strerror_debug(i32 noundef %156, ptr noundef nonnull @.str.4) #13
  %158 = load i32, ptr %139, align 4, !tbaa !5
  %159 = tail call ptr @strerror(i32 noundef %158) #13
  %160 = load i32, ptr %139, align 4, !tbaa !5
  %161 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef nonnull %.str.5.sink736, i32 noundef %152, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %155, ptr noundef %157, ptr noundef %159, i32 noundef %160) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

162:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 500, ptr nonnull %3) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(500) %3, i8 0, i64 500, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #13
  store ptr null, ptr %4, align 8, !tbaa !9
  %163 = load i32, ptr @test_count, align 4, !tbaa !5
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr @test_count, align 4, !tbaa !5
  %165 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %4, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #13
  %166 = icmp eq i32 %165, -1
  br i1 %166, label %167, label %191

167:                                              ; preds = %162
  %168 = tail call ptr @__errno_location() #14
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = call i32 @s2n_print_stacktrace(ptr noundef %170) #13
  %172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %173 = trunc nuw i8 %172 to i1
  br i1 %173, label %174, label %178

174:                                              ; preds = %167
  %175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %176 = call i32 @fileno(ptr noundef %175) #13
  %177 = call i32 @isatty(i32 noundef %176) #13
  %.not685 = icmp eq i32 %177, 0
  br i1 %.not685, label %178, label %179

178:                                              ; preds = %174, %167
  br label %179

179:                                              ; preds = %174, %178
  %.str.5.sink747 = phi ptr [ @.str.5, %178 ], [ @.str.2, %174 ]
  store i32 %169, ptr %168, align 4, !tbaa !5
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror(i32 noundef %183, ptr noundef nonnull @.str.4) #13
  %185 = load i32, ptr %182, align 4, !tbaa !5
  %186 = call ptr @s2n_strerror_debug(i32 noundef %185, ptr noundef nonnull @.str.4) #13
  %187 = load i32, ptr %168, align 4, !tbaa !5
  %188 = call ptr @strerror(i32 noundef %187) #13
  %189 = load i32, ptr %168, align 4, !tbaa !5
  %190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %180, ptr noundef nonnull %.str.5.sink747, i32 noundef %181, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %184, ptr noundef %186, ptr noundef %188, i32 noundef %189) #15
  call void @exit(i32 noundef 1) #16
  unreachable

191:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #13
  %192 = call ptr @s2n_config_new() #13
  store ptr %192, ptr %5, align 8, !tbaa !9
  %193 = load i32, ptr @test_count, align 4, !tbaa !5
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr @test_count, align 4, !tbaa !5
  %195 = icmp eq ptr %192, null
  br i1 %195, label %196, label %220

196:                                              ; preds = %191
  %197 = tail call ptr @__errno_location() #14
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = call i32 @s2n_print_stacktrace(ptr noundef %199) #13
  %201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %202 = trunc nuw i8 %201 to i1
  br i1 %202, label %203, label %207

203:                                              ; preds = %196
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @fileno(ptr noundef %204) #13
  %206 = call i32 @isatty(i32 noundef %205) #13
  %.not684 = icmp eq i32 %206, 0
  br i1 %.not684, label %207, label %208

207:                                              ; preds = %203, %196
  br label %208

208:                                              ; preds = %203, %207
  %.str.5.sink758 = phi ptr [ @.str.5, %207 ], [ @.str.2, %203 ]
  store i32 %198, ptr %197, align 4, !tbaa !5
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = load i32, ptr @test_count, align 4, !tbaa !5
  %211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror(i32 noundef %212, ptr noundef nonnull @.str.4) #13
  %214 = load i32, ptr %211, align 4, !tbaa !5
  %215 = call ptr @s2n_strerror_debug(i32 noundef %214, ptr noundef nonnull @.str.4) #13
  %216 = load i32, ptr %197, align 4, !tbaa !5
  %217 = call ptr @strerror(i32 noundef %216) #13
  %218 = load i32, ptr %197, align 4, !tbaa !5
  %219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef nonnull %.str.5.sink758, i32 noundef %210, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %213, ptr noundef %215, ptr noundef %217, i32 noundef %218) #15
  call void @exit(i32 noundef 1) #16
  unreachable

220:                                              ; preds = %191
  %221 = add nsw i32 %193, 2
  store i32 %221, ptr @test_count, align 4, !tbaa !5
  %222 = load ptr, ptr %4, align 8, !tbaa !9
  %223 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %192, ptr noundef %222) #13
  %224 = icmp eq i32 %223, -1
  br i1 %224, label %225, label %249

225:                                              ; preds = %220
  %226 = tail call ptr @__errno_location() #14
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = call i32 @s2n_print_stacktrace(ptr noundef %228) #13
  %230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %231 = trunc nuw i8 %230 to i1
  br i1 %231, label %232, label %236

232:                                              ; preds = %225
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @fileno(ptr noundef %233) #13
  %235 = call i32 @isatty(i32 noundef %234) #13
  %.not683 = icmp eq i32 %235, 0
  br i1 %.not683, label %236, label %237

236:                                              ; preds = %232, %225
  br label %237

237:                                              ; preds = %232, %236
  %.str.5.sink769 = phi ptr [ @.str.5, %236 ], [ @.str.2, %232 ]
  store i32 %227, ptr %226, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = load i32, ptr @test_count, align 4, !tbaa !5
  %240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror(i32 noundef %241, ptr noundef nonnull @.str.4) #13
  %243 = load i32, ptr %240, align 4, !tbaa !5
  %244 = call ptr @s2n_strerror_debug(i32 noundef %243, ptr noundef nonnull @.str.4) #13
  %245 = load i32, ptr %226, align 4, !tbaa !5
  %246 = call ptr @strerror(i32 noundef %245) #13
  %247 = load i32, ptr %226, align 4, !tbaa !5
  %248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %238, ptr noundef nonnull %.str.5.sink769, i32 noundef %239, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %242, ptr noundef %244, ptr noundef %246, i32 noundef %247) #15
  call void @exit(i32 noundef 1) #16
  unreachable

249:                                              ; preds = %220
  %250 = load i32, ptr @test_count, align 4, !tbaa !5
  %251 = add nsw i32 %250, 1
  store i32 %251, ptr @test_count, align 4, !tbaa !5
  %252 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %192, ptr noundef nonnull @.str.13) #13
  %253 = icmp eq i32 %252, -1
  br i1 %253, label %254, label %278

254:                                              ; preds = %249
  %255 = tail call ptr @__errno_location() #14
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = call i32 @s2n_print_stacktrace(ptr noundef %257) #13
  %259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %260 = trunc nuw i8 %259 to i1
  br i1 %260, label %261, label %265

261:                                              ; preds = %254
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = call i32 @fileno(ptr noundef %262) #13
  %264 = call i32 @isatty(i32 noundef %263) #13
  %.not682 = icmp eq i32 %264, 0
  br i1 %.not682, label %265, label %266

265:                                              ; preds = %261, %254
  br label %266

266:                                              ; preds = %261, %265
  %.str.5.sink780 = phi ptr [ @.str.5, %265 ], [ @.str.2, %261 ]
  store i32 %256, ptr %255, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror(i32 noundef %270, ptr noundef nonnull @.str.4) #13
  %272 = load i32, ptr %269, align 4, !tbaa !5
  %273 = call ptr @s2n_strerror_debug(i32 noundef %272, ptr noundef nonnull @.str.4) #13
  %274 = load i32, ptr %255, align 4, !tbaa !5
  %275 = call ptr @strerror(i32 noundef %274) #13
  %276 = load i32, ptr %255, align 4, !tbaa !5
  %277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef nonnull %.str.5.sink780, i32 noundef %268, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %271, ptr noundef %273, ptr noundef %275, i32 noundef %276) #15
  call void @exit(i32 noundef 1) #16
  unreachable

278:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %6, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %7, i8 0, i64 56, i1 false)
  %279 = load i32, ptr @test_count, align 4, !tbaa !5
  %280 = add nsw i32 %279, 1
  store i32 %280, ptr @test_count, align 4, !tbaa !5
  %281 = call i32 @s2n_hash_new(ptr noundef nonnull %7) #13
  %282 = icmp eq i32 %281, -1
  br i1 %282, label %283, label %307

283:                                              ; preds = %278
  %284 = tail call ptr @__errno_location() #14
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @s2n_print_stacktrace(ptr noundef %286) #13
  %288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %289 = trunc nuw i8 %288 to i1
  br i1 %289, label %290, label %294

290:                                              ; preds = %283
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @fileno(ptr noundef %291) #13
  %293 = call i32 @isatty(i32 noundef %292) #13
  %.not681 = icmp eq i32 %293, 0
  br i1 %.not681, label %294, label %295

294:                                              ; preds = %290, %283
  br label %295

295:                                              ; preds = %290, %294
  %.str.5.sink791 = phi ptr [ @.str.5, %294 ], [ @.str.2, %290 ]
  store i32 %285, ptr %284, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror(i32 noundef %299, ptr noundef nonnull @.str.4) #13
  %301 = load i32, ptr %298, align 4, !tbaa !5
  %302 = call ptr @s2n_strerror_debug(i32 noundef %301, ptr noundef nonnull @.str.4) #13
  %303 = load i32, ptr %284, align 4, !tbaa !5
  %304 = call ptr @strerror(i32 noundef %303) #13
  %305 = load i32, ptr %284, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef nonnull %.str.5.sink791, i32 noundef %297, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %300, ptr noundef %302, ptr noundef %304, i32 noundef %305) #15
  call void @exit(i32 noundef 1) #16
  unreachable

307:                                              ; preds = %278
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = call i32 @s2n_hash_init(ptr noundef nonnull %7, i32 noundef 1) #13
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %312, label %336

312:                                              ; preds = %307
  %313 = tail call ptr @__errno_location() #14
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @s2n_print_stacktrace(ptr noundef %315) #13
  %317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %318 = trunc nuw i8 %317 to i1
  br i1 %318, label %319, label %323

319:                                              ; preds = %312
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = call i32 @fileno(ptr noundef %320) #13
  %322 = call i32 @isatty(i32 noundef %321) #13
  %.not680 = icmp eq i32 %322, 0
  br i1 %.not680, label %323, label %324

323:                                              ; preds = %319, %312
  br label %324

324:                                              ; preds = %319, %323
  %.str.5.sink802 = phi ptr [ @.str.5, %323 ], [ @.str.2, %319 ]
  store i32 %314, ptr %313, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror(i32 noundef %328, ptr noundef nonnull @.str.4) #13
  %330 = load i32, ptr %327, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror_debug(i32 noundef %330, ptr noundef nonnull @.str.4) #13
  %332 = load i32, ptr %313, align 4, !tbaa !5
  %333 = call ptr @strerror(i32 noundef %332) #13
  %334 = load i32, ptr %313, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef nonnull %.str.5.sink802, i32 noundef %326, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %329, ptr noundef %331, ptr noundef %333, i32 noundef %334) #15
  call void @exit(i32 noundef 1) #16
  unreachable

336:                                              ; preds = %307
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = add nsw i32 %337, 1
  store i32 %338, ptr @test_count, align 4, !tbaa !5
  %339 = call i32 @s2n_hash_digest(ptr noundef nonnull %7, ptr noundef nonnull %6, i32 noundef 16) #13
  %340 = icmp eq i32 %339, -1
  br i1 %340, label %341, label %365

341:                                              ; preds = %336
  %342 = tail call ptr @__errno_location() #14
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @s2n_print_stacktrace(ptr noundef %344) #13
  %346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %347 = trunc nuw i8 %346 to i1
  br i1 %347, label %348, label %352

348:                                              ; preds = %341
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @fileno(ptr noundef %349) #13
  %351 = call i32 @isatty(i32 noundef %350) #13
  %.not679 = icmp eq i32 %351, 0
  br i1 %.not679, label %352, label %353

352:                                              ; preds = %348, %341
  br label %353

353:                                              ; preds = %348, %352
  %.str.5.sink813 = phi ptr [ @.str.5, %352 ], [ @.str.2, %348 ]
  store i32 %343, ptr %342, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror(i32 noundef %357, ptr noundef nonnull @.str.4) #13
  %359 = load i32, ptr %356, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror_debug(i32 noundef %359, ptr noundef nonnull @.str.4) #13
  %361 = load i32, ptr %342, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #13
  %363 = load i32, ptr %342, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef nonnull %.str.5.sink813, i32 noundef %355, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %358, ptr noundef %360, ptr noundef %362, i32 noundef %363) #15
  call void @exit(i32 noundef 1) #16
  unreachable

365:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #13
  %366 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %366, ptr %8, align 8, !tbaa !9
  %367 = getelementptr inbounds i8, ptr %366, i64 2896
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #13
  store i32 0, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #13
  store i32 0, ptr %10, align 4, !tbaa !5
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef null, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %9) #13
  %371 = icmp eq i32 %370, -1
  br i1 %371, label %396, label %372

372:                                              ; preds = %365
  %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 = 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 = call i32 @fileno(ptr noundef %380) #13
  %382 = call i32 @isatty(i32 noundef %381) #13
  %.not = icmp eq i32 %382, 0
  br i1 %.not, label %383, label %384

383:                                              ; preds = %379, %372
  br label %384

384:                                              ; preds = %379, %383
  %.str.5.sink824 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef nonnull @.str.4) #13
  %390 = load i32, ptr %387, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef nonnull @.str.4) #13
  %392 = load i32, ptr %373, align 4, !tbaa !5
  %393 = call ptr @strerror(i32 noundef %392) #13
  %394 = load i32, ptr %373, align 4, !tbaa !5
  %395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef nonnull %.str.5.sink824, i32 noundef %386, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %389, ptr noundef %391, ptr noundef %393, i32 noundef %394) #15
  call void @exit(i32 noundef 1) #16
  unreachable

396:                                              ; preds = %365
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = icmp eq i32 %400, 469762089
  br i1 %401, label %425, label %402

402:                                              ; preds = %396
  %403 = tail call ptr @__errno_location() #14
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @s2n_print_stacktrace(ptr noundef %405) #13
  %407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %408 = trunc nuw i8 %407 to i1
  br i1 %408, label %409, label %413

409:                                              ; preds = %402
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = call i32 @fileno(ptr noundef %410) #13
  %412 = call i32 @isatty(i32 noundef %411) #13
  %.not483 = icmp eq i32 %412, 0
  br i1 %.not483, label %413, label %414

413:                                              ; preds = %409, %402
  br label %414

414:                                              ; preds = %409, %413
  %.str.5.sink835 = phi ptr [ @.str.5, %413 ], [ @.str.2, %409 ]
  store i32 %404, ptr %403, align 4, !tbaa !5
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = load i32, ptr %399, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror(i32 noundef %417, ptr noundef nonnull @.str.4) #13
  %419 = load i32, ptr %399, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef nonnull @.str.4) #13
  %421 = load i32, ptr %403, align 4, !tbaa !5
  %422 = call ptr @strerror(i32 noundef %421) #13
  %423 = load i32, ptr %403, align 4, !tbaa !5
  %424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull %.str.5.sink835, i32 noundef %416, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %418, ptr noundef %420, ptr noundef %422, i32 noundef %423) #15
  call void @exit(i32 noundef 1) #16
  unreachable

425:                                              ; preds = %396
  %426 = add nsw i32 %397, 2
  store i32 %426, ptr @test_count, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %428 = icmp eq ptr %427, null
  br i1 %428, label %429, label %452

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 = 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 = call i32 @fileno(ptr noundef %437) #13
  %439 = call i32 @isatty(i32 noundef %438) #13
  %.not678 = icmp eq i32 %439, 0
  br i1 %.not678, label %440, label %441

440:                                              ; preds = %436, %429
  br label %441

441:                                              ; preds = %436, %440
  %.str.5.sink844 = 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 = load i32, ptr %399, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror(i32 noundef %444, ptr noundef nonnull @.str.4) #13
  %446 = load i32, ptr %399, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror_debug(i32 noundef %446, ptr noundef nonnull @.str.4) #13
  %448 = load i32, ptr %430, align 4, !tbaa !5
  %449 = call ptr @strerror(i32 noundef %448) #13
  %450 = load i32, ptr %430, align 4, !tbaa !5
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull %.str.5.sink844, i32 noundef %443, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %445, ptr noundef %447, ptr noundef %449, i32 noundef %450) #15
  call void @exit(i32 noundef 1) #16
  unreachable

452:                                              ; preds = %425
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %453 = tail call ptr @__errno_location() #14
  store i32 0, ptr %453, align 4, !tbaa !5
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr @test_count, align 4, !tbaa !5
  %456 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef null, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %9, ptr noundef nonnull %10) #13
  %457 = icmp eq i32 %456, -1
  br i1 %457, label %480, label %458

458:                                              ; preds = %452
  %459 = load i32, ptr %453, 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 = %458
  %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
  %.not484 = icmp eq i32 %467, 0
  br i1 %.not484, label %468, label %469

468:                                              ; preds = %464, %458
  br label %469

469:                                              ; preds = %464, %468
  %.str.5.sink853 = phi ptr [ @.str.5, %468 ], [ @.str.2, %464 ]
  store i32 %459, ptr %453, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = load i32, ptr %399, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror(i32 noundef %472, ptr noundef nonnull @.str.4) #13
  %474 = load i32, ptr %399, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror_debug(i32 noundef %474, ptr noundef nonnull @.str.4) #13
  %476 = load i32, ptr %453, align 4, !tbaa !5
  %477 = call ptr @strerror(i32 noundef %476) #13
  %478 = load i32, ptr %453, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef nonnull %.str.5.sink853, i32 noundef %471, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %473, ptr noundef %475, ptr noundef %477, i32 noundef %478) #15
  call void @exit(i32 noundef 1) #16
  unreachable

480:                                              ; preds = %452
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr @test_count, align 4, !tbaa !5
  %483 = load i32, ptr %399, align 4, !tbaa !5
  %484 = icmp eq i32 %483, 469762089
  br i1 %484, label %507, label %485

485:                                              ; preds = %480
  %486 = load i32, ptr %453, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = call i32 @s2n_print_stacktrace(ptr noundef %487) #13
  %489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %490 = trunc nuw i8 %489 to i1
  br i1 %490, label %491, label %495

491:                                              ; preds = %485
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = call i32 @fileno(ptr noundef %492) #13
  %494 = call i32 @isatty(i32 noundef %493) #13
  %.not485 = icmp eq i32 %494, 0
  br i1 %.not485, label %495, label %496

495:                                              ; preds = %491, %485
  br label %496

496:                                              ; preds = %491, %495
  %.str.5.sink862 = phi ptr [ @.str.5, %495 ], [ @.str.2, %491 ]
  store i32 %486, ptr %453, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = load i32, ptr %399, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror(i32 noundef %499, ptr noundef nonnull @.str.4) #13
  %501 = load i32, ptr %399, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror_debug(i32 noundef %501, ptr noundef nonnull @.str.4) #13
  %503 = load i32, ptr %453, align 4, !tbaa !5
  %504 = call ptr @strerror(i32 noundef %503) #13
  %505 = load i32, ptr %453, align 4, !tbaa !5
  %506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef nonnull %.str.5.sink862, i32 noundef %498, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %500, ptr noundef %502, ptr noundef %504, i32 noundef %505) #15
  call void @exit(i32 noundef 1) #16
  unreachable

507:                                              ; preds = %480
  %508 = add nsw i32 %481, 2
  store i32 %508, ptr @test_count, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %510 = icmp eq ptr %509, null
  br i1 %510, label %511, label %533

511:                                              ; preds = %507
  %512 = load i32, ptr %453, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @s2n_print_stacktrace(ptr noundef %513) #13
  %515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %516 = trunc nuw i8 %515 to i1
  br i1 %516, label %517, label %521

517:                                              ; preds = %511
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @fileno(ptr noundef %518) #13
  %520 = call i32 @isatty(i32 noundef %519) #13
  %.not677 = icmp eq i32 %520, 0
  br i1 %.not677, label %521, label %522

521:                                              ; preds = %517, %511
  br label %522

522:                                              ; preds = %517, %521
  %.str.5.sink871 = phi ptr [ @.str.5, %521 ], [ @.str.2, %517 ]
  store i32 %512, ptr %453, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = load i32, ptr %399, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror(i32 noundef %525, ptr noundef nonnull @.str.4) #13
  %527 = load i32, ptr %399, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror_debug(i32 noundef %527, ptr noundef nonnull @.str.4) #13
  %529 = load i32, ptr %453, align 4, !tbaa !5
  %530 = call ptr @strerror(i32 noundef %529) #13
  %531 = load i32, ptr %453, align 4, !tbaa !5
  %532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef nonnull %.str.5.sink871, i32 noundef %524, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %526, ptr noundef %528, ptr noundef %530, i32 noundef %531) #15
  call void @exit(i32 noundef 1) #16
  unreachable

533:                                              ; preds = %507
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %367, i32 noundef 0, i32 noundef 500, ptr noundef null, ptr noundef nonnull %9) #13
  %537 = icmp eq i32 %536, -1
  br i1 %537, label %560, label %538

538:                                              ; preds = %533
  %539 = load i32, ptr %453, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @s2n_print_stacktrace(ptr noundef %540) #13
  %542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %543 = trunc nuw i8 %542 to i1
  br i1 %543, label %544, label %548

544:                                              ; preds = %538
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @fileno(ptr noundef %545) #13
  %547 = call i32 @isatty(i32 noundef %546) #13
  %.not486 = icmp eq i32 %547, 0
  br i1 %.not486, label %548, label %549

548:                                              ; preds = %544, %538
  br label %549

549:                                              ; preds = %544, %548
  %.str.5.sink880 = phi ptr [ @.str.5, %548 ], [ @.str.2, %544 ]
  store i32 %539, ptr %453, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = load i32, ptr %399, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef nonnull @.str.4) #13
  %554 = load i32, ptr %399, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef nonnull @.str.4) #13
  %556 = load i32, ptr %453, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #13
  %558 = load i32, ptr %453, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef nonnull %.str.5.sink880, i32 noundef %551, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %553, ptr noundef %555, ptr noundef %557, i32 noundef %558) #15
  call void @exit(i32 noundef 1) #16
  unreachable

560:                                              ; preds = %533
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr @test_count, align 4, !tbaa !5
  %563 = load i32, ptr %399, align 4, !tbaa !5
  %564 = icmp eq i32 %563, 469762089
  br i1 %564, label %587, label %565

565:                                              ; preds = %560
  %566 = load i32, ptr %453, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @s2n_print_stacktrace(ptr noundef %567) #13
  %569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %575

571:                                              ; preds = %565
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @fileno(ptr noundef %572) #13
  %574 = call i32 @isatty(i32 noundef %573) #13
  %.not487 = icmp eq i32 %574, 0
  br i1 %.not487, label %575, label %576

575:                                              ; preds = %571, %565
  br label %576

576:                                              ; preds = %571, %575
  %.str.5.sink889 = phi ptr [ @.str.5, %575 ], [ @.str.2, %571 ]
  store i32 %566, ptr %453, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = load i32, ptr %399, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror(i32 noundef %579, ptr noundef nonnull @.str.4) #13
  %581 = load i32, ptr %399, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror_debug(i32 noundef %581, ptr noundef nonnull @.str.4) #13
  %583 = load i32, ptr %453, align 4, !tbaa !5
  %584 = call ptr @strerror(i32 noundef %583) #13
  %585 = load i32, ptr %453, align 4, !tbaa !5
  %586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.5.sink889, i32 noundef %578, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %580, ptr noundef %582, ptr noundef %584, i32 noundef %585) #15
  call void @exit(i32 noundef 1) #16
  unreachable

587:                                              ; preds = %560
  %588 = add nsw i32 %561, 2
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %590 = icmp eq ptr %589, null
  br i1 %590, label %591, label %613

591:                                              ; preds = %587
  %592 = load i32, ptr %453, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @s2n_print_stacktrace(ptr noundef %593) #13
  %595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %601

597:                                              ; preds = %591
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @fileno(ptr noundef %598) #13
  %600 = call i32 @isatty(i32 noundef %599) #13
  %.not676 = icmp eq i32 %600, 0
  br i1 %.not676, label %601, label %602

601:                                              ; preds = %597, %591
  br label %602

602:                                              ; preds = %597, %601
  %.str.5.sink898 = phi ptr [ @.str.5, %601 ], [ @.str.2, %597 ]
  store i32 %592, ptr %453, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = load i32, ptr %399, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror(i32 noundef %605, ptr noundef nonnull @.str.4) #13
  %607 = load i32, ptr %399, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror_debug(i32 noundef %607, ptr noundef nonnull @.str.4) #13
  %609 = load i32, ptr %453, align 4, !tbaa !5
  %610 = call ptr @strerror(i32 noundef %609) #13
  %611 = load i32, ptr %453, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef nonnull %.str.5.sink898, i32 noundef %604, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %606, ptr noundef %608, ptr noundef %610, i32 noundef %611) #15
  call void @exit(i32 noundef 1) #16
  unreachable

613:                                              ; preds = %587
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %367, i32 noundef 0, i32 noundef 500, ptr noundef null, ptr noundef nonnull %9, ptr noundef nonnull %10) #13
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %640, label %618

618:                                              ; preds = %613
  %619 = load i32, ptr %453, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = call i32 @s2n_print_stacktrace(ptr noundef %620) #13
  %622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %623 = trunc nuw i8 %622 to i1
  br i1 %623, label %624, label %628

624:                                              ; preds = %618
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @fileno(ptr noundef %625) #13
  %627 = call i32 @isatty(i32 noundef %626) #13
  %.not488 = icmp eq i32 %627, 0
  br i1 %.not488, label %628, label %629

628:                                              ; preds = %624, %618
  br label %629

629:                                              ; preds = %624, %628
  %.str.5.sink907 = phi ptr [ @.str.5, %628 ], [ @.str.2, %624 ]
  store i32 %619, ptr %453, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = load i32, ptr %399, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror(i32 noundef %632, ptr noundef nonnull @.str.4) #13
  %634 = load i32, ptr %399, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef nonnull @.str.4) #13
  %636 = load i32, ptr %453, align 4, !tbaa !5
  %637 = call ptr @strerror(i32 noundef %636) #13
  %638 = load i32, ptr %453, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull %.str.5.sink907, i32 noundef %631, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %633, ptr noundef %635, ptr noundef %637, i32 noundef %638) #15
  call void @exit(i32 noundef 1) #16
  unreachable

640:                                              ; preds = %613
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = load i32, ptr %399, align 4, !tbaa !5
  %644 = icmp eq i32 %643, 469762089
  br i1 %644, label %667, label %645

645:                                              ; preds = %640
  %646 = load i32, ptr %453, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @s2n_print_stacktrace(ptr noundef %647) #13
  %649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %650 = trunc nuw i8 %649 to i1
  br i1 %650, label %651, label %655

651:                                              ; preds = %645
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @fileno(ptr noundef %652) #13
  %654 = call i32 @isatty(i32 noundef %653) #13
  %.not489 = icmp eq i32 %654, 0
  br i1 %.not489, label %655, label %656

655:                                              ; preds = %651, %645
  br label %656

656:                                              ; preds = %651, %655
  %.str.5.sink916 = phi ptr [ @.str.5, %655 ], [ @.str.2, %651 ]
  store i32 %646, ptr %453, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = load i32, ptr %399, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef nonnull @.str.4) #13
  %661 = load i32, ptr %399, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef nonnull @.str.4) #13
  %663 = load i32, ptr %453, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #13
  %665 = load i32, ptr %453, align 4, !tbaa !5
  %666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.5.sink916, i32 noundef %658, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %660, ptr noundef %662, ptr noundef %664, i32 noundef %665) #15
  call void @exit(i32 noundef 1) #16
  unreachable

667:                                              ; preds = %640
  %668 = add nsw i32 %641, 2
  store i32 %668, ptr @test_count, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %670 = icmp eq ptr %669, null
  br i1 %670, label %671, label %693

671:                                              ; preds = %667
  %672 = load i32, ptr %453, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = call i32 @s2n_print_stacktrace(ptr noundef %673) #13
  %675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %676 = trunc nuw i8 %675 to i1
  br i1 %676, label %677, label %681

677:                                              ; preds = %671
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = call i32 @fileno(ptr noundef %678) #13
  %680 = call i32 @isatty(i32 noundef %679) #13
  %.not675 = icmp eq i32 %680, 0
  br i1 %.not675, label %681, label %682

681:                                              ; preds = %677, %671
  br label %682

682:                                              ; preds = %677, %681
  %.str.5.sink925 = phi ptr [ @.str.5, %681 ], [ @.str.2, %677 ]
  store i32 %672, ptr %453, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = load i32, ptr %399, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror(i32 noundef %685, ptr noundef nonnull @.str.4) #13
  %687 = load i32, ptr %399, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef %687, ptr noundef nonnull @.str.4) #13
  %689 = load i32, ptr %453, align 4, !tbaa !5
  %690 = call ptr @strerror(i32 noundef %689) #13
  %691 = load i32, ptr %453, align 4, !tbaa !5
  %692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef nonnull %.str.5.sink925, i32 noundef %684, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %686, ptr noundef %688, ptr noundef %690, i32 noundef %691) #15
  call void @exit(i32 noundef 1) #16
  unreachable

693:                                              ; preds = %667
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr @test_count, align 4, !tbaa !5
  %696 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %367, i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef nonnull %9) #13
  %697 = icmp eq i32 %696, -1
  br i1 %697, label %720, label %698

698:                                              ; preds = %693
  %699 = load i32, ptr %453, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = call i32 @s2n_print_stacktrace(ptr noundef %700) #13
  %702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %703 = trunc nuw i8 %702 to i1
  br i1 %703, label %704, label %708

704:                                              ; preds = %698
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = call i32 @fileno(ptr noundef %705) #13
  %707 = call i32 @isatty(i32 noundef %706) #13
  %.not490 = icmp eq i32 %707, 0
  br i1 %.not490, label %708, label %709

708:                                              ; preds = %704, %698
  br label %709

709:                                              ; preds = %704, %708
  %.str.5.sink934 = phi ptr [ @.str.5, %708 ], [ @.str.2, %704 ]
  store i32 %699, ptr %453, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = load i32, ptr %399, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror(i32 noundef %712, ptr noundef nonnull @.str.4) #13
  %714 = load i32, ptr %399, align 4, !tbaa !5
  %715 = call ptr @s2n_strerror_debug(i32 noundef %714, ptr noundef nonnull @.str.4) #13
  %716 = load i32, ptr %453, align 4, !tbaa !5
  %717 = call ptr @strerror(i32 noundef %716) #13
  %718 = load i32, ptr %453, align 4, !tbaa !5
  %719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef nonnull %.str.5.sink934, i32 noundef %711, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %713, ptr noundef %715, ptr noundef %717, i32 noundef %718) #15
  call void @exit(i32 noundef 1) #16
  unreachable

720:                                              ; preds = %693
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr @test_count, align 4, !tbaa !5
  %723 = load i32, ptr %399, align 4, !tbaa !5
  %724 = icmp eq i32 %723, 469762120
  br i1 %724, label %747, label %725

725:                                              ; preds = %720
  %726 = load i32, ptr %453, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = call i32 @s2n_print_stacktrace(ptr noundef %727) #13
  %729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %730 = trunc nuw i8 %729 to i1
  br i1 %730, label %731, label %735

731:                                              ; preds = %725
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @fileno(ptr noundef %732) #13
  %734 = call i32 @isatty(i32 noundef %733) #13
  %.not491 = icmp eq i32 %734, 0
  br i1 %.not491, label %735, label %736

735:                                              ; preds = %731, %725
  br label %736

736:                                              ; preds = %731, %735
  %.str.5.sink943 = phi ptr [ @.str.5, %735 ], [ @.str.2, %731 ]
  store i32 %726, ptr %453, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = load i32, ptr %399, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror(i32 noundef %739, ptr noundef nonnull @.str.4) #13
  %741 = load i32, ptr %399, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror_debug(i32 noundef %741, ptr noundef nonnull @.str.4) #13
  %743 = load i32, ptr %453, align 4, !tbaa !5
  %744 = call ptr @strerror(i32 noundef %743) #13
  %745 = load i32, ptr %453, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef nonnull %.str.5.sink943, i32 noundef %738, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %740, ptr noundef %742, ptr noundef %744, i32 noundef %745) #15
  call void @exit(i32 noundef 1) #16
  unreachable

747:                                              ; preds = %720
  %748 = add nsw i32 %721, 2
  store i32 %748, ptr @test_count, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #13
  %750 = icmp eq ptr %749, null
  br i1 %750, label %751, label %773

751:                                              ; preds = %747
  %752 = load i32, ptr %453, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = call i32 @s2n_print_stacktrace(ptr noundef %753) #13
  %755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %756 = trunc nuw i8 %755 to i1
  br i1 %756, label %757, label %761

757:                                              ; preds = %751
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @fileno(ptr noundef %758) #13
  %760 = call i32 @isatty(i32 noundef %759) #13
  %.not674 = icmp eq i32 %760, 0
  br i1 %.not674, label %761, label %762

761:                                              ; preds = %757, %751
  br label %762

762:                                              ; preds = %757, %761
  %.str.5.sink952 = phi ptr [ @.str.5, %761 ], [ @.str.2, %757 ]
  store i32 %752, ptr %453, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = load i32, ptr %399, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.4) #13
  %767 = load i32, ptr %399, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.4) #13
  %769 = load i32, ptr %453, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #13
  %771 = load i32, ptr %453, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %763, ptr noundef nonnull %.str.5.sink952, i32 noundef %764, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #15
  call void @exit(i32 noundef 1) #16
  unreachable

773:                                              ; preds = %747
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = add nsw i32 %774, 1
  store i32 %775, ptr @test_count, align 4, !tbaa !5
  %776 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %367, i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef nonnull %9, ptr noundef nonnull %10) #13
  %777 = icmp eq i32 %776, -1
  br i1 %777, label %800, label %778

778:                                              ; preds = %773
  %779 = load i32, ptr %453, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = call i32 @s2n_print_stacktrace(ptr noundef %780) #13
  %782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %783 = trunc nuw i8 %782 to i1
  br i1 %783, label %784, label %788

784:                                              ; preds = %778
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @fileno(ptr noundef %785) #13
  %787 = call i32 @isatty(i32 noundef %786) #13
  %.not492 = icmp eq i32 %787, 0
  br i1 %.not492, label %788, label %789

788:                                              ; preds = %784, %778
  br label %789

789:                                              ; preds = %784, %788
  %.str.5.sink961 = phi ptr [ @.str.5, %788 ], [ @.str.2, %784 ]
  store i32 %779, ptr %453, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = load i32, ptr %399, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror(i32 noundef %792, ptr noundef nonnull @.str.4) #13
  %794 = load i32, ptr %399, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef nonnull @.str.4) #13
  %796 = load i32, ptr %453, align 4, !tbaa !5
  %797 = call ptr @strerror(i32 noundef %796) #13
  %798 = load i32, ptr %453, align 4, !tbaa !5
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %790, ptr noundef nonnull %.str.5.sink961, i32 noundef %791, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %793, ptr noundef %795, ptr noundef %797, i32 noundef %798) #15
  call void @exit(i32 noundef 1) #16
  unreachable

800:                                              ; preds = %773
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  store i32 %802, ptr @test_count, align 4, !tbaa !5
  %803 = load i32, ptr %399, align 4, !tbaa !5
  %804 = icmp eq i32 %803, 469762120
  br i1 %804, label %827, label %805

805:                                              ; preds = %800
  %806 = load i32, ptr %453, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @s2n_print_stacktrace(ptr noundef %807) #13
  %809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %810 = trunc nuw i8 %809 to i1
  br i1 %810, label %811, label %815

811:                                              ; preds = %805
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = call i32 @fileno(ptr noundef %812) #13
  %814 = call i32 @isatty(i32 noundef %813) #13
  %.not493 = icmp eq i32 %814, 0
  br i1 %.not493, label %815, label %816

815:                                              ; preds = %811, %805
  br label %816

816:                                              ; preds = %811, %815
  %.str.5.sink970 = phi ptr [ @.str.5, %815 ], [ @.str.2, %811 ]
  store i32 %806, ptr %453, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = load i32, ptr %399, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror(i32 noundef %819, ptr noundef nonnull @.str.4) #13
  %821 = load i32, ptr %399, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror_debug(i32 noundef %821, ptr noundef nonnull @.str.4) #13
  %823 = load i32, ptr %453, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #13
  %825 = load i32, ptr %453, align 4, !tbaa !5
  %826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef nonnull %.str.5.sink970, i32 noundef %818, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %820, ptr noundef %822, ptr noundef %824, i32 noundef %825) #15
  call void @exit(i32 noundef 1) #16
  unreachable

827:                                              ; preds = %800
  %828 = add nsw i32 %801, 2
  store i32 %828, ptr @test_count, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #13
  %830 = icmp eq ptr %829, null
  br i1 %830, label %831, label %853

831:                                              ; preds = %827
  %832 = load i32, ptr %453, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = call i32 @s2n_print_stacktrace(ptr noundef %833) #13
  %835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %836 = trunc nuw i8 %835 to i1
  br i1 %836, label %837, label %841

837:                                              ; preds = %831
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = call i32 @fileno(ptr noundef %838) #13
  %840 = call i32 @isatty(i32 noundef %839) #13
  %.not673 = icmp eq i32 %840, 0
  br i1 %.not673, label %841, label %842

841:                                              ; preds = %837, %831
  br label %842

842:                                              ; preds = %837, %841
  %.str.5.sink979 = phi ptr [ @.str.5, %841 ], [ @.str.2, %837 ]
  store i32 %832, ptr %453, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = load i32, ptr %399, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef nonnull @.str.4) #13
  %847 = load i32, ptr %399, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef nonnull @.str.4) #13
  %849 = load i32, ptr %453, align 4, !tbaa !5
  %850 = call ptr @strerror(i32 noundef %849) #13
  %851 = load i32, ptr %453, align 4, !tbaa !5
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %843, ptr noundef nonnull %.str.5.sink979, i32 noundef %844, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %846, ptr noundef %848, ptr noundef %850, i32 noundef %851) #15
  call void @exit(i32 noundef 1) #16
  unreachable

853:                                              ; preds = %827
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr @test_count, align 4, !tbaa !5
  %856 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %367, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef null) #13
  %857 = icmp eq i32 %856, -1
  br i1 %857, label %880, label %858

858:                                              ; preds = %853
  %859 = load i32, ptr %453, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = call i32 @s2n_print_stacktrace(ptr noundef %860) #13
  %862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %863 = trunc nuw i8 %862 to i1
  br i1 %863, label %864, label %868

864:                                              ; preds = %858
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = call i32 @fileno(ptr noundef %865) #13
  %867 = call i32 @isatty(i32 noundef %866) #13
  %.not494 = icmp eq i32 %867, 0
  br i1 %.not494, label %868, label %869

868:                                              ; preds = %864, %858
  br label %869

869:                                              ; preds = %864, %868
  %.str.5.sink988 = phi ptr [ @.str.5, %868 ], [ @.str.2, %864 ]
  store i32 %859, ptr %453, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = load i32, ptr %399, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror(i32 noundef %872, ptr noundef nonnull @.str.4) #13
  %874 = load i32, ptr %399, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef nonnull @.str.4) #13
  %876 = load i32, ptr %453, align 4, !tbaa !5
  %877 = call ptr @strerror(i32 noundef %876) #13
  %878 = load i32, ptr %453, align 4, !tbaa !5
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %870, ptr noundef nonnull %.str.5.sink988, i32 noundef %871, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %873, ptr noundef %875, ptr noundef %877, i32 noundef %878) #15
  call void @exit(i32 noundef 1) #16
  unreachable

880:                                              ; preds = %853
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = add nsw i32 %881, 1
  store i32 %882, ptr @test_count, align 4, !tbaa !5
  %883 = load i32, ptr %399, align 4, !tbaa !5
  %884 = icmp eq i32 %883, 469762089
  br i1 %884, label %907, label %885

885:                                              ; preds = %880
  %886 = load i32, ptr %453, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @s2n_print_stacktrace(ptr noundef %887) #13
  %889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %890 = trunc nuw i8 %889 to i1
  br i1 %890, label %891, label %895

891:                                              ; preds = %885
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @fileno(ptr noundef %892) #13
  %894 = call i32 @isatty(i32 noundef %893) #13
  %.not495 = icmp eq i32 %894, 0
  br i1 %.not495, label %895, label %896

895:                                              ; preds = %891, %885
  br label %896

896:                                              ; preds = %891, %895
  %.str.5.sink997 = phi ptr [ @.str.5, %895 ], [ @.str.2, %891 ]
  store i32 %886, ptr %453, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = load i32, ptr %399, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror(i32 noundef %899, ptr noundef nonnull @.str.4) #13
  %901 = load i32, ptr %399, align 4, !tbaa !5
  %902 = call ptr @s2n_strerror_debug(i32 noundef %901, ptr noundef nonnull @.str.4) #13
  %903 = load i32, ptr %453, align 4, !tbaa !5
  %904 = call ptr @strerror(i32 noundef %903) #13
  %905 = load i32, ptr %453, align 4, !tbaa !5
  %906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %897, ptr noundef nonnull %.str.5.sink997, i32 noundef %898, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %900, ptr noundef %902, ptr noundef %904, i32 noundef %905) #15
  call void @exit(i32 noundef 1) #16
  unreachable

907:                                              ; preds = %880
  %908 = add nsw i32 %881, 2
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %910 = icmp eq ptr %909, null
  br i1 %910, label %911, label %933

911:                                              ; preds = %907
  %912 = load i32, ptr %453, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @s2n_print_stacktrace(ptr noundef %913) #13
  %915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %916 = trunc nuw i8 %915 to i1
  br i1 %916, label %917, label %921

917:                                              ; preds = %911
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @fileno(ptr noundef %918) #13
  %920 = call i32 @isatty(i32 noundef %919) #13
  %.not672 = icmp eq i32 %920, 0
  br i1 %.not672, label %921, label %922

921:                                              ; preds = %917, %911
  br label %922

922:                                              ; preds = %917, %921
  %.str.5.sink1006 = phi ptr [ @.str.5, %921 ], [ @.str.2, %917 ]
  store i32 %912, ptr %453, align 4, !tbaa !5
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = load i32, ptr %399, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef nonnull @.str.4) #13
  %927 = load i32, ptr %399, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef nonnull @.str.4) #13
  %929 = load i32, ptr %453, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #13
  %931 = load i32, ptr %453, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %923, ptr noundef nonnull %.str.5.sink1006, i32 noundef %924, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %926, ptr noundef %928, ptr noundef %930, i32 noundef %931) #15
  call void @exit(i32 noundef 1) #16
  unreachable

933:                                              ; preds = %907
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %934 = load i32, ptr @test_count, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr @test_count, align 4, !tbaa !5
  %936 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %367, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef null, ptr noundef nonnull %10) #13
  %937 = icmp eq i32 %936, -1
  br i1 %937, label %960, label %938

938:                                              ; preds = %933
  %939 = load i32, ptr %453, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = call i32 @s2n_print_stacktrace(ptr noundef %940) #13
  %942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %943 = trunc nuw i8 %942 to i1
  br i1 %943, label %944, label %948

944:                                              ; preds = %938
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @fileno(ptr noundef %945) #13
  %947 = call i32 @isatty(i32 noundef %946) #13
  %.not496 = icmp eq i32 %947, 0
  br i1 %.not496, label %948, label %949

948:                                              ; preds = %944, %938
  br label %949

949:                                              ; preds = %944, %948
  %.str.5.sink1015 = phi ptr [ @.str.5, %948 ], [ @.str.2, %944 ]
  store i32 %939, ptr %453, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = load i32, ptr %399, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror(i32 noundef %952, ptr noundef nonnull @.str.4) #13
  %954 = load i32, ptr %399, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %954, ptr noundef nonnull @.str.4) #13
  %956 = load i32, ptr %453, align 4, !tbaa !5
  %957 = call ptr @strerror(i32 noundef %956) #13
  %958 = load i32, ptr %453, align 4, !tbaa !5
  %959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %950, ptr noundef nonnull %.str.5.sink1015, i32 noundef %951, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %953, ptr noundef %955, ptr noundef %957, i32 noundef %958) #15
  call void @exit(i32 noundef 1) #16
  unreachable

960:                                              ; preds = %933
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr @test_count, align 4, !tbaa !5
  %963 = load i32, ptr %399, align 4, !tbaa !5
  %964 = icmp eq i32 %963, 469762089
  br i1 %964, label %987, label %965

965:                                              ; preds = %960
  %966 = load i32, ptr %453, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = call i32 @s2n_print_stacktrace(ptr noundef %967) #13
  %969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %970 = trunc nuw i8 %969 to i1
  br i1 %970, label %971, label %975

971:                                              ; preds = %965
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @fileno(ptr noundef %972) #13
  %974 = call i32 @isatty(i32 noundef %973) #13
  %.not497 = icmp eq i32 %974, 0
  br i1 %.not497, label %975, label %976

975:                                              ; preds = %971, %965
  br label %976

976:                                              ; preds = %971, %975
  %.str.5.sink1024 = phi ptr [ @.str.5, %975 ], [ @.str.2, %971 ]
  store i32 %966, ptr %453, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = load i32, ptr %399, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror(i32 noundef %979, ptr noundef nonnull @.str.4) #13
  %981 = load i32, ptr %399, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror_debug(i32 noundef %981, ptr noundef nonnull @.str.4) #13
  %983 = load i32, ptr %453, align 4, !tbaa !5
  %984 = call ptr @strerror(i32 noundef %983) #13
  %985 = load i32, ptr %453, align 4, !tbaa !5
  %986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef nonnull %.str.5.sink1024, i32 noundef %978, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %980, ptr noundef %982, ptr noundef %984, i32 noundef %985) #15
  call void @exit(i32 noundef 1) #16
  unreachable

987:                                              ; preds = %960
  %988 = add nsw i32 %961, 2
  store i32 %988, ptr @test_count, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %990 = icmp eq ptr %989, null
  br i1 %990, label %991, label %1013

991:                                              ; preds = %987
  %992 = load i32, ptr %453, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @s2n_print_stacktrace(ptr noundef %993) #13
  %995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %996 = trunc nuw i8 %995 to i1
  br i1 %996, label %997, label %1001

997:                                              ; preds = %991
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = call i32 @fileno(ptr noundef %998) #13
  %1000 = call i32 @isatty(i32 noundef %999) #13
  %.not671 = icmp eq i32 %1000, 0
  br i1 %.not671, label %1001, label %1002

1001:                                             ; preds = %997, %991
  br label %1002

1002:                                             ; preds = %997, %1001
  %.str.5.sink1033 = phi ptr [ @.str.5, %1001 ], [ @.str.2, %997 ]
  store i32 %992, ptr %453, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = load i32, ptr %399, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror(i32 noundef %1005, ptr noundef nonnull @.str.4) #13
  %1007 = load i32, ptr %399, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef nonnull @.str.4) #13
  %1009 = load i32, ptr %453, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #13
  %1011 = load i32, ptr %453, align 4, !tbaa !5
  %1012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1003, ptr noundef nonnull %.str.5.sink1033, i32 noundef %1004, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1006, ptr noundef %1008, ptr noundef %1010, i32 noundef %1011) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1013:                                             ; preds = %987
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr @test_count, align 4, !tbaa !5
  %1016 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %367, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %9, ptr noundef null) #13
  %1017 = icmp eq i32 %1016, -1
  br i1 %1017, label %1040, label %1018

1018:                                             ; preds = %1013
  %1019 = load i32, ptr %453, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @s2n_print_stacktrace(ptr noundef %1020) #13
  %1022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1023 = trunc nuw i8 %1022 to i1
  br i1 %1023, label %1024, label %1028

1024:                                             ; preds = %1018
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = call i32 @fileno(ptr noundef %1025) #13
  %1027 = call i32 @isatty(i32 noundef %1026) #13
  %.not498 = icmp eq i32 %1027, 0
  br i1 %.not498, label %1028, label %1029

1028:                                             ; preds = %1024, %1018
  br label %1029

1029:                                             ; preds = %1024, %1028
  %.str.5.sink1042 = phi ptr [ @.str.5, %1028 ], [ @.str.2, %1024 ]
  store i32 %1019, ptr %453, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = load i32, ptr %399, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror(i32 noundef %1032, ptr noundef nonnull @.str.4) #13
  %1034 = load i32, ptr %399, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror_debug(i32 noundef %1034, ptr noundef nonnull @.str.4) #13
  %1036 = load i32, ptr %453, align 4, !tbaa !5
  %1037 = call ptr @strerror(i32 noundef %1036) #13
  %1038 = load i32, ptr %453, align 4, !tbaa !5
  %1039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef nonnull %.str.5.sink1042, i32 noundef %1031, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1033, ptr noundef %1035, ptr noundef %1037, i32 noundef %1038) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1040:                                             ; preds = %1013
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr @test_count, align 4, !tbaa !5
  %1043 = load i32, ptr %399, align 4, !tbaa !5
  %1044 = icmp eq i32 %1043, 469762089
  br i1 %1044, label %1067, label %1045

1045:                                             ; preds = %1040
  %1046 = load i32, ptr %453, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = call i32 @s2n_print_stacktrace(ptr noundef %1047) #13
  %1049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1050 = trunc nuw i8 %1049 to i1
  br i1 %1050, label %1051, label %1055

1051:                                             ; preds = %1045
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @fileno(ptr noundef %1052) #13
  %1054 = call i32 @isatty(i32 noundef %1053) #13
  %.not499 = icmp eq i32 %1054, 0
  br i1 %.not499, label %1055, label %1056

1055:                                             ; preds = %1051, %1045
  br label %1056

1056:                                             ; preds = %1051, %1055
  %.str.5.sink1051 = phi ptr [ @.str.5, %1055 ], [ @.str.2, %1051 ]
  store i32 %1046, ptr %453, align 4, !tbaa !5
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = load i32, ptr @test_count, align 4, !tbaa !5
  %1059 = load i32, ptr %399, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef nonnull @.str.4) #13
  %1061 = load i32, ptr %399, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror_debug(i32 noundef %1061, ptr noundef nonnull @.str.4) #13
  %1063 = load i32, ptr %453, align 4, !tbaa !5
  %1064 = call ptr @strerror(i32 noundef %1063) #13
  %1065 = load i32, ptr %453, align 4, !tbaa !5
  %1066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1057, ptr noundef nonnull %.str.5.sink1051, i32 noundef %1058, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1060, ptr noundef %1062, ptr noundef %1064, i32 noundef %1065) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1067:                                             ; preds = %1040
  %1068 = add nsw i32 %1041, 2
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %1070 = icmp eq ptr %1069, null
  br i1 %1070, label %1071, label %1093

1071:                                             ; preds = %1067
  %1072 = load i32, ptr %453, 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 = %1071
  %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
  %.not670 = icmp eq i32 %1080, 0
  br i1 %.not670, label %1081, label %1082

1081:                                             ; preds = %1077, %1071
  br label %1082

1082:                                             ; preds = %1077, %1081
  %.str.5.sink1060 = phi ptr [ @.str.5, %1081 ], [ @.str.2, %1077 ]
  store i32 %1072, ptr %453, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = load i32, ptr %399, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef nonnull @.str.4) #13
  %1087 = load i32, ptr %399, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef nonnull @.str.4) #13
  %1089 = load i32, ptr %453, align 4, !tbaa !5
  %1090 = call ptr @strerror(i32 noundef %1089) #13
  %1091 = load i32, ptr %453, align 4, !tbaa !5
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.5.sink1060, i32 noundef %1084, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1086, ptr noundef %1088, ptr noundef %1090, i32 noundef %1091) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1093:                                             ; preds = %1067
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = add nsw i32 %1094, 1
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %367, i32 noundef 1, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %9) #13
  %1097 = icmp eq i32 %1096, -1
  br i1 %1097, label %1120, label %1098

1098:                                             ; preds = %1093
  %1099 = load i32, ptr %453, align 4, !tbaa !5
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @s2n_print_stacktrace(ptr noundef %1100) #13
  %1102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1103 = trunc nuw i8 %1102 to i1
  br i1 %1103, label %1104, label %1108

1104:                                             ; preds = %1098
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = call i32 @fileno(ptr noundef %1105) #13
  %1107 = call i32 @isatty(i32 noundef %1106) #13
  %.not500 = icmp eq i32 %1107, 0
  br i1 %.not500, label %1108, label %1109

1108:                                             ; preds = %1104, %1098
  br label %1109

1109:                                             ; preds = %1104, %1108
  %.str.5.sink1069 = phi ptr [ @.str.5, %1108 ], [ @.str.2, %1104 ]
  store i32 %1099, ptr %453, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = load i32, ptr %399, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef nonnull @.str.4) #13
  %1114 = load i32, ptr %399, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef nonnull @.str.4) #13
  %1116 = load i32, ptr %453, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #13
  %1118 = load i32, ptr %453, align 4, !tbaa !5
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef nonnull %.str.5.sink1069, i32 noundef %1111, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1113, ptr noundef %1115, ptr noundef %1117, i32 noundef %1118) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1120:                                             ; preds = %1093
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = add nsw i32 %1121, 1
  store i32 %1122, ptr @test_count, align 4, !tbaa !5
  %1123 = load i32, ptr %399, align 4, !tbaa !5
  %1124 = icmp eq i32 %1123, 469762089
  br i1 %1124, label %1147, label %1125

1125:                                             ; preds = %1120
  %1126 = load i32, ptr %453, align 4, !tbaa !5
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = call i32 @s2n_print_stacktrace(ptr noundef %1127) #13
  %1129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1130 = trunc nuw i8 %1129 to i1
  br i1 %1130, label %1131, label %1135

1131:                                             ; preds = %1125
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = call i32 @fileno(ptr noundef %1132) #13
  %1134 = call i32 @isatty(i32 noundef %1133) #13
  %.not501 = icmp eq i32 %1134, 0
  br i1 %.not501, label %1135, label %1136

1135:                                             ; preds = %1131, %1125
  br label %1136

1136:                                             ; preds = %1131, %1135
  %.str.5.sink1078 = phi ptr [ @.str.5, %1135 ], [ @.str.2, %1131 ]
  store i32 %1126, ptr %453, align 4, !tbaa !5
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = load i32, ptr %399, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror(i32 noundef %1139, ptr noundef nonnull @.str.4) #13
  %1141 = load i32, ptr %399, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror_debug(i32 noundef %1141, ptr noundef nonnull @.str.4) #13
  %1143 = load i32, ptr %453, align 4, !tbaa !5
  %1144 = call ptr @strerror(i32 noundef %1143) #13
  %1145 = load i32, ptr %453, align 4, !tbaa !5
  %1146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1137, ptr noundef nonnull %.str.5.sink1078, i32 noundef %1138, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1140, ptr noundef %1142, ptr noundef %1144, i32 noundef %1145) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1147:                                             ; preds = %1120
  %1148 = add nsw i32 %1121, 2
  store i32 %1148, ptr @test_count, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %1150 = icmp eq ptr %1149, null
  br i1 %1150, label %1151, label %1173

1151:                                             ; preds = %1147
  %1152 = load i32, ptr %453, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @s2n_print_stacktrace(ptr noundef %1153) #13
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1156 = trunc nuw i8 %1155 to i1
  br i1 %1156, label %1157, label %1161

1157:                                             ; preds = %1151
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @fileno(ptr noundef %1158) #13
  %1160 = call i32 @isatty(i32 noundef %1159) #13
  %.not669 = icmp eq i32 %1160, 0
  br i1 %.not669, label %1161, label %1162

1161:                                             ; preds = %1157, %1151
  br label %1162

1162:                                             ; preds = %1157, %1161
  %.str.5.sink1087 = phi ptr [ @.str.5, %1161 ], [ @.str.2, %1157 ]
  store i32 %1152, ptr %453, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = load i32, ptr %399, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.4) #13
  %1167 = load i32, ptr %399, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.4) #13
  %1169 = load i32, ptr %453, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #13
  %1171 = load i32, ptr %453, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef nonnull %.str.5.sink1087, i32 noundef %1164, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1173:                                             ; preds = %1147
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = add nsw i32 %1174, 1
  store i32 %1175, ptr @test_count, align 4, !tbaa !5
  %1176 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %367, i32 noundef 1, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %9, ptr noundef nonnull %10) #13
  %1177 = icmp eq i32 %1176, -1
  br i1 %1177, label %1200, label %1178

1178:                                             ; preds = %1173
  %1179 = load i32, ptr %453, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @s2n_print_stacktrace(ptr noundef %1180) #13
  %1182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1183 = trunc nuw i8 %1182 to i1
  br i1 %1183, label %1184, label %1188

1184:                                             ; preds = %1178
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = call i32 @fileno(ptr noundef %1185) #13
  %1187 = call i32 @isatty(i32 noundef %1186) #13
  %.not502 = icmp eq i32 %1187, 0
  br i1 %.not502, label %1188, label %1189

1188:                                             ; preds = %1184, %1178
  br label %1189

1189:                                             ; preds = %1184, %1188
  %.str.5.sink1096 = phi ptr [ @.str.5, %1188 ], [ @.str.2, %1184 ]
  store i32 %1179, ptr %453, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = load i32, ptr %399, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror(i32 noundef %1192, ptr noundef nonnull @.str.4) #13
  %1194 = load i32, ptr %399, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef nonnull @.str.4) #13
  %1196 = load i32, ptr %453, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #13
  %1198 = load i32, ptr %453, align 4, !tbaa !5
  %1199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef nonnull %.str.5.sink1096, i32 noundef %1191, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1193, ptr noundef %1195, ptr noundef %1197, i32 noundef %1198) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1200:                                             ; preds = %1173
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = load i32, ptr %399, align 4, !tbaa !5
  %1204 = icmp eq i32 %1203, 469762089
  br i1 %1204, label %1227, label %1205

1205:                                             ; preds = %1200
  %1206 = load i32, ptr %453, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @s2n_print_stacktrace(ptr noundef %1207) #13
  %1209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1210 = trunc nuw i8 %1209 to i1
  br i1 %1210, label %1211, label %1215

1211:                                             ; preds = %1205
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = call i32 @fileno(ptr noundef %1212) #13
  %1214 = call i32 @isatty(i32 noundef %1213) #13
  %.not503 = icmp eq i32 %1214, 0
  br i1 %.not503, label %1215, label %1216

1215:                                             ; preds = %1211, %1205
  br label %1216

1216:                                             ; preds = %1211, %1215
  %.str.5.sink1105 = phi ptr [ @.str.5, %1215 ], [ @.str.2, %1211 ]
  store i32 %1206, ptr %453, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = load i32, ptr %399, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror(i32 noundef %1219, ptr noundef nonnull @.str.4) #13
  %1221 = load i32, ptr %399, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror_debug(i32 noundef %1221, ptr noundef nonnull @.str.4) #13
  %1223 = load i32, ptr %453, align 4, !tbaa !5
  %1224 = call ptr @strerror(i32 noundef %1223) #13
  %1225 = load i32, ptr %453, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1217, ptr noundef nonnull %.str.5.sink1105, i32 noundef %1218, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1220, ptr noundef %1222, ptr noundef %1224, i32 noundef %1225) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1227:                                             ; preds = %1200
  %1228 = add nsw i32 %1201, 2
  store i32 %1228, ptr @test_count, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #13
  %1230 = icmp eq ptr %1229, null
  br i1 %1230, label %1231, label %1253

1231:                                             ; preds = %1227
  %1232 = load i32, ptr %453, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @s2n_print_stacktrace(ptr noundef %1233) #13
  %1235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1236 = trunc nuw i8 %1235 to i1
  br i1 %1236, label %1237, label %1241

1237:                                             ; preds = %1231
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 @fileno(ptr noundef %1238) #13
  %1240 = call i32 @isatty(i32 noundef %1239) #13
  %.not668 = icmp eq i32 %1240, 0
  br i1 %.not668, label %1241, label %1242

1241:                                             ; preds = %1237, %1231
  br label %1242

1242:                                             ; preds = %1237, %1241
  %.str.5.sink1114 = phi ptr [ @.str.5, %1241 ], [ @.str.2, %1237 ]
  store i32 %1232, ptr %453, align 4, !tbaa !5
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = load i32, ptr %399, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror(i32 noundef %1245, ptr noundef nonnull @.str.4) #13
  %1247 = load i32, ptr %399, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror_debug(i32 noundef %1247, ptr noundef nonnull @.str.4) #13
  %1249 = load i32, ptr %453, align 4, !tbaa !5
  %1250 = call ptr @strerror(i32 noundef %1249) #13
  %1251 = load i32, ptr %453, align 4, !tbaa !5
  %1252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1243, ptr noundef nonnull %.str.5.sink1114, i32 noundef %1244, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1246, ptr noundef %1248, ptr noundef %1250, i32 noundef %1251) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1253:                                             ; preds = %1227
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #13
  %1254 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #13
  %1255 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %1255, ptr %11, align 8, !tbaa !9
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = add nsw i32 %1256, 1
  store i32 %1257, ptr @test_count, align 4, !tbaa !5
  %1258 = icmp eq ptr %1255, null
  br i1 %1258, label %1259, label %1281

1259:                                             ; preds = %1253
  %1260 = load i32, ptr %453, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @s2n_print_stacktrace(ptr noundef %1261) #13
  %1263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1264 = trunc nuw i8 %1263 to i1
  br i1 %1264, label %1265, label %1269

1265:                                             ; preds = %1259
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 @fileno(ptr noundef %1266) #13
  %1268 = call i32 @isatty(i32 noundef %1267) #13
  %.not667 = icmp eq i32 %1268, 0
  br i1 %.not667, label %1269, label %1270

1269:                                             ; preds = %1265, %1259
  br label %1270

1270:                                             ; preds = %1265, %1269
  %.str.5.sink1123 = phi ptr [ @.str.5, %1269 ], [ @.str.2, %1265 ]
  store i32 %1260, ptr %453, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = load i32, ptr %399, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror(i32 noundef %1273, ptr noundef nonnull @.str.4) #13
  %1275 = load i32, ptr %399, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror_debug(i32 noundef %1275, ptr noundef nonnull @.str.4) #13
  %1277 = load i32, ptr %453, align 4, !tbaa !5
  %1278 = call ptr @strerror(i32 noundef %1277) #13
  %1279 = load i32, ptr %453, align 4, !tbaa !5
  %1280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef nonnull %.str.5.sink1123, i32 noundef %1272, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1274, ptr noundef %1276, ptr noundef %1278, i32 noundef %1279) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1281:                                             ; preds = %1253
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #13
  %1282 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1282, ptr %12, align 8, !tbaa !9
  %1283 = load i32, ptr @test_count, align 4, !tbaa !5
  %1284 = add nsw i32 %1283, 1
  store i32 %1284, ptr @test_count, align 4, !tbaa !5
  %1285 = icmp eq ptr %1282, null
  br i1 %1285, label %1286, label %1308

1286:                                             ; preds = %1281
  %1287 = load i32, ptr %453, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @s2n_print_stacktrace(ptr noundef %1288) #13
  %1290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1291 = trunc nuw i8 %1290 to i1
  br i1 %1291, label %1292, label %1296

1292:                                             ; preds = %1286
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = call i32 @fileno(ptr noundef %1293) #13
  %1295 = call i32 @isatty(i32 noundef %1294) #13
  %.not666 = icmp eq i32 %1295, 0
  br i1 %.not666, label %1296, label %1297

1296:                                             ; preds = %1292, %1286
  br label %1297

1297:                                             ; preds = %1292, %1296
  %.str.5.sink1132 = phi ptr [ @.str.5, %1296 ], [ @.str.2, %1292 ]
  store i32 %1287, ptr %453, align 4, !tbaa !5
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1299 = load i32, ptr @test_count, align 4, !tbaa !5
  %1300 = load i32, ptr %399, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror(i32 noundef %1300, ptr noundef nonnull @.str.4) #13
  %1302 = load i32, ptr %399, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef %1302, ptr noundef nonnull @.str.4) #13
  %1304 = load i32, ptr %453, align 4, !tbaa !5
  %1305 = call ptr @strerror(i32 noundef %1304) #13
  %1306 = load i32, ptr %453, align 4, !tbaa !5
  %1307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1298, ptr noundef nonnull %.str.5.sink1132, i32 noundef %1299, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %1301, ptr noundef %1303, ptr noundef %1305, i32 noundef %1306) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1308:                                             ; preds = %1281
  %1309 = add nsw i32 %1283, 2
  store i32 %1309, ptr @test_count, align 4, !tbaa !5
  %1310 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1282, ptr noundef nonnull %192) #13
  %1311 = icmp eq i32 %1310, -1
  br i1 %1311, label %1312, label %1334

1312:                                             ; preds = %1308
  %1313 = load i32, ptr %453, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @s2n_print_stacktrace(ptr noundef %1314) #13
  %1316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1317 = trunc nuw i8 %1316 to i1
  br i1 %1317, label %1318, label %1322

1318:                                             ; preds = %1312
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = call i32 @fileno(ptr noundef %1319) #13
  %1321 = call i32 @isatty(i32 noundef %1320) #13
  %.not665 = icmp eq i32 %1321, 0
  br i1 %.not665, label %1322, label %1323

1322:                                             ; preds = %1318, %1312
  br label %1323

1323:                                             ; preds = %1318, %1322
  %.str.5.sink1141 = phi ptr [ @.str.5, %1322 ], [ @.str.2, %1318 ]
  store i32 %1313, ptr %453, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = load i32, ptr @test_count, align 4, !tbaa !5
  %1326 = load i32, ptr %399, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror(i32 noundef %1326, ptr noundef nonnull @.str.4) #13
  %1328 = load i32, ptr %399, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror_debug(i32 noundef %1328, ptr noundef nonnull @.str.4) #13
  %1330 = load i32, ptr %453, align 4, !tbaa !5
  %1331 = call ptr @strerror(i32 noundef %1330) #13
  %1332 = load i32, ptr %453, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1324, ptr noundef nonnull %.str.5.sink1141, i32 noundef %1325, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1327, ptr noundef %1329, ptr noundef %1331, i32 noundef %1332) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1334:                                             ; preds = %1308
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, 1
  store i32 %1336, ptr @test_count, align 4, !tbaa !5
  %1337 = load ptr, ptr %11, align 8, !tbaa !9
  %1338 = call i32 @s2n_client_hello_send(ptr noundef %1337) #13
  %1339 = icmp eq i32 %1338, -1
  br i1 %1339, label %1340, label %1362

1340:                                             ; preds = %1334
  %1341 = load i32, ptr %453, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = call i32 @s2n_print_stacktrace(ptr noundef %1342) #13
  %1344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1345 = trunc nuw i8 %1344 to i1
  br i1 %1345, label %1346, label %1350

1346:                                             ; preds = %1340
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @fileno(ptr noundef %1347) #13
  %1349 = call i32 @isatty(i32 noundef %1348) #13
  %.not664 = icmp eq i32 %1349, 0
  br i1 %.not664, label %1350, label %1351

1350:                                             ; preds = %1346, %1340
  br label %1351

1351:                                             ; preds = %1346, %1350
  %.str.5.sink1150 = phi ptr [ @.str.5, %1350 ], [ @.str.2, %1346 ]
  store i32 %1341, ptr %453, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = load i32, ptr %399, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror(i32 noundef %1354, ptr noundef nonnull @.str.4) #13
  %1356 = load i32, ptr %399, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror_debug(i32 noundef %1356, ptr noundef nonnull @.str.4) #13
  %1358 = load i32, ptr %453, align 4, !tbaa !5
  %1359 = call ptr @strerror(i32 noundef %1358) #13
  %1360 = load i32, ptr %453, align 4, !tbaa !5
  %1361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1352, ptr noundef nonnull %.str.5.sink1150, i32 noundef %1353, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1355, ptr noundef %1357, ptr noundef %1359, i32 noundef %1360) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1362:                                             ; preds = %1334
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = add nsw i32 %1363, 1
  store i32 %1364, ptr @test_count, align 4, !tbaa !5
  %1365 = load ptr, ptr %11, align 8, !tbaa !9
  %1366 = getelementptr inbounds i8, ptr %1365, i64 2016
  %1367 = load ptr, ptr %12, align 8, !tbaa !9
  %1368 = getelementptr inbounds i8, ptr %1367, i64 2016
  %1369 = getelementptr inbounds i8, ptr %1365, i64 2044
  %1370 = load i32, ptr %1369, align 4, !tbaa !15
  %1371 = getelementptr inbounds i8, ptr %1365, i64 2040
  %1372 = load i32, ptr %1371, align 8, !tbaa !42
  %1373 = sub i32 %1370, %1372
  %1374 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1366, ptr noundef nonnull %1368, i32 noundef %1373) #13
  %1375 = icmp eq i32 %1374, -1
  br i1 %1375, label %1376, label %1398

1376:                                             ; preds = %1362
  %1377 = load i32, ptr %453, align 4, !tbaa !5
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = call i32 @s2n_print_stacktrace(ptr noundef %1378) #13
  %1380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1381 = trunc nuw i8 %1380 to i1
  br i1 %1381, label %1382, label %1386

1382:                                             ; preds = %1376
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = call i32 @fileno(ptr noundef %1383) #13
  %1385 = call i32 @isatty(i32 noundef %1384) #13
  %.not663 = icmp eq i32 %1385, 0
  br i1 %.not663, label %1386, label %1387

1386:                                             ; preds = %1382, %1376
  br label %1387

1387:                                             ; preds = %1382, %1386
  %.str.5.sink1159 = phi ptr [ @.str.5, %1386 ], [ @.str.2, %1382 ]
  store i32 %1377, ptr %453, align 4, !tbaa !5
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = load i32, ptr @test_count, align 4, !tbaa !5
  %1390 = load i32, ptr %399, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror(i32 noundef %1390, ptr noundef nonnull @.str.4) #13
  %1392 = load i32, ptr %399, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror_debug(i32 noundef %1392, ptr noundef nonnull @.str.4) #13
  %1394 = load i32, ptr %453, align 4, !tbaa !5
  %1395 = call ptr @strerror(i32 noundef %1394) #13
  %1396 = load i32, ptr %453, align 4, !tbaa !5
  %1397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1388, ptr noundef nonnull %.str.5.sink1159, i32 noundef %1389, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1391, ptr noundef %1393, ptr noundef %1395, i32 noundef %1396) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1398:                                             ; preds = %1362
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = add nsw i32 %1399, 1
  store i32 %1400, ptr @test_count, align 4, !tbaa !5
  %1401 = load ptr, ptr %12, align 8, !tbaa !9
  %1402 = call i32 @s2n_client_hello_recv(ptr noundef %1401) #13
  %1403 = icmp eq i32 %1402, -1
  br i1 %1403, label %1404, label %1426

1404:                                             ; preds = %1398
  %1405 = load i32, ptr %453, align 4, !tbaa !5
  %1406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1407 = call i32 @s2n_print_stacktrace(ptr noundef %1406) #13
  %1408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1409 = trunc nuw i8 %1408 to i1
  br i1 %1409, label %1410, label %1414

1410:                                             ; preds = %1404
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @fileno(ptr noundef %1411) #13
  %1413 = call i32 @isatty(i32 noundef %1412) #13
  %.not662 = icmp eq i32 %1413, 0
  br i1 %.not662, label %1414, label %1415

1414:                                             ; preds = %1410, %1404
  br label %1415

1415:                                             ; preds = %1410, %1414
  %.str.5.sink1168 = phi ptr [ @.str.5, %1414 ], [ @.str.2, %1410 ]
  store i32 %1405, ptr %453, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = load i32, ptr %399, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror(i32 noundef %1418, ptr noundef nonnull @.str.4) #13
  %1420 = load i32, ptr %399, align 4, !tbaa !5
  %1421 = call ptr @s2n_strerror_debug(i32 noundef %1420, ptr noundef nonnull @.str.4) #13
  %1422 = load i32, ptr %453, align 4, !tbaa !5
  %1423 = call ptr @strerror(i32 noundef %1422) #13
  %1424 = load i32, ptr %453, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1416, ptr noundef nonnull %.str.5.sink1168, i32 noundef %1417, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1419, ptr noundef %1421, ptr noundef %1423, i32 noundef %1424) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1426:                                             ; preds = %1398
  %1427 = load ptr, ptr %12, align 8, !tbaa !9
  %1428 = call ptr @s2n_connection_get_client_hello(ptr noundef %1427) #13
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = add nsw i32 %1429, 1
  store i32 %1430, ptr @test_count, align 4, !tbaa !5
  %1431 = icmp eq ptr %1428, null
  br i1 %1431, label %1432, label %1454

1432:                                             ; preds = %1426
  %1433 = load i32, ptr %453, align 4, !tbaa !5
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = call i32 @s2n_print_stacktrace(ptr noundef %1434) #13
  %1436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1437 = trunc nuw i8 %1436 to i1
  br i1 %1437, label %1438, label %1442

1438:                                             ; preds = %1432
  %1439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1440 = call i32 @fileno(ptr noundef %1439) #13
  %1441 = call i32 @isatty(i32 noundef %1440) #13
  %.not661 = icmp eq i32 %1441, 0
  br i1 %.not661, label %1442, label %1443

1442:                                             ; preds = %1438, %1432
  br label %1443

1443:                                             ; preds = %1438, %1442
  %.str.5.sink1177 = phi ptr [ @.str.5, %1442 ], [ @.str.2, %1438 ]
  store i32 %1433, ptr %453, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = load i32, ptr %399, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror(i32 noundef %1446, ptr noundef nonnull @.str.4) #13
  %1448 = load i32, ptr %399, align 4, !tbaa !5
  %1449 = call ptr @s2n_strerror_debug(i32 noundef %1448, ptr noundef nonnull @.str.4) #13
  %1450 = load i32, ptr %453, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #13
  %1452 = load i32, ptr %453, align 4, !tbaa !5
  %1453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1444, ptr noundef nonnull %.str.5.sink1177, i32 noundef %1445, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1447, ptr noundef %1449, ptr noundef %1451, i32 noundef %1452) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1454:                                             ; preds = %1426
  %1455 = add nsw i32 %1429, 2
  store i32 %1455, ptr @test_count, align 4, !tbaa !5
  %1456 = getelementptr inbounds i8, ptr %1428, i64 802
  %1457 = load i8, ptr %1456, align 2
  %1458 = and i8 %1457, 32
  %.not504 = icmp eq i8 %1458, 0
  br i1 %.not504, label %1481, label %1459

1459:                                             ; preds = %1454
  %1460 = load i32, ptr %453, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = call i32 @s2n_print_stacktrace(ptr noundef %1461) #13
  %1463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1464 = trunc nuw i8 %1463 to i1
  br i1 %1464, label %1465, label %1469

1465:                                             ; preds = %1459
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = call i32 @fileno(ptr noundef %1466) #13
  %1468 = call i32 @isatty(i32 noundef %1467) #13
  %.not660 = icmp eq i32 %1468, 0
  br i1 %.not660, label %1469, label %1470

1469:                                             ; preds = %1465, %1459
  br label %1470

1470:                                             ; preds = %1465, %1469
  %.str.5.sink1186 = phi ptr [ @.str.5, %1469 ], [ @.str.2, %1465 ]
  store i32 %1460, ptr %453, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %1473 = load i32, ptr %399, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror(i32 noundef %1473, ptr noundef nonnull @.str.4) #13
  %1475 = load i32, ptr %399, align 4, !tbaa !5
  %1476 = call ptr @s2n_strerror_debug(i32 noundef %1475, ptr noundef nonnull @.str.4) #13
  %1477 = load i32, ptr %453, align 4, !tbaa !5
  %1478 = call ptr @strerror(i32 noundef %1477) #13
  %1479 = load i32, ptr %453, align 4, !tbaa !5
  %1480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1471, ptr noundef nonnull %.str.5.sink1186, i32 noundef %1472, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1474, ptr noundef %1476, ptr noundef %1478, i32 noundef %1479) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1481:                                             ; preds = %1454
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #13
  store i32 0, ptr %13, align 4, !tbaa !5
  %1482 = add nsw i32 %1429, 3
  store i32 %1482, ptr @test_count, align 4, !tbaa !5
  %1483 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %1428, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %13) #13
  %1484 = icmp eq i32 %1483, -1
  br i1 %1484, label %1485, label %1507

1485:                                             ; preds = %1481
  %1486 = load i32, ptr %453, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = call i32 @s2n_print_stacktrace(ptr noundef %1487) #13
  %1489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1490 = trunc nuw i8 %1489 to i1
  br i1 %1490, label %1491, label %1495

1491:                                             ; preds = %1485
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1493 = call i32 @fileno(ptr noundef %1492) #13
  %1494 = call i32 @isatty(i32 noundef %1493) #13
  %.not659 = icmp eq i32 %1494, 0
  br i1 %.not659, label %1495, label %1496

1495:                                             ; preds = %1491, %1485
  br label %1496

1496:                                             ; preds = %1491, %1495
  %.str.5.sink1195 = phi ptr [ @.str.5, %1495 ], [ @.str.2, %1491 ]
  store i32 %1486, ptr %453, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = load i32, ptr %399, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror(i32 noundef %1499, ptr noundef nonnull @.str.4) #13
  %1501 = load i32, ptr %399, align 4, !tbaa !5
  %1502 = call ptr @s2n_strerror_debug(i32 noundef %1501, ptr noundef nonnull @.str.4) #13
  %1503 = load i32, ptr %453, align 4, !tbaa !5
  %1504 = call ptr @strerror(i32 noundef %1503) #13
  %1505 = load i32, ptr %453, align 4, !tbaa !5
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1497, ptr noundef nonnull %.str.5.sink1195, i32 noundef %1498, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %1500, ptr noundef %1502, ptr noundef %1504, i32 noundef %1505) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1507:                                             ; preds = %1481
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = load i32, ptr %13, align 4, !tbaa !5
  %1511 = call i32 @s2n_validate_ja3_str(ptr noundef nonnull %3, i32 noundef %1510, ptr noundef nonnull @.str.41)
  %1512 = call zeroext i1 @s2n_result_is_ok(i32 %1511)
  br i1 %1512, label %1535, label %1513

1513:                                             ; preds = %1507
  %1514 = load i32, ptr %453, align 4, !tbaa !5
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = call i32 @s2n_print_stacktrace(ptr noundef %1515) #13
  %1517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1518 = trunc nuw i8 %1517 to i1
  br i1 %1518, label %1519, label %1523

1519:                                             ; preds = %1513
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = call i32 @fileno(ptr noundef %1520) #13
  %1522 = call i32 @isatty(i32 noundef %1521) #13
  %.not505 = icmp eq i32 %1522, 0
  br i1 %.not505, label %1523, label %1524

1523:                                             ; preds = %1519, %1513
  br label %1524

1524:                                             ; preds = %1519, %1523
  %.str.5.sink1204 = phi ptr [ @.str.5, %1523 ], [ @.str.2, %1519 ]
  store i32 %1514, ptr %453, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = load i32, ptr @test_count, align 4, !tbaa !5
  %1527 = load i32, ptr %399, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror(i32 noundef %1527, ptr noundef nonnull @.str.4) #13
  %1529 = load i32, ptr %399, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror_debug(i32 noundef %1529, ptr noundef nonnull @.str.4) #13
  %1531 = load i32, ptr %453, align 4, !tbaa !5
  %1532 = call ptr @strerror(i32 noundef %1531) #13
  %1533 = load i32, ptr %453, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1525, ptr noundef nonnull %.str.5.sink1204, i32 noundef %1526, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1528, ptr noundef %1530, ptr noundef %1532, i32 noundef %1533) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1535:                                             ; preds = %1507
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #13
  %1536 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #13
  %1537 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #13
  %1538 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1538, ptr %14, align 8, !tbaa !9
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = add nsw i32 %1539, 1
  store i32 %1540, ptr @test_count, align 4, !tbaa !5
  %1541 = icmp eq ptr %1538, null
  br i1 %1541, label %1542, label %1564

1542:                                             ; preds = %1535
  %1543 = load i32, ptr %453, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @s2n_print_stacktrace(ptr noundef %1544) #13
  %1546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1547 = trunc nuw i8 %1546 to i1
  br i1 %1547, label %1548, label %1552

1548:                                             ; preds = %1542
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = call i32 @fileno(ptr noundef %1549) #13
  %1551 = call i32 @isatty(i32 noundef %1550) #13
  %.not658 = icmp eq i32 %1551, 0
  br i1 %.not658, label %1552, label %1553

1552:                                             ; preds = %1548, %1542
  br label %1553

1553:                                             ; preds = %1548, %1552
  %.str.5.sink1213 = phi ptr [ @.str.5, %1552 ], [ @.str.2, %1548 ]
  store i32 %1543, ptr %453, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = load i32, ptr @test_count, align 4, !tbaa !5
  %1556 = load i32, ptr %399, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef nonnull @.str.4) #13
  %1558 = load i32, ptr %399, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror_debug(i32 noundef %1558, ptr noundef nonnull @.str.4) #13
  %1560 = load i32, ptr %453, align 4, !tbaa !5
  %1561 = call ptr @strerror(i32 noundef %1560) #13
  %1562 = load i32, ptr %453, align 4, !tbaa !5
  %1563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1554, ptr noundef nonnull %.str.5.sink1213, i32 noundef %1555, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %1557, ptr noundef %1559, ptr noundef %1561, i32 noundef %1562) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1564:                                             ; preds = %1535
  %1565 = add nsw i32 %1539, 2
  store i32 %1565, ptr @test_count, align 4, !tbaa !5
  %1566 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1538, ptr noundef nonnull %192) #13
  %1567 = icmp eq i32 %1566, -1
  br i1 %1567, label %1568, label %1590

1568:                                             ; preds = %1564
  %1569 = load i32, ptr %453, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = call i32 @s2n_print_stacktrace(ptr noundef %1570) #13
  %1572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1573 = trunc nuw i8 %1572 to i1
  br i1 %1573, label %1574, label %1578

1574:                                             ; preds = %1568
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = call i32 @fileno(ptr noundef %1575) #13
  %1577 = call i32 @isatty(i32 noundef %1576) #13
  %.not657 = icmp eq i32 %1577, 0
  br i1 %.not657, label %1578, label %1579

1578:                                             ; preds = %1574, %1568
  br label %1579

1579:                                             ; preds = %1574, %1578
  %.str.5.sink1222 = phi ptr [ @.str.5, %1578 ], [ @.str.2, %1574 ]
  store i32 %1569, ptr %453, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = load i32, ptr %399, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror(i32 noundef %1582, ptr noundef nonnull @.str.4) #13
  %1584 = load i32, ptr %399, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror_debug(i32 noundef %1584, ptr noundef nonnull @.str.4) #13
  %1586 = load i32, ptr %453, align 4, !tbaa !5
  %1587 = call ptr @strerror(i32 noundef %1586) #13
  %1588 = load i32, ptr %453, align 4, !tbaa !5
  %1589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1580, ptr noundef nonnull %.str.5.sink1222, i32 noundef %1581, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %1583, ptr noundef %1585, ptr noundef %1587, i32 noundef %1588) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1590:                                             ; preds = %1564
  %1591 = load i32, ptr @test_count, align 4, !tbaa !5
  %1592 = add nsw i32 %1591, 1
  store i32 %1592, ptr @test_count, align 4, !tbaa !5
  %1593 = load ptr, ptr %14, align 8, !tbaa !9
  %1594 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1593, ptr noundef nonnull @.str.13) #13
  %1595 = icmp eq i32 %1594, -1
  br i1 %1595, label %1596, label %1618

1596:                                             ; preds = %1590
  %1597 = load i32, ptr %453, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = call i32 @s2n_print_stacktrace(ptr noundef %1598) #13
  %1600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1601 = trunc nuw i8 %1600 to i1
  br i1 %1601, label %1602, label %1606

1602:                                             ; preds = %1596
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = call i32 @fileno(ptr noundef %1603) #13
  %1605 = call i32 @isatty(i32 noundef %1604) #13
  %.not656 = icmp eq i32 %1605, 0
  br i1 %.not656, label %1606, label %1607

1606:                                             ; preds = %1602, %1596
  br label %1607

1607:                                             ; preds = %1602, %1606
  %.str.5.sink1231 = phi ptr [ @.str.5, %1606 ], [ @.str.2, %1602 ]
  store i32 %1597, ptr %453, align 4, !tbaa !5
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = load i32, ptr %399, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror(i32 noundef %1610, ptr noundef nonnull @.str.4) #13
  %1612 = load i32, ptr %399, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror_debug(i32 noundef %1612, ptr noundef nonnull @.str.4) #13
  %1614 = load i32, ptr %453, align 4, !tbaa !5
  %1615 = call ptr @strerror(i32 noundef %1614) #13
  %1616 = load i32, ptr %453, align 4, !tbaa !5
  %1617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1608, ptr noundef nonnull %.str.5.sink1231, i32 noundef %1609, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %1611, ptr noundef %1613, ptr noundef %1615, i32 noundef %1616) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1618:                                             ; preds = %1590
  %1619 = load ptr, ptr %14, align 8, !tbaa !9
  %1620 = getelementptr inbounds i8, ptr %1619, i64 217
  store i8 20, ptr %1620, align 1, !tbaa !43
  %1621 = getelementptr inbounds i8, ptr %1619, i64 218
  store i8 33, ptr %1621, align 2, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %15) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(176) %15, ptr noundef nonnull align 16 dereferenceable(176) @__const.main.sslv2_client_hello, i64 176, i1 false)
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = add nsw i32 %1622, 1
  store i32 %1623, ptr @test_count, align 4, !tbaa !5
  %1624 = getelementptr inbounds i8, ptr %1619, i64 2016
  %1625 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %1624, ptr noundef nonnull %15, i32 noundef 176) #13
  %1626 = icmp eq i32 %1625, -1
  br i1 %1626, label %1627, label %1649

1627:                                             ; preds = %1618
  %1628 = load i32, ptr %453, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @s2n_print_stacktrace(ptr noundef %1629) #13
  %1631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1632 = trunc nuw i8 %1631 to i1
  br i1 %1632, label %1633, label %1637

1633:                                             ; preds = %1627
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @fileno(ptr noundef %1634) #13
  %1636 = call i32 @isatty(i32 noundef %1635) #13
  %.not655 = icmp eq i32 %1636, 0
  br i1 %.not655, label %1637, label %1638

1637:                                             ; preds = %1633, %1627
  br label %1638

1638:                                             ; preds = %1633, %1637
  %.str.5.sink1240 = phi ptr [ @.str.5, %1637 ], [ @.str.2, %1633 ]
  store i32 %1628, ptr %453, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = load i32, ptr %399, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror(i32 noundef %1641, ptr noundef nonnull @.str.4) #13
  %1643 = load i32, ptr %399, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror_debug(i32 noundef %1643, ptr noundef nonnull @.str.4) #13
  %1645 = load i32, ptr %453, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #13
  %1647 = load i32, ptr %453, align 4, !tbaa !5
  %1648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1639, ptr noundef nonnull %.str.5.sink1240, i32 noundef %1640, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %1642, ptr noundef %1644, ptr noundef %1646, i32 noundef %1647) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1649:                                             ; preds = %1618
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = add nsw i32 %1650, 1
  store i32 %1651, ptr @test_count, align 4, !tbaa !5
  %1652 = load ptr, ptr %14, align 8, !tbaa !9
  %1653 = call i32 @s2n_client_hello_recv(ptr noundef %1652) #13
  %1654 = icmp eq i32 %1653, -1
  br i1 %1654, label %1655, label %1677

1655:                                             ; preds = %1649
  %1656 = load i32, ptr %453, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @s2n_print_stacktrace(ptr noundef %1657) #13
  %1659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1660 = trunc nuw i8 %1659 to i1
  br i1 %1660, label %1661, label %1665

1661:                                             ; preds = %1655
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @fileno(ptr noundef %1662) #13
  %1664 = call i32 @isatty(i32 noundef %1663) #13
  %.not654 = icmp eq i32 %1664, 0
  br i1 %.not654, label %1665, label %1666

1665:                                             ; preds = %1661, %1655
  br label %1666

1666:                                             ; preds = %1661, %1665
  %.str.5.sink1249 = phi ptr [ @.str.5, %1665 ], [ @.str.2, %1661 ]
  store i32 %1656, ptr %453, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = load i32, ptr %399, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror(i32 noundef %1669, ptr noundef nonnull @.str.4) #13
  %1671 = load i32, ptr %399, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror_debug(i32 noundef %1671, ptr noundef nonnull @.str.4) #13
  %1673 = load i32, ptr %453, align 4, !tbaa !5
  %1674 = call ptr @strerror(i32 noundef %1673) #13
  %1675 = load i32, ptr %453, align 4, !tbaa !5
  %1676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1667, ptr noundef nonnull %.str.5.sink1249, i32 noundef %1668, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %1670, ptr noundef %1672, ptr noundef %1674, i32 noundef %1675) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1677:                                             ; preds = %1649
  %1678 = load ptr, ptr %14, align 8, !tbaa !9
  %1679 = call ptr @s2n_connection_get_client_hello(ptr noundef %1678) #13
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = add nsw i32 %1680, 1
  store i32 %1681, ptr @test_count, align 4, !tbaa !5
  %1682 = icmp eq ptr %1679, null
  br i1 %1682, label %1683, label %1705

1683:                                             ; preds = %1677
  %1684 = load i32, ptr %453, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @s2n_print_stacktrace(ptr noundef %1685) #13
  %1687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1688 = trunc nuw i8 %1687 to i1
  br i1 %1688, label %1689, label %1693

1689:                                             ; preds = %1683
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @fileno(ptr noundef %1690) #13
  %1692 = call i32 @isatty(i32 noundef %1691) #13
  %.not653 = icmp eq i32 %1692, 0
  br i1 %.not653, label %1693, label %1694

1693:                                             ; preds = %1689, %1683
  br label %1694

1694:                                             ; preds = %1689, %1693
  %.str.5.sink1258 = phi ptr [ @.str.5, %1693 ], [ @.str.2, %1689 ]
  store i32 %1684, ptr %453, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = load i32, ptr %399, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror(i32 noundef %1697, ptr noundef nonnull @.str.4) #13
  %1699 = load i32, ptr %399, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror_debug(i32 noundef %1699, ptr noundef nonnull @.str.4) #13
  %1701 = load i32, ptr %453, align 4, !tbaa !5
  %1702 = call ptr @strerror(i32 noundef %1701) #13
  %1703 = load i32, ptr %453, align 4, !tbaa !5
  %1704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef nonnull %.str.5.sink1258, i32 noundef %1696, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %1698, ptr noundef %1700, ptr noundef %1702, i32 noundef %1703) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1705:                                             ; preds = %1677
  %1706 = add nsw i32 %1680, 2
  store i32 %1706, ptr @test_count, align 4, !tbaa !5
  %1707 = getelementptr inbounds i8, ptr %1679, i64 802
  %1708 = load i8, ptr %1707, align 2
  %1709 = and i8 %1708, 32
  %.not506 = icmp eq i8 %1709, 0
  br i1 %.not506, label %1710, label %1732

1710:                                             ; preds = %1705
  %1711 = load i32, ptr %453, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = call i32 @s2n_print_stacktrace(ptr noundef %1712) #13
  %1714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1715 = trunc nuw i8 %1714 to i1
  br i1 %1715, label %1716, label %1720

1716:                                             ; preds = %1710
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @fileno(ptr noundef %1717) #13
  %1719 = call i32 @isatty(i32 noundef %1718) #13
  %.not507 = icmp eq i32 %1719, 0
  br i1 %.not507, label %1720, label %1721

1720:                                             ; preds = %1716, %1710
  br label %1721

1721:                                             ; preds = %1716, %1720
  %.str.5.sink1267 = phi ptr [ @.str.5, %1720 ], [ @.str.2, %1716 ]
  store i32 %1711, ptr %453, align 4, !tbaa !5
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = load i32, ptr @test_count, align 4, !tbaa !5
  %1724 = load i32, ptr %399, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror(i32 noundef %1724, ptr noundef nonnull @.str.4) #13
  %1726 = load i32, ptr %399, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror_debug(i32 noundef %1726, ptr noundef nonnull @.str.4) #13
  %1728 = load i32, ptr %453, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #13
  %1730 = load i32, ptr %453, align 4, !tbaa !5
  %1731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1722, ptr noundef nonnull %.str.5.sink1267, i32 noundef %1723, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %1725, ptr noundef %1727, ptr noundef %1729, i32 noundef %1730) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1732:                                             ; preds = %1705
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #13
  store i32 0, ptr %16, align 4, !tbaa !5
  %1733 = add nsw i32 %1680, 3
  store i32 %1733, ptr @test_count, align 4, !tbaa !5
  %1734 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %1679, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %16) #13
  %1735 = icmp eq i32 %1734, -1
  br i1 %1735, label %1758, label %1736

1736:                                             ; preds = %1732
  %1737 = load i32, ptr %453, align 4, !tbaa !5
  %1738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1739 = call i32 @s2n_print_stacktrace(ptr noundef %1738) #13
  %1740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1741 = trunc nuw i8 %1740 to i1
  br i1 %1741, label %1742, label %1746

1742:                                             ; preds = %1736
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = call i32 @fileno(ptr noundef %1743) #13
  %1745 = call i32 @isatty(i32 noundef %1744) #13
  %.not508 = icmp eq i32 %1745, 0
  br i1 %.not508, label %1746, label %1747

1746:                                             ; preds = %1742, %1736
  br label %1747

1747:                                             ; preds = %1742, %1746
  %.str.5.sink1276 = phi ptr [ @.str.5, %1746 ], [ @.str.2, %1742 ]
  store i32 %1737, ptr %453, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = load i32, ptr @test_count, align 4, !tbaa !5
  %1750 = load i32, ptr %399, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror(i32 noundef %1750, ptr noundef nonnull @.str.4) #13
  %1752 = load i32, ptr %399, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror_debug(i32 noundef %1752, ptr noundef nonnull @.str.4) #13
  %1754 = load i32, ptr %453, align 4, !tbaa !5
  %1755 = call ptr @strerror(i32 noundef %1754) #13
  %1756 = load i32, ptr %453, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1748, ptr noundef nonnull %.str.5.sink1276, i32 noundef %1749, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %1751, ptr noundef %1753, ptr noundef %1755, i32 noundef %1756) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1758:                                             ; preds = %1732
  %1759 = load i32, ptr @test_count, align 4, !tbaa !5
  %1760 = add nsw i32 %1759, 1
  store i32 %1760, ptr @test_count, align 4, !tbaa !5
  %1761 = load i32, ptr %399, align 4, !tbaa !5
  %1762 = icmp eq i32 %1761, 335544384
  br i1 %1762, label %1785, label %1763

1763:                                             ; preds = %1758
  %1764 = load i32, ptr %453, align 4, !tbaa !5
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = call i32 @s2n_print_stacktrace(ptr noundef %1765) #13
  %1767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1768 = trunc nuw i8 %1767 to i1
  br i1 %1768, label %1769, label %1773

1769:                                             ; preds = %1763
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = call i32 @fileno(ptr noundef %1770) #13
  %1772 = call i32 @isatty(i32 noundef %1771) #13
  %.not509 = icmp eq i32 %1772, 0
  br i1 %.not509, label %1773, label %1774

1773:                                             ; preds = %1769, %1763
  br label %1774

1774:                                             ; preds = %1769, %1773
  %.str.5.sink1285 = phi ptr [ @.str.5, %1773 ], [ @.str.2, %1769 ]
  store i32 %1764, ptr %453, align 4, !tbaa !5
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = load i32, ptr @test_count, align 4, !tbaa !5
  %1777 = load i32, ptr %399, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror(i32 noundef %1777, ptr noundef nonnull @.str.4) #13
  %1779 = load i32, ptr %399, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror_debug(i32 noundef %1779, ptr noundef nonnull @.str.4) #13
  %1781 = load i32, ptr %453, align 4, !tbaa !5
  %1782 = call ptr @strerror(i32 noundef %1781) #13
  %1783 = load i32, ptr %453, align 4, !tbaa !5
  %1784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1775, ptr noundef nonnull %.str.5.sink1285, i32 noundef %1776, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %1778, ptr noundef %1780, ptr noundef %1782, i32 noundef %1783) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1785:                                             ; preds = %1758
  %1786 = add nsw i32 %1759, 2
  store i32 %1786, ptr @test_count, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror_debug(i32 noundef 335544384, ptr noundef nonnull @.str.4) #13
  %1788 = icmp eq ptr %1787, null
  br i1 %1788, label %1789, label %1811

1789:                                             ; preds = %1785
  %1790 = load i32, ptr %453, align 4, !tbaa !5
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = call i32 @s2n_print_stacktrace(ptr noundef %1791) #13
  %1793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1794 = trunc nuw i8 %1793 to i1
  br i1 %1794, label %1795, label %1799

1795:                                             ; preds = %1789
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = call i32 @fileno(ptr noundef %1796) #13
  %1798 = call i32 @isatty(i32 noundef %1797) #13
  %.not652 = icmp eq i32 %1798, 0
  br i1 %.not652, label %1799, label %1800

1799:                                             ; preds = %1795, %1789
  br label %1800

1800:                                             ; preds = %1795, %1799
  %.str.5.sink1294 = phi ptr [ @.str.5, %1799 ], [ @.str.2, %1795 ]
  store i32 %1790, ptr %453, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = load i32, ptr %399, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror(i32 noundef %1803, ptr noundef nonnull @.str.4) #13
  %1805 = load i32, ptr %399, align 4, !tbaa !5
  %1806 = call ptr @s2n_strerror_debug(i32 noundef %1805, ptr noundef nonnull @.str.4) #13
  %1807 = load i32, ptr %453, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #13
  %1809 = load i32, ptr %453, align 4, !tbaa !5
  %1810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1801, ptr noundef nonnull %.str.5.sink1294, i32 noundef %1802, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %1804, ptr noundef %1806, ptr noundef %1808, i32 noundef %1809) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1811:                                             ; preds = %1785
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %1812 = load i32, ptr @test_count, align 4, !tbaa !5
  %1813 = add nsw i32 %1812, 1
  store i32 %1813, ptr @test_count, align 4, !tbaa !5
  %1814 = load i32, ptr %16, align 4, !tbaa !5
  %1815 = icmp eq i32 %1814, 0
  br i1 %1815, label %1838, label %1816

1816:                                             ; preds = %1811
  %1817 = load i32, ptr %453, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @s2n_print_stacktrace(ptr noundef %1818) #13
  %1820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1821 = trunc nuw i8 %1820 to i1
  br i1 %1821, label %1822, label %1826

1822:                                             ; preds = %1816
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @fileno(ptr noundef %1823) #13
  %1825 = call i32 @isatty(i32 noundef %1824) #13
  %.not510 = icmp eq i32 %1825, 0
  br i1 %.not510, label %1826, label %1827

1826:                                             ; preds = %1822, %1816
  br label %1827

1827:                                             ; preds = %1822, %1826
  %.str.5.sink1303 = phi ptr [ @.str.5, %1826 ], [ @.str.2, %1822 ]
  store i32 %1817, ptr %453, align 4, !tbaa !5
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = load i32, ptr %399, align 4, !tbaa !5
  %1831 = call ptr @s2n_strerror(i32 noundef %1830, ptr noundef nonnull @.str.4) #13
  %1832 = load i32, ptr %399, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror_debug(i32 noundef %1832, ptr noundef nonnull @.str.4) #13
  %1834 = load i32, ptr %453, align 4, !tbaa !5
  %1835 = call ptr @strerror(i32 noundef %1834) #13
  %1836 = load i32, ptr %453, align 4, !tbaa !5
  %1837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1828, ptr noundef nonnull %.str.5.sink1303, i32 noundef %1829, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %1831, ptr noundef %1833, ptr noundef %1835, i32 noundef %1836) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1838:                                             ; preds = %1811
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %15) #13
  %1839 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #13
  %1840 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) @__const.main.expected_ja3) #17
  %1841 = trunc i64 %1840 to i32
  %1842 = load i32, ptr @__const.main.sources, align 4, !tbaa !5
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %1844 = add nsw i32 %1843, 1
  store i32 %1844, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 55, ptr nonnull %17) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(55) %17, ptr noundef nonnull align 16 dereferenceable(55) @__const.main.client_hello_bytes, i64 55, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #13
  %1845 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1845, ptr %18, align 8, !tbaa !9
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = add nsw i32 %1846, 1
  store i32 %1847, ptr @test_count, align 4, !tbaa !5
  %1848 = icmp eq ptr %1845, null
  br i1 %1848, label %1849, label %1871

1849:                                             ; preds = %2035, %1838
  %1850 = load i32, ptr %453, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @s2n_print_stacktrace(ptr noundef %1851) #13
  %1853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1854 = trunc nuw i8 %1853 to i1
  br i1 %1854, label %1855, label %1859

1855:                                             ; preds = %1849
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @fileno(ptr noundef %1856) #13
  %1858 = call i32 @isatty(i32 noundef %1857) #13
  %.not651 = icmp eq i32 %1858, 0
  br i1 %.not651, label %1859, label %1860

1859:                                             ; preds = %1855, %1849
  br label %1860

1860:                                             ; preds = %1855, %1859
  %.str.5.sink1312 = phi ptr [ @.str.5, %1859 ], [ @.str.2, %1855 ]
  store i32 %1850, ptr %453, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = load i32, ptr @test_count, align 4, !tbaa !5
  %1863 = load i32, ptr %399, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror(i32 noundef %1863, ptr noundef nonnull @.str.4) #13
  %1865 = load i32, ptr %399, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror_debug(i32 noundef %1865, ptr noundef nonnull @.str.4) #13
  %1867 = load i32, ptr %453, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #13
  %1869 = load i32, ptr %453, align 4, !tbaa !5
  %1870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1861, ptr noundef nonnull %.str.5.sink1312, i32 noundef %1862, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %1864, ptr noundef %1866, ptr noundef %1868, i32 noundef %1869) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1871:                                             ; preds = %1838
  %1872 = add nsw i32 %1846, 2
  store i32 %1872, ptr @test_count, align 4, !tbaa !5
  %1873 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1845, ptr noundef nonnull %192) #13
  %1874 = icmp eq i32 %1873, -1
  br i1 %1874, label %1875, label %1897

1875:                                             ; preds = %2045, %1871
  %1876 = load i32, ptr %453, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877) #13
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1885

1881:                                             ; preds = %1875
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #13
  %1884 = call i32 @isatty(i32 noundef %1883) #13
  %.not650 = icmp eq i32 %1884, 0
  br i1 %.not650, label %1885, label %1886

1885:                                             ; preds = %1881, %1875
  br label %1886

1886:                                             ; preds = %1881, %1885
  %.str.5.sink1321 = phi ptr [ @.str.5, %1885 ], [ @.str.2, %1881 ]
  store i32 %1876, ptr %453, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = load i32, ptr %399, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror(i32 noundef %1889, ptr noundef nonnull @.str.4) #13
  %1891 = load i32, ptr %399, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror_debug(i32 noundef %1891, ptr noundef nonnull @.str.4) #13
  %1893 = load i32, ptr %453, align 4, !tbaa !5
  %1894 = call ptr @strerror(i32 noundef %1893) #13
  %1895 = load i32, ptr %453, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull %.str.5.sink1321, i32 noundef %1888, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %1890, ptr noundef %1892, ptr noundef %1894, i32 noundef %1895) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1897:                                             ; preds = %1871
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %1899 = add nsw i32 %1898, 1
  store i32 %1899, ptr @test_count, align 4, !tbaa !5
  %1900 = load ptr, ptr %18, align 8, !tbaa !9
  %1901 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1900, ptr noundef nonnull @.str.13) #13
  %1902 = icmp eq i32 %1901, -1
  br i1 %1902, label %1903, label %1925

1903:                                             ; preds = %2049, %1897
  %1904 = load i32, ptr %453, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = call i32 @s2n_print_stacktrace(ptr noundef %1905) #13
  %1907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1908 = trunc nuw i8 %1907 to i1
  br i1 %1908, label %1909, label %1913

1909:                                             ; preds = %1903
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = call i32 @fileno(ptr noundef %1910) #13
  %1912 = call i32 @isatty(i32 noundef %1911) #13
  %.not649 = icmp eq i32 %1912, 0
  br i1 %.not649, label %1913, label %1914

1913:                                             ; preds = %1909, %1903
  br label %1914

1914:                                             ; preds = %1909, %1913
  %.str.5.sink1330 = phi ptr [ @.str.5, %1913 ], [ @.str.2, %1909 ]
  store i32 %1904, ptr %453, align 4, !tbaa !5
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = load i32, ptr @test_count, align 4, !tbaa !5
  %1917 = load i32, ptr %399, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror(i32 noundef %1917, ptr noundef nonnull @.str.4) #13
  %1919 = load i32, ptr %399, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror_debug(i32 noundef %1919, ptr noundef nonnull @.str.4) #13
  %1921 = load i32, ptr %453, align 4, !tbaa !5
  %1922 = call ptr @strerror(i32 noundef %1921) #13
  %1923 = load i32, ptr %453, align 4, !tbaa !5
  %1924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1915, ptr noundef nonnull %.str.5.sink1330, i32 noundef %1916, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %1918, ptr noundef %1920, ptr noundef %1922, i32 noundef %1923) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1925:                                             ; preds = %1897
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #13
  store ptr null, ptr %19, align 8, !tbaa !9
  %1926 = load i32, ptr @test_count, align 4, !tbaa !5
  %1927 = add nsw i32 %1926, 1
  store i32 %1927, ptr @test_count, align 4, !tbaa !5
  %1928 = load ptr, ptr %18, align 8, !tbaa !9
  %1929 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %19, ptr noundef %1928, ptr noundef nonnull %17, i32 noundef 55, i32 noundef %1842)
  %1930 = call zeroext i1 @s2n_result_is_ok(i32 %1929)
  br i1 %1930, label %1953, label %1931

1931:                                             ; preds = %2055, %1925
  %1932 = load i32, ptr %453, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = call i32 @s2n_print_stacktrace(ptr noundef %1933) #13
  %1935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1936 = trunc nuw i8 %1935 to i1
  br i1 %1936, label %1937, label %1941

1937:                                             ; preds = %1931
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = call i32 @fileno(ptr noundef %1938) #13
  %1940 = call i32 @isatty(i32 noundef %1939) #13
  %.not643 = icmp eq i32 %1940, 0
  br i1 %.not643, label %1941, label %1942

1941:                                             ; preds = %1937, %1931
  br label %1942

1942:                                             ; preds = %1937, %1941
  %.str.5.sink1339 = phi ptr [ @.str.5, %1941 ], [ @.str.2, %1937 ]
  store i32 %1932, ptr %453, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = load i32, ptr %399, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror(i32 noundef %1945, ptr noundef nonnull @.str.4) #13
  %1947 = load i32, ptr %399, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror_debug(i32 noundef %1947, ptr noundef nonnull @.str.4) #13
  %1949 = load i32, ptr %453, align 4, !tbaa !5
  %1950 = call ptr @strerror(i32 noundef %1949) #13
  %1951 = load i32, ptr %453, align 4, !tbaa !5
  %1952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1943, ptr noundef nonnull %.str.5.sink1339, i32 noundef %1944, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %1946, ptr noundef %1948, ptr noundef %1950, i32 noundef %1951) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1953:                                             ; preds = %1925
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #13
  store i32 0, ptr %20, align 4, !tbaa !5
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr @test_count, align 4, !tbaa !5
  %1956 = load ptr, ptr %19, align 8, !tbaa !9
  %1957 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %1956, i32 noundef 0, i32 noundef %1841, ptr noundef nonnull %3, ptr noundef nonnull %20) #13
  %1958 = icmp eq i32 %1957, -1
  br i1 %1958, label %1959, label %1981

1959:                                             ; preds = %2061, %1953
  %1960 = load i32, ptr %453, align 4, !tbaa !5
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @s2n_print_stacktrace(ptr noundef %1961) #13
  %1963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1964 = trunc nuw i8 %1963 to i1
  br i1 %1964, label %1965, label %1969

1965:                                             ; preds = %1959
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = call i32 @fileno(ptr noundef %1966) #13
  %1968 = call i32 @isatty(i32 noundef %1967) #13
  %.not648 = icmp eq i32 %1968, 0
  br i1 %.not648, label %1969, label %1970

1969:                                             ; preds = %1965, %1959
  br label %1970

1970:                                             ; preds = %1965, %1969
  %.str.5.sink1348 = phi ptr [ @.str.5, %1969 ], [ @.str.2, %1965 ]
  store i32 %1960, ptr %453, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = load i32, ptr %399, align 4, !tbaa !5
  %1974 = call ptr @s2n_strerror(i32 noundef %1973, ptr noundef nonnull @.str.4) #13
  %1975 = load i32, ptr %399, align 4, !tbaa !5
  %1976 = call ptr @s2n_strerror_debug(i32 noundef %1975, ptr noundef nonnull @.str.4) #13
  %1977 = load i32, ptr %453, align 4, !tbaa !5
  %1978 = call ptr @strerror(i32 noundef %1977) #13
  %1979 = load i32, ptr %453, align 4, !tbaa !5
  %1980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1971, ptr noundef nonnull %.str.5.sink1348, i32 noundef %1972, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %1974, ptr noundef %1976, ptr noundef %1978, i32 noundef %1979) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1981:                                             ; preds = %1953
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = add nsw i32 %1982, 1
  store i32 %1983, ptr @test_count, align 4, !tbaa !5
  %1984 = load i32, ptr %20, align 4, !tbaa !5
  %1985 = zext i32 %1984 to i64
  %1986 = icmp eq i64 %1840, %1985
  br i1 %1986, label %2009, label %1987

1987:                                             ; preds = %2067, %1981
  %1988 = load i32, ptr %453, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989) #13
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc nuw i8 %1991 to i1
  br i1 %1992, label %1993, label %1997

1993:                                             ; preds = %1987
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @fileno(ptr noundef %1994) #13
  %1996 = call i32 @isatty(i32 noundef %1995) #13
  %.not644 = icmp eq i32 %1996, 0
  br i1 %.not644, label %1997, label %1998

1997:                                             ; preds = %1993, %1987
  br label %1998

1998:                                             ; preds = %1993, %1997
  %.str.5.sink1357 = phi ptr [ @.str.5, %1997 ], [ @.str.2, %1993 ]
  store i32 %1988, ptr %453, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = load i32, ptr %399, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror(i32 noundef %2001, ptr noundef nonnull @.str.4) #13
  %2003 = load i32, ptr %399, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef %2003, ptr noundef nonnull @.str.4) #13
  %2005 = load i32, ptr %453, align 4, !tbaa !5
  %2006 = call ptr @strerror(i32 noundef %2005) #13
  %2007 = load i32, ptr %453, align 4, !tbaa !5
  %2008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef nonnull %.str.5.sink1357, i32 noundef %2000, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2002, ptr noundef %2004, ptr noundef %2006, i32 noundef %2007) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2009:                                             ; preds = %1981
  %.not645 = icmp eq i32 %1984, 0
  br i1 %.not645, label %2035, label %2010

2010:                                             ; preds = %2009
  %2011 = add nsw i32 %1982, 2
  store i32 %2011, ptr @test_count, align 4, !tbaa !5
  %bcmp646 = call i32 @bcmp(ptr nonnull @__const.main.expected_ja3, ptr nonnull %3, i64 %1840)
  %2012 = icmp eq i32 %bcmp646, 0
  br i1 %2012, label %2035, label %2013

2013:                                             ; preds = %2074, %2010
  %2014 = load i32, ptr %453, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @s2n_print_stacktrace(ptr noundef %2015) #13
  %2017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2018 = trunc nuw i8 %2017 to i1
  br i1 %2018, label %2019, label %2023

2019:                                             ; preds = %2013
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @fileno(ptr noundef %2020) #13
  %2022 = call i32 @isatty(i32 noundef %2021) #13
  %.not647 = icmp eq i32 %2022, 0
  br i1 %.not647, label %2023, label %2024

2023:                                             ; preds = %2019, %2013
  br label %2024

2024:                                             ; preds = %2019, %2023
  %.str.5.sink1366 = phi ptr [ @.str.5, %2023 ], [ @.str.2, %2019 ]
  store i32 %2014, ptr %453, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = load i32, ptr %399, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror(i32 noundef %2027, ptr noundef nonnull @.str.4) #13
  %2029 = load i32, ptr %399, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef nonnull @.str.4) #13
  %2031 = load i32, ptr %453, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #13
  %2033 = load i32, ptr %453, align 4, !tbaa !5
  %2034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef nonnull %.str.5.sink1366, i32 noundef %2026, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2028, ptr noundef %2030, ptr noundef %2032, i32 noundef %2033) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2035:                                             ; preds = %2010, %2009
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #13
  %2036 = call i32 @s2n_client_hello_free(ptr noundef nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #13
  %2037 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 55, ptr nonnull %17) #13
  %2038 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.sources, i64 4), align 4, !tbaa !5
  %2039 = load i32, ptr @test_count, align 4, !tbaa !5
  %2040 = add nsw i32 %2039, 1
  store i32 %2040, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 55, ptr nonnull %17) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(55) %17, ptr noundef nonnull align 16 dereferenceable(55) @__const.main.client_hello_bytes, i64 55, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #13
  %2041 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %2041, ptr %18, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 1
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = icmp eq ptr %2041, null
  br i1 %2044, label %1849, label %2045

2045:                                             ; preds = %2035
  %2046 = add nsw i32 %2042, 2
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2041, ptr noundef nonnull %192) #13
  %2048 = icmp eq i32 %2047, -1
  br i1 %2048, label %1875, label %2049

2049:                                             ; preds = %2045
  %2050 = load i32, ptr @test_count, align 4, !tbaa !5
  %2051 = add nsw i32 %2050, 1
  store i32 %2051, ptr @test_count, align 4, !tbaa !5
  %2052 = load ptr, ptr %18, align 8, !tbaa !9
  %2053 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2052, ptr noundef nonnull @.str.13) #13
  %2054 = icmp eq i32 %2053, -1
  br i1 %2054, label %1903, label %2055

2055:                                             ; preds = %2049
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #13
  store ptr null, ptr %19, align 8, !tbaa !9
  %2056 = load i32, ptr @test_count, align 4, !tbaa !5
  %2057 = add nsw i32 %2056, 1
  store i32 %2057, ptr @test_count, align 4, !tbaa !5
  %2058 = load ptr, ptr %18, align 8, !tbaa !9
  %2059 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %19, ptr noundef %2058, ptr noundef nonnull %17, i32 noundef 55, i32 noundef %2038)
  %2060 = call zeroext i1 @s2n_result_is_ok(i32 %2059)
  br i1 %2060, label %2061, label %1931

2061:                                             ; preds = %2055
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #13
  store i32 0, ptr %20, align 4, !tbaa !5
  %2062 = load i32, ptr @test_count, align 4, !tbaa !5
  %2063 = add nsw i32 %2062, 1
  store i32 %2063, ptr @test_count, align 4, !tbaa !5
  %2064 = load ptr, ptr %19, align 8, !tbaa !9
  %2065 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %2064, i32 noundef 0, i32 noundef %1841, ptr noundef nonnull %3, ptr noundef nonnull %20) #13
  %2066 = icmp eq i32 %2065, -1
  br i1 %2066, label %1959, label %2067

2067:                                             ; preds = %2061
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = add nsw i32 %2068, 1
  store i32 %2069, ptr @test_count, align 4, !tbaa !5
  %2070 = load i32, ptr %20, align 4, !tbaa !5
  %2071 = zext i32 %2070 to i64
  %2072 = icmp eq i64 %1840, %2071
  br i1 %2072, label %2073, label %1987

2073:                                             ; preds = %2067
  %.not645.1 = icmp eq i32 %2070, 0
  br i1 %.not645.1, label %.preheader, label %2074

2074:                                             ; preds = %2073
  %2075 = add nsw i32 %2068, 2
  store i32 %2075, ptr @test_count, align 4, !tbaa !5
  %bcmp646.1 = call i32 @bcmp(ptr nonnull @__const.main.expected_ja3, ptr nonnull %3, i64 %1840)
  %2076 = icmp eq i32 %bcmp646.1, 0
  br i1 %2076, label %.preheader, label %2013

.preheader:                                       ; preds = %2074, %2073
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #13
  %2077 = call i32 @s2n_client_hello_free(ptr noundef nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #13
  %2078 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 55, ptr nonnull %17) #13
  %2079 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) @__const.main.expected_ja3.54) #17
  %2080 = trunc i64 %2079 to i32
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = add nsw i32 %2081, 1
  store i32 %2082, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 47, ptr nonnull %21) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(47) %21, ptr noundef nonnull align 16 dereferenceable(47) @__const.main.client_hello_bytes.53, i64 47, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #13
  %2083 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %2083, ptr %22, align 8, !tbaa !9
  %2084 = load i32, ptr @test_count, align 4, !tbaa !5
  %2085 = add nsw i32 %2084, 1
  store i32 %2085, ptr @test_count, align 4, !tbaa !5
  %2086 = icmp eq ptr %2083, null
  br i1 %2086, label %2087, label %2109

2087:                                             ; preds = %2273, %.preheader
  %2088 = load i32, ptr %453, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @s2n_print_stacktrace(ptr noundef %2089) #13
  %2091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2092 = trunc nuw i8 %2091 to i1
  br i1 %2092, label %2093, label %2097

2093:                                             ; preds = %2087
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @fileno(ptr noundef %2094) #13
  %2096 = call i32 @isatty(i32 noundef %2095) #13
  %.not642 = icmp eq i32 %2096, 0
  br i1 %.not642, label %2097, label %2098

2097:                                             ; preds = %2093, %2087
  br label %2098

2098:                                             ; preds = %2093, %2097
  %.str.5.sink1375 = phi ptr [ @.str.5, %2097 ], [ @.str.2, %2093 ]
  store i32 %2088, ptr %453, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = load i32, ptr %399, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror(i32 noundef %2101, ptr noundef nonnull @.str.4) #13
  %2103 = load i32, ptr %399, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror_debug(i32 noundef %2103, ptr noundef nonnull @.str.4) #13
  %2105 = load i32, ptr %453, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #13
  %2107 = load i32, ptr %453, align 4, !tbaa !5
  %2108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2099, ptr noundef nonnull %.str.5.sink1375, i32 noundef %2100, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 344, ptr noundef %2102, ptr noundef %2104, ptr noundef %2106, i32 noundef %2107) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2109:                                             ; preds = %.preheader
  %2110 = add nsw i32 %2084, 2
  store i32 %2110, ptr @test_count, align 4, !tbaa !5
  %2111 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2083, ptr noundef nonnull %192) #13
  %2112 = icmp eq i32 %2111, -1
  br i1 %2112, label %2113, label %2135

2113:                                             ; preds = %2282, %2109
  %2114 = load i32, ptr %453, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = call i32 @s2n_print_stacktrace(ptr noundef %2115) #13
  %2117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2118 = trunc nuw i8 %2117 to i1
  br i1 %2118, label %2119, label %2123

2119:                                             ; preds = %2113
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = call i32 @fileno(ptr noundef %2120) #13
  %2122 = call i32 @isatty(i32 noundef %2121) #13
  %.not641 = icmp eq i32 %2122, 0
  br i1 %.not641, label %2123, label %2124

2123:                                             ; preds = %2119, %2113
  br label %2124

2124:                                             ; preds = %2119, %2123
  %.str.5.sink1384 = phi ptr [ @.str.5, %2123 ], [ @.str.2, %2119 ]
  store i32 %2114, ptr %453, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = load i32, ptr %399, align 4, !tbaa !5
  %2128 = call ptr @s2n_strerror(i32 noundef %2127, ptr noundef nonnull @.str.4) #13
  %2129 = load i32, ptr %399, align 4, !tbaa !5
  %2130 = call ptr @s2n_strerror_debug(i32 noundef %2129, ptr noundef nonnull @.str.4) #13
  %2131 = load i32, ptr %453, align 4, !tbaa !5
  %2132 = call ptr @strerror(i32 noundef %2131) #13
  %2133 = load i32, ptr %453, align 4, !tbaa !5
  %2134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2125, ptr noundef nonnull %.str.5.sink1384, i32 noundef %2126, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %2128, ptr noundef %2130, ptr noundef %2132, i32 noundef %2133) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2135:                                             ; preds = %2109
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = add nsw i32 %2136, 1
  store i32 %2137, ptr @test_count, align 4, !tbaa !5
  %2138 = load ptr, ptr %22, align 8, !tbaa !9
  %2139 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2138, ptr noundef nonnull @.str.13) #13
  %2140 = icmp eq i32 %2139, -1
  br i1 %2140, label %2141, label %2163

2141:                                             ; preds = %2286, %2135
  %2142 = load i32, ptr %453, align 4, !tbaa !5
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = call i32 @s2n_print_stacktrace(ptr noundef %2143) #13
  %2145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2146 = trunc nuw i8 %2145 to i1
  br i1 %2146, label %2147, label %2151

2147:                                             ; preds = %2141
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = call i32 @fileno(ptr noundef %2148) #13
  %2150 = call i32 @isatty(i32 noundef %2149) #13
  %.not640 = icmp eq i32 %2150, 0
  br i1 %.not640, label %2151, label %2152

2151:                                             ; preds = %2147, %2141
  br label %2152

2152:                                             ; preds = %2147, %2151
  %.str.5.sink1393 = phi ptr [ @.str.5, %2151 ], [ @.str.2, %2147 ]
  store i32 %2142, ptr %453, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = load i32, ptr %399, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror(i32 noundef %2155, ptr noundef nonnull @.str.4) #13
  %2157 = load i32, ptr %399, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror_debug(i32 noundef %2157, ptr noundef nonnull @.str.4) #13
  %2159 = load i32, ptr %453, align 4, !tbaa !5
  %2160 = call ptr @strerror(i32 noundef %2159) #13
  %2161 = load i32, ptr %453, align 4, !tbaa !5
  %2162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2153, ptr noundef nonnull %.str.5.sink1393, i32 noundef %2154, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %2156, ptr noundef %2158, ptr noundef %2160, i32 noundef %2161) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2163:                                             ; preds = %2135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #13
  store ptr null, ptr %23, align 8, !tbaa !9
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = add nsw i32 %2164, 1
  store i32 %2165, ptr @test_count, align 4, !tbaa !5
  %2166 = load ptr, ptr %22, align 8, !tbaa !9
  %2167 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %23, ptr noundef %2166, ptr noundef nonnull %21, i32 noundef 47, i32 noundef %1842)
  %2168 = call zeroext i1 @s2n_result_is_ok(i32 %2167)
  br i1 %2168, label %2191, label %2169

2169:                                             ; preds = %2292, %2163
  %2170 = load i32, ptr %453, 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
  %.not634 = icmp eq i32 %2178, 0
  br i1 %.not634, label %2179, label %2180

2179:                                             ; preds = %2175, %2169
  br label %2180

2180:                                             ; preds = %2175, %2179
  %.str.5.sink1402 = phi ptr [ @.str.5, %2179 ], [ @.str.2, %2175 ]
  store i32 %2170, ptr %453, 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 %399, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror(i32 noundef %2183, ptr noundef nonnull @.str.4) #13
  %2185 = load i32, ptr %399, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror_debug(i32 noundef %2185, ptr noundef nonnull @.str.4) #13
  %2187 = load i32, ptr %453, align 4, !tbaa !5
  %2188 = call ptr @strerror(i32 noundef %2187) #13
  %2189 = load i32, ptr %453, align 4, !tbaa !5
  %2190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2181, ptr noundef nonnull %.str.5.sink1402, i32 noundef %2182, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %2184, ptr noundef %2186, ptr noundef %2188, i32 noundef %2189) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2191:                                             ; preds = %2163
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #13
  store i32 0, ptr %24, align 4, !tbaa !5
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = add nsw i32 %2192, 1
  store i32 %2193, ptr @test_count, align 4, !tbaa !5
  %2194 = load ptr, ptr %23, align 8, !tbaa !9
  %2195 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %2194, i32 noundef 0, i32 noundef %2080, ptr noundef nonnull %3, ptr noundef nonnull %24) #13
  %2196 = icmp eq i32 %2195, -1
  br i1 %2196, label %2197, label %2219

2197:                                             ; preds = %2298, %2191
  %2198 = load i32, ptr %453, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199) #13
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc nuw i8 %2201 to i1
  br i1 %2202, label %2203, label %2207

2203:                                             ; preds = %2197
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #13
  %2206 = call i32 @isatty(i32 noundef %2205) #13
  %.not639 = icmp eq i32 %2206, 0
  br i1 %.not639, label %2207, label %2208

2207:                                             ; preds = %2203, %2197
  br label %2208

2208:                                             ; preds = %2203, %2207
  %.str.5.sink1411 = phi ptr [ @.str.5, %2207 ], [ @.str.2, %2203 ]
  store i32 %2198, ptr %453, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = load i32, ptr %399, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror(i32 noundef %2211, ptr noundef nonnull @.str.4) #13
  %2213 = load i32, ptr %399, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror_debug(i32 noundef %2213, ptr noundef nonnull @.str.4) #13
  %2215 = load i32, ptr %453, align 4, !tbaa !5
  %2216 = call ptr @strerror(i32 noundef %2215) #13
  %2217 = load i32, ptr %453, align 4, !tbaa !5
  %2218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef nonnull %.str.5.sink1411, i32 noundef %2210, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %2212, ptr noundef %2214, ptr noundef %2216, i32 noundef %2217) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2219:                                             ; preds = %2191
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = add nsw i32 %2220, 1
  store i32 %2221, ptr @test_count, align 4, !tbaa !5
  %2222 = load i32, ptr %24, align 4, !tbaa !5
  %2223 = zext i32 %2222 to i64
  %2224 = icmp eq i64 %2079, %2223
  br i1 %2224, label %2247, label %2225

2225:                                             ; preds = %2304, %2219
  %2226 = load i32, ptr %453, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @s2n_print_stacktrace(ptr noundef %2227) #13
  %2229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2230 = trunc nuw i8 %2229 to i1
  br i1 %2230, label %2231, label %2235

2231:                                             ; preds = %2225
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @fileno(ptr noundef %2232) #13
  %2234 = call i32 @isatty(i32 noundef %2233) #13
  %.not635 = icmp eq i32 %2234, 0
  br i1 %.not635, label %2235, label %2236

2235:                                             ; preds = %2231, %2225
  br label %2236

2236:                                             ; preds = %2231, %2235
  %.str.5.sink1420 = phi ptr [ @.str.5, %2235 ], [ @.str.2, %2231 ]
  store i32 %2226, ptr %453, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = load i32, ptr %399, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror(i32 noundef %2239, ptr noundef nonnull @.str.4) #13
  %2241 = load i32, ptr %399, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror_debug(i32 noundef %2241, ptr noundef nonnull @.str.4) #13
  %2243 = load i32, ptr %453, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #13
  %2245 = load i32, ptr %453, align 4, !tbaa !5
  %2246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2237, ptr noundef nonnull %.str.5.sink1420, i32 noundef %2238, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %2240, ptr noundef %2242, ptr noundef %2244, i32 noundef %2245) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2247:                                             ; preds = %2219
  %.not636 = icmp eq i32 %2222, 0
  br i1 %.not636, label %2273, label %2248

2248:                                             ; preds = %2247
  %2249 = add nsw i32 %2220, 2
  store i32 %2249, ptr @test_count, align 4, !tbaa !5
  %bcmp637 = call i32 @bcmp(ptr nonnull @__const.main.expected_ja3.54, ptr nonnull %3, i64 %2079)
  %2250 = icmp eq i32 %bcmp637, 0
  br i1 %2250, label %2273, label %2251

2251:                                             ; preds = %2311, %2248
  %2252 = load i32, ptr %453, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #13
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

2257:                                             ; preds = %2251
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #13
  %2260 = call i32 @isatty(i32 noundef %2259) #13
  %.not638 = icmp eq i32 %2260, 0
  br i1 %.not638, label %2261, label %2262

2261:                                             ; preds = %2257, %2251
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.5.sink1429 = phi ptr [ @.str.5, %2261 ], [ @.str.2, %2257 ]
  store i32 %2252, ptr %453, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = load i32, ptr %399, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.4) #13
  %2267 = load i32, ptr %399, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.4) #13
  %2269 = load i32, ptr %453, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #13
  %2271 = load i32, ptr %453, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.5.sink1429, i32 noundef %2264, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2273:                                             ; preds = %2248, %2247
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #13
  %2274 = call i32 @s2n_client_hello_free(ptr noundef nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #13
  %2275 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #13
  call void @llvm.lifetime.end.p0(i64 47, ptr nonnull %21) #13
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = add nsw i32 %2276, 1
  store i32 %2277, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 47, ptr nonnull %21) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(47) %21, ptr noundef nonnull align 16 dereferenceable(47) @__const.main.client_hello_bytes.53, i64 47, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #13
  %2278 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %2278, ptr %22, align 8, !tbaa !9
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = add nsw i32 %2279, 1
  store i32 %2280, ptr @test_count, align 4, !tbaa !5
  %2281 = icmp eq ptr %2278, null
  br i1 %2281, label %2087, label %2282

2282:                                             ; preds = %2273
  %2283 = add nsw i32 %2279, 2
  store i32 %2283, ptr @test_count, align 4, !tbaa !5
  %2284 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2278, ptr noundef nonnull %192) #13
  %2285 = icmp eq i32 %2284, -1
  br i1 %2285, label %2113, label %2286

2286:                                             ; preds = %2282
  %2287 = load i32, ptr @test_count, align 4, !tbaa !5
  %2288 = add nsw i32 %2287, 1
  store i32 %2288, ptr @test_count, align 4, !tbaa !5
  %2289 = load ptr, ptr %22, align 8, !tbaa !9
  %2290 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2289, ptr noundef nonnull @.str.13) #13
  %2291 = icmp eq i32 %2290, -1
  br i1 %2291, label %2141, label %2292

2292:                                             ; preds = %2286
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #13
  store ptr null, ptr %23, align 8, !tbaa !9
  %2293 = load i32, ptr @test_count, align 4, !tbaa !5
  %2294 = add nsw i32 %2293, 1
  store i32 %2294, ptr @test_count, align 4, !tbaa !5
  %2295 = load ptr, ptr %22, align 8, !tbaa !9
  %2296 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %23, ptr noundef %2295, ptr noundef nonnull %21, i32 noundef 47, i32 noundef %2038)
  %2297 = call zeroext i1 @s2n_result_is_ok(i32 %2296)
  br i1 %2297, label %2298, label %2169

2298:                                             ; preds = %2292
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #13
  store i32 0, ptr %24, align 4, !tbaa !5
  %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 = load ptr, ptr %23, align 8, !tbaa !9
  %2302 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %2301, i32 noundef 0, i32 noundef %2080, ptr noundef nonnull %3, ptr noundef nonnull %24) #13
  %2303 = icmp eq i32 %2302, -1
  br i1 %2303, label %2197, label %2304

2304:                                             ; preds = %2298
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = add nsw i32 %2305, 1
  store i32 %2306, ptr @test_count, align 4, !tbaa !5
  %2307 = load i32, ptr %24, align 4, !tbaa !5
  %2308 = zext i32 %2307 to i64
  %2309 = icmp eq i64 %2079, %2308
  br i1 %2309, label %2310, label %2225

2310:                                             ; preds = %2304
  %.not636.1 = icmp eq i32 %2307, 0
  br i1 %.not636.1, label %2314, label %2311

2311:                                             ; preds = %2310
  %2312 = add nsw i32 %2305, 2
  store i32 %2312, ptr @test_count, align 4, !tbaa !5
  %bcmp637.1 = call i32 @bcmp(ptr nonnull @__const.main.expected_ja3.54, ptr nonnull %3, i64 %2079)
  %2313 = icmp eq i32 %bcmp637.1, 0
  br i1 %2313, label %2314, label %2251

2314:                                             ; preds = %2311, %2310
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #13
  %2315 = call i32 @s2n_client_hello_free(ptr noundef nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #13
  %2316 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #13
  call void @llvm.lifetime.end.p0(i64 47, ptr nonnull %21) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #13
  %2317 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %2317, ptr %25, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = add nsw i32 %2318, 1
  store i32 %2319, ptr @test_count, align 4, !tbaa !5
  %2320 = icmp eq ptr %2317, null
  br i1 %2320, label %2321, label %2343

2321:                                             ; preds = %2314
  %2322 = load i32, ptr %453, align 4, !tbaa !5
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = call i32 @s2n_print_stacktrace(ptr noundef %2323) #13
  %2325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2326 = trunc nuw i8 %2325 to i1
  br i1 %2326, label %2327, label %2331

2327:                                             ; preds = %2321
  %2328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2329 = call i32 @fileno(ptr noundef %2328) #13
  %2330 = call i32 @isatty(i32 noundef %2329) #13
  %.not633 = icmp eq i32 %2330, 0
  br i1 %.not633, label %2331, label %2332

2331:                                             ; preds = %2327, %2321
  br label %2332

2332:                                             ; preds = %2327, %2331
  %.str.5.sink1438 = phi ptr [ @.str.5, %2331 ], [ @.str.2, %2327 ]
  store i32 %2322, ptr %453, align 4, !tbaa !5
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = load i32, ptr @test_count, align 4, !tbaa !5
  %2335 = load i32, ptr %399, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror(i32 noundef %2335, ptr noundef nonnull @.str.4) #13
  %2337 = load i32, ptr %399, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror_debug(i32 noundef %2337, ptr noundef nonnull @.str.4) #13
  %2339 = load i32, ptr %453, align 4, !tbaa !5
  %2340 = call ptr @strerror(i32 noundef %2339) #13
  %2341 = load i32, ptr %453, align 4, !tbaa !5
  %2342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2333, ptr noundef nonnull %.str.5.sink1438, i32 noundef %2334, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %2336, ptr noundef %2338, ptr noundef %2340, i32 noundef %2341) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2343:                                             ; preds = %2314
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #13
  %2344 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %2344, ptr %26, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = add nsw i32 %2345, 1
  store i32 %2346, ptr @test_count, align 4, !tbaa !5
  %2347 = icmp eq ptr %2344, null
  br i1 %2347, label %2348, label %2370

2348:                                             ; preds = %2343
  %2349 = load i32, ptr %453, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @s2n_print_stacktrace(ptr noundef %2350) #13
  %2352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2353 = trunc nuw i8 %2352 to i1
  br i1 %2353, label %2354, label %2358

2354:                                             ; preds = %2348
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @fileno(ptr noundef %2355) #13
  %2357 = call i32 @isatty(i32 noundef %2356) #13
  %.not632 = icmp eq i32 %2357, 0
  br i1 %.not632, label %2358, label %2359

2358:                                             ; preds = %2354, %2348
  br label %2359

2359:                                             ; preds = %2354, %2358
  %.str.5.sink1447 = phi ptr [ @.str.5, %2358 ], [ @.str.2, %2354 ]
  store i32 %2349, ptr %453, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = load i32, ptr @test_count, align 4, !tbaa !5
  %2362 = load i32, ptr %399, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror(i32 noundef %2362, ptr noundef nonnull @.str.4) #13
  %2364 = load i32, ptr %399, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror_debug(i32 noundef %2364, ptr noundef nonnull @.str.4) #13
  %2366 = load i32, ptr %453, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #13
  %2368 = load i32, ptr %453, align 4, !tbaa !5
  %2369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2360, ptr noundef nonnull %.str.5.sink1447, i32 noundef %2361, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %2363, ptr noundef %2365, ptr noundef %2367, i32 noundef %2368) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2370:                                             ; preds = %2343
  %2371 = add nsw i32 %2345, 2
  store i32 %2371, ptr @test_count, align 4, !tbaa !5
  %2372 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2344, ptr noundef nonnull %192) #13
  %2373 = icmp eq i32 %2372, -1
  br i1 %2373, label %2374, label %2396

2374:                                             ; preds = %2370
  %2375 = load i32, ptr %453, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = call i32 @s2n_print_stacktrace(ptr noundef %2376) #13
  %2378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2379 = trunc nuw i8 %2378 to i1
  br i1 %2379, label %2380, label %2384

2380:                                             ; preds = %2374
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @fileno(ptr noundef %2381) #13
  %2383 = call i32 @isatty(i32 noundef %2382) #13
  %.not631 = icmp eq i32 %2383, 0
  br i1 %.not631, label %2384, label %2385

2384:                                             ; preds = %2380, %2374
  br label %2385

2385:                                             ; preds = %2380, %2384
  %.str.5.sink1456 = phi ptr [ @.str.5, %2384 ], [ @.str.2, %2380 ]
  store i32 %2375, ptr %453, align 4, !tbaa !5
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = load i32, ptr @test_count, align 4, !tbaa !5
  %2388 = load i32, ptr %399, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror(i32 noundef %2388, ptr noundef nonnull @.str.4) #13
  %2390 = load i32, ptr %399, align 4, !tbaa !5
  %2391 = call ptr @s2n_strerror_debug(i32 noundef %2390, ptr noundef nonnull @.str.4) #13
  %2392 = load i32, ptr %453, align 4, !tbaa !5
  %2393 = call ptr @strerror(i32 noundef %2392) #13
  %2394 = load i32, ptr %453, align 4, !tbaa !5
  %2395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2386, ptr noundef nonnull %.str.5.sink1456, i32 noundef %2387, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %2389, ptr noundef %2391, ptr noundef %2393, i32 noundef %2394) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2396:                                             ; preds = %2370
  %2397 = load i32, ptr @test_count, align 4, !tbaa !5
  %2398 = add nsw i32 %2397, 1
  store i32 %2398, ptr @test_count, align 4, !tbaa !5
  %2399 = load ptr, ptr %25, align 8, !tbaa !9
  %2400 = call i32 @s2n_client_hello_send(ptr noundef %2399) #13
  %2401 = icmp eq i32 %2400, -1
  br i1 %2401, label %2402, label %2424

2402:                                             ; preds = %2396
  %2403 = load i32, ptr %453, align 4, !tbaa !5
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = call i32 @s2n_print_stacktrace(ptr noundef %2404) #13
  %2406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2407 = trunc nuw i8 %2406 to i1
  br i1 %2407, label %2408, label %2412

2408:                                             ; preds = %2402
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = call i32 @fileno(ptr noundef %2409) #13
  %2411 = call i32 @isatty(i32 noundef %2410) #13
  %.not630 = icmp eq i32 %2411, 0
  br i1 %.not630, label %2412, label %2413

2412:                                             ; preds = %2408, %2402
  br label %2413

2413:                                             ; preds = %2408, %2412
  %.str.5.sink1465 = phi ptr [ @.str.5, %2412 ], [ @.str.2, %2408 ]
  store i32 %2403, ptr %453, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = load i32, ptr %399, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror(i32 noundef %2416, ptr noundef nonnull @.str.4) #13
  %2418 = load i32, ptr %399, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror_debug(i32 noundef %2418, ptr noundef nonnull @.str.4) #13
  %2420 = load i32, ptr %453, align 4, !tbaa !5
  %2421 = call ptr @strerror(i32 noundef %2420) #13
  %2422 = load i32, ptr %453, align 4, !tbaa !5
  %2423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef nonnull %.str.5.sink1465, i32 noundef %2415, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2417, ptr noundef %2419, ptr noundef %2421, i32 noundef %2422) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2424:                                             ; preds = %2396
  %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 %25, align 8, !tbaa !9
  %2428 = getelementptr inbounds i8, ptr %2427, i64 2016
  %2429 = load ptr, ptr %26, align 8, !tbaa !9
  %2430 = getelementptr inbounds i8, ptr %2429, i64 2016
  %2431 = getelementptr inbounds i8, ptr %2427, i64 2044
  %2432 = load i32, ptr %2431, align 4, !tbaa !15
  %2433 = getelementptr inbounds i8, ptr %2427, i64 2040
  %2434 = load i32, ptr %2433, align 8, !tbaa !42
  %2435 = sub i32 %2432, %2434
  %2436 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2428, ptr noundef nonnull %2430, i32 noundef %2435) #13
  %2437 = icmp eq i32 %2436, -1
  br i1 %2437, label %2438, label %2460

2438:                                             ; preds = %2424
  %2439 = load i32, ptr %453, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440) #13
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc nuw i8 %2442 to i1
  br i1 %2443, label %2444, label %2448

2444:                                             ; preds = %2438
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #13
  %2447 = call i32 @isatty(i32 noundef %2446) #13
  %.not629 = icmp eq i32 %2447, 0
  br i1 %.not629, label %2448, label %2449

2448:                                             ; preds = %2444, %2438
  br label %2449

2449:                                             ; preds = %2444, %2448
  %.str.5.sink1474 = phi ptr [ @.str.5, %2448 ], [ @.str.2, %2444 ]
  store i32 %2439, ptr %453, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = load i32, ptr %399, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror(i32 noundef %2452, ptr noundef nonnull @.str.4) #13
  %2454 = load i32, ptr %399, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef nonnull @.str.4) #13
  %2456 = load i32, ptr %453, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #13
  %2458 = load i32, ptr %453, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef nonnull %.str.5.sink1474, i32 noundef %2451, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %2453, ptr noundef %2455, ptr noundef %2457, i32 noundef %2458) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2460:                                             ; preds = %2424
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = add nsw i32 %2461, 1
  store i32 %2462, ptr @test_count, align 4, !tbaa !5
  %2463 = load ptr, ptr %26, align 8, !tbaa !9
  %2464 = call i32 @s2n_client_hello_recv(ptr noundef %2463) #13
  %2465 = icmp eq i32 %2464, -1
  br i1 %2465, label %2466, label %2488

2466:                                             ; preds = %2460
  %2467 = load i32, ptr %453, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = call i32 @s2n_print_stacktrace(ptr noundef %2468) #13
  %2470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2471 = trunc nuw i8 %2470 to i1
  br i1 %2471, label %2472, label %2476

2472:                                             ; preds = %2466
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = call i32 @fileno(ptr noundef %2473) #13
  %2475 = call i32 @isatty(i32 noundef %2474) #13
  %.not628 = icmp eq i32 %2475, 0
  br i1 %.not628, label %2476, label %2477

2476:                                             ; preds = %2472, %2466
  br label %2477

2477:                                             ; preds = %2472, %2476
  %.str.5.sink1483 = phi ptr [ @.str.5, %2476 ], [ @.str.2, %2472 ]
  store i32 %2467, ptr %453, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = load i32, ptr %399, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror(i32 noundef %2480, ptr noundef nonnull @.str.4) #13
  %2482 = load i32, ptr %399, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror_debug(i32 noundef %2482, ptr noundef nonnull @.str.4) #13
  %2484 = load i32, ptr %453, align 4, !tbaa !5
  %2485 = call ptr @strerror(i32 noundef %2484) #13
  %2486 = load i32, ptr %453, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef nonnull %.str.5.sink1483, i32 noundef %2479, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %2481, ptr noundef %2483, ptr noundef %2485, i32 noundef %2486) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2488:                                             ; preds = %2460
  %2489 = load ptr, ptr %26, align 8, !tbaa !9
  %2490 = call ptr @s2n_connection_get_client_hello(ptr noundef %2489) #13
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = add nsw i32 %2491, 1
  store i32 %2492, ptr @test_count, align 4, !tbaa !5
  %2493 = icmp eq ptr %2490, null
  br i1 %2493, label %2494, label %2516

2494:                                             ; preds = %2488
  %2495 = load i32, ptr %453, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = call i32 @s2n_print_stacktrace(ptr noundef %2496) #13
  %2498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2499 = trunc nuw i8 %2498 to i1
  br i1 %2499, label %2500, label %2504

2500:                                             ; preds = %2494
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @fileno(ptr noundef %2501) #13
  %2503 = call i32 @isatty(i32 noundef %2502) #13
  %.not627 = icmp eq i32 %2503, 0
  br i1 %.not627, label %2504, label %2505

2504:                                             ; preds = %2500, %2494
  br label %2505

2505:                                             ; preds = %2500, %2504
  %.str.5.sink1492 = phi ptr [ @.str.5, %2504 ], [ @.str.2, %2500 ]
  store i32 %2495, ptr %453, align 4, !tbaa !5
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = load i32, ptr %399, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror(i32 noundef %2508, ptr noundef nonnull @.str.4) #13
  %2510 = load i32, ptr %399, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror_debug(i32 noundef %2510, ptr noundef nonnull @.str.4) #13
  %2512 = load i32, ptr %453, align 4, !tbaa !5
  %2513 = call ptr @strerror(i32 noundef %2512) #13
  %2514 = load i32, ptr %453, align 4, !tbaa !5
  %2515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2506, ptr noundef nonnull %.str.5.sink1492, i32 noundef %2507, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %2509, ptr noundef %2511, ptr noundef %2513, i32 noundef %2514) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2516:                                             ; preds = %2488
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #13
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %2530

2517:                                             ; preds = %2611
  %2518 = add nuw nsw i64 %.0461706, 1
  %exitcond.not = icmp eq i64 %2518, 10
  br i1 %exitcond.not, label %2519, label %2530, !llvm.loop !45

2519:                                             ; preds = %2517
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #13
  %2520 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #13
  %2521 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #13
  %2522 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) @__const.main.expected_ja3.58) #17
  %2523 = trunc i64 %2522 to i32
  %2524 = load i32, ptr @test_count, align 4, !tbaa !5
  %2525 = add nsw i32 %2524, 1
  store i32 %2525, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 63, ptr nonnull %28) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(63) %28, ptr noundef nonnull align 16 dereferenceable(63) @__const.main.client_hello_bytes.57, i64 63, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #13
  %2526 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %2526, ptr %29, align 8, !tbaa !9
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = add nsw i32 %2527, 1
  store i32 %2528, ptr @test_count, align 4, !tbaa !5
  %2529 = icmp eq ptr %2526, null
  br i1 %2529, label %2638, label %2660

2530:                                             ; preds = %2516, %2517
  %2531 = phi i32 [ %2492, %2516 ], [ %2613, %2517 ]
  %.0461706 = phi i64 [ 0, %2516 ], [ %2518, %2517 ]
  %2532 = add nsw i32 %2531, 1
  store i32 %2532, ptr @test_count, align 4, !tbaa !5
  %2533 = trunc nuw nsw i64 %.0461706 to i32
  %2534 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %2490, i32 noundef 0, i32 noundef %2533, ptr noundef nonnull %3, ptr noundef nonnull %27) #13
  %2535 = icmp eq i32 %2534, -1
  br i1 %2535, label %2558, label %2536

2536:                                             ; preds = %2530
  %2537 = load i32, ptr %453, align 4, !tbaa !5
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = call i32 @s2n_print_stacktrace(ptr noundef %2538) #13
  %2540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2541 = trunc nuw i8 %2540 to i1
  br i1 %2541, label %2542, label %2546

2542:                                             ; preds = %2536
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = call i32 @fileno(ptr noundef %2543) #13
  %2545 = call i32 @isatty(i32 noundef %2544) #13
  %.not623 = icmp eq i32 %2545, 0
  br i1 %.not623, label %2546, label %2547

2546:                                             ; preds = %2542, %2536
  br label %2547

2547:                                             ; preds = %2542, %2546
  %.str.5.sink1501 = phi ptr [ @.str.5, %2546 ], [ @.str.2, %2542 ]
  store i32 %2537, ptr %453, align 4, !tbaa !5
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = load i32, ptr @test_count, align 4, !tbaa !5
  %2550 = load i32, ptr %399, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror(i32 noundef %2550, ptr noundef nonnull @.str.4) #13
  %2552 = load i32, ptr %399, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror_debug(i32 noundef %2552, ptr noundef nonnull @.str.4) #13
  %2554 = load i32, ptr %453, align 4, !tbaa !5
  %2555 = call ptr @strerror(i32 noundef %2554) #13
  %2556 = load i32, ptr %453, align 4, !tbaa !5
  %2557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2548, ptr noundef nonnull %.str.5.sink1501, i32 noundef %2549, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %2551, ptr noundef %2553, ptr noundef %2555, i32 noundef %2556) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2558:                                             ; preds = %2530
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = add nsw i32 %2559, 1
  store i32 %2560, ptr @test_count, align 4, !tbaa !5
  %2561 = load i32, ptr %399, align 4, !tbaa !5
  %2562 = icmp eq i32 %2561, 469762120
  br i1 %2562, label %2585, label %2563

2563:                                             ; preds = %2558
  %2564 = load i32, ptr %453, align 4, !tbaa !5
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = call i32 @s2n_print_stacktrace(ptr noundef %2565) #13
  %2567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2568 = trunc nuw i8 %2567 to i1
  br i1 %2568, label %2569, label %2573

2569:                                             ; preds = %2563
  %2570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2571 = call i32 @fileno(ptr noundef %2570) #13
  %2572 = call i32 @isatty(i32 noundef %2571) #13
  %.not624 = icmp eq i32 %2572, 0
  br i1 %.not624, label %2573, label %2574

2573:                                             ; preds = %2569, %2563
  br label %2574

2574:                                             ; preds = %2569, %2573
  %.str.5.sink1510 = phi ptr [ @.str.5, %2573 ], [ @.str.2, %2569 ]
  store i32 %2564, ptr %453, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = load i32, ptr %399, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror(i32 noundef %2577, ptr noundef nonnull @.str.4) #13
  %2579 = load i32, ptr %399, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror_debug(i32 noundef %2579, ptr noundef nonnull @.str.4) #13
  %2581 = load i32, ptr %453, align 4, !tbaa !5
  %2582 = call ptr @strerror(i32 noundef %2581) #13
  %2583 = load i32, ptr %453, align 4, !tbaa !5
  %2584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2575, ptr noundef nonnull %.str.5.sink1510, i32 noundef %2576, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %2578, ptr noundef %2580, ptr noundef %2582, i32 noundef %2583) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2585:                                             ; preds = %2558
  %2586 = add nsw i32 %2559, 2
  store i32 %2586, ptr @test_count, align 4, !tbaa !5
  %2587 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #13
  %2588 = icmp eq ptr %2587, null
  br i1 %2588, label %2589, label %2611

2589:                                             ; preds = %2585
  %2590 = load i32, ptr %453, align 4, !tbaa !5
  %2591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2592 = call i32 @s2n_print_stacktrace(ptr noundef %2591) #13
  %2593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2594 = trunc nuw i8 %2593 to i1
  br i1 %2594, label %2595, label %2599

2595:                                             ; preds = %2589
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = call i32 @fileno(ptr noundef %2596) #13
  %2598 = call i32 @isatty(i32 noundef %2597) #13
  %.not626 = icmp eq i32 %2598, 0
  br i1 %.not626, label %2599, label %2600

2599:                                             ; preds = %2595, %2589
  br label %2600

2600:                                             ; preds = %2595, %2599
  %.str.5.sink1519 = phi ptr [ @.str.5, %2599 ], [ @.str.2, %2595 ]
  store i32 %2590, ptr %453, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = load i32, ptr %399, align 4, !tbaa !5
  %2604 = call ptr @s2n_strerror(i32 noundef %2603, ptr noundef nonnull @.str.4) #13
  %2605 = load i32, ptr %399, align 4, !tbaa !5
  %2606 = call ptr @s2n_strerror_debug(i32 noundef %2605, ptr noundef nonnull @.str.4) #13
  %2607 = load i32, ptr %453, align 4, !tbaa !5
  %2608 = call ptr @strerror(i32 noundef %2607) #13
  %2609 = load i32, ptr %453, align 4, !tbaa !5
  %2610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef nonnull %.str.5.sink1519, i32 noundef %2602, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %2604, ptr noundef %2606, ptr noundef %2608, i32 noundef %2609) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2611:                                             ; preds = %2585
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = add nsw i32 %2612, 1
  store i32 %2613, ptr @test_count, align 4, !tbaa !5
  %2614 = load i32, ptr %27, align 4, !tbaa !5
  %2615 = icmp eq i32 %2614, 0
  br i1 %2615, label %2517, label %2616

2616:                                             ; preds = %2611
  %2617 = load i32, ptr %453, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = call i32 @s2n_print_stacktrace(ptr noundef %2618) #13
  %2620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2621 = trunc nuw i8 %2620 to i1
  br i1 %2621, label %2622, label %2626

2622:                                             ; preds = %2616
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = call i32 @fileno(ptr noundef %2623) #13
  %2625 = call i32 @isatty(i32 noundef %2624) #13
  %.not625 = icmp eq i32 %2625, 0
  br i1 %.not625, label %2626, label %2627

2626:                                             ; preds = %2622, %2616
  br label %2627

2627:                                             ; preds = %2622, %2626
  %.str.5.sink1528 = phi ptr [ @.str.5, %2626 ], [ @.str.2, %2622 ]
  store i32 %2617, ptr %453, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = load i32, ptr @test_count, align 4, !tbaa !5
  %2630 = load i32, ptr %399, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror(i32 noundef %2630, ptr noundef nonnull @.str.4) #13
  %2632 = load i32, ptr %399, align 4, !tbaa !5
  %2633 = call ptr @s2n_strerror_debug(i32 noundef %2632, ptr noundef nonnull @.str.4) #13
  %2634 = load i32, ptr %453, align 4, !tbaa !5
  %2635 = call ptr @strerror(i32 noundef %2634) #13
  %2636 = load i32, ptr %453, align 4, !tbaa !5
  %2637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2628, ptr noundef nonnull %.str.5.sink1528, i32 noundef %2629, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %2631, ptr noundef %2633, ptr noundef %2635, i32 noundef %2636) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2638:                                             ; preds = %2824, %2519
  %2639 = load i32, ptr %453, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = call i32 @s2n_print_stacktrace(ptr noundef %2640) #13
  %2642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2643 = trunc nuw i8 %2642 to i1
  br i1 %2643, label %2644, label %2648

2644:                                             ; preds = %2638
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = call i32 @fileno(ptr noundef %2645) #13
  %2647 = call i32 @isatty(i32 noundef %2646) #13
  %.not622 = icmp eq i32 %2647, 0
  br i1 %.not622, label %2648, label %2649

2648:                                             ; preds = %2644, %2638
  br label %2649

2649:                                             ; preds = %2644, %2648
  %.str.5.sink1537 = phi ptr [ @.str.5, %2648 ], [ @.str.2, %2644 ]
  store i32 %2639, ptr %453, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = load i32, ptr %399, align 4, !tbaa !5
  %2653 = call ptr @s2n_strerror(i32 noundef %2652, ptr noundef nonnull @.str.4) #13
  %2654 = load i32, ptr %399, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef nonnull @.str.4) #13
  %2656 = load i32, ptr %453, align 4, !tbaa !5
  %2657 = call ptr @strerror(i32 noundef %2656) #13
  %2658 = load i32, ptr %453, align 4, !tbaa !5
  %2659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2650, ptr noundef nonnull %.str.5.sink1537, i32 noundef %2651, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %2653, ptr noundef %2655, ptr noundef %2657, i32 noundef %2658) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2660:                                             ; preds = %2519
  %2661 = add nsw i32 %2527, 2
  store i32 %2661, ptr @test_count, align 4, !tbaa !5
  %2662 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2526, ptr noundef nonnull %192) #13
  %2663 = icmp eq i32 %2662, -1
  br i1 %2663, label %2664, label %2686

2664:                                             ; preds = %2833, %2660
  %2665 = load i32, ptr %453, align 4, !tbaa !5
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = call i32 @s2n_print_stacktrace(ptr noundef %2666) #13
  %2668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2669 = trunc nuw i8 %2668 to i1
  br i1 %2669, label %2670, label %2674

2670:                                             ; preds = %2664
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @fileno(ptr noundef %2671) #13
  %2673 = call i32 @isatty(i32 noundef %2672) #13
  %.not621 = icmp eq i32 %2673, 0
  br i1 %.not621, label %2674, label %2675

2674:                                             ; preds = %2670, %2664
  br label %2675

2675:                                             ; preds = %2670, %2674
  %.str.5.sink1546 = phi ptr [ @.str.5, %2674 ], [ @.str.2, %2670 ]
  store i32 %2665, ptr %453, align 4, !tbaa !5
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = load i32, ptr @test_count, align 4, !tbaa !5
  %2678 = load i32, ptr %399, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror(i32 noundef %2678, ptr noundef nonnull @.str.4) #13
  %2680 = load i32, ptr %399, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror_debug(i32 noundef %2680, ptr noundef nonnull @.str.4) #13
  %2682 = load i32, ptr %453, align 4, !tbaa !5
  %2683 = call ptr @strerror(i32 noundef %2682) #13
  %2684 = load i32, ptr %453, align 4, !tbaa !5
  %2685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2676, ptr noundef nonnull %.str.5.sink1546, i32 noundef %2677, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %2679, ptr noundef %2681, ptr noundef %2683, i32 noundef %2684) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2686:                                             ; preds = %2660
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = add nsw i32 %2687, 1
  store i32 %2688, ptr @test_count, align 4, !tbaa !5
  %2689 = load ptr, ptr %29, align 8, !tbaa !9
  %2690 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2689, ptr noundef nonnull @.str.13) #13
  %2691 = icmp eq i32 %2690, -1
  br i1 %2691, label %2692, label %2714

2692:                                             ; preds = %2837, %2686
  %2693 = load i32, ptr %453, align 4, !tbaa !5
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = call i32 @s2n_print_stacktrace(ptr noundef %2694) #13
  %2696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2697 = trunc nuw i8 %2696 to i1
  br i1 %2697, label %2698, label %2702

2698:                                             ; preds = %2692
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = call i32 @fileno(ptr noundef %2699) #13
  %2701 = call i32 @isatty(i32 noundef %2700) #13
  %.not620 = icmp eq i32 %2701, 0
  br i1 %.not620, label %2702, label %2703

2702:                                             ; preds = %2698, %2692
  br label %2703

2703:                                             ; preds = %2698, %2702
  %.str.5.sink1555 = phi ptr [ @.str.5, %2702 ], [ @.str.2, %2698 ]
  store i32 %2693, ptr %453, align 4, !tbaa !5
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = load i32, ptr @test_count, align 4, !tbaa !5
  %2706 = load i32, ptr %399, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror(i32 noundef %2706, ptr noundef nonnull @.str.4) #13
  %2708 = load i32, ptr %399, align 4, !tbaa !5
  %2709 = call ptr @s2n_strerror_debug(i32 noundef %2708, ptr noundef nonnull @.str.4) #13
  %2710 = load i32, ptr %453, align 4, !tbaa !5
  %2711 = call ptr @strerror(i32 noundef %2710) #13
  %2712 = load i32, ptr %453, align 4, !tbaa !5
  %2713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2704, ptr noundef nonnull %.str.5.sink1555, i32 noundef %2705, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %2707, ptr noundef %2709, ptr noundef %2711, i32 noundef %2712) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2714:                                             ; preds = %2686
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #13
  store ptr null, ptr %30, align 8, !tbaa !9
  %2715 = load i32, ptr @test_count, align 4, !tbaa !5
  %2716 = add nsw i32 %2715, 1
  store i32 %2716, ptr @test_count, align 4, !tbaa !5
  %2717 = load ptr, ptr %29, align 8, !tbaa !9
  %2718 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %30, ptr noundef %2717, ptr noundef nonnull %28, i32 noundef 63, i32 noundef %1842)
  %2719 = call zeroext i1 @s2n_result_is_ok(i32 %2718)
  br i1 %2719, label %2742, label %2720

2720:                                             ; preds = %2843, %2714
  %2721 = load i32, ptr %453, 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
  %.not614 = icmp eq i32 %2729, 0
  br i1 %.not614, label %2730, label %2731

2730:                                             ; preds = %2726, %2720
  br label %2731

2731:                                             ; preds = %2726, %2730
  %.str.5.sink1564 = phi ptr [ @.str.5, %2730 ], [ @.str.2, %2726 ]
  store i32 %2721, ptr %453, 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 %399, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror(i32 noundef %2734, ptr noundef nonnull @.str.4) #13
  %2736 = load i32, ptr %399, align 4, !tbaa !5
  %2737 = call ptr @s2n_strerror_debug(i32 noundef %2736, ptr noundef nonnull @.str.4) #13
  %2738 = load i32, ptr %453, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #13
  %2740 = load i32, ptr %453, align 4, !tbaa !5
  %2741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2732, ptr noundef nonnull %.str.5.sink1564, i32 noundef %2733, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %2735, ptr noundef %2737, ptr noundef %2739, i32 noundef %2740) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2742:                                             ; preds = %2714
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #13
  store i32 0, ptr %31, align 4, !tbaa !5
  %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 ptr, ptr %30, align 8, !tbaa !9
  %2746 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %2745, i32 noundef 0, i32 noundef %2523, ptr noundef nonnull %3, ptr noundef nonnull %31) #13
  %2747 = icmp eq i32 %2746, -1
  br i1 %2747, label %2748, label %2770

2748:                                             ; preds = %2849, %2742
  %2749 = load i32, ptr %453, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @s2n_print_stacktrace(ptr noundef %2750) #13
  %2752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2753 = trunc nuw i8 %2752 to i1
  br i1 %2753, label %2754, label %2758

2754:                                             ; preds = %2748
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = call i32 @fileno(ptr noundef %2755) #13
  %2757 = call i32 @isatty(i32 noundef %2756) #13
  %.not619 = icmp eq i32 %2757, 0
  br i1 %.not619, label %2758, label %2759

2758:                                             ; preds = %2754, %2748
  br label %2759

2759:                                             ; preds = %2754, %2758
  %.str.5.sink1573 = phi ptr [ @.str.5, %2758 ], [ @.str.2, %2754 ]
  store i32 %2749, ptr %453, align 4, !tbaa !5
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = load i32, ptr %399, align 4, !tbaa !5
  %2763 = call ptr @s2n_strerror(i32 noundef %2762, ptr noundef nonnull @.str.4) #13
  %2764 = load i32, ptr %399, align 4, !tbaa !5
  %2765 = call ptr @s2n_strerror_debug(i32 noundef %2764, ptr noundef nonnull @.str.4) #13
  %2766 = load i32, ptr %453, align 4, !tbaa !5
  %2767 = call ptr @strerror(i32 noundef %2766) #13
  %2768 = load i32, ptr %453, align 4, !tbaa !5
  %2769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2760, ptr noundef nonnull %.str.5.sink1573, i32 noundef %2761, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %2763, ptr noundef %2765, ptr noundef %2767, i32 noundef %2768) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2770:                                             ; preds = %2742
  %2771 = load i32, ptr @test_count, align 4, !tbaa !5
  %2772 = add nsw i32 %2771, 1
  store i32 %2772, ptr @test_count, align 4, !tbaa !5
  %2773 = load i32, ptr %31, align 4, !tbaa !5
  %2774 = zext i32 %2773 to i64
  %2775 = icmp eq i64 %2522, %2774
  br i1 %2775, label %2798, label %2776

2776:                                             ; preds = %2855, %2770
  %2777 = load i32, ptr %453, align 4, !tbaa !5
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @s2n_print_stacktrace(ptr noundef %2778) #13
  %2780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2781 = trunc nuw i8 %2780 to i1
  br i1 %2781, label %2782, label %2786

2782:                                             ; preds = %2776
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = call i32 @fileno(ptr noundef %2783) #13
  %2785 = call i32 @isatty(i32 noundef %2784) #13
  %.not615 = icmp eq i32 %2785, 0
  br i1 %.not615, label %2786, label %2787

2786:                                             ; preds = %2782, %2776
  br label %2787

2787:                                             ; preds = %2782, %2786
  %.str.5.sink1582 = phi ptr [ @.str.5, %2786 ], [ @.str.2, %2782 ]
  store i32 %2777, ptr %453, align 4, !tbaa !5
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = load i32, ptr @test_count, align 4, !tbaa !5
  %2790 = load i32, ptr %399, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror(i32 noundef %2790, ptr noundef nonnull @.str.4) #13
  %2792 = load i32, ptr %399, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror_debug(i32 noundef %2792, ptr noundef nonnull @.str.4) #13
  %2794 = load i32, ptr %453, align 4, !tbaa !5
  %2795 = call ptr @strerror(i32 noundef %2794) #13
  %2796 = load i32, ptr %453, align 4, !tbaa !5
  %2797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2788, ptr noundef nonnull %.str.5.sink1582, i32 noundef %2789, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %2791, ptr noundef %2793, ptr noundef %2795, i32 noundef %2796) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2798:                                             ; preds = %2770
  %.not616 = icmp eq i32 %2773, 0
  br i1 %.not616, label %2824, label %2799

2799:                                             ; preds = %2798
  %2800 = add nsw i32 %2771, 2
  store i32 %2800, ptr @test_count, align 4, !tbaa !5
  %bcmp617 = call i32 @bcmp(ptr nonnull @__const.main.expected_ja3.58, ptr nonnull %3, i64 %2522)
  %2801 = icmp eq i32 %bcmp617, 0
  br i1 %2801, label %2824, label %2802

2802:                                             ; preds = %2862, %2799
  %2803 = load i32, ptr %453, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = call i32 @s2n_print_stacktrace(ptr noundef %2804) #13
  %2806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2807 = trunc nuw i8 %2806 to i1
  br i1 %2807, label %2808, label %2812

2808:                                             ; preds = %2802
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2810 = call i32 @fileno(ptr noundef %2809) #13
  %2811 = call i32 @isatty(i32 noundef %2810) #13
  %.not618 = icmp eq i32 %2811, 0
  br i1 %.not618, label %2812, label %2813

2812:                                             ; preds = %2808, %2802
  br label %2813

2813:                                             ; preds = %2808, %2812
  %.str.5.sink1591 = phi ptr [ @.str.5, %2812 ], [ @.str.2, %2808 ]
  store i32 %2803, ptr %453, align 4, !tbaa !5
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = load i32, ptr @test_count, align 4, !tbaa !5
  %2816 = load i32, ptr %399, align 4, !tbaa !5
  %2817 = call ptr @s2n_strerror(i32 noundef %2816, ptr noundef nonnull @.str.4) #13
  %2818 = load i32, ptr %399, align 4, !tbaa !5
  %2819 = call ptr @s2n_strerror_debug(i32 noundef %2818, ptr noundef nonnull @.str.4) #13
  %2820 = load i32, ptr %453, align 4, !tbaa !5
  %2821 = call ptr @strerror(i32 noundef %2820) #13
  %2822 = load i32, ptr %453, align 4, !tbaa !5
  %2823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2814, ptr noundef nonnull %.str.5.sink1591, i32 noundef %2815, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %2817, ptr noundef %2819, ptr noundef %2821, i32 noundef %2822) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2824:                                             ; preds = %2799, %2798
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #13
  %2825 = call i32 @s2n_client_hello_free(ptr noundef nonnull %30) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #13
  %2826 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 63, ptr nonnull %28) #13
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = add nsw i32 %2827, 1
  store i32 %2828, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 63, ptr nonnull %28) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(63) %28, ptr noundef nonnull align 16 dereferenceable(63) @__const.main.client_hello_bytes.57, i64 63, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #13
  %2829 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %2829, ptr %29, align 8, !tbaa !9
  %2830 = load i32, ptr @test_count, align 4, !tbaa !5
  %2831 = add nsw i32 %2830, 1
  store i32 %2831, ptr @test_count, align 4, !tbaa !5
  %2832 = icmp eq ptr %2829, null
  br i1 %2832, label %2638, label %2833

2833:                                             ; preds = %2824
  %2834 = add nsw i32 %2830, 2
  store i32 %2834, ptr @test_count, align 4, !tbaa !5
  %2835 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2829, ptr noundef nonnull %192) #13
  %2836 = icmp eq i32 %2835, -1
  br i1 %2836, label %2664, label %2837

2837:                                             ; preds = %2833
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = add nsw i32 %2838, 1
  store i32 %2839, ptr @test_count, align 4, !tbaa !5
  %2840 = load ptr, ptr %29, align 8, !tbaa !9
  %2841 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2840, ptr noundef nonnull @.str.13) #13
  %2842 = icmp eq i32 %2841, -1
  br i1 %2842, label %2692, label %2843

2843:                                             ; preds = %2837
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #13
  store ptr null, ptr %30, align 8, !tbaa !9
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %2845 = add nsw i32 %2844, 1
  store i32 %2845, ptr @test_count, align 4, !tbaa !5
  %2846 = load ptr, ptr %29, align 8, !tbaa !9
  %2847 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %30, ptr noundef %2846, ptr noundef nonnull %28, i32 noundef 63, i32 noundef %2038)
  %2848 = call zeroext i1 @s2n_result_is_ok(i32 %2847)
  br i1 %2848, label %2849, label %2720

2849:                                             ; preds = %2843
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #13
  store i32 0, ptr %31, align 4, !tbaa !5
  %2850 = load i32, ptr @test_count, align 4, !tbaa !5
  %2851 = add nsw i32 %2850, 1
  store i32 %2851, ptr @test_count, align 4, !tbaa !5
  %2852 = load ptr, ptr %30, align 8, !tbaa !9
  %2853 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %2852, i32 noundef 0, i32 noundef %2523, ptr noundef nonnull %3, ptr noundef nonnull %31) #13
  %2854 = icmp eq i32 %2853, -1
  br i1 %2854, label %2748, label %2855

2855:                                             ; preds = %2849
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = add nsw i32 %2856, 1
  store i32 %2857, ptr @test_count, align 4, !tbaa !5
  %2858 = load i32, ptr %31, align 4, !tbaa !5
  %2859 = zext i32 %2858 to i64
  %2860 = icmp eq i64 %2522, %2859
  br i1 %2860, label %2861, label %2776

2861:                                             ; preds = %2855
  %.not616.1 = icmp eq i32 %2858, 0
  br i1 %.not616.1, label %2865, label %2862

2862:                                             ; preds = %2861
  %2863 = add nsw i32 %2856, 2
  store i32 %2863, ptr @test_count, align 4, !tbaa !5
  %bcmp617.1 = call i32 @bcmp(ptr nonnull @__const.main.expected_ja3.58, ptr nonnull %3, i64 %2522)
  %2864 = icmp eq i32 %bcmp617.1, 0
  br i1 %2864, label %2865, label %2802

2865:                                             ; preds = %2862, %2861
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #13
  %2866 = call i32 @s2n_client_hello_free(ptr noundef nonnull %30) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #13
  %2867 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 63, ptr nonnull %28) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #13
  %2868 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %2868, ptr %32, align 8, !tbaa !9
  %2869 = load i32, ptr @test_count, align 4, !tbaa !5
  %2870 = add nsw i32 %2869, 1
  store i32 %2870, ptr @test_count, align 4, !tbaa !5
  %2871 = icmp eq ptr %2868, null
  br i1 %2871, label %2872, label %2894

2872:                                             ; preds = %2865
  %2873 = load i32, ptr %453, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = call i32 @s2n_print_stacktrace(ptr noundef %2874) #13
  %2876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2877 = trunc nuw i8 %2876 to i1
  br i1 %2877, label %2878, label %2882

2878:                                             ; preds = %2872
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @fileno(ptr noundef %2879) #13
  %2881 = call i32 @isatty(i32 noundef %2880) #13
  %.not613 = icmp eq i32 %2881, 0
  br i1 %.not613, label %2882, label %2883

2882:                                             ; preds = %2878, %2872
  br label %2883

2883:                                             ; preds = %2878, %2882
  %.str.5.sink1600 = phi ptr [ @.str.5, %2882 ], [ @.str.2, %2878 ]
  store i32 %2873, ptr %453, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = load i32, ptr %399, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror(i32 noundef %2886, ptr noundef nonnull @.str.4) #13
  %2888 = load i32, ptr %399, align 4, !tbaa !5
  %2889 = call ptr @s2n_strerror_debug(i32 noundef %2888, ptr noundef nonnull @.str.4) #13
  %2890 = load i32, ptr %453, align 4, !tbaa !5
  %2891 = call ptr @strerror(i32 noundef %2890) #13
  %2892 = load i32, ptr %453, align 4, !tbaa !5
  %2893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2884, ptr noundef nonnull %.str.5.sink1600, i32 noundef %2885, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %2887, ptr noundef %2889, ptr noundef %2891, i32 noundef %2892) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2894:                                             ; preds = %2865
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #13
  %2895 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %2895, ptr %33, align 8, !tbaa !9
  %2896 = load i32, ptr @test_count, align 4, !tbaa !5
  %2897 = add nsw i32 %2896, 1
  store i32 %2897, ptr @test_count, align 4, !tbaa !5
  %2898 = icmp eq ptr %2895, null
  br i1 %2898, label %2899, label %2921

2899:                                             ; preds = %2894
  %2900 = load i32, ptr %453, align 4, !tbaa !5
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @s2n_print_stacktrace(ptr noundef %2901) #13
  %2903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2904 = trunc nuw i8 %2903 to i1
  br i1 %2904, label %2905, label %2909

2905:                                             ; preds = %2899
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = call i32 @fileno(ptr noundef %2906) #13
  %2908 = call i32 @isatty(i32 noundef %2907) #13
  %.not612 = icmp eq i32 %2908, 0
  br i1 %.not612, label %2909, label %2910

2909:                                             ; preds = %2905, %2899
  br label %2910

2910:                                             ; preds = %2905, %2909
  %.str.5.sink1609 = phi ptr [ @.str.5, %2909 ], [ @.str.2, %2905 ]
  store i32 %2900, ptr %453, align 4, !tbaa !5
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = load i32, ptr @test_count, align 4, !tbaa !5
  %2913 = load i32, ptr %399, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef nonnull @.str.4) #13
  %2915 = load i32, ptr %399, align 4, !tbaa !5
  %2916 = call ptr @s2n_strerror_debug(i32 noundef %2915, ptr noundef nonnull @.str.4) #13
  %2917 = load i32, ptr %453, align 4, !tbaa !5
  %2918 = call ptr @strerror(i32 noundef %2917) #13
  %2919 = load i32, ptr %453, align 4, !tbaa !5
  %2920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2911, ptr noundef nonnull %.str.5.sink1609, i32 noundef %2912, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %2914, ptr noundef %2916, ptr noundef %2918, i32 noundef %2919) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2921:                                             ; preds = %2894
  %2922 = add nsw i32 %2896, 2
  store i32 %2922, ptr @test_count, align 4, !tbaa !5
  %2923 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2895, ptr noundef nonnull %192) #13
  %2924 = icmp eq i32 %2923, -1
  br i1 %2924, label %2925, label %2947

2925:                                             ; preds = %2921
  %2926 = load i32, ptr %453, align 4, !tbaa !5
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = call i32 @s2n_print_stacktrace(ptr noundef %2927) #13
  %2929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2930 = trunc nuw i8 %2929 to i1
  br i1 %2930, label %2931, label %2935

2931:                                             ; preds = %2925
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = call i32 @fileno(ptr noundef %2932) #13
  %2934 = call i32 @isatty(i32 noundef %2933) #13
  %.not611 = icmp eq i32 %2934, 0
  br i1 %.not611, label %2935, label %2936

2935:                                             ; preds = %2931, %2925
  br label %2936

2936:                                             ; preds = %2931, %2935
  %.str.5.sink1618 = phi ptr [ @.str.5, %2935 ], [ @.str.2, %2931 ]
  store i32 %2926, ptr %453, align 4, !tbaa !5
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = load i32, ptr @test_count, align 4, !tbaa !5
  %2939 = load i32, ptr %399, align 4, !tbaa !5
  %2940 = call ptr @s2n_strerror(i32 noundef %2939, ptr noundef nonnull @.str.4) #13
  %2941 = load i32, ptr %399, align 4, !tbaa !5
  %2942 = call ptr @s2n_strerror_debug(i32 noundef %2941, ptr noundef nonnull @.str.4) #13
  %2943 = load i32, ptr %453, align 4, !tbaa !5
  %2944 = call ptr @strerror(i32 noundef %2943) #13
  %2945 = load i32, ptr %453, align 4, !tbaa !5
  %2946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2937, ptr noundef nonnull %.str.5.sink1618, i32 noundef %2938, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 444, ptr noundef %2940, ptr noundef %2942, ptr noundef %2944, i32 noundef %2945) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2947:                                             ; preds = %2921
  %2948 = load i32, ptr @test_count, align 4, !tbaa !5
  %2949 = add nsw i32 %2948, 1
  store i32 %2949, ptr @test_count, align 4, !tbaa !5
  %2950 = load ptr, ptr %32, align 8, !tbaa !9
  %2951 = call i32 @s2n_client_hello_send(ptr noundef %2950) #13
  %2952 = icmp eq i32 %2951, -1
  br i1 %2952, label %2953, label %2975

2953:                                             ; preds = %2947
  %2954 = load i32, ptr %453, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = call i32 @s2n_print_stacktrace(ptr noundef %2955) #13
  %2957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2958 = trunc nuw i8 %2957 to i1
  br i1 %2958, label %2959, label %2963

2959:                                             ; preds = %2953
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @fileno(ptr noundef %2960) #13
  %2962 = call i32 @isatty(i32 noundef %2961) #13
  %.not610 = icmp eq i32 %2962, 0
  br i1 %.not610, label %2963, label %2964

2963:                                             ; preds = %2959, %2953
  br label %2964

2964:                                             ; preds = %2959, %2963
  %.str.5.sink1627 = phi ptr [ @.str.5, %2963 ], [ @.str.2, %2959 ]
  store i32 %2954, ptr %453, align 4, !tbaa !5
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = load i32, ptr @test_count, align 4, !tbaa !5
  %2967 = load i32, ptr %399, align 4, !tbaa !5
  %2968 = call ptr @s2n_strerror(i32 noundef %2967, ptr noundef nonnull @.str.4) #13
  %2969 = load i32, ptr %399, align 4, !tbaa !5
  %2970 = call ptr @s2n_strerror_debug(i32 noundef %2969, ptr noundef nonnull @.str.4) #13
  %2971 = load i32, ptr %453, align 4, !tbaa !5
  %2972 = call ptr @strerror(i32 noundef %2971) #13
  %2973 = load i32, ptr %453, align 4, !tbaa !5
  %2974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2965, ptr noundef nonnull %.str.5.sink1627, i32 noundef %2966, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %2968, ptr noundef %2970, ptr noundef %2972, i32 noundef %2973) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2975:                                             ; preds = %2947
  %2976 = load i32, ptr @test_count, align 4, !tbaa !5
  %2977 = add nsw i32 %2976, 1
  store i32 %2977, ptr @test_count, align 4, !tbaa !5
  %2978 = load ptr, ptr %32, align 8, !tbaa !9
  %2979 = getelementptr inbounds i8, ptr %2978, i64 2016
  %2980 = load ptr, ptr %33, align 8, !tbaa !9
  %2981 = getelementptr inbounds i8, ptr %2980, i64 2016
  %2982 = getelementptr inbounds i8, ptr %2978, i64 2044
  %2983 = load i32, ptr %2982, align 4, !tbaa !15
  %2984 = getelementptr inbounds i8, ptr %2978, i64 2040
  %2985 = load i32, ptr %2984, align 8, !tbaa !42
  %2986 = sub i32 %2983, %2985
  %2987 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2979, ptr noundef nonnull %2981, i32 noundef %2986) #13
  %2988 = icmp eq i32 %2987, -1
  br i1 %2988, label %2989, label %3011

2989:                                             ; preds = %2975
  %2990 = load i32, ptr %453, align 4, !tbaa !5
  %2991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2992 = call i32 @s2n_print_stacktrace(ptr noundef %2991) #13
  %2993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2994 = trunc nuw i8 %2993 to i1
  br i1 %2994, label %2995, label %2999

2995:                                             ; preds = %2989
  %2996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2997 = call i32 @fileno(ptr noundef %2996) #13
  %2998 = call i32 @isatty(i32 noundef %2997) #13
  %.not609 = icmp eq i32 %2998, 0
  br i1 %.not609, label %2999, label %3000

2999:                                             ; preds = %2995, %2989
  br label %3000

3000:                                             ; preds = %2995, %2999
  %.str.5.sink1636 = phi ptr [ @.str.5, %2999 ], [ @.str.2, %2995 ]
  store i32 %2990, ptr %453, align 4, !tbaa !5
  %3001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = load i32, ptr %399, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror(i32 noundef %3003, ptr noundef nonnull @.str.4) #13
  %3005 = load i32, ptr %399, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror_debug(i32 noundef %3005, ptr noundef nonnull @.str.4) #13
  %3007 = load i32, ptr %453, align 4, !tbaa !5
  %3008 = call ptr @strerror(i32 noundef %3007) #13
  %3009 = load i32, ptr %453, align 4, !tbaa !5
  %3010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3001, ptr noundef nonnull %.str.5.sink1636, i32 noundef %3002, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %3004, ptr noundef %3006, ptr noundef %3008, i32 noundef %3009) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3011:                                             ; preds = %2975
  %3012 = load i32, ptr @test_count, align 4, !tbaa !5
  %3013 = add nsw i32 %3012, 1
  store i32 %3013, ptr @test_count, align 4, !tbaa !5
  %3014 = load ptr, ptr %33, align 8, !tbaa !9
  %3015 = call i32 @s2n_client_hello_recv(ptr noundef %3014) #13
  %3016 = icmp eq i32 %3015, -1
  br i1 %3016, label %3017, label %3039

3017:                                             ; preds = %3011
  %3018 = load i32, ptr %453, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @s2n_print_stacktrace(ptr noundef %3019) #13
  %3021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3022 = trunc nuw i8 %3021 to i1
  br i1 %3022, label %3023, label %3027

3023:                                             ; preds = %3017
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = call i32 @fileno(ptr noundef %3024) #13
  %3026 = call i32 @isatty(i32 noundef %3025) #13
  %.not608 = icmp eq i32 %3026, 0
  br i1 %.not608, label %3027, label %3028

3027:                                             ; preds = %3023, %3017
  br label %3028

3028:                                             ; preds = %3023, %3027
  %.str.5.sink1645 = phi ptr [ @.str.5, %3027 ], [ @.str.2, %3023 ]
  store i32 %3018, ptr %453, align 4, !tbaa !5
  %3029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3030 = load i32, ptr @test_count, align 4, !tbaa !5
  %3031 = load i32, ptr %399, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror(i32 noundef %3031, ptr noundef nonnull @.str.4) #13
  %3033 = load i32, ptr %399, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef nonnull @.str.4) #13
  %3035 = load i32, ptr %453, align 4, !tbaa !5
  %3036 = call ptr @strerror(i32 noundef %3035) #13
  %3037 = load i32, ptr %453, align 4, !tbaa !5
  %3038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3029, ptr noundef nonnull %.str.5.sink1645, i32 noundef %3030, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %3032, ptr noundef %3034, ptr noundef %3036, i32 noundef %3037) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3039:                                             ; preds = %3011
  %3040 = load ptr, ptr %33, align 8, !tbaa !9
  %3041 = call ptr @s2n_connection_get_client_hello(ptr noundef %3040) #13
  %3042 = load i32, ptr @test_count, align 4, !tbaa !5
  %3043 = add nsw i32 %3042, 1
  store i32 %3043, ptr @test_count, align 4, !tbaa !5
  %3044 = icmp eq ptr %3041, null
  br i1 %3044, label %3045, label %3067

3045:                                             ; preds = %3039
  %3046 = load i32, ptr %453, align 4, !tbaa !5
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = call i32 @s2n_print_stacktrace(ptr noundef %3047) #13
  %3049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3050 = trunc nuw i8 %3049 to i1
  br i1 %3050, label %3051, label %3055

3051:                                             ; preds = %3045
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = call i32 @fileno(ptr noundef %3052) #13
  %3054 = call i32 @isatty(i32 noundef %3053) #13
  %.not607 = icmp eq i32 %3054, 0
  br i1 %.not607, label %3055, label %3056

3055:                                             ; preds = %3051, %3045
  br label %3056

3056:                                             ; preds = %3051, %3055
  %.str.5.sink1654 = phi ptr [ @.str.5, %3055 ], [ @.str.2, %3051 ]
  store i32 %3046, ptr %453, align 4, !tbaa !5
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = load i32, ptr %399, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror(i32 noundef %3059, ptr noundef nonnull @.str.4) #13
  %3061 = load i32, ptr %399, align 4, !tbaa !5
  %3062 = call ptr @s2n_strerror_debug(i32 noundef %3061, ptr noundef nonnull @.str.4) #13
  %3063 = load i32, ptr %453, align 4, !tbaa !5
  %3064 = call ptr @strerror(i32 noundef %3063) #13
  %3065 = load i32, ptr %453, align 4, !tbaa !5
  %3066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3057, ptr noundef nonnull %.str.5.sink1654, i32 noundef %3058, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %3060, ptr noundef %3062, ptr noundef %3064, i32 noundef %3065) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3067:                                             ; preds = %3039
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #13
  store i32 0, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #13
  store i32 0, ptr %35, align 4, !tbaa !5
  %3068 = add nsw i32 %3042, 2
  store i32 %3068, ptr @test_count, align 4, !tbaa !5
  %3069 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %3041, i32 noundef 0, i32 noundef 16, ptr noundef nonnull %3, ptr noundef nonnull %34, ptr noundef nonnull %35) #13
  %3070 = icmp eq i32 %3069, -1
  br i1 %3070, label %3071, label %3093

3071:                                             ; preds = %3067
  %3072 = load i32, ptr %453, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = call i32 @s2n_print_stacktrace(ptr noundef %3073) #13
  %3075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3076 = trunc nuw i8 %3075 to i1
  br i1 %3076, label %3077, label %3081

3077:                                             ; preds = %3071
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = call i32 @fileno(ptr noundef %3078) #13
  %3080 = call i32 @isatty(i32 noundef %3079) #13
  %.not606 = icmp eq i32 %3080, 0
  br i1 %.not606, label %3081, label %3082

3081:                                             ; preds = %3077, %3071
  br label %3082

3082:                                             ; preds = %3077, %3081
  %.str.5.sink1663 = phi ptr [ @.str.5, %3081 ], [ @.str.2, %3077 ]
  store i32 %3072, ptr %453, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = load i32, ptr %399, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror(i32 noundef %3085, ptr noundef nonnull @.str.4) #13
  %3087 = load i32, ptr %399, align 4, !tbaa !5
  %3088 = call ptr @s2n_strerror_debug(i32 noundef %3087, ptr noundef nonnull @.str.4) #13
  %3089 = load i32, ptr %453, align 4, !tbaa !5
  %3090 = call ptr @strerror(i32 noundef %3089) #13
  %3091 = load i32, ptr %453, align 4, !tbaa !5
  %3092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3083, ptr noundef nonnull %.str.5.sink1663, i32 noundef %3084, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %3086, ptr noundef %3088, ptr noundef %3090, i32 noundef %3091) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3093:                                             ; preds = %3067
  %3094 = load i32, ptr @test_count, align 4, !tbaa !5
  %3095 = add nsw i32 %3094, 1
  store i32 %3095, ptr @test_count, align 4, !tbaa !5
  %3096 = load i32, ptr %35, align 4, !tbaa !5
  %3097 = icmp ugt i32 %3096, 16
  br i1 %3097, label %3120, label %3098

3098:                                             ; preds = %3093
  %3099 = load i32, ptr %453, align 4, !tbaa !5
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = call i32 @s2n_print_stacktrace(ptr noundef %3100) #13
  %3102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3103 = trunc nuw i8 %3102 to i1
  br i1 %3103, label %3104, label %3108

3104:                                             ; preds = %3098
  %3105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3106 = call i32 @fileno(ptr noundef %3105) #13
  %3107 = call i32 @isatty(i32 noundef %3106) #13
  %.not511 = icmp eq i32 %3107, 0
  br i1 %.not511, label %3108, label %3109

3108:                                             ; preds = %3104, %3098
  br label %3109

3109:                                             ; preds = %3104, %3108
  %.str.5.sink1672 = phi ptr [ @.str.5, %3108 ], [ @.str.2, %3104 ]
  store i32 %3099, ptr %453, align 4, !tbaa !5
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = load i32, ptr @test_count, align 4, !tbaa !5
  %3112 = load i32, ptr %399, align 4, !tbaa !5
  %3113 = call ptr @s2n_strerror(i32 noundef %3112, ptr noundef nonnull @.str.4) #13
  %3114 = load i32, ptr %399, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror_debug(i32 noundef %3114, ptr noundef nonnull @.str.4) #13
  %3116 = load i32, ptr %453, align 4, !tbaa !5
  %3117 = call ptr @strerror(i32 noundef %3116) #13
  %3118 = load i32, ptr %453, align 4, !tbaa !5
  %3119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3110, ptr noundef nonnull %.str.5.sink1672, i32 noundef %3111, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %3113, ptr noundef %3115, ptr noundef %3117, i32 noundef %3118) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3120:                                             ; preds = %3093
  %3121 = add nsw i32 %3094, 2
  store i32 %3121, ptr @test_count, align 4, !tbaa !5
  %3122 = load i32, ptr %34, align 4, !tbaa !5
  %3123 = icmp eq i32 %3122, 16
  br i1 %3123, label %3146, label %3124

3124:                                             ; preds = %3120
  %3125 = load i32, ptr %453, align 4, !tbaa !5
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = call i32 @s2n_print_stacktrace(ptr noundef %3126) #13
  %3128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3129 = trunc nuw i8 %3128 to i1
  br i1 %3129, label %3130, label %3134

3130:                                             ; preds = %3124
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = call i32 @fileno(ptr noundef %3131) #13
  %3133 = call i32 @isatty(i32 noundef %3132) #13
  %.not512 = icmp eq i32 %3133, 0
  br i1 %.not512, label %3134, label %3135

3134:                                             ; preds = %3130, %3124
  br label %3135

3135:                                             ; preds = %3130, %3134
  %.str.5.sink1681 = phi ptr [ @.str.5, %3134 ], [ @.str.2, %3130 ]
  store i32 %3125, ptr %453, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = load i32, ptr %399, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror(i32 noundef %3138, ptr noundef nonnull @.str.4) #13
  %3140 = load i32, ptr %399, align 4, !tbaa !5
  %3141 = call ptr @s2n_strerror_debug(i32 noundef %3140, ptr noundef nonnull @.str.4) #13
  %3142 = load i32, ptr %453, align 4, !tbaa !5
  %3143 = call ptr @strerror(i32 noundef %3142) #13
  %3144 = load i32, ptr %453, align 4, !tbaa !5
  %3145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3136, ptr noundef nonnull %.str.5.sink1681, i32 noundef %3137, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %3139, ptr noundef %3141, ptr noundef %3143, i32 noundef %3144) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3146:                                             ; preds = %3120
  %3147 = add nsw i32 %3094, 3
  store i32 %3147, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(16) %6, ptr noundef nonnull dereferenceable(16) %3, i64 16)
  %3148 = icmp eq i32 %bcmp, 0
  br i1 %3148, label %3149, label %3171

3149:                                             ; preds = %3146
  %3150 = load i32, ptr %453, align 4, !tbaa !5
  %3151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3152 = call i32 @s2n_print_stacktrace(ptr noundef %3151) #13
  %3153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3154 = trunc nuw i8 %3153 to i1
  br i1 %3154, label %3155, label %3159

3155:                                             ; preds = %3149
  %3156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3157 = call i32 @fileno(ptr noundef %3156) #13
  %3158 = call i32 @isatty(i32 noundef %3157) #13
  %.not605 = icmp eq i32 %3158, 0
  br i1 %.not605, label %3159, label %3160

3159:                                             ; preds = %3155, %3149
  br label %3160

3160:                                             ; preds = %3155, %3159
  %.str.5.sink1690 = phi ptr [ @.str.5, %3159 ], [ @.str.2, %3155 ]
  store i32 %3150, ptr %453, align 4, !tbaa !5
  %3161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3162 = load i32, ptr @test_count, align 4, !tbaa !5
  %3163 = load i32, ptr %399, align 4, !tbaa !5
  %3164 = call ptr @s2n_strerror(i32 noundef %3163, ptr noundef nonnull @.str.4) #13
  %3165 = load i32, ptr %399, align 4, !tbaa !5
  %3166 = call ptr @s2n_strerror_debug(i32 noundef %3165, ptr noundef nonnull @.str.4) #13
  %3167 = load i32, ptr %453, align 4, !tbaa !5
  %3168 = call ptr @strerror(i32 noundef %3167) #13
  %3169 = load i32, ptr %453, align 4, !tbaa !5
  %3170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3161, ptr noundef nonnull %.str.5.sink1690, i32 noundef %3162, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %3164, ptr noundef %3166, ptr noundef %3168, i32 noundef %3169) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3171:                                             ; preds = %3146
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %36, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #13
  store i32 0, ptr %37, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #13
  store i32 0, ptr %38, align 4, !tbaa !5
  %3172 = add nsw i32 %3094, 4
  store i32 %3172, ptr @test_count, align 4, !tbaa !5
  %3173 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %3041, i32 noundef 0, i32 noundef 16, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38) #13
  %3174 = icmp eq i32 %3173, -1
  br i1 %3174, label %3175, label %3197

3175:                                             ; preds = %3171
  %3176 = load i32, ptr %453, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = call i32 @s2n_print_stacktrace(ptr noundef %3177) #13
  %3179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3180 = trunc nuw i8 %3179 to i1
  br i1 %3180, label %3181, label %3185

3181:                                             ; preds = %3175
  %3182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3183 = call i32 @fileno(ptr noundef %3182) #13
  %3184 = call i32 @isatty(i32 noundef %3183) #13
  %.not604 = icmp eq i32 %3184, 0
  br i1 %.not604, label %3185, label %3186

3185:                                             ; preds = %3181, %3175
  br label %3186

3186:                                             ; preds = %3181, %3185
  %.str.5.sink1699 = phi ptr [ @.str.5, %3185 ], [ @.str.2, %3181 ]
  store i32 %3176, ptr %453, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = load i32, ptr %399, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef nonnull @.str.4) #13
  %3191 = load i32, ptr %399, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef nonnull @.str.4) #13
  %3193 = load i32, ptr %453, align 4, !tbaa !5
  %3194 = call ptr @strerror(i32 noundef %3193) #13
  %3195 = load i32, ptr %453, align 4, !tbaa !5
  %3196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3187, ptr noundef nonnull %.str.5.sink1699, i32 noundef %3188, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 467, ptr noundef %3190, ptr noundef %3192, ptr noundef %3194, i32 noundef %3195) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3197:                                             ; preds = %3171
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr @test_count, align 4, !tbaa !5
  %3200 = load i32, ptr %35, align 4, !tbaa !5
  %3201 = load i32, ptr %38, align 4, !tbaa !5
  %3202 = icmp eq i32 %3200, %3201
  br i1 %3202, label %3225, label %3203

3203:                                             ; preds = %3197
  %3204 = load i32, ptr %453, align 4, !tbaa !5
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = call i32 @s2n_print_stacktrace(ptr noundef %3205) #13
  %3207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3208 = trunc nuw i8 %3207 to i1
  br i1 %3208, label %3209, label %3213

3209:                                             ; preds = %3203
  %3210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3211 = call i32 @fileno(ptr noundef %3210) #13
  %3212 = call i32 @isatty(i32 noundef %3211) #13
  %.not513 = icmp eq i32 %3212, 0
  br i1 %.not513, label %3213, label %3214

3213:                                             ; preds = %3209, %3203
  br label %3214

3214:                                             ; preds = %3209, %3213
  %.str.5.sink1708 = phi ptr [ @.str.5, %3213 ], [ @.str.2, %3209 ]
  store i32 %3204, ptr %453, align 4, !tbaa !5
  %3215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3216 = load i32, ptr @test_count, align 4, !tbaa !5
  %3217 = load i32, ptr %399, align 4, !tbaa !5
  %3218 = call ptr @s2n_strerror(i32 noundef %3217, ptr noundef nonnull @.str.4) #13
  %3219 = load i32, ptr %399, align 4, !tbaa !5
  %3220 = call ptr @s2n_strerror_debug(i32 noundef %3219, ptr noundef nonnull @.str.4) #13
  %3221 = load i32, ptr %453, align 4, !tbaa !5
  %3222 = call ptr @strerror(i32 noundef %3221) #13
  %3223 = load i32, ptr %453, align 4, !tbaa !5
  %3224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3215, ptr noundef nonnull %.str.5.sink1708, i32 noundef %3216, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 468, ptr noundef %3218, ptr noundef %3220, ptr noundef %3222, i32 noundef %3223) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3225:                                             ; preds = %3197
  %3226 = add nsw i32 %3198, 2
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = load i32, ptr %34, align 4, !tbaa !5
  %3228 = load i32, ptr %37, align 4, !tbaa !5
  %3229 = icmp eq i32 %3227, %3228
  br i1 %3229, label %3252, label %3230

3230:                                             ; preds = %3225
  %3231 = load i32, ptr %453, align 4, !tbaa !5
  %3232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3233 = call i32 @s2n_print_stacktrace(ptr noundef %3232) #13
  %3234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3235 = trunc nuw i8 %3234 to i1
  br i1 %3235, label %3236, label %3240

3236:                                             ; preds = %3230
  %3237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3238 = call i32 @fileno(ptr noundef %3237) #13
  %3239 = call i32 @isatty(i32 noundef %3238) #13
  %.not514 = icmp eq i32 %3239, 0
  br i1 %.not514, label %3240, label %3241

3240:                                             ; preds = %3236, %3230
  br label %3241

3241:                                             ; preds = %3236, %3240
  %.str.5.sink1717 = phi ptr [ @.str.5, %3240 ], [ @.str.2, %3236 ]
  store i32 %3231, ptr %453, align 4, !tbaa !5
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = load i32, ptr @test_count, align 4, !tbaa !5
  %3244 = load i32, ptr %399, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror(i32 noundef %3244, ptr noundef nonnull @.str.4) #13
  %3246 = load i32, ptr %399, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror_debug(i32 noundef %3246, ptr noundef nonnull @.str.4) #13
  %3248 = load i32, ptr %453, align 4, !tbaa !5
  %3249 = call ptr @strerror(i32 noundef %3248) #13
  %3250 = load i32, ptr %453, align 4, !tbaa !5
  %3251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3242, ptr noundef nonnull %.str.5.sink1717, i32 noundef %3243, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %3245, ptr noundef %3247, ptr noundef %3249, i32 noundef %3250) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3252:                                             ; preds = %3225
  %.not515 = icmp eq i32 %3227, 0
  br i1 %.not515, label %3279, label %3253

3253:                                             ; preds = %3252
  %3254 = add nsw i32 %3198, 3
  store i32 %3254, ptr @test_count, align 4, !tbaa !5
  %3255 = zext i32 %3227 to i64
  %bcmp516 = call i32 @bcmp(ptr nonnull %3, ptr nonnull %36, i64 %3255)
  %3256 = icmp eq i32 %bcmp516, 0
  br i1 %3256, label %3279, label %3257

3257:                                             ; preds = %3253
  %3258 = load i32, ptr %453, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = call i32 @s2n_print_stacktrace(ptr noundef %3259) #13
  %3261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3262 = trunc nuw i8 %3261 to i1
  br i1 %3262, label %3263, label %3267

3263:                                             ; preds = %3257
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = call i32 @fileno(ptr noundef %3264) #13
  %3266 = call i32 @isatty(i32 noundef %3265) #13
  %.not517 = icmp eq i32 %3266, 0
  br i1 %.not517, label %3267, label %3268

3267:                                             ; preds = %3263, %3257
  br label %3268

3268:                                             ; preds = %3263, %3267
  %.str.5.sink1726 = phi ptr [ @.str.5, %3267 ], [ @.str.2, %3263 ]
  store i32 %3258, ptr %453, align 4, !tbaa !5
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = load i32, ptr %399, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror(i32 noundef %3271, ptr noundef nonnull @.str.4) #13
  %3273 = load i32, ptr %399, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror_debug(i32 noundef %3273, ptr noundef nonnull @.str.4) #13
  %3275 = load i32, ptr %453, align 4, !tbaa !5
  %3276 = call ptr @strerror(i32 noundef %3275) #13
  %3277 = load i32, ptr %453, align 4, !tbaa !5
  %3278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3269, ptr noundef nonnull %.str.5.sink1726, i32 noundef %3270, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %3272, ptr noundef %3274, ptr noundef %3276, i32 noundef %3277) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3279:                                             ; preds = %3252, %3253
  %3280 = phi i32 [ %3226, %3252 ], [ %3254, %3253 ]
  %3281 = add nsw i32 %3280, 1
  store i32 %3281, ptr @test_count, align 4, !tbaa !5
  %3282 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %3041, i32 noundef 0, i32 noundef %3200, ptr noundef nonnull %3, ptr noundef nonnull %34) #13
  %3283 = icmp eq i32 %3282, -1
  br i1 %3283, label %3284, label %3306

3284:                                             ; preds = %3279
  %3285 = load i32, ptr %453, align 4, !tbaa !5
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = call i32 @s2n_print_stacktrace(ptr noundef %3286) #13
  %3288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3289 = trunc nuw i8 %3288 to i1
  br i1 %3289, label %3290, label %3294

3290:                                             ; preds = %3284
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = call i32 @fileno(ptr noundef %3291) #13
  %3293 = call i32 @isatty(i32 noundef %3292) #13
  %.not603 = icmp eq i32 %3293, 0
  br i1 %.not603, label %3294, label %3295

3294:                                             ; preds = %3290, %3284
  br label %3295

3295:                                             ; preds = %3290, %3294
  %.str.5.sink1735 = phi ptr [ @.str.5, %3294 ], [ @.str.2, %3290 ]
  store i32 %3285, ptr %453, align 4, !tbaa !5
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = load i32, ptr %399, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror(i32 noundef %3298, ptr noundef nonnull @.str.4) #13
  %3300 = load i32, ptr %399, align 4, !tbaa !5
  %3301 = call ptr @s2n_strerror_debug(i32 noundef %3300, ptr noundef nonnull @.str.4) #13
  %3302 = load i32, ptr %453, align 4, !tbaa !5
  %3303 = call ptr @strerror(i32 noundef %3302) #13
  %3304 = load i32, ptr %453, align 4, !tbaa !5
  %3305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3296, ptr noundef nonnull %.str.5.sink1735, i32 noundef %3297, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %3299, ptr noundef %3301, ptr noundef %3303, i32 noundef %3304) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3306:                                             ; preds = %3279
  %3307 = load i32, ptr @test_count, align 4, !tbaa !5
  %3308 = add nsw i32 %3307, 1
  store i32 %3308, ptr @test_count, align 4, !tbaa !5
  %3309 = load i32, ptr %35, align 4, !tbaa !5
  %3310 = add i32 %3309, -1
  %3311 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef nonnull %3041, i32 noundef 0, i32 noundef %3310, ptr noundef nonnull %3, ptr noundef nonnull %34) #13
  %3312 = icmp eq i32 %3311, -1
  br i1 %3312, label %3335, label %3313

3313:                                             ; preds = %3306
  %3314 = load i32, ptr %453, align 4, !tbaa !5
  %3315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3316 = call i32 @s2n_print_stacktrace(ptr noundef %3315) #13
  %3317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3318 = trunc nuw i8 %3317 to i1
  br i1 %3318, label %3319, label %3323

3319:                                             ; preds = %3313
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = call i32 @fileno(ptr noundef %3320) #13
  %3322 = call i32 @isatty(i32 noundef %3321) #13
  %.not518 = icmp eq i32 %3322, 0
  br i1 %.not518, label %3323, label %3324

3323:                                             ; preds = %3319, %3313
  br label %3324

3324:                                             ; preds = %3319, %3323
  %.str.5.sink1744 = phi ptr [ @.str.5, %3323 ], [ @.str.2, %3319 ]
  store i32 %3314, ptr %453, align 4, !tbaa !5
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = load i32, ptr %399, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror(i32 noundef %3327, ptr noundef nonnull @.str.4) #13
  %3329 = load i32, ptr %399, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef nonnull @.str.4) #13
  %3331 = load i32, ptr %453, align 4, !tbaa !5
  %3332 = call ptr @strerror(i32 noundef %3331) #13
  %3333 = load i32, ptr %453, align 4, !tbaa !5
  %3334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3325, ptr noundef nonnull %.str.5.sink1744, i32 noundef %3326, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 478, ptr noundef %3328, ptr noundef %3330, ptr noundef %3332, i32 noundef %3333) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3335:                                             ; preds = %3306
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = add nsw i32 %3336, 1
  store i32 %3337, ptr @test_count, align 4, !tbaa !5
  %3338 = load i32, ptr %399, align 4, !tbaa !5
  %3339 = icmp eq i32 %3338, 469762120
  br i1 %3339, label %3362, label %3340

3340:                                             ; preds = %3335
  %3341 = load i32, ptr %453, align 4, !tbaa !5
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = call i32 @s2n_print_stacktrace(ptr noundef %3342) #13
  %3344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3345 = trunc nuw i8 %3344 to i1
  br i1 %3345, label %3346, label %3350

3346:                                             ; preds = %3340
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @fileno(ptr noundef %3347) #13
  %3349 = call i32 @isatty(i32 noundef %3348) #13
  %.not519 = icmp eq i32 %3349, 0
  br i1 %.not519, label %3350, label %3351

3350:                                             ; preds = %3346, %3340
  br label %3351

3351:                                             ; preds = %3346, %3350
  %.str.5.sink1753 = phi ptr [ @.str.5, %3350 ], [ @.str.2, %3346 ]
  store i32 %3341, ptr %453, align 4, !tbaa !5
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = load i32, ptr @test_count, align 4, !tbaa !5
  %3354 = load i32, ptr %399, align 4, !tbaa !5
  %3355 = call ptr @s2n_strerror(i32 noundef %3354, ptr noundef nonnull @.str.4) #13
  %3356 = load i32, ptr %399, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef nonnull @.str.4) #13
  %3358 = load i32, ptr %453, align 4, !tbaa !5
  %3359 = call ptr @strerror(i32 noundef %3358) #13
  %3360 = load i32, ptr %453, align 4, !tbaa !5
  %3361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3352, ptr noundef nonnull %.str.5.sink1753, i32 noundef %3353, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 478, ptr noundef %3355, ptr noundef %3357, ptr noundef %3359, i32 noundef %3360) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3362:                                             ; preds = %3335
  %3363 = add nsw i32 %3336, 2
  store i32 %3363, ptr @test_count, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #13
  %3365 = icmp eq ptr %3364, null
  br i1 %3365, label %3366, label %3388

3366:                                             ; preds = %3362
  %3367 = load i32, ptr %453, align 4, !tbaa !5
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = call i32 @s2n_print_stacktrace(ptr noundef %3368) #13
  %3370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3371 = trunc nuw i8 %3370 to i1
  br i1 %3371, label %3372, label %3376

3372:                                             ; preds = %3366
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = call i32 @fileno(ptr noundef %3373) #13
  %3375 = call i32 @isatty(i32 noundef %3374) #13
  %.not602 = icmp eq i32 %3375, 0
  br i1 %.not602, label %3376, label %3377

3376:                                             ; preds = %3372, %3366
  br label %3377

3377:                                             ; preds = %3372, %3376
  %.str.5.sink1762 = phi ptr [ @.str.5, %3376 ], [ @.str.2, %3372 ]
  store i32 %3367, ptr %453, align 4, !tbaa !5
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = load i32, ptr @test_count, align 4, !tbaa !5
  %3380 = load i32, ptr %399, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror(i32 noundef %3380, ptr noundef nonnull @.str.4) #13
  %3382 = load i32, ptr %399, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror_debug(i32 noundef %3382, ptr noundef nonnull @.str.4) #13
  %3384 = load i32, ptr %453, align 4, !tbaa !5
  %3385 = call ptr @strerror(i32 noundef %3384) #13
  %3386 = load i32, ptr %453, align 4, !tbaa !5
  %3387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3378, ptr noundef nonnull %.str.5.sink1762, i32 noundef %3379, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 478, ptr noundef %3381, ptr noundef %3383, ptr noundef %3385, i32 noundef %3386) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3388:                                             ; preds = %3362
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #13
  %3389 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %33) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #13
  %3390 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #13
  %3391 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %3391, ptr %39, align 8, !tbaa !9
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = add nsw i32 %3392, 1
  store i32 %3393, ptr @test_count, align 4, !tbaa !5
  %3394 = icmp eq ptr %3391, null
  br i1 %3394, label %3395, label %3417

3395:                                             ; preds = %3388
  %3396 = load i32, ptr %453, align 4, !tbaa !5
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = call i32 @s2n_print_stacktrace(ptr noundef %3397) #13
  %3399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3400 = trunc nuw i8 %3399 to i1
  br i1 %3400, label %3401, label %3405

3401:                                             ; preds = %3395
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = call i32 @fileno(ptr noundef %3402) #13
  %3404 = call i32 @isatty(i32 noundef %3403) #13
  %.not601 = icmp eq i32 %3404, 0
  br i1 %.not601, label %3405, label %3406

3405:                                             ; preds = %3401, %3395
  br label %3406

3406:                                             ; preds = %3401, %3405
  %.str.5.sink1771 = phi ptr [ @.str.5, %3405 ], [ @.str.2, %3401 ]
  store i32 %3396, ptr %453, align 4, !tbaa !5
  %3407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3408 = load i32, ptr @test_count, align 4, !tbaa !5
  %3409 = load i32, ptr %399, align 4, !tbaa !5
  %3410 = call ptr @s2n_strerror(i32 noundef %3409, ptr noundef nonnull @.str.4) #13
  %3411 = load i32, ptr %399, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror_debug(i32 noundef %3411, ptr noundef nonnull @.str.4) #13
  %3413 = load i32, ptr %453, align 4, !tbaa !5
  %3414 = call ptr @strerror(i32 noundef %3413) #13
  %3415 = load i32, ptr %453, align 4, !tbaa !5
  %3416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3407, ptr noundef nonnull %.str.5.sink1771, i32 noundef %3408, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %3410, ptr noundef %3412, ptr noundef %3414, i32 noundef %3415) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3417:                                             ; preds = %3388
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #13
  %3418 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %3418, ptr %40, align 8, !tbaa !9
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = add nsw i32 %3419, 1
  store i32 %3420, ptr @test_count, align 4, !tbaa !5
  %3421 = icmp eq ptr %3418, null
  br i1 %3421, label %3422, label %3444

3422:                                             ; preds = %3417
  %3423 = load i32, ptr %453, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @s2n_print_stacktrace(ptr noundef %3424) #13
  %3426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3427 = trunc nuw i8 %3426 to i1
  br i1 %3427, label %3428, label %3432

3428:                                             ; preds = %3422
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = call i32 @fileno(ptr noundef %3429) #13
  %3431 = call i32 @isatty(i32 noundef %3430) #13
  %.not600 = icmp eq i32 %3431, 0
  br i1 %.not600, label %3432, label %3433

3432:                                             ; preds = %3428, %3422
  br label %3433

3433:                                             ; preds = %3428, %3432
  %.str.5.sink1780 = phi ptr [ @.str.5, %3432 ], [ @.str.2, %3428 ]
  store i32 %3423, ptr %453, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = load i32, ptr %399, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef nonnull @.str.4) #13
  %3438 = load i32, ptr %399, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror_debug(i32 noundef %3438, ptr noundef nonnull @.str.4) #13
  %3440 = load i32, ptr %453, align 4, !tbaa !5
  %3441 = call ptr @strerror(i32 noundef %3440) #13
  %3442 = load i32, ptr %453, align 4, !tbaa !5
  %3443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3434, ptr noundef nonnull %.str.5.sink1780, i32 noundef %3435, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %3437, ptr noundef %3439, ptr noundef %3441, i32 noundef %3442) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3444:                                             ; preds = %3417
  %3445 = add nsw i32 %3419, 2
  store i32 %3445, ptr @test_count, align 4, !tbaa !5
  %3446 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3418, ptr noundef nonnull %192) #13
  %3447 = icmp eq i32 %3446, -1
  br i1 %3447, label %3448, label %3470

3448:                                             ; preds = %3444
  %3449 = load i32, ptr %453, align 4, !tbaa !5
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = call i32 @s2n_print_stacktrace(ptr noundef %3450) #13
  %3452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3453 = trunc nuw i8 %3452 to i1
  br i1 %3453, label %3454, label %3458

3454:                                             ; preds = %3448
  %3455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3456 = call i32 @fileno(ptr noundef %3455) #13
  %3457 = call i32 @isatty(i32 noundef %3456) #13
  %.not599 = icmp eq i32 %3457, 0
  br i1 %.not599, label %3458, label %3459

3458:                                             ; preds = %3454, %3448
  br label %3459

3459:                                             ; preds = %3454, %3458
  %.str.5.sink1789 = phi ptr [ @.str.5, %3458 ], [ @.str.2, %3454 ]
  store i32 %3449, ptr %453, align 4, !tbaa !5
  %3460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3461 = load i32, ptr @test_count, align 4, !tbaa !5
  %3462 = load i32, ptr %399, align 4, !tbaa !5
  %3463 = call ptr @s2n_strerror(i32 noundef %3462, ptr noundef nonnull @.str.4) #13
  %3464 = load i32, ptr %399, align 4, !tbaa !5
  %3465 = call ptr @s2n_strerror_debug(i32 noundef %3464, ptr noundef nonnull @.str.4) #13
  %3466 = load i32, ptr %453, align 4, !tbaa !5
  %3467 = call ptr @strerror(i32 noundef %3466) #13
  %3468 = load i32, ptr %453, align 4, !tbaa !5
  %3469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3460, ptr noundef nonnull %.str.5.sink1789, i32 noundef %3461, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %3463, ptr noundef %3465, ptr noundef %3467, i32 noundef %3468) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3470:                                             ; preds = %3444
  %3471 = load i32, ptr @test_count, align 4, !tbaa !5
  %3472 = add nsw i32 %3471, 1
  store i32 %3472, ptr @test_count, align 4, !tbaa !5
  %3473 = load ptr, ptr %39, align 8, !tbaa !9
  %3474 = call i32 @s2n_client_hello_send(ptr noundef %3473) #13
  %3475 = icmp eq i32 %3474, -1
  br i1 %3475, label %3476, label %3498

3476:                                             ; preds = %3470
  %3477 = load i32, ptr %453, align 4, !tbaa !5
  %3478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3479 = call i32 @s2n_print_stacktrace(ptr noundef %3478) #13
  %3480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3481 = trunc nuw i8 %3480 to i1
  br i1 %3481, label %3482, label %3486

3482:                                             ; preds = %3476
  %3483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3484 = call i32 @fileno(ptr noundef %3483) #13
  %3485 = call i32 @isatty(i32 noundef %3484) #13
  %.not598 = icmp eq i32 %3485, 0
  br i1 %.not598, label %3486, label %3487

3486:                                             ; preds = %3482, %3476
  br label %3487

3487:                                             ; preds = %3482, %3486
  %.str.5.sink1798 = phi ptr [ @.str.5, %3486 ], [ @.str.2, %3482 ]
  store i32 %3477, ptr %453, align 4, !tbaa !5
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = load i32, ptr @test_count, align 4, !tbaa !5
  %3490 = load i32, ptr %399, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror(i32 noundef %3490, ptr noundef nonnull @.str.4) #13
  %3492 = load i32, ptr %399, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror_debug(i32 noundef %3492, ptr noundef nonnull @.str.4) #13
  %3494 = load i32, ptr %453, align 4, !tbaa !5
  %3495 = call ptr @strerror(i32 noundef %3494) #13
  %3496 = load i32, ptr %453, align 4, !tbaa !5
  %3497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3488, ptr noundef nonnull %.str.5.sink1798, i32 noundef %3489, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %3491, ptr noundef %3493, ptr noundef %3495, i32 noundef %3496) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3498:                                             ; preds = %3470
  %3499 = load i32, ptr @test_count, align 4, !tbaa !5
  %3500 = add nsw i32 %3499, 1
  store i32 %3500, ptr @test_count, align 4, !tbaa !5
  %3501 = load ptr, ptr %39, align 8, !tbaa !9
  %3502 = getelementptr inbounds i8, ptr %3501, i64 2016
  %3503 = load ptr, ptr %40, align 8, !tbaa !9
  %3504 = getelementptr inbounds i8, ptr %3503, i64 2016
  %3505 = getelementptr inbounds i8, ptr %3501, i64 2044
  %3506 = load i32, ptr %3505, align 4, !tbaa !15
  %3507 = getelementptr inbounds i8, ptr %3501, i64 2040
  %3508 = load i32, ptr %3507, align 8, !tbaa !42
  %3509 = sub i32 %3506, %3508
  %3510 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3502, ptr noundef nonnull %3504, i32 noundef %3509) #13
  %3511 = icmp eq i32 %3510, -1
  br i1 %3511, label %3512, label %3534

3512:                                             ; preds = %3498
  %3513 = load i32, ptr %453, align 4, !tbaa !5
  %3514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3515 = call i32 @s2n_print_stacktrace(ptr noundef %3514) #13
  %3516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3517 = trunc nuw i8 %3516 to i1
  br i1 %3517, label %3518, label %3522

3518:                                             ; preds = %3512
  %3519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3520 = call i32 @fileno(ptr noundef %3519) #13
  %3521 = call i32 @isatty(i32 noundef %3520) #13
  %.not597 = icmp eq i32 %3521, 0
  br i1 %.not597, label %3522, label %3523

3522:                                             ; preds = %3518, %3512
  br label %3523

3523:                                             ; preds = %3518, %3522
  %.str.5.sink1807 = phi ptr [ @.str.5, %3522 ], [ @.str.2, %3518 ]
  store i32 %3513, ptr %453, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = load i32, ptr @test_count, align 4, !tbaa !5
  %3526 = load i32, ptr %399, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror(i32 noundef %3526, ptr noundef nonnull @.str.4) #13
  %3528 = load i32, ptr %399, align 4, !tbaa !5
  %3529 = call ptr @s2n_strerror_debug(i32 noundef %3528, ptr noundef nonnull @.str.4) #13
  %3530 = load i32, ptr %453, align 4, !tbaa !5
  %3531 = call ptr @strerror(i32 noundef %3530) #13
  %3532 = load i32, ptr %453, align 4, !tbaa !5
  %3533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3524, ptr noundef nonnull %.str.5.sink1807, i32 noundef %3525, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %3527, ptr noundef %3529, ptr noundef %3531, i32 noundef %3532) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3534:                                             ; preds = %3498
  %3535 = load i32, ptr @test_count, align 4, !tbaa !5
  %3536 = add nsw i32 %3535, 1
  store i32 %3536, ptr @test_count, align 4, !tbaa !5
  %3537 = load ptr, ptr %40, align 8, !tbaa !9
  %3538 = call i32 @s2n_client_hello_recv(ptr noundef %3537) #13
  %3539 = icmp eq i32 %3538, -1
  br i1 %3539, label %3540, label %3562

3540:                                             ; preds = %3534
  %3541 = load i32, ptr %453, align 4, !tbaa !5
  %3542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3543 = call i32 @s2n_print_stacktrace(ptr noundef %3542) #13
  %3544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3545 = trunc nuw i8 %3544 to i1
  br i1 %3545, label %3546, label %3550

3546:                                             ; preds = %3540
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = call i32 @fileno(ptr noundef %3547) #13
  %3549 = call i32 @isatty(i32 noundef %3548) #13
  %.not596 = icmp eq i32 %3549, 0
  br i1 %.not596, label %3550, label %3551

3550:                                             ; preds = %3546, %3540
  br label %3551

3551:                                             ; preds = %3546, %3550
  %.str.5.sink1816 = phi ptr [ @.str.5, %3550 ], [ @.str.2, %3546 ]
  store i32 %3541, ptr %453, align 4, !tbaa !5
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = load i32, ptr @test_count, align 4, !tbaa !5
  %3554 = load i32, ptr %399, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror(i32 noundef %3554, ptr noundef nonnull @.str.4) #13
  %3556 = load i32, ptr %399, align 4, !tbaa !5
  %3557 = call ptr @s2n_strerror_debug(i32 noundef %3556, ptr noundef nonnull @.str.4) #13
  %3558 = load i32, ptr %453, align 4, !tbaa !5
  %3559 = call ptr @strerror(i32 noundef %3558) #13
  %3560 = load i32, ptr %453, align 4, !tbaa !5
  %3561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3552, ptr noundef nonnull %.str.5.sink1816, i32 noundef %3553, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %3555, ptr noundef %3557, ptr noundef %3559, i32 noundef %3560) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3562:                                             ; preds = %3534
  %3563 = load ptr, ptr %40, align 8, !tbaa !9
  %3564 = call ptr @s2n_connection_get_client_hello(ptr noundef %3563) #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 = icmp eq ptr %3564, null
  br i1 %3567, label %3568, label %3590

3568:                                             ; preds = %3562
  %3569 = load i32, ptr %453, align 4, !tbaa !5
  %3570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3571 = call i32 @s2n_print_stacktrace(ptr noundef %3570) #13
  %3572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3573 = trunc nuw i8 %3572 to i1
  br i1 %3573, label %3574, label %3578

3574:                                             ; preds = %3568
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = call i32 @fileno(ptr noundef %3575) #13
  %3577 = call i32 @isatty(i32 noundef %3576) #13
  %.not595 = icmp eq i32 %3577, 0
  br i1 %.not595, label %3578, label %3579

3578:                                             ; preds = %3574, %3568
  br label %3579

3579:                                             ; preds = %3574, %3578
  %.str.5.sink1825 = phi ptr [ @.str.5, %3578 ], [ @.str.2, %3574 ]
  store i32 %3569, ptr %453, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = load i32, ptr @test_count, align 4, !tbaa !5
  %3582 = load i32, ptr %399, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror(i32 noundef %3582, ptr noundef nonnull @.str.4) #13
  %3584 = load i32, ptr %399, align 4, !tbaa !5
  %3585 = call ptr @s2n_strerror_debug(i32 noundef %3584, ptr noundef nonnull @.str.4) #13
  %3586 = load i32, ptr %453, align 4, !tbaa !5
  %3587 = call ptr @strerror(i32 noundef %3586) #13
  %3588 = load i32, ptr %453, align 4, !tbaa !5
  %3589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3580, ptr noundef nonnull %.str.5.sink1825, i32 noundef %3581, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %3583, ptr noundef %3585, ptr noundef %3587, i32 noundef %3588) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3590:                                             ; preds = %3562
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #13
  store i32 0, ptr %41, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #13
  store i32 0, ptr %42, align 4, !tbaa !5
  br label %3596

3591:                                             ; preds = %3677
  %3592 = load i32, ptr @test_count, align 4, !tbaa !5
  %3593 = add nsw i32 %3592, 1
  store i32 %3593, ptr @test_count, align 4, !tbaa !5
  %3594 = load i32, ptr %41, align 4, !tbaa !5
  %3595 = icmp eq i32 %3594, 0
  br i1 %3595, label %3701, label %3679

3596:                                             ; preds = %3590, %3677
  %.0463708 = phi i64 [ 0, %3590 ], [ %3678, %3677 ]
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = add nsw i32 %3597, 1
  store i32 %3598, ptr @test_count, align 4, !tbaa !5
  %3599 = trunc nuw nsw i64 %.0463708 to i32
  %3600 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef nonnull %3564, i32 noundef 0, i32 noundef %3599, ptr noundef nonnull %3, ptr noundef nonnull %41, ptr noundef nonnull %42) #13
  %3601 = icmp eq i32 %3600, -1
  br i1 %3601, label %3624, label %3602

3602:                                             ; preds = %3596
  %3603 = load i32, ptr %453, align 4, !tbaa !5
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @s2n_print_stacktrace(ptr noundef %3604) #13
  %3606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3607 = trunc nuw i8 %3606 to i1
  br i1 %3607, label %3608, label %3612

3608:                                             ; preds = %3602
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @fileno(ptr noundef %3609) #13
  %3611 = call i32 @isatty(i32 noundef %3610) #13
  %.not592 = icmp eq i32 %3611, 0
  br i1 %.not592, label %3612, label %3613

3612:                                             ; preds = %3608, %3602
  br label %3613

3613:                                             ; preds = %3608, %3612
  %.str.5.sink1834 = phi ptr [ @.str.5, %3612 ], [ @.str.2, %3608 ]
  store i32 %3603, ptr %453, align 4, !tbaa !5
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = load i32, ptr @test_count, align 4, !tbaa !5
  %3616 = load i32, ptr %399, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror(i32 noundef %3616, ptr noundef nonnull @.str.4) #13
  %3618 = load i32, ptr %399, align 4, !tbaa !5
  %3619 = call ptr @s2n_strerror_debug(i32 noundef %3618, ptr noundef nonnull @.str.4) #13
  %3620 = load i32, ptr %453, align 4, !tbaa !5
  %3621 = call ptr @strerror(i32 noundef %3620) #13
  %3622 = load i32, ptr %453, align 4, !tbaa !5
  %3623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3614, ptr noundef nonnull %.str.5.sink1834, i32 noundef %3615, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %3617, ptr noundef %3619, ptr noundef %3621, i32 noundef %3622) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3624:                                             ; preds = %3596
  %3625 = load i32, ptr @test_count, align 4, !tbaa !5
  %3626 = add nsw i32 %3625, 1
  store i32 %3626, ptr @test_count, align 4, !tbaa !5
  %3627 = load i32, ptr %399, align 4, !tbaa !5
  %3628 = icmp eq i32 %3627, 469762120
  br i1 %3628, label %3651, label %3629

3629:                                             ; preds = %3624
  %3630 = load i32, ptr %453, align 4, !tbaa !5
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = call i32 @s2n_print_stacktrace(ptr noundef %3631) #13
  %3633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3634 = trunc nuw i8 %3633 to i1
  br i1 %3634, label %3635, label %3639

3635:                                             ; preds = %3629
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = call i32 @fileno(ptr noundef %3636) #13
  %3638 = call i32 @isatty(i32 noundef %3637) #13
  %.not593 = icmp eq i32 %3638, 0
  br i1 %.not593, label %3639, label %3640

3639:                                             ; preds = %3635, %3629
  br label %3640

3640:                                             ; preds = %3635, %3639
  %.str.5.sink1843 = phi ptr [ @.str.5, %3639 ], [ @.str.2, %3635 ]
  store i32 %3630, ptr %453, align 4, !tbaa !5
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3642 = load i32, ptr @test_count, align 4, !tbaa !5
  %3643 = load i32, ptr %399, align 4, !tbaa !5
  %3644 = call ptr @s2n_strerror(i32 noundef %3643, ptr noundef nonnull @.str.4) #13
  %3645 = load i32, ptr %399, align 4, !tbaa !5
  %3646 = call ptr @s2n_strerror_debug(i32 noundef %3645, ptr noundef nonnull @.str.4) #13
  %3647 = load i32, ptr %453, align 4, !tbaa !5
  %3648 = call ptr @strerror(i32 noundef %3647) #13
  %3649 = load i32, ptr %453, align 4, !tbaa !5
  %3650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3641, ptr noundef nonnull %.str.5.sink1843, i32 noundef %3642, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %3644, ptr noundef %3646, ptr noundef %3648, i32 noundef %3649) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3651:                                             ; preds = %3624
  %3652 = add nsw i32 %3625, 2
  store i32 %3652, ptr @test_count, align 4, !tbaa !5
  %3653 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #13
  %3654 = icmp eq ptr %3653, null
  br i1 %3654, label %3655, label %3677

3655:                                             ; preds = %3651
  %3656 = load i32, ptr %453, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @s2n_print_stacktrace(ptr noundef %3657) #13
  %3659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3660 = trunc nuw i8 %3659 to i1
  br i1 %3660, label %3661, label %3665

3661:                                             ; preds = %3655
  %3662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3663 = call i32 @fileno(ptr noundef %3662) #13
  %3664 = call i32 @isatty(i32 noundef %3663) #13
  %.not594 = icmp eq i32 %3664, 0
  br i1 %.not594, label %3665, label %3666

3665:                                             ; preds = %3661, %3655
  br label %3666

3666:                                             ; preds = %3661, %3665
  %.str.5.sink1852 = phi ptr [ @.str.5, %3665 ], [ @.str.2, %3661 ]
  store i32 %3656, ptr %453, align 4, !tbaa !5
  %3667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3668 = load i32, ptr @test_count, align 4, !tbaa !5
  %3669 = load i32, ptr %399, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror(i32 noundef %3669, ptr noundef nonnull @.str.4) #13
  %3671 = load i32, ptr %399, align 4, !tbaa !5
  %3672 = call ptr @s2n_strerror_debug(i32 noundef %3671, ptr noundef nonnull @.str.4) #13
  %3673 = load i32, ptr %453, align 4, !tbaa !5
  %3674 = call ptr @strerror(i32 noundef %3673) #13
  %3675 = load i32, ptr %453, align 4, !tbaa !5
  %3676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3667, ptr noundef nonnull %.str.5.sink1852, i32 noundef %3668, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %3670, ptr noundef %3672, ptr noundef %3674, i32 noundef %3675) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3677:                                             ; preds = %3651
  store i32 0, ptr %399, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %453, align 4, !tbaa !5
  %3678 = add nuw nsw i64 %.0463708, 1
  %exitcond713.not = icmp eq i64 %3678, 16
  br i1 %exitcond713.not, label %3591, label %3596, !llvm.loop !47

3679:                                             ; preds = %3591
  %3680 = load i32, ptr %453, align 4, !tbaa !5
  %3681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3682 = call i32 @s2n_print_stacktrace(ptr noundef %3681) #13
  %3683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3684 = trunc nuw i8 %3683 to i1
  br i1 %3684, label %3685, label %3689

3685:                                             ; preds = %3679
  %3686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3687 = call i32 @fileno(ptr noundef %3686) #13
  %3688 = call i32 @isatty(i32 noundef %3687) #13
  %.not520 = icmp eq i32 %3688, 0
  br i1 %.not520, label %3689, label %3690

3689:                                             ; preds = %3685, %3679
  br label %3690

3690:                                             ; preds = %3685, %3689
  %.str.5.sink1861 = phi ptr [ @.str.5, %3689 ], [ @.str.2, %3685 ]
  store i32 %3680, ptr %453, align 4, !tbaa !5
  %3691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3692 = load i32, ptr @test_count, align 4, !tbaa !5
  %3693 = load i32, ptr %399, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror(i32 noundef %3693, ptr noundef nonnull @.str.4) #13
  %3695 = load i32, ptr %399, align 4, !tbaa !5
  %3696 = call ptr @s2n_strerror_debug(i32 noundef %3695, ptr noundef nonnull @.str.4) #13
  %3697 = load i32, ptr %453, align 4, !tbaa !5
  %3698 = call ptr @strerror(i32 noundef %3697) #13
  %3699 = load i32, ptr %453, align 4, !tbaa !5
  %3700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3691, ptr noundef nonnull %.str.5.sink1861, i32 noundef %3692, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %3694, ptr noundef %3696, ptr noundef %3698, i32 noundef %3699) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3701:                                             ; preds = %3591
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #13
  %3702 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %40) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #13
  %3703 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %39) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #13
  %3704 = getelementptr inbounds i8, ptr %57, i64 8
  %3705 = getelementptr inbounds i8, ptr %62, i64 8
  %3706 = getelementptr inbounds i8, ptr %67, i64 8
  %3707 = getelementptr inbounds i8, ptr %72, i64 8
  br label %3709

3708:                                             ; preds = %5096
  br i1 %.not711, label %3709, label %5099, !llvm.loop !48

3709:                                             ; preds = %3701, %3708
  %.0710 = phi i32 [ 0, %3701 ], [ %.4, %3708 ]
  %.not711 = phi i1 [ true, %3701 ], [ false, %3708 ]
  %.0464709 = phi i64 [ 0, %3701 ], [ 1, %3708 ]
  %3710 = getelementptr inbounds [2 x i32], ptr @__const.main.sources, i64 0, i64 %.0464709
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #13
  %3712 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %3712, ptr %43, align 8, !tbaa !9
  %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 = icmp eq ptr %3712, null
  br i1 %3715, label %3716, label %3738

3716:                                             ; preds = %3709
  %3717 = load i32, ptr %453, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = call i32 @s2n_print_stacktrace(ptr noundef %3718) #13
  %3720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3721 = trunc nuw i8 %3720 to i1
  br i1 %3721, label %3722, label %3726

3722:                                             ; preds = %3716
  %3723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3724 = call i32 @fileno(ptr noundef %3723) #13
  %3725 = call i32 @isatty(i32 noundef %3724) #13
  %.not591 = icmp eq i32 %3725, 0
  br i1 %.not591, label %3726, label %3727

3726:                                             ; preds = %3722, %3716
  br label %3727

3727:                                             ; preds = %3722, %3726
  %.str.5.sink1870 = phi ptr [ @.str.5, %3726 ], [ @.str.2, %3722 ]
  store i32 %3717, ptr %453, align 4, !tbaa !5
  %3728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3729 = load i32, ptr @test_count, align 4, !tbaa !5
  %3730 = load i32, ptr %399, align 4, !tbaa !5
  %3731 = call ptr @s2n_strerror(i32 noundef %3730, ptr noundef nonnull @.str.4) #13
  %3732 = load i32, ptr %399, align 4, !tbaa !5
  %3733 = call ptr @s2n_strerror_debug(i32 noundef %3732, ptr noundef nonnull @.str.4) #13
  %3734 = load i32, ptr %453, align 4, !tbaa !5
  %3735 = call ptr @strerror(i32 noundef %3734) #13
  %3736 = load i32, ptr %453, align 4, !tbaa !5
  %3737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3728, ptr noundef nonnull %.str.5.sink1870, i32 noundef %3729, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %3731, ptr noundef %3733, ptr noundef %3735, i32 noundef %3736) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3738:                                             ; preds = %3709
  %3739 = add nsw i32 %3713, 2
  store i32 %3739, ptr @test_count, align 4, !tbaa !5
  %3740 = load ptr, ptr %5, align 8, !tbaa !9
  %3741 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3712, ptr noundef %3740) #13
  %3742 = icmp eq i32 %3741, -1
  br i1 %3742, label %3743, label %3765

3743:                                             ; preds = %3738
  %3744 = load i32, ptr %453, align 4, !tbaa !5
  %3745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3746 = call i32 @s2n_print_stacktrace(ptr noundef %3745) #13
  %3747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3748 = trunc nuw i8 %3747 to i1
  br i1 %3748, label %3749, label %3753

3749:                                             ; preds = %3743
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = call i32 @fileno(ptr noundef %3750) #13
  %3752 = call i32 @isatty(i32 noundef %3751) #13
  %.not590 = icmp eq i32 %3752, 0
  br i1 %.not590, label %3753, label %3754

3753:                                             ; preds = %3749, %3743
  br label %3754

3754:                                             ; preds = %3749, %3753
  %.str.5.sink1879 = phi ptr [ @.str.5, %3753 ], [ @.str.2, %3749 ]
  store i32 %3744, ptr %453, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = load i32, ptr %399, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror(i32 noundef %3757, ptr noundef nonnull @.str.4) #13
  %3759 = load i32, ptr %399, align 4, !tbaa !5
  %3760 = call ptr @s2n_strerror_debug(i32 noundef %3759, ptr noundef nonnull @.str.4) #13
  %3761 = load i32, ptr %453, align 4, !tbaa !5
  %3762 = call ptr @strerror(i32 noundef %3761) #13
  %3763 = load i32, ptr %453, align 4, !tbaa !5
  %3764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef nonnull %.str.5.sink1879, i32 noundef %3756, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %3758, ptr noundef %3760, ptr noundef %3762, i32 noundef %3763) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3765:                                             ; preds = %3738
  call void @llvm.lifetime.start.p0(i64 135, ptr nonnull %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(135) %44, ptr noundef nonnull align 16 dereferenceable(135) @__const.main.raw_client_hello, i64 135, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #13
  store ptr null, ptr %45, align 8, !tbaa !9
  %3766 = load i32, ptr @test_count, align 4, !tbaa !5
  %3767 = add nsw i32 %3766, 1
  store i32 %3767, ptr @test_count, align 4, !tbaa !5
  %3768 = load ptr, ptr %43, align 8, !tbaa !9
  %3769 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %45, ptr noundef %3768, ptr noundef nonnull %44, i32 noundef 135, i32 noundef %3711)
  %3770 = call zeroext i1 @s2n_result_is_ok(i32 %3769)
  br i1 %3770, label %3793, label %3771

3771:                                             ; preds = %3765
  %3772 = load i32, ptr %453, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = call i32 @s2n_print_stacktrace(ptr noundef %3773) #13
  %3775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3776 = trunc nuw i8 %3775 to i1
  br i1 %3776, label %3777, label %3781

3777:                                             ; preds = %3771
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @fileno(ptr noundef %3778) #13
  %3780 = call i32 @isatty(i32 noundef %3779) #13
  %.not521 = icmp eq i32 %3780, 0
  br i1 %.not521, label %3781, label %3782

3781:                                             ; preds = %3777, %3771
  br label %3782

3782:                                             ; preds = %3777, %3781
  %.str.5.sink1888 = phi ptr [ @.str.5, %3781 ], [ @.str.2, %3777 ]
  store i32 %3772, ptr %453, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = load i32, ptr @test_count, align 4, !tbaa !5
  %3785 = load i32, ptr %399, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror(i32 noundef %3785, ptr noundef nonnull @.str.4) #13
  %3787 = load i32, ptr %399, align 4, !tbaa !5
  %3788 = call ptr @s2n_strerror_debug(i32 noundef %3787, ptr noundef nonnull @.str.4) #13
  %3789 = load i32, ptr %453, align 4, !tbaa !5
  %3790 = call ptr @strerror(i32 noundef %3789) #13
  %3791 = load i32, ptr %453, align 4, !tbaa !5
  %3792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3783, ptr noundef nonnull %.str.5.sink1888, i32 noundef %3784, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 552, ptr noundef %3786, ptr noundef %3788, ptr noundef %3790, i32 noundef %3791) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3793:                                             ; preds = %3765
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #13
  store i32 0, ptr %46, align 4, !tbaa !5
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = add nsw i32 %3794, 1
  store i32 %3795, ptr @test_count, align 4, !tbaa !5
  %3796 = load ptr, ptr %45, align 8, !tbaa !9
  %3797 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %3796, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %46) #13
  %3798 = icmp eq i32 %3797, -1
  br i1 %3798, label %3799, label %3821

3799:                                             ; preds = %3793
  %3800 = load i32, ptr %453, align 4, !tbaa !5
  %3801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3802 = call i32 @s2n_print_stacktrace(ptr noundef %3801) #13
  %3803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3804 = trunc nuw i8 %3803 to i1
  br i1 %3804, label %3805, label %3809

3805:                                             ; preds = %3799
  %3806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3807 = call i32 @fileno(ptr noundef %3806) #13
  %3808 = call i32 @isatty(i32 noundef %3807) #13
  %.not589 = icmp eq i32 %3808, 0
  br i1 %.not589, label %3809, label %3810

3809:                                             ; preds = %3805, %3799
  br label %3810

3810:                                             ; preds = %3805, %3809
  %.str.5.sink1897 = phi ptr [ @.str.5, %3809 ], [ @.str.2, %3805 ]
  store i32 %3800, ptr %453, align 4, !tbaa !5
  %3811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3812 = load i32, ptr @test_count, align 4, !tbaa !5
  %3813 = load i32, ptr %399, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror(i32 noundef %3813, ptr noundef nonnull @.str.4) #13
  %3815 = load i32, ptr %399, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror_debug(i32 noundef %3815, ptr noundef nonnull @.str.4) #13
  %3817 = load i32, ptr %453, align 4, !tbaa !5
  %3818 = call ptr @strerror(i32 noundef %3817) #13
  %3819 = load i32, ptr %453, align 4, !tbaa !5
  %3820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3811, ptr noundef nonnull %.str.5.sink1897, i32 noundef %3812, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 556, ptr noundef %3814, ptr noundef %3816, ptr noundef %3818, i32 noundef %3819) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3821:                                             ; preds = %3793
  %3822 = load i32, ptr @test_count, align 4, !tbaa !5
  %3823 = add nsw i32 %3822, 1
  store i32 %3823, ptr @test_count, align 4, !tbaa !5
  %3824 = load i32, ptr %46, align 4, !tbaa !5
  %3825 = icmp eq i32 %3824, 192
  br i1 %3825, label %3848, label %3826

3826:                                             ; preds = %3821
  %3827 = load i32, ptr %453, align 4, !tbaa !5
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @s2n_print_stacktrace(ptr noundef %3828) #13
  %3830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3831 = trunc nuw i8 %3830 to i1
  br i1 %3831, label %3832, label %3836

3832:                                             ; preds = %3826
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = call i32 @fileno(ptr noundef %3833) #13
  %3835 = call i32 @isatty(i32 noundef %3834) #13
  %.not522 = icmp eq i32 %3835, 0
  br i1 %.not522, label %3836, label %3837

3836:                                             ; preds = %3832, %3826
  br label %3837

3837:                                             ; preds = %3832, %3836
  %.str.5.sink1906 = phi ptr [ @.str.5, %3836 ], [ @.str.2, %3832 ]
  store i32 %3827, ptr %453, align 4, !tbaa !5
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = load i32, ptr @test_count, align 4, !tbaa !5
  %3840 = load i32, ptr %399, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror(i32 noundef %3840, ptr noundef nonnull @.str.4) #13
  %3842 = load i32, ptr %399, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror_debug(i32 noundef %3842, ptr noundef nonnull @.str.4) #13
  %3844 = load i32, ptr %453, align 4, !tbaa !5
  %3845 = call ptr @strerror(i32 noundef %3844) #13
  %3846 = load i32, ptr %453, align 4, !tbaa !5
  %3847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3838, ptr noundef nonnull %.str.5.sink1906, i32 noundef %3839, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 557, ptr noundef %3841, ptr noundef %3843, ptr noundef %3845, i32 noundef %3846) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3848:                                             ; preds = %3821
  %3849 = add nsw i32 %3822, 2
  store i32 %3849, ptr @test_count, align 4, !tbaa !5
  %bcmp523 = call i32 @bcmp(ptr noundef nonnull dereferenceable(192) @__const.main.expected_ja3.70, ptr noundef nonnull dereferenceable(192) %3, i64 192)
  %3850 = icmp eq i32 %bcmp523, 0
  br i1 %3850, label %3873, label %3851

3851:                                             ; preds = %3848
  %3852 = load i32, ptr %453, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @s2n_print_stacktrace(ptr noundef %3853) #13
  %3855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3856 = trunc nuw i8 %3855 to i1
  br i1 %3856, label %3857, label %3861

3857:                                             ; preds = %3851
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @fileno(ptr noundef %3858) #13
  %3860 = call i32 @isatty(i32 noundef %3859) #13
  %.not524 = icmp eq i32 %3860, 0
  br i1 %.not524, label %3861, label %3862

3861:                                             ; preds = %3857, %3851
  br label %3862

3862:                                             ; preds = %3857, %3861
  %.str.5.sink1915 = phi ptr [ @.str.5, %3861 ], [ @.str.2, %3857 ]
  store i32 %3852, ptr %453, align 4, !tbaa !5
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = load i32, ptr %399, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror(i32 noundef %3865, ptr noundef nonnull @.str.4) #13
  %3867 = load i32, ptr %399, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror_debug(i32 noundef %3867, ptr noundef nonnull @.str.4) #13
  %3869 = load i32, ptr %453, align 4, !tbaa !5
  %3870 = call ptr @strerror(i32 noundef %3869) #13
  %3871 = load i32, ptr %453, align 4, !tbaa !5
  %3872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3863, ptr noundef nonnull %.str.5.sink1915, i32 noundef %3864, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 558, ptr noundef %3866, ptr noundef %3868, ptr noundef %3870, i32 noundef %3871) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3873:                                             ; preds = %3848
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #13
  %3874 = call i32 @s2n_client_hello_free(ptr noundef nonnull %45) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #13
  call void @llvm.lifetime.end.p0(i64 135, ptr nonnull %44) #13
  call void @llvm.lifetime.start.p0(i64 164, ptr nonnull %47) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(164) %47, ptr noundef nonnull align 16 dereferenceable(164) @__const.main.raw_client_hello.73, i64 164, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #13
  store ptr null, ptr %48, align 8, !tbaa !9
  %3875 = load i32, ptr @test_count, align 4, !tbaa !5
  %3876 = add nsw i32 %3875, 1
  store i32 %3876, ptr @test_count, align 4, !tbaa !5
  %3877 = load ptr, ptr %43, align 8, !tbaa !9
  %3878 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %48, ptr noundef %3877, ptr noundef nonnull %47, i32 noundef 164, i32 noundef %3711)
  %3879 = call zeroext i1 @s2n_result_is_ok(i32 %3878)
  br i1 %3879, label %3902, label %3880

3880:                                             ; preds = %3873
  %3881 = load i32, ptr %453, align 4, !tbaa !5
  %3882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3883 = call i32 @s2n_print_stacktrace(ptr noundef %3882) #13
  %3884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3885 = trunc nuw i8 %3884 to i1
  br i1 %3885, label %3886, label %3890

3886:                                             ; preds = %3880
  %3887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3888 = call i32 @fileno(ptr noundef %3887) #13
  %3889 = call i32 @isatty(i32 noundef %3888) #13
  %.not525 = icmp eq i32 %3889, 0
  br i1 %.not525, label %3890, label %3891

3890:                                             ; preds = %3886, %3880
  br label %3891

3891:                                             ; preds = %3886, %3890
  %.str.5.sink1924 = phi ptr [ @.str.5, %3890 ], [ @.str.2, %3886 ]
  store i32 %3881, ptr %453, align 4, !tbaa !5
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = load i32, ptr @test_count, align 4, !tbaa !5
  %3894 = load i32, ptr %399, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror(i32 noundef %3894, ptr noundef nonnull @.str.4) #13
  %3896 = load i32, ptr %399, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror_debug(i32 noundef %3896, ptr noundef nonnull @.str.4) #13
  %3898 = load i32, ptr %453, align 4, !tbaa !5
  %3899 = call ptr @strerror(i32 noundef %3898) #13
  %3900 = load i32, ptr %453, align 4, !tbaa !5
  %3901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3892, ptr noundef nonnull %.str.5.sink1924, i32 noundef %3893, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 593, ptr noundef %3895, ptr noundef %3897, ptr noundef %3899, i32 noundef %3900) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3902:                                             ; preds = %3873
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #13
  store i32 0, ptr %49, align 4, !tbaa !5
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = add nsw i32 %3903, 1
  store i32 %3904, ptr @test_count, align 4, !tbaa !5
  %3905 = load ptr, ptr %48, align 8, !tbaa !9
  %3906 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %3905, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %49) #13
  %3907 = icmp eq i32 %3906, -1
  br i1 %3907, label %3908, label %3930

3908:                                             ; preds = %3902
  %3909 = load i32, ptr %453, align 4, !tbaa !5
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = call i32 @s2n_print_stacktrace(ptr noundef %3910) #13
  %3912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3913 = trunc nuw i8 %3912 to i1
  br i1 %3913, label %3914, label %3918

3914:                                             ; preds = %3908
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = call i32 @fileno(ptr noundef %3915) #13
  %3917 = call i32 @isatty(i32 noundef %3916) #13
  %.not588 = icmp eq i32 %3917, 0
  br i1 %.not588, label %3918, label %3919

3918:                                             ; preds = %3914, %3908
  br label %3919

3919:                                             ; preds = %3914, %3918
  %.str.5.sink1933 = phi ptr [ @.str.5, %3918 ], [ @.str.2, %3914 ]
  store i32 %3909, ptr %453, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = load i32, ptr @test_count, align 4, !tbaa !5
  %3922 = load i32, ptr %399, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror(i32 noundef %3922, ptr noundef nonnull @.str.4) #13
  %3924 = load i32, ptr %399, align 4, !tbaa !5
  %3925 = call ptr @s2n_strerror_debug(i32 noundef %3924, ptr noundef nonnull @.str.4) #13
  %3926 = load i32, ptr %453, align 4, !tbaa !5
  %3927 = call ptr @strerror(i32 noundef %3926) #13
  %3928 = load i32, ptr %453, align 4, !tbaa !5
  %3929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3920, ptr noundef nonnull %.str.5.sink1933, i32 noundef %3921, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 597, ptr noundef %3923, ptr noundef %3925, ptr noundef %3927, i32 noundef %3928) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3930:                                             ; preds = %3902
  %3931 = load i32, ptr @test_count, align 4, !tbaa !5
  %3932 = add nsw i32 %3931, 1
  store i32 %3932, ptr @test_count, align 4, !tbaa !5
  %3933 = load i32, ptr %49, align 4, !tbaa !5
  %3934 = icmp eq i32 %3933, 213
  br i1 %3934, label %3957, label %3935

3935:                                             ; preds = %3930
  %3936 = load i32, ptr %453, align 4, !tbaa !5
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = call i32 @s2n_print_stacktrace(ptr noundef %3937) #13
  %3939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3940 = trunc nuw i8 %3939 to i1
  br i1 %3940, label %3941, label %3945

3941:                                             ; preds = %3935
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = call i32 @fileno(ptr noundef %3942) #13
  %3944 = call i32 @isatty(i32 noundef %3943) #13
  %.not526 = icmp eq i32 %3944, 0
  br i1 %.not526, label %3945, label %3946

3945:                                             ; preds = %3941, %3935
  br label %3946

3946:                                             ; preds = %3941, %3945
  %.str.5.sink1942 = phi ptr [ @.str.5, %3945 ], [ @.str.2, %3941 ]
  store i32 %3936, ptr %453, align 4, !tbaa !5
  %3947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3948 = load i32, ptr @test_count, align 4, !tbaa !5
  %3949 = load i32, ptr %399, align 4, !tbaa !5
  %3950 = call ptr @s2n_strerror(i32 noundef %3949, ptr noundef nonnull @.str.4) #13
  %3951 = load i32, ptr %399, align 4, !tbaa !5
  %3952 = call ptr @s2n_strerror_debug(i32 noundef %3951, ptr noundef nonnull @.str.4) #13
  %3953 = load i32, ptr %453, align 4, !tbaa !5
  %3954 = call ptr @strerror(i32 noundef %3953) #13
  %3955 = load i32, ptr %453, align 4, !tbaa !5
  %3956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3947, ptr noundef nonnull %.str.5.sink1942, i32 noundef %3948, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 598, ptr noundef %3950, ptr noundef %3952, ptr noundef %3954, i32 noundef %3955) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3957:                                             ; preds = %3930
  %3958 = add nsw i32 %3931, 2
  store i32 %3958, ptr @test_count, align 4, !tbaa !5
  %bcmp527 = call i32 @bcmp(ptr noundef nonnull dereferenceable(213) @__const.main.expected_ja3.74, ptr noundef nonnull dereferenceable(213) %3, i64 213)
  %3959 = icmp eq i32 %bcmp527, 0
  br i1 %3959, label %3982, label %3960

3960:                                             ; preds = %3957
  %3961 = load i32, ptr %453, align 4, !tbaa !5
  %3962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3963 = call i32 @s2n_print_stacktrace(ptr noundef %3962) #13
  %3964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3965 = trunc nuw i8 %3964 to i1
  br i1 %3965, label %3966, label %3970

3966:                                             ; preds = %3960
  %3967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3968 = call i32 @fileno(ptr noundef %3967) #13
  %3969 = call i32 @isatty(i32 noundef %3968) #13
  %.not528 = icmp eq i32 %3969, 0
  br i1 %.not528, label %3970, label %3971

3970:                                             ; preds = %3966, %3960
  br label %3971

3971:                                             ; preds = %3966, %3970
  %.str.5.sink1951 = phi ptr [ @.str.5, %3970 ], [ @.str.2, %3966 ]
  store i32 %3961, ptr %453, align 4, !tbaa !5
  %3972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3973 = load i32, ptr @test_count, align 4, !tbaa !5
  %3974 = load i32, ptr %399, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror(i32 noundef %3974, ptr noundef nonnull @.str.4) #13
  %3976 = load i32, ptr %399, align 4, !tbaa !5
  %3977 = call ptr @s2n_strerror_debug(i32 noundef %3976, ptr noundef nonnull @.str.4) #13
  %3978 = load i32, ptr %453, align 4, !tbaa !5
  %3979 = call ptr @strerror(i32 noundef %3978) #13
  %3980 = load i32, ptr %453, align 4, !tbaa !5
  %3981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3972, ptr noundef nonnull %.str.5.sink1951, i32 noundef %3973, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 599, ptr noundef %3975, ptr noundef %3977, ptr noundef %3979, i32 noundef %3980) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3982:                                             ; preds = %3957
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #13
  %3983 = call i32 @s2n_client_hello_free(ptr noundef nonnull %48) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #13
  call void @llvm.lifetime.end.p0(i64 164, ptr nonnull %47) #13
  call void @llvm.lifetime.start.p0(i64 164, ptr nonnull %50) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(164) %50, ptr noundef nonnull align 16 dereferenceable(164) @__const.main.raw_client_hello.75, i64 164, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #13
  store ptr null, ptr %51, align 8, !tbaa !9
  %3984 = load i32, ptr @test_count, align 4, !tbaa !5
  %3985 = add nsw i32 %3984, 1
  store i32 %3985, ptr @test_count, align 4, !tbaa !5
  %3986 = load ptr, ptr %43, align 8, !tbaa !9
  %3987 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %51, ptr noundef %3986, ptr noundef nonnull %50, i32 noundef 164, i32 noundef %3711)
  %3988 = call zeroext i1 @s2n_result_is_ok(i32 %3987)
  br i1 %3988, label %4011, label %3989

3989:                                             ; preds = %3982
  %3990 = load i32, ptr %453, align 4, !tbaa !5
  %3991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3992 = call i32 @s2n_print_stacktrace(ptr noundef %3991) #13
  %3993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3994 = trunc nuw i8 %3993 to i1
  br i1 %3994, label %3995, label %3999

3995:                                             ; preds = %3989
  %3996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3997 = call i32 @fileno(ptr noundef %3996) #13
  %3998 = call i32 @isatty(i32 noundef %3997) #13
  %.not529 = icmp eq i32 %3998, 0
  br i1 %.not529, label %3999, label %4000

3999:                                             ; preds = %3995, %3989
  br label %4000

4000:                                             ; preds = %3995, %3999
  %.str.5.sink1960 = phi ptr [ @.str.5, %3999 ], [ @.str.2, %3995 ]
  store i32 %3990, ptr %453, align 4, !tbaa !5
  %4001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4002 = load i32, ptr @test_count, align 4, !tbaa !5
  %4003 = load i32, ptr %399, align 4, !tbaa !5
  %4004 = call ptr @s2n_strerror(i32 noundef %4003, ptr noundef nonnull @.str.4) #13
  %4005 = load i32, ptr %399, align 4, !tbaa !5
  %4006 = call ptr @s2n_strerror_debug(i32 noundef %4005, ptr noundef nonnull @.str.4) #13
  %4007 = load i32, ptr %453, align 4, !tbaa !5
  %4008 = call ptr @strerror(i32 noundef %4007) #13
  %4009 = load i32, ptr %453, align 4, !tbaa !5
  %4010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4001, ptr noundef nonnull %.str.5.sink1960, i32 noundef %4002, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %4004, ptr noundef %4006, ptr noundef %4008, i32 noundef %4009) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4011:                                             ; preds = %3982
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #13
  store i32 0, ptr %52, align 4, !tbaa !5
  %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 = load ptr, ptr %51, align 8, !tbaa !9
  %4015 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4014, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %52) #13
  %4016 = icmp eq i32 %4015, -1
  br i1 %4016, label %4017, label %4039

4017:                                             ; preds = %4011
  %4018 = load i32, ptr %453, align 4, !tbaa !5
  %4019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4020 = call i32 @s2n_print_stacktrace(ptr noundef %4019) #13
  %4021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4022 = trunc nuw i8 %4021 to i1
  br i1 %4022, label %4023, label %4027

4023:                                             ; preds = %4017
  %4024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4025 = call i32 @fileno(ptr noundef %4024) #13
  %4026 = call i32 @isatty(i32 noundef %4025) #13
  %.not587 = icmp eq i32 %4026, 0
  br i1 %.not587, label %4027, label %4028

4027:                                             ; preds = %4023, %4017
  br label %4028

4028:                                             ; preds = %4023, %4027
  %.str.5.sink1969 = phi ptr [ @.str.5, %4027 ], [ @.str.2, %4023 ]
  store i32 %4018, ptr %453, align 4, !tbaa !5
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = load i32, ptr @test_count, align 4, !tbaa !5
  %4031 = load i32, ptr %399, align 4, !tbaa !5
  %4032 = call ptr @s2n_strerror(i32 noundef %4031, ptr noundef nonnull @.str.4) #13
  %4033 = load i32, ptr %399, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror_debug(i32 noundef %4033, ptr noundef nonnull @.str.4) #13
  %4035 = load i32, ptr %453, align 4, !tbaa !5
  %4036 = call ptr @strerror(i32 noundef %4035) #13
  %4037 = load i32, ptr %453, align 4, !tbaa !5
  %4038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4029, ptr noundef nonnull %.str.5.sink1969, i32 noundef %4030, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 638, ptr noundef %4032, ptr noundef %4034, ptr noundef %4036, i32 noundef %4037) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4039:                                             ; preds = %4011
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = add nsw i32 %4040, 1
  store i32 %4041, ptr @test_count, align 4, !tbaa !5
  %4042 = load i32, ptr %52, align 4, !tbaa !5
  %4043 = icmp eq i32 %4042, 213
  br i1 %4043, label %4066, label %4044

4044:                                             ; preds = %4039
  %4045 = load i32, ptr %453, align 4, !tbaa !5
  %4046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4047 = call i32 @s2n_print_stacktrace(ptr noundef %4046) #13
  %4048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4049 = trunc nuw i8 %4048 to i1
  br i1 %4049, label %4050, label %4054

4050:                                             ; preds = %4044
  %4051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4052 = call i32 @fileno(ptr noundef %4051) #13
  %4053 = call i32 @isatty(i32 noundef %4052) #13
  %.not530 = icmp eq i32 %4053, 0
  br i1 %.not530, label %4054, label %4055

4054:                                             ; preds = %4050, %4044
  br label %4055

4055:                                             ; preds = %4050, %4054
  %.str.5.sink1978 = phi ptr [ @.str.5, %4054 ], [ @.str.2, %4050 ]
  store i32 %4045, ptr %453, align 4, !tbaa !5
  %4056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4057 = load i32, ptr @test_count, align 4, !tbaa !5
  %4058 = load i32, ptr %399, align 4, !tbaa !5
  %4059 = call ptr @s2n_strerror(i32 noundef %4058, ptr noundef nonnull @.str.4) #13
  %4060 = load i32, ptr %399, align 4, !tbaa !5
  %4061 = call ptr @s2n_strerror_debug(i32 noundef %4060, ptr noundef nonnull @.str.4) #13
  %4062 = load i32, ptr %453, align 4, !tbaa !5
  %4063 = call ptr @strerror(i32 noundef %4062) #13
  %4064 = load i32, ptr %453, align 4, !tbaa !5
  %4065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4056, ptr noundef nonnull %.str.5.sink1978, i32 noundef %4057, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 639, ptr noundef %4059, ptr noundef %4061, ptr noundef %4063, i32 noundef %4064) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4066:                                             ; preds = %4039
  %4067 = add nsw i32 %4040, 2
  store i32 %4067, ptr @test_count, align 4, !tbaa !5
  %bcmp531 = call i32 @bcmp(ptr noundef nonnull dereferenceable(213) @__const.main.expected_ja3.76, ptr noundef nonnull dereferenceable(213) %3, i64 213)
  %4068 = icmp eq i32 %bcmp531, 0
  br i1 %4068, label %4091, label %4069

4069:                                             ; preds = %4066
  %4070 = load i32, ptr %453, align 4, !tbaa !5
  %4071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4072 = call i32 @s2n_print_stacktrace(ptr noundef %4071) #13
  %4073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4074 = trunc nuw i8 %4073 to i1
  br i1 %4074, label %4075, label %4079

4075:                                             ; preds = %4069
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = call i32 @fileno(ptr noundef %4076) #13
  %4078 = call i32 @isatty(i32 noundef %4077) #13
  %.not532 = icmp eq i32 %4078, 0
  br i1 %.not532, label %4079, label %4080

4079:                                             ; preds = %4075, %4069
  br label %4080

4080:                                             ; preds = %4075, %4079
  %.str.5.sink1987 = phi ptr [ @.str.5, %4079 ], [ @.str.2, %4075 ]
  store i32 %4070, ptr %453, align 4, !tbaa !5
  %4081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = load i32, ptr %399, align 4, !tbaa !5
  %4084 = call ptr @s2n_strerror(i32 noundef %4083, ptr noundef nonnull @.str.4) #13
  %4085 = load i32, ptr %399, align 4, !tbaa !5
  %4086 = call ptr @s2n_strerror_debug(i32 noundef %4085, ptr noundef nonnull @.str.4) #13
  %4087 = load i32, ptr %453, align 4, !tbaa !5
  %4088 = call ptr @strerror(i32 noundef %4087) #13
  %4089 = load i32, ptr %453, align 4, !tbaa !5
  %4090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4081, ptr noundef nonnull %.str.5.sink1987, i32 noundef %4082, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 640, ptr noundef %4084, ptr noundef %4086, ptr noundef %4088, i32 noundef %4089) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4091:                                             ; preds = %4066
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #13
  %4092 = call i32 @s2n_client_hello_free(ptr noundef nonnull %51) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #13
  call void @llvm.lifetime.end.p0(i64 164, ptr nonnull %50) #13
  call void @llvm.lifetime.start.p0(i64 258, ptr nonnull %53) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(258) %53, ptr noundef nonnull align 16 dereferenceable(258) @__const.main.raw_client_hello.77, i64 258, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #13
  store ptr null, ptr %54, align 8, !tbaa !9
  %4093 = load i32, ptr @test_count, align 4, !tbaa !5
  %4094 = add nsw i32 %4093, 1
  store i32 %4094, ptr @test_count, align 4, !tbaa !5
  %4095 = load ptr, ptr %43, align 8, !tbaa !9
  %4096 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %54, ptr noundef %4095, ptr noundef nonnull %53, i32 noundef 258, i32 noundef %3711)
  %4097 = call zeroext i1 @s2n_result_is_ok(i32 %4096)
  br i1 %4097, label %4120, label %4098

4098:                                             ; preds = %4091
  %4099 = load i32, ptr %453, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @s2n_print_stacktrace(ptr noundef %4100) #13
  %4102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4103 = trunc nuw i8 %4102 to i1
  br i1 %4103, label %4104, label %4108

4104:                                             ; preds = %4098
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = call i32 @fileno(ptr noundef %4105) #13
  %4107 = call i32 @isatty(i32 noundef %4106) #13
  %.not533 = icmp eq i32 %4107, 0
  br i1 %.not533, label %4108, label %4109

4108:                                             ; preds = %4104, %4098
  br label %4109

4109:                                             ; preds = %4104, %4108
  %.str.5.sink1996 = phi ptr [ @.str.5, %4108 ], [ @.str.2, %4104 ]
  store i32 %4099, ptr %453, align 4, !tbaa !5
  %4110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4111 = load i32, ptr @test_count, align 4, !tbaa !5
  %4112 = load i32, ptr %399, align 4, !tbaa !5
  %4113 = call ptr @s2n_strerror(i32 noundef %4112, ptr noundef nonnull @.str.4) #13
  %4114 = load i32, ptr %399, align 4, !tbaa !5
  %4115 = call ptr @s2n_strerror_debug(i32 noundef %4114, ptr noundef nonnull @.str.4) #13
  %4116 = load i32, ptr %453, align 4, !tbaa !5
  %4117 = call ptr @strerror(i32 noundef %4116) #13
  %4118 = load i32, ptr %453, align 4, !tbaa !5
  %4119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4110, ptr noundef nonnull %.str.5.sink1996, i32 noundef %4111, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 687, ptr noundef %4113, ptr noundef %4115, ptr noundef %4117, i32 noundef %4118) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4120:                                             ; preds = %4091
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #13
  store i32 0, ptr %55, align 4, !tbaa !5
  %4121 = load i32, ptr @test_count, align 4, !tbaa !5
  %4122 = add nsw i32 %4121, 1
  store i32 %4122, ptr @test_count, align 4, !tbaa !5
  %4123 = load ptr, ptr %54, align 8, !tbaa !9
  %4124 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4123, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %55) #13
  %4125 = icmp eq i32 %4124, -1
  br i1 %4125, label %4126, label %4148

4126:                                             ; preds = %4120
  %4127 = load i32, ptr %453, align 4, !tbaa !5
  %4128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4129 = call i32 @s2n_print_stacktrace(ptr noundef %4128) #13
  %4130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4131 = trunc nuw i8 %4130 to i1
  br i1 %4131, label %4132, label %4136

4132:                                             ; preds = %4126
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = call i32 @fileno(ptr noundef %4133) #13
  %4135 = call i32 @isatty(i32 noundef %4134) #13
  %.not586 = icmp eq i32 %4135, 0
  br i1 %.not586, label %4136, label %4137

4136:                                             ; preds = %4132, %4126
  br label %4137

4137:                                             ; preds = %4132, %4136
  %.str.5.sink2005 = phi ptr [ @.str.5, %4136 ], [ @.str.2, %4132 ]
  store i32 %4127, ptr %453, align 4, !tbaa !5
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = load i32, ptr @test_count, align 4, !tbaa !5
  %4140 = load i32, ptr %399, align 4, !tbaa !5
  %4141 = call ptr @s2n_strerror(i32 noundef %4140, ptr noundef nonnull @.str.4) #13
  %4142 = load i32, ptr %399, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror_debug(i32 noundef %4142, ptr noundef nonnull @.str.4) #13
  %4144 = load i32, ptr %453, align 4, !tbaa !5
  %4145 = call ptr @strerror(i32 noundef %4144) #13
  %4146 = load i32, ptr %453, align 4, !tbaa !5
  %4147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4138, ptr noundef nonnull %.str.5.sink2005, i32 noundef %4139, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 691, ptr noundef %4141, ptr noundef %4143, ptr noundef %4145, i32 noundef %4146) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4148:                                             ; preds = %4120
  %4149 = load i32, ptr @test_count, align 4, !tbaa !5
  %4150 = add nsw i32 %4149, 1
  store i32 %4150, ptr @test_count, align 4, !tbaa !5
  %4151 = load i32, ptr %55, align 4, !tbaa !5
  %4152 = icmp eq i32 %4151, 357
  br i1 %4152, label %4175, label %4153

4153:                                             ; preds = %4148
  %4154 = load i32, ptr %453, align 4, !tbaa !5
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = call i32 @s2n_print_stacktrace(ptr noundef %4155) #13
  %4157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4158 = trunc nuw i8 %4157 to i1
  br i1 %4158, label %4159, label %4163

4159:                                             ; preds = %4153
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = call i32 @fileno(ptr noundef %4160) #13
  %4162 = call i32 @isatty(i32 noundef %4161) #13
  %.not534 = icmp eq i32 %4162, 0
  br i1 %.not534, label %4163, label %4164

4163:                                             ; preds = %4159, %4153
  br label %4164

4164:                                             ; preds = %4159, %4163
  %.str.5.sink2014 = phi ptr [ @.str.5, %4163 ], [ @.str.2, %4159 ]
  store i32 %4154, ptr %453, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = load i32, ptr @test_count, align 4, !tbaa !5
  %4167 = load i32, ptr %399, align 4, !tbaa !5
  %4168 = call ptr @s2n_strerror(i32 noundef %4167, ptr noundef nonnull @.str.4) #13
  %4169 = load i32, ptr %399, align 4, !tbaa !5
  %4170 = call ptr @s2n_strerror_debug(i32 noundef %4169, ptr noundef nonnull @.str.4) #13
  %4171 = load i32, ptr %453, align 4, !tbaa !5
  %4172 = call ptr @strerror(i32 noundef %4171) #13
  %4173 = load i32, ptr %453, align 4, !tbaa !5
  %4174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4165, ptr noundef nonnull %.str.5.sink2014, i32 noundef %4166, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 692, ptr noundef %4168, ptr noundef %4170, ptr noundef %4172, i32 noundef %4173) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4175:                                             ; preds = %4148
  %4176 = add nsw i32 %4149, 2
  store i32 %4176, ptr @test_count, align 4, !tbaa !5
  %bcmp535 = call i32 @bcmp(ptr noundef nonnull dereferenceable(357) @__const.main.expected_ja3.78, ptr noundef nonnull dereferenceable(357) %3, i64 357)
  %4177 = icmp eq i32 %bcmp535, 0
  br i1 %4177, label %4200, label %4178

4178:                                             ; preds = %4175
  %4179 = load i32, ptr %453, align 4, !tbaa !5
  %4180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4181 = call i32 @s2n_print_stacktrace(ptr noundef %4180) #13
  %4182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4183 = trunc nuw i8 %4182 to i1
  br i1 %4183, label %4184, label %4188

4184:                                             ; preds = %4178
  %4185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4186 = call i32 @fileno(ptr noundef %4185) #13
  %4187 = call i32 @isatty(i32 noundef %4186) #13
  %.not536 = icmp eq i32 %4187, 0
  br i1 %.not536, label %4188, label %4189

4188:                                             ; preds = %4184, %4178
  br label %4189

4189:                                             ; preds = %4184, %4188
  %.str.5.sink2023 = phi ptr [ @.str.5, %4188 ], [ @.str.2, %4184 ]
  store i32 %4179, ptr %453, align 4, !tbaa !5
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = load i32, ptr @test_count, align 4, !tbaa !5
  %4192 = load i32, ptr %399, align 4, !tbaa !5
  %4193 = call ptr @s2n_strerror(i32 noundef %4192, ptr noundef nonnull @.str.4) #13
  %4194 = load i32, ptr %399, align 4, !tbaa !5
  %4195 = call ptr @s2n_strerror_debug(i32 noundef %4194, ptr noundef nonnull @.str.4) #13
  %4196 = load i32, ptr %453, align 4, !tbaa !5
  %4197 = call ptr @strerror(i32 noundef %4196) #13
  %4198 = load i32, ptr %453, align 4, !tbaa !5
  %4199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4190, ptr noundef nonnull %.str.5.sink2023, i32 noundef %4191, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 693, ptr noundef %4193, ptr noundef %4195, ptr noundef %4197, i32 noundef %4198) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4200:                                             ; preds = %4175
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #13
  %4201 = call i32 @s2n_client_hello_free(ptr noundef nonnull %54) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #13
  call void @llvm.lifetime.end.p0(i64 258, ptr nonnull %53) #13
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %56) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(512) %56, ptr noundef nonnull align 16 dereferenceable(512) @__const.main.raw_client_hello.79, i64 512, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %57) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %57, i8 0, i64 24, i1 false)
  %4202 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %57, ptr noundef nonnull @.str.81) #13
  %4203 = call zeroext i1 @s2n_result_is_ok(i32 %4202)
  br i1 %4203, label %4204, label %4421

4204:                                             ; preds = %4200
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #13
  store ptr null, ptr %58, align 8, !tbaa !9
  %4205 = load i32, ptr @test_count, align 4, !tbaa !5
  %4206 = add nsw i32 %4205, 1
  store i32 %4206, ptr @test_count, align 4, !tbaa !5
  %4207 = load ptr, ptr %43, align 8, !tbaa !9
  %4208 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %58, ptr noundef %4207, ptr noundef nonnull %56, i32 noundef 512, i32 noundef %3711)
  %4209 = call zeroext i1 @s2n_result_is_ok(i32 %4208)
  br i1 %4209, label %4232, label %4210

4210:                                             ; preds = %4204
  %4211 = load i32, ptr %453, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = call i32 @s2n_print_stacktrace(ptr noundef %4212) #13
  %4214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4215 = trunc nuw i8 %4214 to i1
  br i1 %4215, label %4216, label %4220

4216:                                             ; preds = %4210
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = call i32 @fileno(ptr noundef %4217) #13
  %4219 = call i32 @isatty(i32 noundef %4218) #13
  %.not537 = icmp eq i32 %4219, 0
  br i1 %.not537, label %4220, label %4221

4220:                                             ; preds = %4216, %4210
  br label %4221

4221:                                             ; preds = %4216, %4220
  %.str.5.sink2032 = phi ptr [ @.str.5, %4220 ], [ @.str.2, %4216 ]
  store i32 %4211, ptr %453, align 4, !tbaa !5
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = load i32, ptr @test_count, align 4, !tbaa !5
  %4224 = load i32, ptr %399, align 4, !tbaa !5
  %4225 = call ptr @s2n_strerror(i32 noundef %4224, ptr noundef nonnull @.str.4) #13
  %4226 = load i32, ptr %399, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror_debug(i32 noundef %4226, ptr noundef nonnull @.str.4) #13
  %4228 = load i32, ptr %453, align 4, !tbaa !5
  %4229 = call ptr @strerror(i32 noundef %4228) #13
  %4230 = load i32, ptr %453, align 4, !tbaa !5
  %4231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4222, ptr noundef nonnull %.str.5.sink2032, i32 noundef %4223, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 759, ptr noundef %4225, ptr noundef %4227, ptr noundef %4229, i32 noundef %4230) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4232:                                             ; preds = %4204
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #13
  store i32 0, ptr %59, align 4, !tbaa !5
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = add nsw i32 %4233, 1
  store i32 %4234, ptr @test_count, align 4, !tbaa !5
  %4235 = load ptr, ptr %58, align 8, !tbaa !9
  %4236 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4235, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %59) #13
  %4237 = icmp eq i32 %4236, -1
  br i1 %4237, label %4238, label %4260

4238:                                             ; preds = %4232
  %4239 = load i32, ptr %453, align 4, !tbaa !5
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = call i32 @s2n_print_stacktrace(ptr noundef %4240) #13
  %4242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4243 = trunc nuw i8 %4242 to i1
  br i1 %4243, label %4244, label %4248

4244:                                             ; preds = %4238
  %4245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4246 = call i32 @fileno(ptr noundef %4245) #13
  %4247 = call i32 @isatty(i32 noundef %4246) #13
  %.not585 = icmp eq i32 %4247, 0
  br i1 %.not585, label %4248, label %4249

4248:                                             ; preds = %4244, %4238
  br label %4249

4249:                                             ; preds = %4244, %4248
  %.str.5.sink2041 = phi ptr [ @.str.5, %4248 ], [ @.str.2, %4244 ]
  store i32 %4239, ptr %453, align 4, !tbaa !5
  %4250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4251 = load i32, ptr @test_count, align 4, !tbaa !5
  %4252 = load i32, ptr %399, align 4, !tbaa !5
  %4253 = call ptr @s2n_strerror(i32 noundef %4252, ptr noundef nonnull @.str.4) #13
  %4254 = load i32, ptr %399, align 4, !tbaa !5
  %4255 = call ptr @s2n_strerror_debug(i32 noundef %4254, ptr noundef nonnull @.str.4) #13
  %4256 = load i32, ptr %453, align 4, !tbaa !5
  %4257 = call ptr @strerror(i32 noundef %4256) #13
  %4258 = load i32, ptr %453, align 4, !tbaa !5
  %4259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4250, ptr noundef nonnull %.str.5.sink2041, i32 noundef %4251, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 763, ptr noundef %4253, ptr noundef %4255, ptr noundef %4257, i32 noundef %4258) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4260:                                             ; preds = %4232
  %4261 = load i32, ptr @test_count, align 4, !tbaa !5
  %4262 = add nsw i32 %4261, 1
  store i32 %4262, ptr @test_count, align 4, !tbaa !5
  %4263 = load i32, ptr %59, align 4, !tbaa !5
  %4264 = icmp eq i32 %4263, 140
  br i1 %4264, label %4287, label %4265

4265:                                             ; preds = %4260
  %4266 = load i32, ptr %453, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = call i32 @s2n_print_stacktrace(ptr noundef %4267) #13
  %4269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4270 = trunc nuw i8 %4269 to i1
  br i1 %4270, label %4271, label %4275

4271:                                             ; preds = %4265
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4273 = call i32 @fileno(ptr noundef %4272) #13
  %4274 = call i32 @isatty(i32 noundef %4273) #13
  %.not538 = icmp eq i32 %4274, 0
  br i1 %.not538, label %4275, label %4276

4275:                                             ; preds = %4271, %4265
  br label %4276

4276:                                             ; preds = %4271, %4275
  %.str.5.sink2050 = phi ptr [ @.str.5, %4275 ], [ @.str.2, %4271 ]
  store i32 %4266, ptr %453, align 4, !tbaa !5
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = load i32, ptr @test_count, align 4, !tbaa !5
  %4279 = load i32, ptr %399, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror(i32 noundef %4279, ptr noundef nonnull @.str.4) #13
  %4281 = load i32, ptr %399, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror_debug(i32 noundef %4281, ptr noundef nonnull @.str.4) #13
  %4283 = load i32, ptr %453, align 4, !tbaa !5
  %4284 = call ptr @strerror(i32 noundef %4283) #13
  %4285 = load i32, ptr %453, align 4, !tbaa !5
  %4286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4277, ptr noundef nonnull %.str.5.sink2050, i32 noundef %4278, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 764, ptr noundef %4280, ptr noundef %4282, ptr noundef %4284, i32 noundef %4285) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4287:                                             ; preds = %4260
  %4288 = add nsw i32 %4261, 2
  store i32 %4288, ptr @test_count, align 4, !tbaa !5
  %bcmp539 = call i32 @bcmp(ptr noundef nonnull dereferenceable(140) @__const.main.expected_ja3.80, ptr noundef nonnull dereferenceable(140) %3, i64 140)
  %4289 = icmp eq i32 %bcmp539, 0
  br i1 %4289, label %4312, label %4290

4290:                                             ; preds = %4287
  %4291 = load i32, ptr %453, align 4, !tbaa !5
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = call i32 @s2n_print_stacktrace(ptr noundef %4292) #13
  %4294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4295 = trunc nuw i8 %4294 to i1
  br i1 %4295, label %4296, label %4300

4296:                                             ; preds = %4290
  %4297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4298 = call i32 @fileno(ptr noundef %4297) #13
  %4299 = call i32 @isatty(i32 noundef %4298) #13
  %.not540 = icmp eq i32 %4299, 0
  br i1 %.not540, label %4300, label %4301

4300:                                             ; preds = %4296, %4290
  br label %4301

4301:                                             ; preds = %4296, %4300
  %.str.5.sink2059 = phi ptr [ @.str.5, %4300 ], [ @.str.2, %4296 ]
  store i32 %4291, ptr %453, align 4, !tbaa !5
  %4302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4303 = load i32, ptr @test_count, align 4, !tbaa !5
  %4304 = load i32, ptr %399, align 4, !tbaa !5
  %4305 = call ptr @s2n_strerror(i32 noundef %4304, ptr noundef nonnull @.str.4) #13
  %4306 = load i32, ptr %399, align 4, !tbaa !5
  %4307 = call ptr @s2n_strerror_debug(i32 noundef %4306, ptr noundef nonnull @.str.4) #13
  %4308 = load i32, ptr %453, align 4, !tbaa !5
  %4309 = call ptr @strerror(i32 noundef %4308) #13
  %4310 = load i32, ptr %453, align 4, !tbaa !5
  %4311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4302, ptr noundef nonnull %.str.5.sink2059, i32 noundef %4303, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 765, ptr noundef %4305, ptr noundef %4307, ptr noundef %4309, i32 noundef %4310) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4312:                                             ; preds = %4287
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #13
  store i32 0, ptr %60, align 4, !tbaa !5
  %4313 = add nsw i32 %4261, 3
  store i32 %4313, ptr @test_count, align 4, !tbaa !5
  %4314 = load ptr, ptr %58, align 8, !tbaa !9
  %4315 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %4314, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %59, ptr noundef nonnull %60) #13
  %4316 = icmp eq i32 %4315, -1
  br i1 %4316, label %4317, label %4339

4317:                                             ; preds = %4312
  %4318 = load i32, ptr %453, align 4, !tbaa !5
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = call i32 @s2n_print_stacktrace(ptr noundef %4319) #13
  %4321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4322 = trunc nuw i8 %4321 to i1
  br i1 %4322, label %4323, label %4327

4323:                                             ; preds = %4317
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = call i32 @fileno(ptr noundef %4324) #13
  %4326 = call i32 @isatty(i32 noundef %4325) #13
  %.not584 = icmp eq i32 %4326, 0
  br i1 %.not584, label %4327, label %4328

4327:                                             ; preds = %4323, %4317
  br label %4328

4328:                                             ; preds = %4323, %4327
  %.str.5.sink2068 = phi ptr [ @.str.5, %4327 ], [ @.str.2, %4323 ]
  store i32 %4318, ptr %453, align 4, !tbaa !5
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = load i32, ptr @test_count, align 4, !tbaa !5
  %4331 = load i32, ptr %399, align 4, !tbaa !5
  %4332 = call ptr @s2n_strerror(i32 noundef %4331, ptr noundef nonnull @.str.4) #13
  %4333 = load i32, ptr %399, align 4, !tbaa !5
  %4334 = call ptr @s2n_strerror_debug(i32 noundef %4333, ptr noundef nonnull @.str.4) #13
  %4335 = load i32, ptr %453, align 4, !tbaa !5
  %4336 = call ptr @strerror(i32 noundef %4335) #13
  %4337 = load i32, ptr %453, align 4, !tbaa !5
  %4338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4329, ptr noundef nonnull %.str.5.sink2068, i32 noundef %4330, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 770, ptr noundef %4332, ptr noundef %4334, ptr noundef %4336, i32 noundef %4337) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4339:                                             ; preds = %4312
  %4340 = load i32, ptr @test_count, align 4, !tbaa !5
  %4341 = add nsw i32 %4340, 1
  store i32 %4341, ptr @test_count, align 4, !tbaa !5
  %4342 = load i32, ptr %60, align 4, !tbaa !5
  %4343 = icmp eq i32 %4342, 140
  br i1 %4343, label %4366, label %4344

4344:                                             ; preds = %4339
  %4345 = load i32, ptr %453, align 4, !tbaa !5
  %4346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4347 = call i32 @s2n_print_stacktrace(ptr noundef %4346) #13
  %4348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4349 = trunc nuw i8 %4348 to i1
  br i1 %4349, label %4350, label %4354

4350:                                             ; preds = %4344
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = call i32 @fileno(ptr noundef %4351) #13
  %4353 = call i32 @isatty(i32 noundef %4352) #13
  %.not541 = icmp eq i32 %4353, 0
  br i1 %.not541, label %4354, label %4355

4354:                                             ; preds = %4350, %4344
  br label %4355

4355:                                             ; preds = %4350, %4354
  %.str.5.sink2077 = phi ptr [ @.str.5, %4354 ], [ @.str.2, %4350 ]
  store i32 %4345, ptr %453, align 4, !tbaa !5
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = load i32, ptr @test_count, align 4, !tbaa !5
  %4358 = load i32, ptr %399, align 4, !tbaa !5
  %4359 = call ptr @s2n_strerror(i32 noundef %4358, ptr noundef nonnull @.str.4) #13
  %4360 = load i32, ptr %399, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror_debug(i32 noundef %4360, ptr noundef nonnull @.str.4) #13
  %4362 = load i32, ptr %453, align 4, !tbaa !5
  %4363 = call ptr @strerror(i32 noundef %4362) #13
  %4364 = load i32, ptr %453, align 4, !tbaa !5
  %4365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4356, ptr noundef nonnull %.str.5.sink2077, i32 noundef %4357, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 771, ptr noundef %4359, ptr noundef %4361, ptr noundef %4363, i32 noundef %4364) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4366:                                             ; preds = %4339
  %4367 = add nsw i32 %4340, 2
  store i32 %4367, ptr @test_count, align 4, !tbaa !5
  %4368 = load i32, ptr %3704, align 8, !tbaa !49
  %4369 = load i32, ptr %59, align 4, !tbaa !5
  %4370 = icmp eq i32 %4368, %4369
  br i1 %4370, label %4393, label %4371

4371:                                             ; preds = %4366
  %4372 = load i32, ptr %453, align 4, !tbaa !5
  %4373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4374 = call i32 @s2n_print_stacktrace(ptr noundef %4373) #13
  %4375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4376 = trunc nuw i8 %4375 to i1
  br i1 %4376, label %4377, label %4381

4377:                                             ; preds = %4371
  %4378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4379 = call i32 @fileno(ptr noundef %4378) #13
  %4380 = call i32 @isatty(i32 noundef %4379) #13
  %.not542 = icmp eq i32 %4380, 0
  br i1 %.not542, label %4381, label %4382

4381:                                             ; preds = %4377, %4371
  br label %4382

4382:                                             ; preds = %4377, %4381
  %.str.5.sink2086 = phi ptr [ @.str.5, %4381 ], [ @.str.2, %4377 ]
  store i32 %4372, ptr %453, align 4, !tbaa !5
  %4383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4384 = load i32, ptr @test_count, align 4, !tbaa !5
  %4385 = load i32, ptr %399, align 4, !tbaa !5
  %4386 = call ptr @s2n_strerror(i32 noundef %4385, ptr noundef nonnull @.str.4) #13
  %4387 = load i32, ptr %399, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror_debug(i32 noundef %4387, ptr noundef nonnull @.str.4) #13
  %4389 = load i32, ptr %453, align 4, !tbaa !5
  %4390 = call ptr @strerror(i32 noundef %4389) #13
  %4391 = load i32, ptr %453, align 4, !tbaa !5
  %4392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4383, ptr noundef nonnull %.str.5.sink2086, i32 noundef %4384, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 772, ptr noundef %4386, ptr noundef %4388, ptr noundef %4390, i32 noundef %4391) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4393:                                             ; preds = %4366
  %.not543 = icmp eq i32 %4368, 0
  br i1 %.not543, label %4423, label %4394

4394:                                             ; preds = %4393
  %4395 = add nsw i32 %4340, 3
  store i32 %4395, ptr @test_count, align 4, !tbaa !5
  %4396 = load ptr, ptr %57, align 8, !tbaa !50
  %4397 = zext i32 %4368 to i64
  %bcmp544 = call i32 @bcmp(ptr %4396, ptr nonnull %3, i64 %4397)
  %4398 = icmp eq i32 %bcmp544, 0
  br i1 %4398, label %4423, label %4399

4399:                                             ; preds = %4394
  %4400 = load i32, ptr %453, 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
  %.not545 = icmp eq i32 %4408, 0
  br i1 %.not545, label %4409, label %4410

4409:                                             ; preds = %4405, %4399
  br label %4410

4410:                                             ; preds = %4405, %4409
  %.str.5.sink2095 = phi ptr [ @.str.5, %4409 ], [ @.str.2, %4405 ]
  store i32 %4400, ptr %453, 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 %399, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror(i32 noundef %4413, ptr noundef nonnull @.str.4) #13
  %4415 = load i32, ptr %399, align 4, !tbaa !5
  %4416 = call ptr @s2n_strerror_debug(i32 noundef %4415, ptr noundef nonnull @.str.4) #13
  %4417 = load i32, ptr %453, align 4, !tbaa !5
  %4418 = call ptr @strerror(i32 noundef %4417) #13
  %4419 = load i32, ptr %453, align 4, !tbaa !5
  %4420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4411, ptr noundef nonnull %.str.5.sink2095, i32 noundef %4412, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 773, ptr noundef %4414, ptr noundef %4416, ptr noundef %4418, i32 noundef %4419) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4421:                                             ; preds = %4200
  %4422 = call i32 @s2n_free(ptr noundef nonnull %57) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #13
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %56) #13
  br label %.thread697

4423:                                             ; preds = %4393, %4394
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #13
  %4424 = call i32 @s2n_client_hello_free(ptr noundef nonnull %58) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #13
  %4425 = call i32 @s2n_free(ptr noundef nonnull %57) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #13
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %56) #13
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %61) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(512) %61, ptr noundef nonnull align 16 dereferenceable(512) @__const.main.raw_client_hello.86, i64 512, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %62) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %62, i8 0, i64 24, i1 false)
  %4426 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %62, ptr noundef nonnull @.str.88) #13
  %4427 = call zeroext i1 @s2n_result_is_ok(i32 %4426)
  br i1 %4427, label %4428, label %4645

4428:                                             ; preds = %4423
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #13
  store ptr null, ptr %63, align 8, !tbaa !9
  %4429 = load i32, ptr @test_count, align 4, !tbaa !5
  %4430 = add nsw i32 %4429, 1
  store i32 %4430, ptr @test_count, align 4, !tbaa !5
  %4431 = load ptr, ptr %43, align 8, !tbaa !9
  %4432 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %63, ptr noundef %4431, ptr noundef nonnull %61, i32 noundef 512, i32 noundef %3711)
  %4433 = call zeroext i1 @s2n_result_is_ok(i32 %4432)
  br i1 %4433, label %4456, label %4434

4434:                                             ; preds = %4428
  %4435 = load i32, ptr %453, align 4, !tbaa !5
  %4436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4437 = call i32 @s2n_print_stacktrace(ptr noundef %4436) #13
  %4438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4439 = trunc nuw i8 %4438 to i1
  br i1 %4439, label %4440, label %4444

4440:                                             ; preds = %4434
  %4441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4442 = call i32 @fileno(ptr noundef %4441) #13
  %4443 = call i32 @isatty(i32 noundef %4442) #13
  %.not546 = icmp eq i32 %4443, 0
  br i1 %.not546, label %4444, label %4445

4444:                                             ; preds = %4440, %4434
  br label %4445

4445:                                             ; preds = %4440, %4444
  %.str.5.sink2104 = phi ptr [ @.str.5, %4444 ], [ @.str.2, %4440 ]
  store i32 %4435, ptr %453, align 4, !tbaa !5
  %4446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4447 = load i32, ptr @test_count, align 4, !tbaa !5
  %4448 = load i32, ptr %399, align 4, !tbaa !5
  %4449 = call ptr @s2n_strerror(i32 noundef %4448, ptr noundef nonnull @.str.4) #13
  %4450 = load i32, ptr %399, align 4, !tbaa !5
  %4451 = call ptr @s2n_strerror_debug(i32 noundef %4450, ptr noundef nonnull @.str.4) #13
  %4452 = load i32, ptr %453, align 4, !tbaa !5
  %4453 = call ptr @strerror(i32 noundef %4452) #13
  %4454 = load i32, ptr %453, align 4, !tbaa !5
  %4455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4446, ptr noundef nonnull %.str.5.sink2104, i32 noundef %4447, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 841, ptr noundef %4449, ptr noundef %4451, ptr noundef %4453, i32 noundef %4454) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4456:                                             ; preds = %4428
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %64) #13
  store i32 0, ptr %64, align 4, !tbaa !5
  %4457 = load i32, ptr @test_count, align 4, !tbaa !5
  %4458 = add nsw i32 %4457, 1
  store i32 %4458, ptr @test_count, align 4, !tbaa !5
  %4459 = load ptr, ptr %63, align 8, !tbaa !9
  %4460 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4459, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %64) #13
  %4461 = icmp eq i32 %4460, -1
  br i1 %4461, label %4462, label %4484

4462:                                             ; preds = %4456
  %4463 = load i32, ptr %453, align 4, !tbaa !5
  %4464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4465 = call i32 @s2n_print_stacktrace(ptr noundef %4464) #13
  %4466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4467 = trunc nuw i8 %4466 to i1
  br i1 %4467, label %4468, label %4472

4468:                                             ; preds = %4462
  %4469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4470 = call i32 @fileno(ptr noundef %4469) #13
  %4471 = call i32 @isatty(i32 noundef %4470) #13
  %.not583 = icmp eq i32 %4471, 0
  br i1 %.not583, label %4472, label %4473

4472:                                             ; preds = %4468, %4462
  br label %4473

4473:                                             ; preds = %4468, %4472
  %.str.5.sink2113 = phi ptr [ @.str.5, %4472 ], [ @.str.2, %4468 ]
  store i32 %4463, ptr %453, align 4, !tbaa !5
  %4474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4475 = load i32, ptr @test_count, align 4, !tbaa !5
  %4476 = load i32, ptr %399, align 4, !tbaa !5
  %4477 = call ptr @s2n_strerror(i32 noundef %4476, ptr noundef nonnull @.str.4) #13
  %4478 = load i32, ptr %399, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror_debug(i32 noundef %4478, ptr noundef nonnull @.str.4) #13
  %4480 = load i32, ptr %453, align 4, !tbaa !5
  %4481 = call ptr @strerror(i32 noundef %4480) #13
  %4482 = load i32, ptr %453, align 4, !tbaa !5
  %4483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4474, ptr noundef nonnull %.str.5.sink2113, i32 noundef %4475, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 845, ptr noundef %4477, ptr noundef %4479, ptr noundef %4481, i32 noundef %4482) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4484:                                             ; preds = %4456
  %4485 = load i32, ptr @test_count, align 4, !tbaa !5
  %4486 = add nsw i32 %4485, 1
  store i32 %4486, ptr @test_count, align 4, !tbaa !5
  %4487 = load i32, ptr %64, align 4, !tbaa !5
  %4488 = icmp eq i32 %4487, 213
  br i1 %4488, label %4511, label %4489

4489:                                             ; preds = %4484
  %4490 = load i32, ptr %453, align 4, !tbaa !5
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = call i32 @s2n_print_stacktrace(ptr noundef %4491) #13
  %4493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4494 = trunc nuw i8 %4493 to i1
  br i1 %4494, label %4495, label %4499

4495:                                             ; preds = %4489
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4497 = call i32 @fileno(ptr noundef %4496) #13
  %4498 = call i32 @isatty(i32 noundef %4497) #13
  %.not547 = icmp eq i32 %4498, 0
  br i1 %.not547, label %4499, label %4500

4499:                                             ; preds = %4495, %4489
  br label %4500

4500:                                             ; preds = %4495, %4499
  %.str.5.sink2122 = phi ptr [ @.str.5, %4499 ], [ @.str.2, %4495 ]
  store i32 %4490, ptr %453, align 4, !tbaa !5
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = load i32, ptr @test_count, align 4, !tbaa !5
  %4503 = load i32, ptr %399, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror(i32 noundef %4503, ptr noundef nonnull @.str.4) #13
  %4505 = load i32, ptr %399, align 4, !tbaa !5
  %4506 = call ptr @s2n_strerror_debug(i32 noundef %4505, ptr noundef nonnull @.str.4) #13
  %4507 = load i32, ptr %453, align 4, !tbaa !5
  %4508 = call ptr @strerror(i32 noundef %4507) #13
  %4509 = load i32, ptr %453, align 4, !tbaa !5
  %4510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4501, ptr noundef nonnull %.str.5.sink2122, i32 noundef %4502, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 846, ptr noundef %4504, ptr noundef %4506, ptr noundef %4508, i32 noundef %4509) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4511:                                             ; preds = %4484
  %4512 = add nsw i32 %4485, 2
  store i32 %4512, ptr @test_count, align 4, !tbaa !5
  %bcmp548 = call i32 @bcmp(ptr noundef nonnull dereferenceable(213) @__const.main.expected_ja3.87, ptr noundef nonnull dereferenceable(213) %3, i64 213)
  %4513 = icmp eq i32 %bcmp548, 0
  br i1 %4513, label %4536, label %4514

4514:                                             ; preds = %4511
  %4515 = load i32, ptr %453, align 4, !tbaa !5
  %4516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4517 = call i32 @s2n_print_stacktrace(ptr noundef %4516) #13
  %4518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4519 = trunc nuw i8 %4518 to i1
  br i1 %4519, label %4520, label %4524

4520:                                             ; preds = %4514
  %4521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4522 = call i32 @fileno(ptr noundef %4521) #13
  %4523 = call i32 @isatty(i32 noundef %4522) #13
  %.not549 = icmp eq i32 %4523, 0
  br i1 %.not549, label %4524, label %4525

4524:                                             ; preds = %4520, %4514
  br label %4525

4525:                                             ; preds = %4520, %4524
  %.str.5.sink2131 = phi ptr [ @.str.5, %4524 ], [ @.str.2, %4520 ]
  store i32 %4515, ptr %453, align 4, !tbaa !5
  %4526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4527 = load i32, ptr @test_count, align 4, !tbaa !5
  %4528 = load i32, ptr %399, align 4, !tbaa !5
  %4529 = call ptr @s2n_strerror(i32 noundef %4528, ptr noundef nonnull @.str.4) #13
  %4530 = load i32, ptr %399, align 4, !tbaa !5
  %4531 = call ptr @s2n_strerror_debug(i32 noundef %4530, ptr noundef nonnull @.str.4) #13
  %4532 = load i32, ptr %453, align 4, !tbaa !5
  %4533 = call ptr @strerror(i32 noundef %4532) #13
  %4534 = load i32, ptr %453, align 4, !tbaa !5
  %4535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4526, ptr noundef nonnull %.str.5.sink2131, i32 noundef %4527, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 847, ptr noundef %4529, ptr noundef %4531, ptr noundef %4533, i32 noundef %4534) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4536:                                             ; preds = %4511
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %65) #13
  store i32 0, ptr %65, align 4, !tbaa !5
  %4537 = add nsw i32 %4485, 3
  store i32 %4537, ptr @test_count, align 4, !tbaa !5
  %4538 = load ptr, ptr %63, align 8, !tbaa !9
  %4539 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %4538, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %64, ptr noundef nonnull %65) #13
  %4540 = icmp eq i32 %4539, -1
  br i1 %4540, label %4541, label %4563

4541:                                             ; preds = %4536
  %4542 = load i32, ptr %453, align 4, !tbaa !5
  %4543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4544 = call i32 @s2n_print_stacktrace(ptr noundef %4543) #13
  %4545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4546 = trunc nuw i8 %4545 to i1
  br i1 %4546, label %4547, label %4551

4547:                                             ; preds = %4541
  %4548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4549 = call i32 @fileno(ptr noundef %4548) #13
  %4550 = call i32 @isatty(i32 noundef %4549) #13
  %.not582 = icmp eq i32 %4550, 0
  br i1 %.not582, label %4551, label %4552

4551:                                             ; preds = %4547, %4541
  br label %4552

4552:                                             ; preds = %4547, %4551
  %.str.5.sink2140 = phi ptr [ @.str.5, %4551 ], [ @.str.2, %4547 ]
  store i32 %4542, ptr %453, align 4, !tbaa !5
  %4553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4554 = load i32, ptr @test_count, align 4, !tbaa !5
  %4555 = load i32, ptr %399, align 4, !tbaa !5
  %4556 = call ptr @s2n_strerror(i32 noundef %4555, ptr noundef nonnull @.str.4) #13
  %4557 = load i32, ptr %399, align 4, !tbaa !5
  %4558 = call ptr @s2n_strerror_debug(i32 noundef %4557, ptr noundef nonnull @.str.4) #13
  %4559 = load i32, ptr %453, align 4, !tbaa !5
  %4560 = call ptr @strerror(i32 noundef %4559) #13
  %4561 = load i32, ptr %453, align 4, !tbaa !5
  %4562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4553, ptr noundef nonnull %.str.5.sink2140, i32 noundef %4554, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 852, ptr noundef %4556, ptr noundef %4558, ptr noundef %4560, i32 noundef %4561) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4563:                                             ; preds = %4536
  %4564 = load i32, ptr @test_count, align 4, !tbaa !5
  %4565 = add nsw i32 %4564, 1
  store i32 %4565, ptr @test_count, align 4, !tbaa !5
  %4566 = load i32, ptr %65, align 4, !tbaa !5
  %4567 = icmp eq i32 %4566, 213
  br i1 %4567, label %4590, label %4568

4568:                                             ; preds = %4563
  %4569 = load i32, ptr %453, align 4, !tbaa !5
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = call i32 @s2n_print_stacktrace(ptr noundef %4570) #13
  %4572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4573 = trunc nuw i8 %4572 to i1
  br i1 %4573, label %4574, label %4578

4574:                                             ; preds = %4568
  %4575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4576 = call i32 @fileno(ptr noundef %4575) #13
  %4577 = call i32 @isatty(i32 noundef %4576) #13
  %.not550 = icmp eq i32 %4577, 0
  br i1 %.not550, label %4578, label %4579

4578:                                             ; preds = %4574, %4568
  br label %4579

4579:                                             ; preds = %4574, %4578
  %.str.5.sink2149 = phi ptr [ @.str.5, %4578 ], [ @.str.2, %4574 ]
  store i32 %4569, ptr %453, align 4, !tbaa !5
  %4580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4581 = load i32, ptr @test_count, align 4, !tbaa !5
  %4582 = load i32, ptr %399, align 4, !tbaa !5
  %4583 = call ptr @s2n_strerror(i32 noundef %4582, ptr noundef nonnull @.str.4) #13
  %4584 = load i32, ptr %399, align 4, !tbaa !5
  %4585 = call ptr @s2n_strerror_debug(i32 noundef %4584, ptr noundef nonnull @.str.4) #13
  %4586 = load i32, ptr %453, align 4, !tbaa !5
  %4587 = call ptr @strerror(i32 noundef %4586) #13
  %4588 = load i32, ptr %453, align 4, !tbaa !5
  %4589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4580, ptr noundef nonnull %.str.5.sink2149, i32 noundef %4581, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 853, ptr noundef %4583, ptr noundef %4585, ptr noundef %4587, i32 noundef %4588) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4590:                                             ; preds = %4563
  %4591 = add nsw i32 %4564, 2
  store i32 %4591, ptr @test_count, align 4, !tbaa !5
  %4592 = load i32, ptr %3705, align 8, !tbaa !49
  %4593 = load i32, ptr %64, align 4, !tbaa !5
  %4594 = icmp eq i32 %4592, %4593
  br i1 %4594, label %4617, label %4595

4595:                                             ; preds = %4590
  %4596 = load i32, ptr %453, align 4, !tbaa !5
  %4597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4598 = call i32 @s2n_print_stacktrace(ptr noundef %4597) #13
  %4599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4600 = trunc nuw i8 %4599 to i1
  br i1 %4600, label %4601, label %4605

4601:                                             ; preds = %4595
  %4602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4603 = call i32 @fileno(ptr noundef %4602) #13
  %4604 = call i32 @isatty(i32 noundef %4603) #13
  %.not551 = icmp eq i32 %4604, 0
  br i1 %.not551, label %4605, label %4606

4605:                                             ; preds = %4601, %4595
  br label %4606

4606:                                             ; preds = %4601, %4605
  %.str.5.sink2158 = phi ptr [ @.str.5, %4605 ], [ @.str.2, %4601 ]
  store i32 %4596, ptr %453, align 4, !tbaa !5
  %4607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4608 = load i32, ptr @test_count, align 4, !tbaa !5
  %4609 = load i32, ptr %399, align 4, !tbaa !5
  %4610 = call ptr @s2n_strerror(i32 noundef %4609, ptr noundef nonnull @.str.4) #13
  %4611 = load i32, ptr %399, align 4, !tbaa !5
  %4612 = call ptr @s2n_strerror_debug(i32 noundef %4611, ptr noundef nonnull @.str.4) #13
  %4613 = load i32, ptr %453, align 4, !tbaa !5
  %4614 = call ptr @strerror(i32 noundef %4613) #13
  %4615 = load i32, ptr %453, align 4, !tbaa !5
  %4616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4607, ptr noundef nonnull %.str.5.sink2158, i32 noundef %4608, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 854, ptr noundef %4610, ptr noundef %4612, ptr noundef %4614, i32 noundef %4615) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4617:                                             ; preds = %4590
  %.not552 = icmp eq i32 %4592, 0
  br i1 %.not552, label %4647, label %4618

4618:                                             ; preds = %4617
  %4619 = add nsw i32 %4564, 3
  store i32 %4619, ptr @test_count, align 4, !tbaa !5
  %4620 = load ptr, ptr %62, align 8, !tbaa !50
  %4621 = zext i32 %4592 to i64
  %bcmp553 = call i32 @bcmp(ptr %4620, ptr nonnull %3, i64 %4621)
  %4622 = icmp eq i32 %bcmp553, 0
  br i1 %4622, label %4647, label %4623

4623:                                             ; preds = %4618
  %4624 = load i32, ptr %453, align 4, !tbaa !5
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = call i32 @s2n_print_stacktrace(ptr noundef %4625) #13
  %4627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4628 = trunc nuw i8 %4627 to i1
  br i1 %4628, label %4629, label %4633

4629:                                             ; preds = %4623
  %4630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4631 = call i32 @fileno(ptr noundef %4630) #13
  %4632 = call i32 @isatty(i32 noundef %4631) #13
  %.not554 = icmp eq i32 %4632, 0
  br i1 %.not554, label %4633, label %4634

4633:                                             ; preds = %4629, %4623
  br label %4634

4634:                                             ; preds = %4629, %4633
  %.str.5.sink2167 = phi ptr [ @.str.5, %4633 ], [ @.str.2, %4629 ]
  store i32 %4624, ptr %453, align 4, !tbaa !5
  %4635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4636 = load i32, ptr @test_count, align 4, !tbaa !5
  %4637 = load i32, ptr %399, align 4, !tbaa !5
  %4638 = call ptr @s2n_strerror(i32 noundef %4637, ptr noundef nonnull @.str.4) #13
  %4639 = load i32, ptr %399, align 4, !tbaa !5
  %4640 = call ptr @s2n_strerror_debug(i32 noundef %4639, ptr noundef nonnull @.str.4) #13
  %4641 = load i32, ptr %453, align 4, !tbaa !5
  %4642 = call ptr @strerror(i32 noundef %4641) #13
  %4643 = load i32, ptr %453, align 4, !tbaa !5
  %4644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4635, ptr noundef nonnull %.str.5.sink2167, i32 noundef %4636, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 855, ptr noundef %4638, ptr noundef %4640, ptr noundef %4642, i32 noundef %4643) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4645:                                             ; preds = %4423
  %4646 = call i32 @s2n_free(ptr noundef nonnull %62) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #13
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %61) #13
  br label %.thread697

4647:                                             ; preds = %4617, %4618
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #13
  %4648 = call i32 @s2n_client_hello_free(ptr noundef nonnull %63) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #13
  %4649 = call i32 @s2n_free(ptr noundef nonnull %62) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #13
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %61) #13
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %66) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(240) %66, ptr noundef nonnull align 16 dereferenceable(240) @__const.main.raw_client_hello.89, i64 240, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %67) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %67, i8 0, i64 24, i1 false)
  %4650 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %67, ptr noundef nonnull @.str.91) #13
  %4651 = call zeroext i1 @s2n_result_is_ok(i32 %4650)
  br i1 %4651, label %4652, label %4869

4652:                                             ; preds = %4647
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #13
  store ptr null, ptr %68, align 8, !tbaa !9
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = add nsw i32 %4653, 1
  store i32 %4654, ptr @test_count, align 4, !tbaa !5
  %4655 = load ptr, ptr %43, align 8, !tbaa !9
  %4656 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %68, ptr noundef %4655, ptr noundef nonnull %66, i32 noundef 240, i32 noundef %3711)
  %4657 = call zeroext i1 @s2n_result_is_ok(i32 %4656)
  br i1 %4657, label %4680, label %4658

4658:                                             ; preds = %4652
  %4659 = load i32, ptr %453, align 4, !tbaa !5
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = call i32 @s2n_print_stacktrace(ptr noundef %4660) #13
  %4662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4663 = trunc nuw i8 %4662 to i1
  br i1 %4663, label %4664, label %4668

4664:                                             ; preds = %4658
  %4665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4666 = call i32 @fileno(ptr noundef %4665) #13
  %4667 = call i32 @isatty(i32 noundef %4666) #13
  %.not555 = icmp eq i32 %4667, 0
  br i1 %.not555, label %4668, label %4669

4668:                                             ; preds = %4664, %4658
  br label %4669

4669:                                             ; preds = %4664, %4668
  %.str.5.sink2176 = phi ptr [ @.str.5, %4668 ], [ @.str.2, %4664 ]
  store i32 %4659, ptr %453, align 4, !tbaa !5
  %4670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = load i32, ptr %399, align 4, !tbaa !5
  %4673 = call ptr @s2n_strerror(i32 noundef %4672, ptr noundef nonnull @.str.4) #13
  %4674 = load i32, ptr %399, align 4, !tbaa !5
  %4675 = call ptr @s2n_strerror_debug(i32 noundef %4674, ptr noundef nonnull @.str.4) #13
  %4676 = load i32, ptr %453, align 4, !tbaa !5
  %4677 = call ptr @strerror(i32 noundef %4676) #13
  %4678 = load i32, ptr %453, align 4, !tbaa !5
  %4679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4670, ptr noundef nonnull %.str.5.sink2176, i32 noundef %4671, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 895, ptr noundef %4673, ptr noundef %4675, ptr noundef %4677, i32 noundef %4678) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4680:                                             ; preds = %4652
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %69) #13
  store i32 0, ptr %69, align 4, !tbaa !5
  %4681 = load i32, ptr @test_count, align 4, !tbaa !5
  %4682 = add nsw i32 %4681, 1
  store i32 %4682, ptr @test_count, align 4, !tbaa !5
  %4683 = load ptr, ptr %68, align 8, !tbaa !9
  %4684 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4683, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %69) #13
  %4685 = icmp eq i32 %4684, -1
  br i1 %4685, label %4686, label %4708

4686:                                             ; preds = %4680
  %4687 = load i32, ptr %453, align 4, !tbaa !5
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = call i32 @s2n_print_stacktrace(ptr noundef %4688) #13
  %4690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4691 = trunc nuw i8 %4690 to i1
  br i1 %4691, label %4692, label %4696

4692:                                             ; preds = %4686
  %4693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4694 = call i32 @fileno(ptr noundef %4693) #13
  %4695 = call i32 @isatty(i32 noundef %4694) #13
  %.not581 = icmp eq i32 %4695, 0
  br i1 %.not581, label %4696, label %4697

4696:                                             ; preds = %4692, %4686
  br label %4697

4697:                                             ; preds = %4692, %4696
  %.str.5.sink2185 = phi ptr [ @.str.5, %4696 ], [ @.str.2, %4692 ]
  store i32 %4687, ptr %453, align 4, !tbaa !5
  %4698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4699 = load i32, ptr @test_count, align 4, !tbaa !5
  %4700 = load i32, ptr %399, align 4, !tbaa !5
  %4701 = call ptr @s2n_strerror(i32 noundef %4700, ptr noundef nonnull @.str.4) #13
  %4702 = load i32, ptr %399, align 4, !tbaa !5
  %4703 = call ptr @s2n_strerror_debug(i32 noundef %4702, ptr noundef nonnull @.str.4) #13
  %4704 = load i32, ptr %453, align 4, !tbaa !5
  %4705 = call ptr @strerror(i32 noundef %4704) #13
  %4706 = load i32, ptr %453, align 4, !tbaa !5
  %4707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4698, ptr noundef nonnull %.str.5.sink2185, i32 noundef %4699, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 899, ptr noundef %4701, ptr noundef %4703, ptr noundef %4705, i32 noundef %4706) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4708:                                             ; preds = %4680
  %4709 = load i32, ptr @test_count, align 4, !tbaa !5
  %4710 = add nsw i32 %4709, 1
  store i32 %4710, ptr @test_count, align 4, !tbaa !5
  %4711 = load i32, ptr %69, align 4, !tbaa !5
  %4712 = icmp eq i32 %4711, 123
  br i1 %4712, label %4735, label %4713

4713:                                             ; preds = %4708
  %4714 = load i32, ptr %453, align 4, !tbaa !5
  %4715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4716 = call i32 @s2n_print_stacktrace(ptr noundef %4715) #13
  %4717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4718 = trunc nuw i8 %4717 to i1
  br i1 %4718, label %4719, label %4723

4719:                                             ; preds = %4713
  %4720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4721 = call i32 @fileno(ptr noundef %4720) #13
  %4722 = call i32 @isatty(i32 noundef %4721) #13
  %.not556 = icmp eq i32 %4722, 0
  br i1 %.not556, label %4723, label %4724

4723:                                             ; preds = %4719, %4713
  br label %4724

4724:                                             ; preds = %4719, %4723
  %.str.5.sink2194 = phi ptr [ @.str.5, %4723 ], [ @.str.2, %4719 ]
  store i32 %4714, ptr %453, align 4, !tbaa !5
  %4725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4726 = load i32, ptr @test_count, align 4, !tbaa !5
  %4727 = load i32, ptr %399, align 4, !tbaa !5
  %4728 = call ptr @s2n_strerror(i32 noundef %4727, ptr noundef nonnull @.str.4) #13
  %4729 = load i32, ptr %399, align 4, !tbaa !5
  %4730 = call ptr @s2n_strerror_debug(i32 noundef %4729, ptr noundef nonnull @.str.4) #13
  %4731 = load i32, ptr %453, align 4, !tbaa !5
  %4732 = call ptr @strerror(i32 noundef %4731) #13
  %4733 = load i32, ptr %453, align 4, !tbaa !5
  %4734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4725, ptr noundef nonnull %.str.5.sink2194, i32 noundef %4726, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 900, ptr noundef %4728, ptr noundef %4730, ptr noundef %4732, i32 noundef %4733) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4735:                                             ; preds = %4708
  %4736 = add nsw i32 %4709, 2
  store i32 %4736, ptr @test_count, align 4, !tbaa !5
  %bcmp557 = call i32 @bcmp(ptr noundef nonnull dereferenceable(123) @__const.main.expected_ja3.90, ptr noundef nonnull dereferenceable(123) %3, i64 123)
  %4737 = icmp eq i32 %bcmp557, 0
  br i1 %4737, label %4760, label %4738

4738:                                             ; preds = %4735
  %4739 = load i32, ptr %453, align 4, !tbaa !5
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = call i32 @s2n_print_stacktrace(ptr noundef %4740) #13
  %4742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4743 = trunc nuw i8 %4742 to i1
  br i1 %4743, label %4744, label %4748

4744:                                             ; preds = %4738
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @fileno(ptr noundef %4745) #13
  %4747 = call i32 @isatty(i32 noundef %4746) #13
  %.not558 = icmp eq i32 %4747, 0
  br i1 %.not558, label %4748, label %4749

4748:                                             ; preds = %4744, %4738
  br label %4749

4749:                                             ; preds = %4744, %4748
  %.str.5.sink2203 = phi ptr [ @.str.5, %4748 ], [ @.str.2, %4744 ]
  store i32 %4739, ptr %453, align 4, !tbaa !5
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %4752 = load i32, ptr %399, align 4, !tbaa !5
  %4753 = call ptr @s2n_strerror(i32 noundef %4752, ptr noundef nonnull @.str.4) #13
  %4754 = load i32, ptr %399, align 4, !tbaa !5
  %4755 = call ptr @s2n_strerror_debug(i32 noundef %4754, ptr noundef nonnull @.str.4) #13
  %4756 = load i32, ptr %453, align 4, !tbaa !5
  %4757 = call ptr @strerror(i32 noundef %4756) #13
  %4758 = load i32, ptr %453, align 4, !tbaa !5
  %4759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4750, ptr noundef nonnull %.str.5.sink2203, i32 noundef %4751, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 901, ptr noundef %4753, ptr noundef %4755, ptr noundef %4757, i32 noundef %4758) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4760:                                             ; preds = %4735
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #13
  store i32 0, ptr %70, align 4, !tbaa !5
  %4761 = add nsw i32 %4709, 3
  store i32 %4761, ptr @test_count, align 4, !tbaa !5
  %4762 = load ptr, ptr %68, align 8, !tbaa !9
  %4763 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %4762, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %69, ptr noundef nonnull %70) #13
  %4764 = icmp eq i32 %4763, -1
  br i1 %4764, label %4765, label %4787

4765:                                             ; preds = %4760
  %4766 = load i32, ptr %453, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = call i32 @s2n_print_stacktrace(ptr noundef %4767) #13
  %4769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4770 = trunc nuw i8 %4769 to i1
  br i1 %4770, label %4771, label %4775

4771:                                             ; preds = %4765
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @fileno(ptr noundef %4772) #13
  %4774 = call i32 @isatty(i32 noundef %4773) #13
  %.not580 = icmp eq i32 %4774, 0
  br i1 %.not580, label %4775, label %4776

4775:                                             ; preds = %4771, %4765
  br label %4776

4776:                                             ; preds = %4771, %4775
  %.str.5.sink2212 = phi ptr [ @.str.5, %4775 ], [ @.str.2, %4771 ]
  store i32 %4766, ptr %453, align 4, !tbaa !5
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = load i32, ptr @test_count, align 4, !tbaa !5
  %4779 = load i32, ptr %399, align 4, !tbaa !5
  %4780 = call ptr @s2n_strerror(i32 noundef %4779, ptr noundef nonnull @.str.4) #13
  %4781 = load i32, ptr %399, align 4, !tbaa !5
  %4782 = call ptr @s2n_strerror_debug(i32 noundef %4781, ptr noundef nonnull @.str.4) #13
  %4783 = load i32, ptr %453, align 4, !tbaa !5
  %4784 = call ptr @strerror(i32 noundef %4783) #13
  %4785 = load i32, ptr %453, align 4, !tbaa !5
  %4786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4777, ptr noundef nonnull %.str.5.sink2212, i32 noundef %4778, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 906, ptr noundef %4780, ptr noundef %4782, ptr noundef %4784, i32 noundef %4785) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4787:                                             ; preds = %4760
  %4788 = load i32, ptr @test_count, align 4, !tbaa !5
  %4789 = add nsw i32 %4788, 1
  store i32 %4789, ptr @test_count, align 4, !tbaa !5
  %4790 = load i32, ptr %70, align 4, !tbaa !5
  %4791 = icmp eq i32 %4790, 123
  br i1 %4791, label %4814, label %4792

4792:                                             ; preds = %4787
  %4793 = load i32, ptr %453, align 4, !tbaa !5
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = call i32 @s2n_print_stacktrace(ptr noundef %4794) #13
  %4796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4797 = trunc nuw i8 %4796 to i1
  br i1 %4797, label %4798, label %4802

4798:                                             ; preds = %4792
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @fileno(ptr noundef %4799) #13
  %4801 = call i32 @isatty(i32 noundef %4800) #13
  %.not559 = icmp eq i32 %4801, 0
  br i1 %.not559, label %4802, label %4803

4802:                                             ; preds = %4798, %4792
  br label %4803

4803:                                             ; preds = %4798, %4802
  %.str.5.sink2221 = phi ptr [ @.str.5, %4802 ], [ @.str.2, %4798 ]
  store i32 %4793, ptr %453, align 4, !tbaa !5
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = load i32, ptr @test_count, align 4, !tbaa !5
  %4806 = load i32, ptr %399, align 4, !tbaa !5
  %4807 = call ptr @s2n_strerror(i32 noundef %4806, ptr noundef nonnull @.str.4) #13
  %4808 = load i32, ptr %399, align 4, !tbaa !5
  %4809 = call ptr @s2n_strerror_debug(i32 noundef %4808, ptr noundef nonnull @.str.4) #13
  %4810 = load i32, ptr %453, align 4, !tbaa !5
  %4811 = call ptr @strerror(i32 noundef %4810) #13
  %4812 = load i32, ptr %453, align 4, !tbaa !5
  %4813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4804, ptr noundef nonnull %.str.5.sink2221, i32 noundef %4805, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 907, ptr noundef %4807, ptr noundef %4809, ptr noundef %4811, i32 noundef %4812) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4814:                                             ; preds = %4787
  %4815 = add nsw i32 %4788, 2
  store i32 %4815, ptr @test_count, align 4, !tbaa !5
  %4816 = load i32, ptr %3706, align 8, !tbaa !49
  %4817 = load i32, ptr %69, align 4, !tbaa !5
  %4818 = icmp eq i32 %4816, %4817
  br i1 %4818, label %4841, label %4819

4819:                                             ; preds = %4814
  %4820 = load i32, ptr %453, align 4, !tbaa !5
  %4821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4822 = call i32 @s2n_print_stacktrace(ptr noundef %4821) #13
  %4823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4824 = trunc nuw i8 %4823 to i1
  br i1 %4824, label %4825, label %4829

4825:                                             ; preds = %4819
  %4826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4827 = call i32 @fileno(ptr noundef %4826) #13
  %4828 = call i32 @isatty(i32 noundef %4827) #13
  %.not560 = icmp eq i32 %4828, 0
  br i1 %.not560, label %4829, label %4830

4829:                                             ; preds = %4825, %4819
  br label %4830

4830:                                             ; preds = %4825, %4829
  %.str.5.sink2230 = phi ptr [ @.str.5, %4829 ], [ @.str.2, %4825 ]
  store i32 %4820, ptr %453, align 4, !tbaa !5
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = load i32, ptr @test_count, align 4, !tbaa !5
  %4833 = load i32, ptr %399, align 4, !tbaa !5
  %4834 = call ptr @s2n_strerror(i32 noundef %4833, ptr noundef nonnull @.str.4) #13
  %4835 = load i32, ptr %399, align 4, !tbaa !5
  %4836 = call ptr @s2n_strerror_debug(i32 noundef %4835, ptr noundef nonnull @.str.4) #13
  %4837 = load i32, ptr %453, align 4, !tbaa !5
  %4838 = call ptr @strerror(i32 noundef %4837) #13
  %4839 = load i32, ptr %453, align 4, !tbaa !5
  %4840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4831, ptr noundef nonnull %.str.5.sink2230, i32 noundef %4832, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 908, ptr noundef %4834, ptr noundef %4836, ptr noundef %4838, i32 noundef %4839) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4841:                                             ; preds = %4814
  %.not561 = icmp eq i32 %4816, 0
  br i1 %.not561, label %4871, label %4842

4842:                                             ; preds = %4841
  %4843 = add nsw i32 %4788, 3
  store i32 %4843, ptr @test_count, align 4, !tbaa !5
  %4844 = load ptr, ptr %67, align 8, !tbaa !50
  %4845 = zext i32 %4816 to i64
  %bcmp562 = call i32 @bcmp(ptr %4844, ptr nonnull %3, i64 %4845)
  %4846 = icmp eq i32 %bcmp562, 0
  br i1 %4846, label %4871, label %4847

4847:                                             ; preds = %4842
  %4848 = load i32, ptr %453, align 4, !tbaa !5
  %4849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4850 = call i32 @s2n_print_stacktrace(ptr noundef %4849) #13
  %4851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4852 = trunc nuw i8 %4851 to i1
  br i1 %4852, label %4853, label %4857

4853:                                             ; preds = %4847
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = call i32 @fileno(ptr noundef %4854) #13
  %4856 = call i32 @isatty(i32 noundef %4855) #13
  %.not563 = icmp eq i32 %4856, 0
  br i1 %.not563, label %4857, label %4858

4857:                                             ; preds = %4853, %4847
  br label %4858

4858:                                             ; preds = %4853, %4857
  %.str.5.sink2239 = phi ptr [ @.str.5, %4857 ], [ @.str.2, %4853 ]
  store i32 %4848, ptr %453, align 4, !tbaa !5
  %4859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4860 = load i32, ptr @test_count, align 4, !tbaa !5
  %4861 = load i32, ptr %399, align 4, !tbaa !5
  %4862 = call ptr @s2n_strerror(i32 noundef %4861, ptr noundef nonnull @.str.4) #13
  %4863 = load i32, ptr %399, align 4, !tbaa !5
  %4864 = call ptr @s2n_strerror_debug(i32 noundef %4863, ptr noundef nonnull @.str.4) #13
  %4865 = load i32, ptr %453, align 4, !tbaa !5
  %4866 = call ptr @strerror(i32 noundef %4865) #13
  %4867 = load i32, ptr %453, align 4, !tbaa !5
  %4868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4859, ptr noundef nonnull %.str.5.sink2239, i32 noundef %4860, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 909, ptr noundef %4862, ptr noundef %4864, ptr noundef %4866, i32 noundef %4867) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4869:                                             ; preds = %4647
  %4870 = call i32 @s2n_free(ptr noundef nonnull %67) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %67) #13
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %66) #13
  br label %.thread697

4871:                                             ; preds = %4841, %4842
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #13
  %4872 = call i32 @s2n_client_hello_free(ptr noundef nonnull %68) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #13
  %4873 = call i32 @s2n_free(ptr noundef nonnull %67) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %67) #13
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %66) #13
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %71) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(512) %71, ptr noundef nonnull align 16 dereferenceable(512) @__const.main.raw_client_hello.92, i64 512, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %72) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %72, i8 0, i64 24, i1 false)
  %4874 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %72, ptr noundef nonnull @.str.94) #13
  %4875 = call zeroext i1 @s2n_result_is_ok(i32 %4874)
  br i1 %4875, label %4876, label %5096

4876:                                             ; preds = %4871
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #13
  store ptr null, ptr %73, align 8, !tbaa !9
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = add nsw i32 %4877, 1
  store i32 %4878, ptr @test_count, align 4, !tbaa !5
  %4879 = load ptr, ptr %43, align 8, !tbaa !9
  %4880 = call i32 @s2n_client_hello_from_source(ptr noundef nonnull %73, ptr noundef %4879, ptr noundef nonnull %71, i32 noundef 512, i32 noundef %3711)
  %4881 = call zeroext i1 @s2n_result_is_ok(i32 %4880)
  br i1 %4881, label %4904, label %4882

4882:                                             ; preds = %4876
  %4883 = load i32, ptr %453, align 4, !tbaa !5
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = call i32 @s2n_print_stacktrace(ptr noundef %4884) #13
  %4886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4887 = trunc nuw i8 %4886 to i1
  br i1 %4887, label %4888, label %4892

4888:                                             ; preds = %4882
  %4889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4890 = call i32 @fileno(ptr noundef %4889) #13
  %4891 = call i32 @isatty(i32 noundef %4890) #13
  %.not564 = icmp eq i32 %4891, 0
  br i1 %.not564, label %4892, label %4893

4892:                                             ; preds = %4888, %4882
  br label %4893

4893:                                             ; preds = %4888, %4892
  %.str.5.sink2248 = phi ptr [ @.str.5, %4892 ], [ @.str.2, %4888 ]
  store i32 %4883, ptr %453, align 4, !tbaa !5
  %4894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = load i32, ptr %399, align 4, !tbaa !5
  %4897 = call ptr @s2n_strerror(i32 noundef %4896, ptr noundef nonnull @.str.4) #13
  %4898 = load i32, ptr %399, align 4, !tbaa !5
  %4899 = call ptr @s2n_strerror_debug(i32 noundef %4898, ptr noundef nonnull @.str.4) #13
  %4900 = load i32, ptr %453, align 4, !tbaa !5
  %4901 = call ptr @strerror(i32 noundef %4900) #13
  %4902 = load i32, ptr %453, align 4, !tbaa !5
  %4903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4894, ptr noundef nonnull %.str.5.sink2248, i32 noundef %4895, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 983, ptr noundef %4897, ptr noundef %4899, ptr noundef %4901, i32 noundef %4902) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4904:                                             ; preds = %4876
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %74) #13
  store i32 0, ptr %74, align 4, !tbaa !5
  %4905 = load i32, ptr @test_count, align 4, !tbaa !5
  %4906 = add nsw i32 %4905, 1
  store i32 %4906, ptr @test_count, align 4, !tbaa !5
  %4907 = load ptr, ptr %73, align 8, !tbaa !9
  %4908 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4907, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %74) #13
  %4909 = icmp eq i32 %4908, -1
  br i1 %4909, label %4910, label %4932

4910:                                             ; preds = %4904
  %4911 = load i32, ptr %453, align 4, !tbaa !5
  %4912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4913 = call i32 @s2n_print_stacktrace(ptr noundef %4912) #13
  %4914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4915 = trunc nuw i8 %4914 to i1
  br i1 %4915, label %4916, label %4920

4916:                                             ; preds = %4910
  %4917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4918 = call i32 @fileno(ptr noundef %4917) #13
  %4919 = call i32 @isatty(i32 noundef %4918) #13
  %.not579 = icmp eq i32 %4919, 0
  br i1 %.not579, label %4920, label %4921

4920:                                             ; preds = %4916, %4910
  br label %4921

4921:                                             ; preds = %4916, %4920
  %.str.5.sink2257 = phi ptr [ @.str.5, %4920 ], [ @.str.2, %4916 ]
  store i32 %4911, ptr %453, align 4, !tbaa !5
  %4922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4923 = load i32, ptr @test_count, align 4, !tbaa !5
  %4924 = load i32, ptr %399, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror(i32 noundef %4924, ptr noundef nonnull @.str.4) #13
  %4926 = load i32, ptr %399, align 4, !tbaa !5
  %4927 = call ptr @s2n_strerror_debug(i32 noundef %4926, ptr noundef nonnull @.str.4) #13
  %4928 = load i32, ptr %453, align 4, !tbaa !5
  %4929 = call ptr @strerror(i32 noundef %4928) #13
  %4930 = load i32, ptr %453, align 4, !tbaa !5
  %4931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4922, ptr noundef nonnull %.str.5.sink2257, i32 noundef %4923, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 987, ptr noundef %4925, ptr noundef %4927, ptr noundef %4929, i32 noundef %4930) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4932:                                             ; preds = %4904
  %4933 = load i32, ptr @test_count, align 4, !tbaa !5
  %4934 = add nsw i32 %4933, 1
  store i32 %4934, ptr @test_count, align 4, !tbaa !5
  %4935 = load i32, ptr %74, align 4, !tbaa !5
  %4936 = icmp eq i32 %4935, 441
  br i1 %4936, label %4959, label %4937

4937:                                             ; preds = %4932
  %4938 = load i32, ptr %453, align 4, !tbaa !5
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = call i32 @s2n_print_stacktrace(ptr noundef %4939) #13
  %4941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4942 = trunc nuw i8 %4941 to i1
  br i1 %4942, label %4943, label %4947

4943:                                             ; preds = %4937
  %4944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4945 = call i32 @fileno(ptr noundef %4944) #13
  %4946 = call i32 @isatty(i32 noundef %4945) #13
  %.not565 = icmp eq i32 %4946, 0
  br i1 %.not565, label %4947, label %4948

4947:                                             ; preds = %4943, %4937
  br label %4948

4948:                                             ; preds = %4943, %4947
  %.str.5.sink2266 = phi ptr [ @.str.5, %4947 ], [ @.str.2, %4943 ]
  store i32 %4938, ptr %453, align 4, !tbaa !5
  %4949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4950 = load i32, ptr @test_count, align 4, !tbaa !5
  %4951 = load i32, ptr %399, align 4, !tbaa !5
  %4952 = call ptr @s2n_strerror(i32 noundef %4951, ptr noundef nonnull @.str.4) #13
  %4953 = load i32, ptr %399, align 4, !tbaa !5
  %4954 = call ptr @s2n_strerror_debug(i32 noundef %4953, ptr noundef nonnull @.str.4) #13
  %4955 = load i32, ptr %453, align 4, !tbaa !5
  %4956 = call ptr @strerror(i32 noundef %4955) #13
  %4957 = load i32, ptr %453, align 4, !tbaa !5
  %4958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4949, ptr noundef nonnull %.str.5.sink2266, i32 noundef %4950, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 988, ptr noundef %4952, ptr noundef %4954, ptr noundef %4956, i32 noundef %4957) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4959:                                             ; preds = %4932
  %4960 = add nsw i32 %4933, 2
  store i32 %4960, ptr @test_count, align 4, !tbaa !5
  %bcmp566 = call i32 @bcmp(ptr noundef nonnull dereferenceable(441) @__const.main.expected_ja3.93, ptr noundef nonnull dereferenceable(441) %3, i64 441)
  %4961 = icmp eq i32 %bcmp566, 0
  br i1 %4961, label %4984, label %4962

4962:                                             ; preds = %4959
  %4963 = load i32, ptr %453, align 4, !tbaa !5
  %4964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4965 = call i32 @s2n_print_stacktrace(ptr noundef %4964) #13
  %4966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4967 = trunc nuw i8 %4966 to i1
  br i1 %4967, label %4968, label %4972

4968:                                             ; preds = %4962
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = call i32 @fileno(ptr noundef %4969) #13
  %4971 = call i32 @isatty(i32 noundef %4970) #13
  %.not567 = icmp eq i32 %4971, 0
  br i1 %.not567, label %4972, label %4973

4972:                                             ; preds = %4968, %4962
  br label %4973

4973:                                             ; preds = %4968, %4972
  %.str.5.sink2275 = phi ptr [ @.str.5, %4972 ], [ @.str.2, %4968 ]
  store i32 %4963, ptr %453, align 4, !tbaa !5
  %4974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4975 = load i32, ptr @test_count, align 4, !tbaa !5
  %4976 = load i32, ptr %399, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror(i32 noundef %4976, ptr noundef nonnull @.str.4) #13
  %4978 = load i32, ptr %399, align 4, !tbaa !5
  %4979 = call ptr @s2n_strerror_debug(i32 noundef %4978, ptr noundef nonnull @.str.4) #13
  %4980 = load i32, ptr %453, align 4, !tbaa !5
  %4981 = call ptr @strerror(i32 noundef %4980) #13
  %4982 = load i32, ptr %453, align 4, !tbaa !5
  %4983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4974, ptr noundef nonnull %.str.5.sink2275, i32 noundef %4975, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 989, ptr noundef %4977, ptr noundef %4979, ptr noundef %4981, i32 noundef %4982) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4984:                                             ; preds = %4959
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %75) #13
  store i32 0, ptr %75, align 4, !tbaa !5
  %4985 = add nsw i32 %4933, 3
  store i32 %4985, ptr @test_count, align 4, !tbaa !5
  %4986 = load ptr, ptr %73, align 8, !tbaa !9
  %4987 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %4986, i32 noundef 0, i32 noundef 500, ptr noundef nonnull %3, ptr noundef nonnull %74, ptr noundef nonnull %75) #13
  %4988 = icmp eq i32 %4987, -1
  br i1 %4988, label %4989, label %5011

4989:                                             ; preds = %4984
  %4990 = load i32, ptr %453, align 4, !tbaa !5
  %4991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4992 = call i32 @s2n_print_stacktrace(ptr noundef %4991) #13
  %4993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4994 = trunc nuw i8 %4993 to i1
  br i1 %4994, label %4995, label %4999

4995:                                             ; preds = %4989
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = call i32 @fileno(ptr noundef %4996) #13
  %4998 = call i32 @isatty(i32 noundef %4997) #13
  %.not578 = icmp eq i32 %4998, 0
  br i1 %.not578, label %4999, label %5000

4999:                                             ; preds = %4995, %4989
  br label %5000

5000:                                             ; preds = %4995, %4999
  %.str.5.sink2284 = phi ptr [ @.str.5, %4999 ], [ @.str.2, %4995 ]
  store i32 %4990, ptr %453, align 4, !tbaa !5
  %5001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5002 = load i32, ptr @test_count, align 4, !tbaa !5
  %5003 = load i32, ptr %399, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror(i32 noundef %5003, ptr noundef nonnull @.str.4) #13
  %5005 = load i32, ptr %399, align 4, !tbaa !5
  %5006 = call ptr @s2n_strerror_debug(i32 noundef %5005, ptr noundef nonnull @.str.4) #13
  %5007 = load i32, ptr %453, align 4, !tbaa !5
  %5008 = call ptr @strerror(i32 noundef %5007) #13
  %5009 = load i32, ptr %453, align 4, !tbaa !5
  %5010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5001, ptr noundef nonnull %.str.5.sink2284, i32 noundef %5002, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 994, ptr noundef %5004, ptr noundef %5006, ptr noundef %5008, i32 noundef %5009) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5011:                                             ; preds = %4984
  %5012 = load i32, ptr @test_count, align 4, !tbaa !5
  %5013 = add nsw i32 %5012, 1
  store i32 %5013, ptr @test_count, align 4, !tbaa !5
  %5014 = load i32, ptr %75, align 4, !tbaa !5
  %5015 = icmp eq i32 %5014, 441
  br i1 %5015, label %5038, label %5016

5016:                                             ; preds = %5011
  %5017 = load i32, ptr %453, align 4, !tbaa !5
  %5018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5019 = call i32 @s2n_print_stacktrace(ptr noundef %5018) #13
  %5020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5021 = trunc nuw i8 %5020 to i1
  br i1 %5021, label %5022, label %5026

5022:                                             ; preds = %5016
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = call i32 @fileno(ptr noundef %5023) #13
  %5025 = call i32 @isatty(i32 noundef %5024) #13
  %.not568 = icmp eq i32 %5025, 0
  br i1 %.not568, label %5026, label %5027

5026:                                             ; preds = %5022, %5016
  br label %5027

5027:                                             ; preds = %5022, %5026
  %.str.5.sink2293 = phi ptr [ @.str.5, %5026 ], [ @.str.2, %5022 ]
  store i32 %5017, ptr %453, align 4, !tbaa !5
  %5028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5029 = load i32, ptr @test_count, align 4, !tbaa !5
  %5030 = load i32, ptr %399, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror(i32 noundef %5030, ptr noundef nonnull @.str.4) #13
  %5032 = load i32, ptr %399, align 4, !tbaa !5
  %5033 = call ptr @s2n_strerror_debug(i32 noundef %5032, ptr noundef nonnull @.str.4) #13
  %5034 = load i32, ptr %453, align 4, !tbaa !5
  %5035 = call ptr @strerror(i32 noundef %5034) #13
  %5036 = load i32, ptr %453, align 4, !tbaa !5
  %5037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5028, ptr noundef nonnull %.str.5.sink2293, i32 noundef %5029, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 995, ptr noundef %5031, ptr noundef %5033, ptr noundef %5035, i32 noundef %5036) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5038:                                             ; preds = %5011
  %5039 = add nsw i32 %5012, 2
  store i32 %5039, ptr @test_count, align 4, !tbaa !5
  %5040 = load i32, ptr %3707, align 8, !tbaa !49
  %5041 = load i32, ptr %74, align 4, !tbaa !5
  %5042 = icmp eq i32 %5040, %5041
  br i1 %5042, label %5065, label %5043

5043:                                             ; preds = %5038
  %5044 = load i32, ptr %453, align 4, !tbaa !5
  %5045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5046 = call i32 @s2n_print_stacktrace(ptr noundef %5045) #13
  %5047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5048 = trunc nuw i8 %5047 to i1
  br i1 %5048, label %5049, label %5053

5049:                                             ; preds = %5043
  %5050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5051 = call i32 @fileno(ptr noundef %5050) #13
  %5052 = call i32 @isatty(i32 noundef %5051) #13
  %.not569 = icmp eq i32 %5052, 0
  br i1 %.not569, label %5053, label %5054

5053:                                             ; preds = %5049, %5043
  br label %5054

5054:                                             ; preds = %5049, %5053
  %.str.5.sink2302 = phi ptr [ @.str.5, %5053 ], [ @.str.2, %5049 ]
  store i32 %5044, ptr %453, align 4, !tbaa !5
  %5055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5056 = load i32, ptr @test_count, align 4, !tbaa !5
  %5057 = load i32, ptr %399, align 4, !tbaa !5
  %5058 = call ptr @s2n_strerror(i32 noundef %5057, ptr noundef nonnull @.str.4) #13
  %5059 = load i32, ptr %399, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror_debug(i32 noundef %5059, ptr noundef nonnull @.str.4) #13
  %5061 = load i32, ptr %453, align 4, !tbaa !5
  %5062 = call ptr @strerror(i32 noundef %5061) #13
  %5063 = load i32, ptr %453, align 4, !tbaa !5
  %5064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5055, ptr noundef nonnull %.str.5.sink2302, i32 noundef %5056, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 996, ptr noundef %5058, ptr noundef %5060, ptr noundef %5062, i32 noundef %5063) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5065:                                             ; preds = %5038
  %.not570 = icmp eq i32 %5040, 0
  br i1 %.not570, label %5093, label %5066

5066:                                             ; preds = %5065
  %5067 = add nsw i32 %5012, 3
  store i32 %5067, ptr @test_count, align 4, !tbaa !5
  %5068 = load ptr, ptr %72, align 8, !tbaa !50
  %5069 = zext i32 %5040 to i64
  %bcmp571 = call i32 @bcmp(ptr %5068, ptr nonnull %3, i64 %5069)
  %5070 = icmp eq i32 %bcmp571, 0
  br i1 %5070, label %5093, label %5071

5071:                                             ; preds = %5066
  %5072 = load i32, ptr %453, align 4, !tbaa !5
  %5073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5074 = call i32 @s2n_print_stacktrace(ptr noundef %5073) #13
  %5075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5076 = trunc nuw i8 %5075 to i1
  br i1 %5076, label %5077, label %5081

5077:                                             ; preds = %5071
  %5078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5079 = call i32 @fileno(ptr noundef %5078) #13
  %5080 = call i32 @isatty(i32 noundef %5079) #13
  %.not572 = icmp eq i32 %5080, 0
  br i1 %.not572, label %5081, label %5082

5081:                                             ; preds = %5077, %5071
  br label %5082

5082:                                             ; preds = %5077, %5081
  %.str.5.sink2311 = phi ptr [ @.str.5, %5081 ], [ @.str.2, %5077 ]
  store i32 %5072, ptr %453, align 4, !tbaa !5
  %5083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5084 = load i32, ptr @test_count, align 4, !tbaa !5
  %5085 = load i32, ptr %399, align 4, !tbaa !5
  %5086 = call ptr @s2n_strerror(i32 noundef %5085, ptr noundef nonnull @.str.4) #13
  %5087 = load i32, ptr %399, align 4, !tbaa !5
  %5088 = call ptr @s2n_strerror_debug(i32 noundef %5087, ptr noundef nonnull @.str.4) #13
  %5089 = load i32, ptr %453, align 4, !tbaa !5
  %5090 = call ptr @strerror(i32 noundef %5089) #13
  %5091 = load i32, ptr %453, align 4, !tbaa !5
  %5092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5083, ptr noundef nonnull %.str.5.sink2311, i32 noundef %5084, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 997, ptr noundef %5086, ptr noundef %5088, ptr noundef %5090, i32 noundef %5091) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5093:                                             ; preds = %5066, %5065
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %75) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %74) #13
  %5094 = call i32 @s2n_client_hello_free(ptr noundef nonnull %73) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #13
  br label %5096

.thread697:                                       ; preds = %4869, %4645, %4421
  %5095 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %43) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #13
  br label %.thread702

5096:                                             ; preds = %5093, %4871
  %.4 = phi i32 [ %.0710, %5093 ], [ -1, %4871 ]
  %5097 = call i32 @s2n_free(ptr noundef nonnull %72) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %72) #13
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %71) #13
  %5098 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %43) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #13
  br i1 %4875, label %3708, label %.thread702

5099:                                             ; preds = %3708
  %5100 = call i32 @s2n_cleanup() #13
  %5101 = icmp eq i32 %5100, -1
  br i1 %5101, label %5102, label %5124

5102:                                             ; preds = %5099
  %5103 = load i32, ptr %453, align 4, !tbaa !5
  %5104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5105 = call i32 @s2n_print_stacktrace(ptr noundef %5104) #13
  %5106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5107 = trunc nuw i8 %5106 to i1
  br i1 %5107, label %5108, label %5112

5108:                                             ; preds = %5102
  %5109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5110 = call i32 @fileno(ptr noundef %5109) #13
  %5111 = call i32 @isatty(i32 noundef %5110) #13
  %.not577 = icmp eq i32 %5111, 0
  br i1 %.not577, label %5112, label %5113

5112:                                             ; preds = %5108, %5102
  br label %5113

5113:                                             ; preds = %5108, %5112
  %.str.5.sink2320 = phi ptr [ @.str.5, %5112 ], [ @.str.2, %5108 ]
  store i32 %5103, ptr %453, align 4, !tbaa !5
  %5114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5115 = load i32, ptr @test_count, align 4, !tbaa !5
  %5116 = load i32, ptr %399, align 4, !tbaa !5
  %5117 = call ptr @s2n_strerror(i32 noundef %5116, ptr noundef nonnull @.str.4) #13
  %5118 = load i32, ptr %399, align 4, !tbaa !5
  %5119 = call ptr @s2n_strerror_debug(i32 noundef %5118, ptr noundef nonnull @.str.4) #13
  %5120 = load i32, ptr %453, align 4, !tbaa !5
  %5121 = call ptr @strerror(i32 noundef %5120) #13
  %5122 = load i32, ptr %453, align 4, !tbaa !5
  %5123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5114, ptr noundef nonnull %.str.5.sink2320, i32 noundef %5115, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 1001, ptr noundef %5117, ptr noundef %5119, ptr noundef %5121, i32 noundef %5122) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5124:                                             ; preds = %5099
  %5125 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %5126 = icmp eq i32 %5125, -1
  br i1 %5126, label %5127, label %5149

5127:                                             ; preds = %5124
  %5128 = load i32, ptr %453, align 4, !tbaa !5
  %5129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5130 = call i32 @s2n_print_stacktrace(ptr noundef %5129) #13
  %5131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5132 = trunc nuw i8 %5131 to i1
  br i1 %5132, label %5133, label %5137

5133:                                             ; preds = %5127
  %5134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5135 = call i32 @fileno(ptr noundef %5134) #13
  %5136 = call i32 @isatty(i32 noundef %5135) #13
  %.not576 = icmp eq i32 %5136, 0
  br i1 %.not576, label %5137, label %5138

5137:                                             ; preds = %5133, %5127
  br label %5138

5138:                                             ; preds = %5133, %5137
  %.str.5.sink2329 = phi ptr [ @.str.5, %5137 ], [ @.str.2, %5133 ]
  store i32 %5128, ptr %453, align 4, !tbaa !5
  %5139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5140 = load i32, ptr @test_count, align 4, !tbaa !5
  %5141 = load i32, ptr %399, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef nonnull @.str.4) #13
  %5143 = load i32, ptr %399, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror_debug(i32 noundef %5143, ptr noundef nonnull @.str.4) #13
  %5145 = load i32, ptr %453, align 4, !tbaa !5
  %5146 = call ptr @strerror(i32 noundef %5145) #13
  %5147 = load i32, ptr %453, align 4, !tbaa !5
  %5148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5139, ptr noundef nonnull %.str.5.sink2329, i32 noundef %5140, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 1001, ptr noundef %5142, ptr noundef %5144, ptr noundef %5146, i32 noundef %5147) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5149:                                             ; preds = %5124
  %5150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5151 = trunc nuw i8 %5150 to i1
  br i1 %5151, label %5152, label %5163

5152:                                             ; preds = %5149
  %5153 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5154 = call i32 @fileno(ptr noundef %5153) #13
  %5155 = call i32 @isatty(i32 noundef %5154) #13
  %.not573 = icmp eq i32 %5155, 0
  br i1 %.not573, label %5163, label %5156

5156:                                             ; preds = %5152
  %5157 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not575 = icmp eq i32 %5157, 0
  %5158 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not575, label %5161, label %5159

5159:                                             ; preds = %5156
  %5160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5158, ptr noundef nonnull @.str.97, i32 noundef %5157) #13
  br label %.thread702

5161:                                             ; preds = %5156
  %5162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5158, ptr noundef nonnull @.str.98) #13
  br label %.thread702

5163:                                             ; preds = %5152, %5149
  %5164 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not574 = icmp eq i32 %5164, 0
  %5165 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not574, label %5168, label %5166

5166:                                             ; preds = %5163
  %5167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5165, ptr noundef nonnull @.str.99, i32 noundef %5164) #13
  br label %.thread702

5168:                                             ; preds = %5163
  %5169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5165, ptr noundef nonnull @.str.100) #13
  br label %.thread702

.thread702:                                       ; preds = %5096, %.thread697, %5161, %5159, %5168, %5166
  %.7 = phi i32 [ 0, %5166 ], [ 0, %5168 ], [ 0, %5159 ], [ 0, %5161 ], [ -1, %.thread697 ], [ %.4, %5096 ]
  %5170 = call i32 @s2n_hash_free(ptr noundef nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #13
  %5171 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #13
  %5172 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 500, ptr nonnull %3) #13
  ret i32 %.7
}

; 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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

declare i32 @s2n_cert_chain_and_key_ptr_free(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 ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_new(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_init(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_get_fingerprint_string(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef, i32 noundef, i32 noundef, ptr noundef, 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_client_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_get_client_hello(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #10

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_validate_ja3_str(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #11

declare i32 @s2n_client_hello_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_client_hello_from_source(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #12

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 nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { nofree nounwind willreturn memory(argmem: read) }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { cold nounwind }
attributes #16 = { noreturn nounwind }
attributes #17 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 2044}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !6, i64 2040}
!43 = !{!16, !7, i64 217}
!44 = !{!16, !7, i64 218}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = distinct !{!47, !46}
!48 = distinct !{!48, !46}
!49 = !{!25, !6, i64 8}
!50 = !{!25, !10, i64 0}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass